信号処理とは
- 信号は情報を含む物理量である。信号を解析するためにはまず、信号がどのような量を表し、何が変数なのか、その単位は何か、よく考えなくてはならない。
- 現時点以降、値がどのように変化していくのかを正確に特定できない信号を不規則信号、特定できる信号を確定信号という。確定信号の代表である正弦波は、角周波数、振幅、位相で表される。周波数と周期は逆数の関係にある。
- 周期信号は、その周期の整数倍だけ時間方向にずらしてもかわらない信号である。正弦波以外にも方形波、のこぎり波、三角波などがある。単発的な信号はパルス信号あるいは孤立波という。
- ディジタル信号はアナログ信号を離散化することによって得られる。時間に対する離散化をサンプリング(標本化)、信号の大きさに対する離散化を量子化という。アナログ信号からディジタル信号への変換をAD変換という。
- 信号をAD変換するときは、信号に含まれている最高周波数成分の2倍の周波数(ナイキスト周波数)以上でサンプリングしなくてはならない。これをサンプリング定理という。ナイキスト周波数以下でサンプリングすると、本来の信号には含まれていないはずの低い周波数成分が現れてしまう。この現象をエイリアシングという。ディジタル信号からアナログ信号への変換はDA変換という。
信号処理の例
- 移動平均は信号の細かな変動や雑音を圧縮する平滑化の処理である。サンプル点ごとにその周囲の値の平均をとっていく。平均をとる範囲の広さに注意する。範囲が狭すぎると平滑化の効果は薄く、広すぎるとノッペリした波形になってしまう。
- 雑音が加わりながらも、信号が繰り返し送られるとき、各信号の同期をとって平均をとることにより雑音を圧縮できる。この方法を同期加算あるいは平均応答法という。
数学の準備体操
- 連続な信号f(t)をN点でサンプリングすると、信号はN次元のベクトルとして表現される。そして、これはN次元空間の一つの点に対応する。
- 信号の大きさはベクトルのノルムで、二つの信号の違いはベクトル間の距離で表現される。ベクトルの内積はベクトル間の有効な成分の積を表している。
また、相関係数はベクトルの間の角度を表し、信号の似ている度合いを表す。相関係数が大きいほど信号は似ている。また相関係数が0のとき、ベクトルは直行している。 - ノルムが1で、互いに直行するベクトルの集合を正規直交基という。
任意のベクトルは正規直交基によって展開できる。その成分は内積で定められる。 - 関数はベクトル空間の次元を無限大とした空間(関数空間)の1点で表され、ベクトル空間と同じように、ノルム、距離、内積、相関係数が定義できる。
ベクトル空間の正規直交基に対応するのが、正規直交関数系であり、任意の関数はそれによって展開できる。その成分は内積で定められる。
相関関数
- 周期Tのアナログ信号f(t),g(t)の相互相関関数は両者の相関を変数軸(t軸)の移動量をτを変数として以下のように定義される。
Rfg(τ)=limT→∞1T∫T0f(x)dxf(t)g(t+τ)dtRfg(τ)=limT→∞1T∫T0f(x)dxf(t)g(t+τ)dt
またディジタル信号fi,gi(i=1,2,3…N)の相互相関関数は以下のように定義される
Rfg(j)=1NN∑i=1fig(i+j)Rfg(j)=1NN∑i=1fig(i+j)
相互相関関数によって関数間の相関の強さや時間的なずれの度合いなどを求めることができる。 - アナログ信号f(t)の自己相関関数は関数それ自身との相互相関関数であり
Rff(τ)=limT→∞1T∫T0f(t)g(t+τ)dtRff(τ)=limT→∞1T∫T0f(t)g(t+τ)dt
と定義される。
自己相関関数で信号に周期性があるかを解析できる、自己相関関数はτ=0で最大||f(t)||2となり、左右対称である。
ディジタル信号では
Rff(j)=1NN∑i=1fig(i+j)Rff(j)=1NN∑i=1fig(i+j)
と定義される。
フーリエ級数展開
- どんな信号波形でも、それはいろいろな周波数成分(整数倍)の正弦波に分解できる。その成分を周波数の領域で表現したものがスペクトルである。
スペクトルから逆にもとの信号を時間領域で合成することもできる。 - フーリエ級数展開は周期関数をさまざまな周波数の正弦波の成分に分解するものである。周期信号f(t)の周期がT、基本角周波数がω0(ω0=2π/T)であるとき、f(t)はフーリエ級数によって
f(t)=a02+∞∑k=1(akcosω0kt+bksinω0kt)f(t)=a02+∞∑k=1(akcosω0kt+bksinω0kt)
と展開される。だだし、ak,bkは以下で定義されるf(t)の実フーリエ級数である。
ak=2T∫T/2−T/2f(t)cosω0ktdtak=2T∫T/2−T/2f(t)cosω0ktdt(k=0.1.2・・・)
bk=2T∫T/2−T/2f(t)sinω0ktdtbk=2T∫T/2−T/2f(t)sinω0ktdt(k=0.1.2・・・)
f(t)が偶関数のときはbk=0,奇関数のときはak=0である。 - 複素フーリエ級数展開は、実フーリエ級数展開より表現が一般的で演算が容易である。基本角周波数がω0(ω0=2π/T)の周期関数f(t)の複素フーリエ級数展開は
f(t)=∞∑k=−∞Ckejω0kt)f(t)=∞∑k=−∞Ckejω0kt)
である。ただしCkはf(t)の複素フーリエ係数であり
Ck=1T∫T/2−T/2f(t)ejω0ktdtCk=1T∫T/2−T/2f(t)ejω0ktdt(k=0.1.2・・・)
である。f(t)が偶関数のときはCkの虚部は0、奇関数のときは実部が0となる。 - |Ck|を振幅スペクトル、∠Ckを位相スペクトル、|Ck|2をパワースペクトルという。振幅スペクトルはその周波数成分が信号にどのくらい含まれているかを表す。
- 信号とスペクトルには線形な関係がある。信号が変数方向に移動しても振幅スペクトルやパワースペクトルは変化しない。
- 信号の時間領域のパワーと周波数領域のパワーは等しい。つまり、
1T∫T/2−T/2|f(t)|2dt=∑∞k=−∞|Ck|21T∫T/2−T/2|f(t)|2dt=∑∞k=−∞|Ck|2
である。これをパーシパルの定理という。 - フーリエ級数の時数を上げると、信号に対する近似の誤差は減少し、ますます実際の計測値に近づいていく。
DFTとFFT
- N個の信号値の系列{f0、f1、f2、f3、・・・fN-1}の離散フーリエ変換(DFT)は
Ck=1N∑N−1i=0fie−j(2π/N)kiCk=1N∑N−1i=0fie−j(2π/N)ki(k=0.1.2・・・,N-1)
離散フーリエ逆変換(IDFT)は
fi=∑N−1k=0Ckej(2π/N)kifi=∑N−1k=0Ckej(2π/N)ki(k=0.1.2・・・,N-1)
と定義される - DFTのスペクトルは周期的であり、周期はNである。負のスペクトルはk=N/2からk=N-1に現れる。また振幅スペクトルとパワースペクトルはk=N/2を中心として左右対称である。
- DFTは計算量が膨大となるので実用的ではない。FFTはDFTに比べ、かなり効率の良いアルゴリズムであり、計算量をかなり減少できる。
ただし、データは2のべき乗でなくてはならない。
フーリエ変換
- フーリエ変換は非周期的な信号や孤立波など、一般的な信号に対するスペクトル解析の方法であり、以下のように定義される。
F(ω)=∫−∞∞f(t)e−jωtdtF(ω)=∫−∞∞f(t)e−jωtdt
f(t)=12π∫−∞∞F(ω)ejωtdω
フーリエ変化F(ω)は周期信号のフーリエ級数展開における複素フーリエ係数C_kに対応する。
C_kはk=0、±1、±2・・・において線スペクトルをもつが、F(ω)はωについて連続なスペクトルとなる。 - 信号の時間領域のパワーと周波数領域のパワーとは等しい。つまり、フーリエ変換においてもパーシパルの定理
∫∞∞|f(t)|2dt=12π∫∞−∞|F(ω)|2dω
が成立する。 - デルタ関数も白色雑音も共に、すべての周波数成分を一様に含んでいる。しかし、位相は全く異なる。
つまり、振幅スペクトルは両者とも全周波数にわたって均一であるが、デルタ関数の位相スペクトルは0、白色雑音はランダムである。 - アナログ信号f(t)をt=t0でサンプリングし、f(t0)を得ることをデルタ関数δ(t)を用いて、
∫∞∞δ(t−t0)f(t)dt=f(t0)
と表現できる。
1000Hzの正弦波の波形に1001Hzのサンプリング周波数でサンプリングした時、得られる波形の周波数はいくつになりますか?
1000Hzの正弦波を1001Hzのサンプリング周波数でサンプリングする場合、エイリアシング(折り返し歪み)が発生します。エイリアシングの結果として得られる波形の周波数は、サンプリング周波数と信号周波数の差になります。
具体的には:
エイリアス周波数=∣サンプリング周波数−信号周波数∣
エイリアス周波数=∣1001−1000∣=1
したがって、1000Hzの正弦波を1001Hzでサンプリングすると、得られるエイリアス波形の周波数は1Hzになります。
1000Hzの正弦波の波形に800Hz、1200Hzのサンプリング周波数でサンプリングした時、得られる波形の周波数はいくつになりますか?
- 800Hzのサンプリング周波数でのサンプリング: エイリアス周波数=∣信号周波数−サンプリング周波数∣ エイリアス周波数=∣1000−800∣=200
- 1200Hzのサンプリング周波数でのサンプリング: エイリアス周波数=∣サンプリング周波数−信号周波数∣ エイリアス周波数=∣1200−1000∣=200
したがって、1000Hzの正弦波を800Hzおよび1200Hzでサンプリングすると、どちらの場合も得られるエイリアス波形の周波数は200Hzになります。