chirp 信号に逆方向の chirp 信号を乗算して DFT により単一周波数を検出


時間と共に周波数が増加、減少する信号は chirp 信号と呼ばれている。逆方向に変化する chirp 信号を乗算すると、周波数の和と差の成分に変換される。

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]  \ \]


20Hz から 80Hz に変化する chirp 信号を 1KHz でサンプリング、80Hz から 20Hz に逆方向に変化する chirp 信号を乗算した時の計算例の Excel file

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

2つの chirp 信号はタイミングが同期している必要がある為、リアルタイムで検出するには、1サンプリング毎に N 個のサンプリング値の DFT を行う必要がある。

2つの chirp 信号を 2値化することにより和演算だけで行える。

和演算を分割して演算値を ROM 化することにより、分割数回の和演算にすることで高速化することが可能になる。


ホーム

2022-10-02