ディジタル信号処理で必須な離散フーリエ変換を離散時間フーリエ変換、フーリエ変換などとまとめて導入する。
フーリエ変換 (FT)
時間領域における関数 f(t) を周波数領域における関数 F(s) に変換する公式がある。この変換をフーリエ変換という。
F(s)=2π1∫−∞∞dt e−istf(t)
フーリエ反転公式により、変換された後の関数 F(s) に対し、逆向きに f(t) を復元するような変換は次式で与えられる。これをフーリエ逆変換という。
f(t)=2π1∫−∞∞ds eistF(s)
まとめると次のとおりで、両者の違いは指数関数の回転の向きが逆であることが確認できる。
Fourier transform
関数 f:R→R が、区分的に滑らかで、かつ絶対可積分な場合
F(s)=f(t)=2π1∫−∞∞dt e−istf(t)2π1∫−∞∞ds eistF(s)
正確には、fが連続でないような点についても述べるため、
21(f(t+0)+f(t−0))=2π1∫−∞∞ds eistF(s)
と書くべきである。ただし f(t±0)=τ→+0limf(t±τ) である。もしも点 t において f が連続である、すなわち f(t±0)=f(t) が成り立つならば
f(t)=2π1∫−∞∞ds eistF(s)
が成り立つというわけだ。
フーリエ変換の条件
フーリエ変換が行なえる関数 f:R→R は、区分的に滑らかかつ絶対可積分なものに限られる。
区分的に滑らか
関数 f:R→R が区間 [a,b] において区分的に滑らかであるとは、次の条件を満たすことをいう。
-
区間 [a,b] において不連続な点が存在しない、または存在しても高々有限個
-
1階導関数 f′ が存在
-
f′ が区間 [a,b] において連続
絶対可積分
関数 f:R→R が絶対積分可能である、または絶対可積分であるとは、絶対値の広義積分が発散しないことをいう。
0≤∫−∞∞dx ∣f(x)∣<∞
フーリエ級数展開 (Fourier series)
時間領域における関数 f(t) が周期 2π の連続関数である場合を考える。この場合、関数 f は 2π ごとに同じ値をとるため、0 から 2π までの区間を積分すれば十分である。
F(s)=2π1∫02πdt e−istf(t)
変換後の関数 F(s) は離散値をとる関数となり、逆変換は総和によって与えられる。
f(t)=2π1s=−∞∑∞eistF(s)
この逆変換のことをフーリエ級数展開という。
ディジタル信号処理の立場から見た場合には、順変換の方を「離散周波数フーリエ変換」と呼ぶほうが良さそうにも感じられるが、一般的にはそう呼ばない。歴史的には「時間領域における周期的な連続関数を三角関数の和によって表す公式」として生まれた経緯があるためである。
関数 f の周期が λ の場合には次式で与えられる。
Fourier series
周期 λ の関数 f:R→R が、区間 [0,λ] における不連続点が高々有限個で、かつ絶対可積分である場合
F(s)=f(t)=λ1∫0λdt e−iλ2πstf(t)λ1s=−∞∑∞eiλ2πstF(s)
離散時間フーリエ変換 (DTFT)
フーリエ級数展開の場合、時間領域が周期的で、周波数領域が離散的である。逆に、時間領域が離散的な場合には、周波数領域が周期的になる。
F(s)=2π1∑t=−∞∞e−istf(t)
この変換を離散時間フーリエ変換という。周波数領域の周期が 2π の場合、逆変換は次のとおりである。
f(t)=2π1∫02πds eistF(s)
フーリエ級数展開と同様に、関数 F の周期が λ の場合については次のとおりである。
Discrete-time Fourier transform
周期 λ の関数 F:R→R が、区間 [0,λ] における不連続点が高々有限個で、かつ絶対可積分である場合
F(s)=f(t)=λ1t=−∞∑∞e−iλ2πstf(t)λ1∫0λds eiλ2πstF(s)
離散フーリエ変換 (DFT)
時間領域、周波数領域ともに離散的な場合、両者とも周期関数となる。このような場合の変換は離散フーリエ変換と呼ばれる。
Discrete Fourier transform
周期 λ の関数 f:Z→R について
F(s)=f(t)=λ1t=0∑λ−1e−iλ2πstf(t)λ1s=0∑λ−1eiλ2πstF(s)
回転因子
以上4通りのフーリエ変換について書いた。よく見ると、4つの変換公式すべてについて、次の指数関数が含まれていることがわかる。
exp(−iλ2πst)=e−iλ2πst
そこでこの部分を簡単に書き直すために、次の回転因子と呼ばれるものを導入する。
Twiddle factor
ωN=exp(−iN2π)
すなわち
ωNn=exp(−iN2πn)
ここで n=kN の場合、
ωNkN=exp(−iN2πkN)=1
ゆえ、
ωNkN−1=(ωNk−1)(ωNk(N−1)+ωNk(N−2)+⋯+1)=(ωNk−1)p=0∑N−1ωNp=000
が成り立つ。よって、
p=0∑N−1ωNp={N0kmodN=0otherwise
がいえる。ただし kmodN は、整数 k を整数 N で割った余りである。
下付き文字 N は通常は整数を仮定するが、ここでは実数全体に拡張してしまう。
ωλ=exp(−iλ2π)
ここで λ=2π とすると
ω2π=exp(−i)
となる。
回転因子を用いた書き換え
回転因子を用いると、4つのフーリエ変換は次のように書き換えることができる。
Fourier transforms
1. FT2. Fourier series3. DTFT4. DFTwhereF(s)=f(t)=F(s)=f(t)=F(s)=f(t)=F(s)=f(t)=ωλ=2π1∫−∞∞dt ω2πstf(t)2π1∫−∞∞ds ω2π−stF(s)λ1∫0λdt ωλstf(t)λ1s=−∞∑∞ωλ−stF(s)λ1t=−∞∑∞ωλstf(t)λ1∫0λds ωλ−stF(s)λ1t=0∑λ−1ωλstf(t)λ1s=0∑λ−1ωλ−stF(s)exp(−iλ2π)
ただし λ は周期で、DFTにおいて λ∈Z+、それ以外で λ∈R+。
以上4つを、関数の周期性や離散・連続の観点でまとめておく。
|
|
時間領域
|
周波数領域
|
|
フーリエ変換
|
連続 非周期的
|
連続 非周期的
|
|
フーリエ級数展開
|
連続 周期的
|
離散 非周期的
|
|
離散時間フーリエ変換
|
離散 非周期的
|
連続 周期的
|
|
離散フーリエ変換
|
離散 周期的
|
離散 周期的
|
注目すべきは、離散的な関数を変換すると周期関数になるという点である。これは加算無限個の指数関数 (あるいは三角関数) の和の形で書ける関数は周期関数に限られることを示唆している。