趣味人のブログ

Cogito, ergo sum. 我思う故に我あり.

12. 離散フーリエ変換と離散時間フーリエ変換

本章は離散フーリエ変換 (Discrete Fourier transform: DFT) と離散時間フーリエ変換 (Discrete-time Fourier transform: DTFT) について述べる.これらは教科書に十分な説明が記載されているため,本資料では数式の証明や導出は省略し,信号の分析という観点からの解説を行う.尚,離散フーリエ変換 (DFT) と離散時間フーリエ変換 (DTFT) における種々の関係は,以下の f [n] が複素数の場合でも成立するが,その物理的な意味を見い出す事は容易ではないため,本資料では扱わない.

12.1. 離散フーリエ変換 (DFT)

離散フーリエ変換 (DFT) の導出

時間 [0, 2π] で定義された周期 2π の連続時間信号 f (t) と,9.2 に述べたサンプリング周期 T で生成される単位インパルス関数 (櫛型関数) を乗算したインパルス列を p (t) とすると,p (t), (0 ≤ t < 2π) は以下の式で記述される.尚,連続時間信号 f (t) の周期 2π 毎のサンプリング数 N = 2π / T は整数とする.

(12-1) pt=ftn=0N-1δt-nT=n=0N-1fnTδt-nT

次に,連続時間信号 f (t) とインパルス列 p (t) の関係から,離散フーリエ変換 (DFT) を導出する.式 (8‑5) に示した周期 2π の周期関数の複素フーリエ係数,及び式 (5‑7) に示した単位インパルス関数 δ (t) の定義から,p (t) の複素フーリエ係数 ck は以下で与えられる.

(12-2) ck =12π02πpte-jktdt =12π02πn=0N-1fnTδt-nTe-jktdt =12πn=0N-1fnT-ππδt-nTe-jktdt =12πn=0N-1fnTe-jknT =12πn=0N-1fnTe-j2πknN

ここで,連続時間信号 f (t) に対して,f [n] = f (nT) となる数列を離散時間信号とすると,以下の通り f [n] の離散フーリエ変換 (DFT) F [k] が得られる.尚,フーリエ変換,逆変換の定義式における係数との整合性のため F [k] = 2πck としている.

(12-3) Fk=2πck=n=0N-1fne-j2πknN

以上から明らかな通り,離散フーリエ変換 (DFT) とは本質的にインパルス列の複素フーリエ係数の別表現である

離散フーリエ変換 (DFT) の定義

f [n] = f [n + N] となる周期 N の離散時間信号 f [n] の離散フーリエ変換 (DFT) F [k],及び F [k] から f [n] を求める逆変換を以下に示す.複素指数関数は周期 2π の周期関数であるため,F [k] も周期 N の周期関数となる.以下の離散フーリエ変換 (DFT) を高速に計算するアルゴリズム高速フーリエ変換 (Fast Fourier transform: FFT) と呼ばれる

(12-4) Fk=n=0N-1fnWNkn,0kN-1 fn=1Nk=0N-1FkWN-kn,0nN-1 WN=e-j2πN

ここで,f [n] が実数,かつ N が偶数の場合,複素フーリエ級数と同様に,F [k] と F [N k], (1 ≤ k ≤ (N / 2) − 1) は共役複素数の関係となり,かつ F [0], F [N / 2] は実数となるため,逆変換の定義式は以下の通り変形できる.

(12-5) fn =1Nk=0N-1FkWN-kn=1Nk=0N-1Fkej2πknN =F0N+FN/2Nejnπ+1Nk=1N/2-1Fkej2πknN+Fke-j2πknN =F0N+FN/2Ncosnπ+1Nk=1N/2-1j2Fkej2πknN--j2Fke-j2πknNj2 =F0N+FN/2Nsinnπ+π2+k=1N/2-1Akej2πknN+φk-e-j2πknN+φkj2 Ak=2FkN,φk=Argj2FkN,1kN2-1

