オーディオ信号のパワースペクトルを取得するために、 以下のガイドライン を数回見つけました:
しかし...なぜサンプルにウィンドウ関数を適用する必要があるのですか?それは本当にどういう意味ですか?
パワースペクトルはどうですか、それはサンプルレートの範囲内の各周波数のパワーですか? (例:サウンドのWindows Media Playerビジュアライザー?)
ほとんどの実世界のオーディオ信号は非周期的です。つまり、実際のオーディオ信号は、通常、特定の期間にわたって正確に繰り返されるわけではありません。
ただし、フーリエ変換の計算では、フーリエ変換される信号が問題の期間にわたって周期的であると想定しています。
フーリエの周期性の仮定と、オーディオ信号が一般に非周期的であるという現実世界の事実との間のこの不一致は、変換のエラーにつながります。
これらのエラーは「スペクトル漏れ」と呼ばれ、一般に信号のパワースペクトル全体にエネルギーが誤って分布していることとして現れます。
以下のプロットは、A4ノートを演奏するアコースティックギターのパワースペクトルのクローズアップを示しています。スペクトルはFFT(高速フーリエ変換)で計算されましたが、信号はFFTの前にウィンドウ処理されませんでした。
-60 dBの線より上のエネルギーの分布と、約440 Hz、880 Hz、および1320Hzの3つの異なるピークに注目してください。この特定のエネルギー分布には、「スペクトル漏れ」エラーが含まれています。
「スペクトル漏れ」エラーをいくらか軽減するために、たとえばハンウィンドウ関数など、その目的のために特別に設計されたウィンドウ関数で信号を事前に乗算することができます。
以下のプロットは、時間領域でのハンウィンドウ関数を示しています。関数の中央部分が値1に向かってスムーズに傾向があるのに対し、関数のテールがスムーズにゼロになることに注目してください。
次に、ハンウィンドウをギターのオーディオデータに適用し、結果の信号をFFTしてみましょう。
以下のプロットは、同じ信号(A4ノートを演奏するアコースティックギター)のパワースペクトルのクローズアップを示していますが、今回は、信号はFFTの前にハンウィンドウ関数によって事前に乗算されています。
-60 dBの線より上のエネルギーの分布が大幅に変化し、3つの異なるピークの形状と高さがどのように変化したかに注目してください。スペクトルエネルギーのこの特定の分布には、「スペクトル漏れ」エラーが少なくなっています。
この分析に使用されたアコースティックギターのA4ノートは、スタジオ条件下で高品質のマイクを使用して44.1 KHzでサンプリングされました。バックグラウンドノイズは基本的にゼロで、他の楽器や音声は含まれず、後処理もありません。
参照:
実際のオーディオ信号データ、ハンウィンドウ関数、プロット、FFT、およびスペクトル分析は、ここで行われました。
非長方形のウィンドウには、利点とコストの両方があることに注意してください。時間領域でのウィンドウの結果は、ウィンドウの変換と信号のスペクトルの畳み込みに相当します。フォンハンウィンドウなどの一般的なウィンドウは、非周期的なスペクトルコンテンツからの「漏れ」を減らし、ノイズの少ないスペクトルになります。しかし、その見返りとして、畳み込みは、いくつかの隣接するビンにまたがる周期的なスペクトルピークを正確にまたはそれに近い形で「ぼかし」ます。例えばすべてのスペクトルピークが丸くなり、周波数推定の精度が低下する可能性があります。非周期的なコンテンツ(たとえば、回転同期サンプリングシステムからのデータ)がないことを事前に知っている場合、非長方形のウィンドウは実際にFFTの外観を悪化させる可能性があります。
非長方形のウィンドウも、情報が失われるプロセスです。有限精度の演算を想定すると、ウィンドウの端の近くにあるかなりの量のスペクトル情報が破棄されます。したがって、非長方形のウィンドウは、重複するウィンドウ処理で、および/または対象のスペクトルがウィンドウ幅全体にわたって静止しているか、ウィンドウの中央にあると想定できる場合に最適に使用されます。
ウィンドウ関数を適用していない場合は、実際には長方形のウィンドウ関数を適用しています。異なるウィンドウ関数には異なる特性があり、正確に何が必要かによって異なります。