離散フーリエ変換#
離散フーリエ変換#
複素フーリエ級数#
\(\theta\)を角度とすると、円周に沿って値が定義された関数\(f(\theta)\)(sinやcosなどのこと??)は周期\(T=2\pi\)の周期関数であり、\(\theta\)に\(2\pi\)の任意の整数倍を足しても引いても\(f(\theta)\)は同じ値になる。
フーリエ係数の複素表示
より、\(f(\theta)\)の基本周波数は\(\omega_0=2\pi/T = 1\)であるから、\(f(\theta)\)のフーリエ級数は、
と書くことができる。
離散フーリエ変換#
円周上を\(N\)分割し、\(N\)個のサンプル点をとる
(1周期が\(2\pi\)なのを\(N\)分割したものの\(l\)倍が\(\theta_l\))
このサンプル点での \(f(\theta)\) のサンプル値を \(f_l=f\left(\theta_l\right)\) とする。
前述のフーリエ係数は連続関数 \(f(\theta)\) を無限個の係数 \(\left\{C_k\right\}, k=0, \pm 1, \pm 2, \pm 3, \ldots\), で表すものだが、 もし \(N\) 個のサンプル値 \(\left\{f_l\right\}\) のみが必要な場合は \(N\) 個の係数のみで表される。
係数 \(\left\{F_k\right\}\) をデータ \(\left\{f_l\right\}\) の 離散フーリエ変換 と呼ぶ。
Tip
書籍によっては\(1/N\)の表記方法が異なる場合がある。\(1/N\)を\(f_l\)のほうにもってきて
としたり、あるいは\(l,k\)について平等にするため
とすることがある
逆フーリエ変換#
ただし \(m \equiv n \quad (\bmod N)\) (\(N\) を 法 として 合同 であると読む)は \(m-n\) が \(N\) の倍数であることを表す。
これを使うことで、データ\(\{f_l\}\)から離散フーリエ変換\(F_k\)を定義すると
となる。最後の項のカッコの中は\(l \equiv m ~ (\bmod N)\)のとき1、それ以外は0となる。\(0 \leq l<N, 0 \leq m<N\) の範囲では \(l \equiv m(\bmod N)\) となるのは\(l=m\)の場合のみなので、\(f_m\)を掛けて和\(\sum^{N-1}_{m=0}\)をとると\(f_l\)になる。よって逆フーリエ変換の式\(f_l=\sum_{k=0}^{N-1} F_k e^{i 2 \pi k l / N}\)が成立する。
周期的な添字に拡張する#
取り扱いを便利にするため、以下では\(f_l,F_k\)の\(l,k=0,1,\dots,N-1\)の値を周期的に拡張する。 例えば\(f_N=f_0, f_{N+1} = f_1, \dots\)とする。
このように拡張すると、総和は任意の連続する \(N\) 個の和に置き換えても同じになる。例えば \(\sum_{k=0}^{N-1}\) は \(\sum_{k=1}^N, \sum_{k=2}^{N+1}, \sum_{k=3}^{N+2}, \ldots\) と書いても \(\sum_{k=-1}^{N-2}, \sum_{k=-2}^{N-3}, \ldots\) と書いても同じである。
周期関数のサンプリング定理#
帯域制限#
周期 \(2 \pi\) の連続関数 \(f(\theta)\) がフーリエ級数に展開されるとき、そのフーリエ係数 \(C_k\) がある \(k\) の範囲以外は 0 であるなら \(f(\theta)\) は 帯域制限 されているという。
帯域制限された周期関数は、ある間隔より細かくサンプルすればフーリエ係数 \(C_k\) と離散フーリエ変換 \(F_k\) が等しくなる。
離散フーリエ変換\(F_k, |k| < \frac{N}{2}\)は次のように書くことができる。
\(-N / 2<m<N / 2,-N / 2<k<N / 2\) のとき \(m \equiv k ~(\bmod N)\) となるのは \(m=k\) の場合しかない。 ゆえに 上式は \(C_k\) に等しい。
よって、 帯域制限された周期関数は、ある間隔より細かくサンプルすればそのサンプル値の補間によって表現できる。
周期関数のサンプリング定理#
周期関数のサンプリング定理
周期 \(2 \pi\) の連続関数 \(f(\theta)\) のフーリエ係数 \(C_k\) が \(|k| \geq \frac{N}{2}\) に対して 0 のとき、\(f(\theta)\) は区間 \([0,2 \pi]\) を \(N\) 等分して得られるサンプル値 \(f_l=f\left(\theta_l\right)\) から次のように再現される
ただし、 \(\phi_N(\theta)\) は次のように定義した補間関数である。
\(|k| \geq N / 2\) では \(C_k=0\) であり、 \(|k|<\) \(N / 2\) では \(C_k=F_k\) であるから、 \(f(\theta)\) は次のように書ける。
畳み込み和定理#
定義:畳み込み和
周期 \(N\) のデータ \(\left\{f_l\right\},\left\{g_l\right\}\) の(循環)たたみこみ和 \(\left\{f_l * g_l\right\}\) を次のように定義する。
畳み込み和定理
周期 \(N\) のデータ \(\left\{f_l\right\},\left\{g_l\right\}\) の離散フーリエ変換をそれぞれ \(\left\{F_k\right\},\left\{G_k\right\}\) とするとき、 \(\left\{f_l * g_l\right\}\) の離散フーリエ変換は \(\left\{F_k G_k\right\}\) である
証明
パワースペクトル#
パーセバルの式
\((1 / N) \sum_{l=0}^{N-1}\left|f_l\right|^2\) は \(\left\{f_l\right\}\) の平均エネルギーを表しているとみなせる。パーセバルの式の第2式はこれが \(\sum_{k=0}^{N-1}\left|F_k\right|^2\) で表されることを意味している。したがってパワースペクトルを
と定義するとパーセバルの式の第2式は
と書き換えることができる。
データ\(\{f_k\}\)が実数のとき、\(F_{-k} = \overline{F_k}\)であるから\(P_{-k} = P_k\)である。なので\(P_k\)のグラフを\(k = \dots, -2, -1, 0, 1, 2, \dots\)に対してプロットすると\(k=0\)に関して左右対称になる。
自己相関係数#
周期 \(N\) のデータ \(\{f_l\}\) の自己相関係数 \(\{R_n\}\) を次のように定義する。
ウィーナー・ヒンチンの定理#
ウィーナー・ヒンチンの定理
周期 \(N\) のデータ \(\left\{f_l\right\}\) の自己相関係数 \(\left\{R_n\right\}\) の離散フーリエ変換はパワースペクトルに等しい
証明
まとめ#
連続のフーリエ変換と同様に、ウィーナー・ヒンチンの定理を使うことでもパワースペクトルを得ることができる。
しかし離散の場合は高速フーリエ変換があるため、ウィーナー・ヒンチンの定理を使うことによる計算量削減などの効果は相対的に低い。実用上は高速フーリエ変換一択になる。