FFT その5
今回はリーケージ対策(anti-leakage)として一般的に使われる窓関数(window function)のお話です
fft5.wxm
入力についてはFFT その3とまったく同様のため説明は割愛します(´・ω・`)
窓関数の中でも代表的なハニング窓(hanning window)の重み関数を%o11式に示します
重み付けしたサンプリングデータをLwに配列として代入します(%o12)
Lwとサンプリング時刻tで二次元配列Sを作成します(%o13)
元の波形を赤線,重み付けサンプリングデータを青点, 横軸にt, 縦軸に振幅として%t14にそれぞれプロットします
FFT関数にLwを渡した結果と周波数fで二次元配列を作成します(%o15)
比較のため,重み付けしていないLsの結果も作成します(%o16)
これらを横軸にf, 縦軸に振幅としてそれぞれ%t17にプロットします
これより,ハニング窓を適用した結果リーケージが抑えられていることが解ります
余談ですが,音声圧縮codecに使われている窓関数としては
mp3等に使われているサイン窓(sine window)
AC3やAACに使われているカイザー・ベッセル派生窓(Kaiser-Bessel derived window)が有名です