MatlabのSTFT実装spectrogram()の最大周波数解像度は何ですか?


10

Matlabのspectrogram()関数は、信号のSTFTを計算します。それはそのNFFT引数を次のように説明します:

S = SPECTROGRAM(X,WINDOW,NOVERLAP,NFFT)離散フーリエ変換の計算に使用される周波数点の数を指定します。NFFTが指定されていない場合、デフォルトNFFTが使用されます。

NFFT周波数分解能と計算数の間のトレードオフであるという点で私は正しいですか?私のオフライン作業では、サイクルを節約する必要はありません。NFFTたとえばスペクトル漏れ、または私が知っておくべきその他の問題によって課される、の最大制限はありますか、またはその引数をできるだけ高く設定できますか?

回答:


5

FFTの長さは、周波数と時間分解能の間のトレードオフです。スペクトログラムは、対象となる信号の重複するFFTを計算することによって生成されることがよくあります。FFTを長くすると、各出力ビンの有効帯域幅が狭くなるため、周波数軸に沿った解像度が向上します。取得できる周波数分解能に対する唯一の制限要因は、信号から得られる総観測時間です。

ただし、同時に、時間内にローカライズされた機能を解決する能力が低下します。これを直感的に考える方法は、FFTを複雑なダウンコンバージョンと見なし、その後に統合およびダンプ操作を行うことです。

バツ[k]=Σ=0N1バツ[]ej2πkN

バツ[]2πkNNバツ[]N

また、FFTの長さを長くするには、より多くの計算が必要であり、これはリアルタイムアプリケーションに関連している可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.