22

オーディオ信号のパワー スペクトルを取得するための次のガイドラインを何度か見つけました。

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

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

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

4

4 に答える 4

33

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

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

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

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

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

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

A4 ノートを演奏するギターのパワー スペクトル、ウィンドウは適用されていません

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

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

ハン ウィンドウ関数

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

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

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

A4 ノートを演奏するギターのパワー スペクトル、ハン ウィンドウが適用されました

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

参考文献:

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

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

于 2013-03-01T08:37:32.993 に答える
14

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

于 2011-09-07T19:54:27.253 に答える
7

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

長方形以外のウィンドウも、情報の損失が多いプロセスです。計算精度が有限であると仮定すると、ウィンドウの端に近いかなりの量のスペクトル情報が破棄されます。そのため、長方形以外のウィンドウは、オーバーラップ ウィンドウ処理で使用するのが最適です。また、対象のスペクトルがウィンドウ幅全体にわたって静止しているか、ウィンドウの中心にあると想定できる場合に最適です。

于 2011-09-08T17:22:22.673 に答える
6

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

于 2011-09-07T17:05:13.280 に答える