上記は (1) 角周波数を 2πk / N,振幅を Ak,初期位相を φk, (1 ≤ k ≤ (N / 2) − 1) とする正弦波,(2) 角周波数を π,振幅を F [N / 2] / N,初期位相を π / 2とする正弦波,及び (3) 直流成分 F [0] / N の重ね合わせの離散時間信号で f [n] を表せる事を示している.但し,周期 N / 2 はナイキスト周波数と等しいため,角周波数が π の正弦波は,振幅や初期位相によらず,振幅を F [N / 2] / N,初期位相をπ / 2とする正弦波として表現されてしまう事に注意せよ.尚,角周波数が π,初期位相が 0 となる正弦波の振幅 F [N / 2] / N は 0 と表現されるため,F [N / 2] = 0 は信号に角周波数 π の正弦波が含まれて居ない事を示している訳では無い事にも注意せよ.

Note: 高速フーリエ変換 (FFT) や逆変換,即ち離散フーリエ変換 (DFT) や逆変換は Excel のアドインで標準的に提供されており,手軽に計算する事ができる.

離散フーリエ変換 (DFT) の定理

離散フーリエ変換 (DFT) の主要な定理を以下に示す.

表12-1: 離散フーリエ変換 (DFT) の主要な定理.
線 形 性 Fafn+bgn=aFfn+bFgn=aFk+bGk
畳み込み Fm=0N-1fn-mgm=FfnFgn=FkGk
パーセバルの定理 n=0N-1fn2=1Nk=0N-1Fk2
時間軸のシフト Ffn-a=e-j2πkaNFfn=WNkaFk
周波数軸のシフト Fe-j2πnaNfn=FWNnafn=Fk+a

現実の信号分析と窓関数

高速フーリエ変換 (FFT) は,離散フーリエ変換 (DFT) を高速に計算するアルゴリズムとして信号分析において広く使われている.しかし,離散フーリエ変換 (DFT) の各種の性質が成立するのは,あくまで f [n] = f [n + N] となる周期 N の離散時間信号 f [n] に対してである.

現実の信号は周期的とは限らず,また短時間において周期的と見做せる信号,例えばモータやエンジンの回転,であっても,負荷の変動による駆動系の捩れ等により,周期の遅れや進みが生じるため,その周期に合わせて離散時間信号をサンプリングする事は容易では無い.そもそも信号にどの様な周波数成分が含まれているか判らないから分析するのであって,最初から信号が厳密に周期的と判っているのであれば,分析する必要も無いのである

従って,現実の高速フーリエ変換 (FFT) による信号分析とは,離散時間信号を N 回サンプリングし,それを周期 N の離散時間信号であると仮定して離散フーリエ変換 (DFT) を計算する事となる.この場合,離散時間信号に非周期信号や周期が N とはならない周期信号や含まれている可能性は十分にあり,これらは離散フーリエ変換 (DFT) の計算結果に角周波数や振幅,初期位相が変動する信号やノイズとして現れる.

これらの分析結果の変動やノイズを低減する技法として,8.1 に述べた窓関数が広く用いられている.代表的な窓関数として,式 (8-16) に示したハミング窓を以下に再掲する.

(12-6) wn=0.54-0.46cos2πnN-1,0nN-1

上記のハミング窓を離散時間信号 f [n] と乗算し w [n] f [n] とすると,ハミング窓の n = N / 2 を中心とした項の重みと比較して,n = 0 及び n = N − 1 周辺の項の重みは非常に低いため,w [0] f [0] と w [N − 1] f [N − 1] の周辺の差が減少し,w [n] f [n] を連続的,周期的な信号と見做せるようになる.このため,w [n] f [n] の離散フーリエ変換 (DFT) を計算すれば分析結果の変動やノイズを低減する事ができる.その反面,得られる分析結果の精度は低下する.

12.2. 離散時間フーリエ変換 (DTFT)

離散時間フーリエ変換 (DTFT) の導出

時間 [−∞, ∞] で定義された連続時間信号 f (t) と,9.2 に述べたサンプリング周期 T で生成される単位インパルス関数 (櫛型関数) を乗算したインパルス列を p (t) とすると,p (t) は以下の式で記述される.

(12-7) pt=ftn=-δt-nT=n=-fnTδt-nT

次に,連続時間信号 f (t) とインパルス列 p (t) の関係から,離散時間フーリエ変換 (DTFT) を導出する.式 (8‑19) に示したフーリエ変換の定義,及び式 (5‑5) に示した単位インパルス関数 δ (t) の定義から,p (t) のフーリエ変換 P (ω) は以下で与えられる.

