web-dev-qa-db-ja.com

オーディオ信号のパワースペクトルを構築するときに、サンプルにウィンドウ関数を適用する必要があるのはなぜですか?

オーディオ信号のパワースペクトルを取得するために、 以下のガイドライン を数回見つけました:

  • n個のサンプルを収集します。Nは2の累乗です。
  • サンプルに適切なウィンドウ関数を適用します。ハニング
  • ウィンドウ化されたサンプルをFFTルーチンに渡します-理想的には実数から複素数のFFTが必要ですが、複素数から複素数のFFTしかない場合は、すべての虚数入力部分に0を渡します
  • fFT出力ビンの大きさの2乗を計算します(re * re + im * im)
  • (オプション)各振幅の2乗出力ビンの10 * log10を計算して、dB単位の振幅値を取得します
  • パワースペクトルが得られたので、ピークを特定する必要があります。これは、妥当なS/N比があれば非常に簡単です。 Nが大きいほど周波数分解能が向上することに注意してください。上記の44.1kHzのサンプルレートとN = 32768の例では、各ビンの周波数分解能は44100/32768 = 1.35Hzです。

しかし...なぜサンプルにウィンドウ関数を適用する必要があるのですか?それは本当にどういう意味ですか?

パワースペクトルはどうですか、それはサンプルレートの範囲内の各周波数のパワーですか? (例:サウンドのWindows Media Playerビジュアライザー?)

20
Nuno Santos

@ cyco130が言うように、サンプルはすでに矩形関数によってウィンドウ処理されています。フーリエ変換は周期性を前提としているため、最後のサンプルと繰り返される最初のサンプルの間に不連続性があると、スペクトルにアーティファクトが発生します(ピークの「スミアリング」など)。これは スペクトル漏れ として知られています。この影響を減らすために、 ハンウィンドウ などのテーパーウィンドウ関数を適用します。これにより、このような不連続性が滑らかになり、スペクトル内のアーティファクトが減少します。

14
Paul R

ほとんどの実世界のオーディオ信号は非周期的です。つまり、実際のオーディオ信号は、通常、特定の期間にわたって正確に繰り返されるわけではありません。

ただし、フーリエ変換の計算では、フーリエ変換される信号が問題の期間にわたって周期的であると想定しています。

フーリエの周期性の仮定と、オーディオ信号が一般に非周期的であるという現実世界の事実との間のこの不一致は、変換のエラーにつながります。

これらのエラーは「スペクトル漏れ」と呼ばれ、一般に信号のパワースペクトル全体にエネルギーが誤って分布していることとして現れます。

以下のプロットは、A4ノートを演奏するアコースティックギターのパワースペクトルのクローズアップを示しています。スペクトルはFFT(高速フーリエ変換)で計算されましたが、信号はFFTの前にウィンドウ処理されませんでした。

-60 dBの線より上のエネルギーの分布と、約440 Hz、880 Hz、および1320Hzの3つの異なるピークに注目してください。この特定のエネルギー分布には、「スペクトル漏れ」エラーが含まれています。

Power spectrum of guitar playing an A4 note, no window was applied

「スペクトル漏れ」エラーをいくらか軽減するために、たとえばハンウィンドウ関数など、その目的のために特別に設計されたウィンドウ関数で信号を事前に乗算することができます。

以下のプロットは、時間領域でのハンウィンドウ関数を示しています。関数の中央部分が値1に向かってスムーズに傾向があるのに対し、関数のテールがスムーズにゼロになることに注目してください。

Hann window function

次に、ハンウィンドウをギターのオーディオデータに適用し、結果の信号をFFTしてみましょう。

以下のプロットは、同じ信号(A4ノートを演奏するアコースティックギター)のパワースペクトルのクローズアップを示していますが、今回は、信号はFFTの前にハンウィンドウ関数によって事前に乗算されています。

-60 dBの線より上のエネルギーの分布が大幅に変化し、3つの異なるピークの形状と高さがどのように変化したかに注目してください。スペクトルエネルギーのこの特定の分布には、「スペクトル漏れ」エラーが少なくなっています。

Power spectrum of guitar playing an A4 note, Hann window was applied

この分析に使用されたアコースティックギターのA4ノートは、スタジオ条件下で高品質のマイクを使用して44.1 KHzでサンプリングされました。バックグラウンドノイズは基本的にゼロで、他の楽器や音声は含まれず、後処理もありません。

参照:

実際のオーディオ信号データ、ハンウィンドウ関数、プロット、FFT、およびスペクトル分析は、ここで行われました。

高速フーリエ変換、スペクトル分析、ハンウィンドウ関数、オーディオデータ

33
Babson

非長方形のウィンドウには、利点とコストの両方があることに注意してください。時間領域でのウィンドウの結果は、ウィンドウの変換と信号のスペクトルの畳み込みに相当します。フォンハンウィンドウなどの一般的なウィンドウは、非周期的なスペクトルコンテンツからの「漏れ」を減らし、ノイズの少ないスペクトルになります。しかし、その見返りとして、畳み込みは、いくつかの隣接するビンにまたがる周期的なスペクトルピークを正確にまたはそれに近い形で「ぼかし」ます。例えばすべてのスペクトルピークが丸くなり、周波数推定の精度が低下する可能性があります。非周期的なコンテンツ(たとえば、回転同期サンプリングシステムからのデータ)がないことを事前に知っている場合、非長方形のウィンドウは実際にFFTの外観を悪化させる可能性があります。

非長方形のウィンドウも、情報が失われるプロセスです。有限精度の演算を想定すると、ウィンドウの端の近くにあるかなりの量のスペクトル情報が破棄されます。したがって、非長方形のウィンドウは、重複するウィンドウ処理で、および/または対象のスペクトルがウィンドウ幅全体にわたって静止しているか、ウィンドウの中央にあると想定できる場合に最適に使用されます。

7
hotpaw2

ウィンドウ関数を適用していない場合は、実際には長方形のウィンドウ関数を適用しています。異なるウィンドウ関数には異なる特性があり、正確に何が必要かによって異なります。

6
cyco130