4

信号のスペクトル分析 (Amp/Freq) をプロットするプログラムがあります。これは、DFT を極座標に変換したものです。ただし、これは、たとえば winamp (左上隅にある) や、事実上他のオーディオ ソフトウェアがプロットするようなグラフではありません。この種のグラフが何と呼ばれているのか (まったく別の名前がある場合) よくわからないので、何を探すべきかわかりません。

私は、周波数軸が底 2 の指数関数であることについてかなり肯定的ですが、振幅軸は私を困惑させます。

ポインタはありますか?

4

4 に答える 4

3

実際、興味深い質問です。私はあなたが言っていることを知っています。周波数軸は確かに対数です。しかし、振幅はどうですか?別のポスターへの回答では、dB にはゼロの概念がないため、振幅を単純に dB 単位にすることはできません。これにより、量子化誤差、SNR、およびダイナミック レンジの概念が導入されます。

受信したデジタル化された (つまり、離散時間と離散振幅) 時間領域信号 x[n] が s[n] + e[n] に等しいと仮定します。ここで、s[n] は送信された離散時間信号です (すなわち、連続振幅) であり、e[n] は量子化誤差です。x[n] が b ビットで表され、簡単にするために [0,1) の値を取るとします。その場合、e[n] の最大ピーク ツー ピーク振幅は 1 つの量子化レベル、つまり 2^{-b} です。

ダイナミック レンジは、デシベル単位で 20 log10 (最大ピーク ツー ピーク |s[n]|)/(最大ピーク ツー ピーク |e[n]|) = 20 log10 1/(2 ^{-b}) = 20b log10 2 = 6.02b dB。16 ビット オーディオの場合、ダイナミック レンジは 96 dB です。8 ビット オーディオの場合、ダイナミック レンジは 48 dB です。

では、Winamp はどのように振幅をプロットするのでしょうか? 私の推測:

  1. 最小振幅は -6.02b dB と想定され、最大振幅は 0 dB です。視覚的には、Winamp はこれらのしきい値を考慮してウィンドウを描画します。

  2. log(1+X) などの別の非線形マップが使用されます。この関数は常に非負であり、X が大きい場合、log(X) に近似します。

他に知っている専門家はいますか?どう考えているか教えてください。これがどのように実装されているのか、私も興味があります。

于 2010-02-09T17:17:46.697 に答える
2

パワー スペクトルを生成するには、次の手順を実行する必要があります。

  • ウィンドウ関数を時間領域データに適用します (例: ハニング ウィンドウ)
  • FFT を計算する
  • 10 * log10(re * re + im * im)FFT の N/2 ポイント (通常は)の FFT ビンの大きさの対数を計算します。

これにより、線形周波数に対する対数振幅 (つまり dB) が得られます。

対数周波数スケールも必要な場合は、適切な範囲のビンからマグニチュードを累積する必要があります (また、最初にかなり大きな FFT が必要になります)。

于 2010-01-19T08:56:00.210 に答える
0

必要なのはパワースペクトルグラフです。信号の現在のウィンドウの DFT を計算する必要があります。次に、各値を二乗します。

于 2010-03-13T19:41:02.853 に答える
0

ええと、あなたが何を意味するのか100%確信が持てませんが、確かにFFTからのデータをバケツに入れているだけですか?

(44Khzファイルの場合)22Khz、11Khz、5.5Khzなどの周波数ポイントを持つようなデータを取得したい場合は、ウェーブレット分解を使用できます...

このスレッドはあなたを少し助けるかもしれません...

FFT をスペクトログラムに変換する

私が推測するスペクトログラムと同じ種類の情報...

于 2010-01-04T23:21:24.733 に答える