(12-8) Pω =-pte-jωtdt =-n=-fnTδt-nTe-jωtdt =n=-fnT-δt-nTe-jωtdt =n=-fnTe-jnωT

ここで,連続時間信号 f (t) に対して,f [n] = f (nT) となる数列を離散時間信号とすると,以下の通り離散時間フーリエ変換 (DTFT) が得られる.

(12-9) Pω=n=-fne-jnωT

以上から明らかな通り,離散時間フーリエ変換 (DTFT) とはインパルス列のフーリエ変換の別表現である

離散時間フーリエ変換 (DTFT) の定義

サンプリング周期を T とする離散時間信号 f [n] の離散時間フーリエ変換 (DTFT) F (ω) を以下に示す.複素指数関数は周期 2π の周期関数であるため,F (ω) は周期 2π / T の周期関数となる.

(12-10) Fω=n=-fne-jnωT

F (ω) から f [n] を求める逆変換を以下に示す.

(12-11) fn=T2π-π/Tπ/TFωejnωTdω

ここで,f [n] が実数の場合は,フーリエ逆変換と同様に,F (ω) と F (−ω), (0 < ω ≤ (π / T)) は共役複素数の関係となるため,逆変換の定義式 (12‑11) は以下の通り変形できる.

(12-12) fn=T2π-πTπTFωejnωTdω fn-TF02π ~T2π0+πTFωejnωT+FωejnωTdω =Tπ0+πTjFωejnωT--jFωejnωTj2dω =0+πTAωejnωT+φω-e-jnωT+φωj2dω Aω=TFωπ,φω=ArgjTFωπ,0<ωπT

上記は角周波数をω,振幅を A (ω),初期位相を φ (ω), (0 < ω ≤ (π / T)) とする正弦波と,直流成分 T F (0) / (2π) の重ね合わせの離散時間信号で f [n] を表せる事を示している.

Note: 離散時間フーリエ変換 (DTFT) はインパルス列のフーリエ変換の別表現に過ぎないため,式 (8‑21) に示したフーリエ逆変換によって,F (ω) からインパルス列を得る事もできる.

フーリエ変換離と散時間フーリエ変換 (DTFT) の関係

連続時間信号 f (t) のフーリエ変換Fa (ω),連続時間信号 f (t) を周期 T でサンプリングした離散時間信号を f [n],この離散時間フーリエ変換 (DTFT) を F (ω) とすると,F (ω) と Fa (ω) には以下の関係がある.(下記の導出は煩雑なため後述する).

(12-13) Fω=1Tn=-Faω-2πnT

上記の関係は 9.1 に述べたサンプリングにおける異名現象 (エイリアシング) の発生を示している.また,上記は F (ω) が周期 2π / T の周期関数となる事,及び 10.2 に述べたインパルス列による階段関数の信号の近似により,離散時間フーリエ変換 (DTFT) はフーリエ変換と比較して1 / T 倍のゲインが生じる事も示している.

フーリエ級数展開と離散時間フーリエ変換 (DTFT) の関係

以上述べた通り,散時間フーリエ変換 (DTFT) は,離散時間の信号を連続かつ周期的な角周波数の正弦波と直流成分の重ね合わせで表す.一方,8.1 に述べたフーリエ係数は,周期的な連続時間の信号を離散的な角周波数の正弦波と直流成分の重ね合わせで表す.このため,式 (8‑12) に示した周期 2π / ω の周期関数の複素フーリエ係数と級数は,式 (12‑10) 及び (12‑11) に示した離散時間フーリエ変換 (DTFT),逆変換と,時間と角周波数を入れ替えた対称的な関係にある.

具体的には,複素フーリエ級数 f (t) を離散時間フーリエ変換 (DTFT) F (ω) に,複素フーリエ係数 cn を逆変換 f [n] に,複素フーリエ級数,係数の ω, t を各々離散フーリエ変換,逆変換の T, ω に置き換えると,これらは実質的に同じ式となる.このため,フーリエ級数展開における各種の性質,例えばギブスの現象は,時間と角周波数を入れ替えた関係で,離散時間フーリエ変換 (DTFT) においても発生し,これによって生じる周波数特性のリップルを抑制する技法として窓関数が使用できる点も同じとなる

