DFT から得られる時系列の計算式による単一周波数成分の検出


特定の周波数成分だけが必要な場合には、通常の FFT のように全周波数成分を計算せずに、DFT (離散フーリエ変換) を隣り合うフーリエ係数の計算式に分解して計算できることを示す。


DFT の計算式

DFT では、次式のように、N 個の時間軸連続データを $ \frac{N}{2}+1 $ 個 ( $ 0 $ ~ $ \frac{N}{2} $ 番目 ) のフーリエ周波数成分に分解する。

ここで $ X $ はフーリエ係数、$ k $ はそれに対応する周波数。$ x $ は時系列の入力信号であり、そのデータの個数は $ N $ ( $ 0 $ ~ $ N-1 $ 番目) である。

\[ \ X(k) = \frac{2}{N} \displaystyle \sum_{n=0}^{N-1}x(n)e^{-j \frac{2 \pi nk}{N} } = \frac{2}{N} \displaystyle \sum_{n=0}^{N-1}x(n) \left[ cos \frac{2 \pi nk}{N}-jsin \frac{2 \pi nk}{N} \right] \ \]

$ i $ 番目と $ i-1 $ 番目のフーリエ係数を $ X_k^i $、$ X_k^{i-1} $ とすると、隣り合うフーリエ係数の差を、積和演算を展開して計算すると、次式が得られる。

\[ \ X_k^i = X_k^{i-1}+ \frac{2}{N} \displaystyle \left[ cos \frac{2 \pi k}{N}i-jsin \frac{2 \pi k}{N}i \right] \left[ x(i)-x(i-N) \right]  \ \]


100Hz 正弦波を 1KHz でサンプリングした時の計算例の Excel file

初期値 0 からサンプリングを開始すると、N 回目のサンプリングで周波数成分が 1 になる。


ホーム

2022-09-25