離散時間フーリエ変換 (DTFT) の定理

離散時間フーリエ変換 (DTFT) はフーリエ変換の別表現であるから,これと同様な定理が成立する.離散時間フーリエ変換 (DTFT) の主要な定理を以下に示す.

表12-2: 離散時間フーリエ変換 (DTFT) の主要な定理.
線 形 性 Fafn+bgn=aFfn+bFgn=aFω+bGω
畳み込み Fk=-fn-kgk=FfnFgn=FωGω
パーセバルの定理 n=-fn2=12π-π/Tπ/TFω2dω
時間軸のシフト Ffn-a=e-jaωTFfn=e-jaωTFω
周波数軸のシフト Fe-jatfn=Fω+a

参考: フーリエ変換と離散時間フーリエ変換 (DTFT) の関係の導出

式 (12-13) に示したフーリエ変換と離散時間フーリエ変換 (DTFT) の関係式の導出を以下に示す.この導出は煩雑であるため,ステップに別けて示す.

フーリエ変換における周波数関数の畳み込み

表8-1に示した,フーリエ変換の畳み込みの定理を以下に示す.

(12-14) F-ft-τgτdτ=FωGω

上記は,時間関数の畳み込みであるが,フーリエ変換の対称性より,以下の通り周波数関数に対しても畳み込みが成立する.

(12-15) F12π-Fω-τGτdτ=ftgt

櫛型関数のフーリエ級数

9.2 のサンプラーの論理モデルにおいて述べた,サンプリング周期 T で生成される単位インパルス関数 (櫛型関数) のフーリエ級数を示す.櫛型関数は周期 T の周期関数であるから,これのフーリエ係数 Cn は以下で与えられる.以下の展開において,積分範囲において 0 以外となる単位インパルス関数は 1 つしか無い事を利用している.

(12-16) cn =1T-T/2T/2n=-δt-nTe-j2πntTdt =1Tn=--T/2T/2δt-nTe-j2πntTdt =1Tn=--T/2T/2δte-j2πntTdt =1Tn=-e0=1T

従って,櫛型関数のフーリエ級数は以下で与えられる.

(12-17) n=-δt-nT=1Tn=-ej2πntT

櫛型関数のフーリエ変換

離散時間フーリエ変換 (DTFT) はインパルス列のフーリエ変換の別表現であるから,櫛型関数のフーリエ変換は,以下に示す通りf [n] = 1 とした離散時間フーリエ変換 (DTFT) の定義式から与えられる.

(12-18) Fn=-δt-nT=n=-e-jnωT

しかし,上に述べた櫛型関数のフーリエ級数,及び式 (8-28) に示した単位インパルス関数の積分表示から,櫛型関数のフーリエ変換は,以下の別形式で表す事もできる.

(12-19) Fn=-δt-nT =-n=-δt-nTe-jωtdt =1T-n=-ej2πntTe-jωtdt =1Tn=--ej2πntTe-jωtdt =1Tn=--e-jω-2πnTtdt =2πTn=-δω-2πnT

フーリエ変換と離散時間フーリエ変換 (DTFT) の関係の導出

以上から式 (12‑13) を導出する.連続時間信号 f (t) を周期 T でサンプリングしたインパルス列 p (t) は以下で与えられる.

(12-20) pt=ftn=-δt-nT

上記は連続時間信号と櫛型関数の積であるから,インパルス列 p (t) のフーリエ変換,即ち離散時間信号 f [n] の離散時間フーリエ変換 (DTFT) F (ω) は,以下の通り,連続時間信号のフーリエ変換 Fa (ω) と式 (12‑19) に示した櫛型関数のフーリエ変換の畳み込みで与えられる.

(12-21) Fω =12π-Faτ2πTn=-δω-2πnT-τdτ =1Tn=--Faτδω-2πnT-τdτ =1Tn=-Faω-2πnT

本章の参考文献

A. Oppenheim, R. Schafer, 伊達訳, "ディジタル信号処理," (上), (下), コロナ社, 1978.
E. Oran Brigham, 宮川, 今井訳, "高速フーリエ変換," 科学技術出版社, 1985.