3

私は DSP を学んでいますが、これらの数値を計算してプロットするためのコードを書くことができませんでした (周波数領域でのハニングと三角窓の大きさだけです)。

ウィンドウ周波数プロット

オンライン FFT に関連するものを読んだことがあります。たとえば、1024 時間ステップでオンライン FFT を計算します。1024 タイム ステップとは何かがわかりません。タイム ステップ値が FFT 解析に与える影響は何ですか?

4

3 に答える 3

4

次のコードがお役に立てば幸いです。

L = 10;
win1 = hanning(L);
win2 = triang(L);
nfft = 64;
S1 = fft(win1,nfft);
S2 = fft(win2,nfft);
f = 1:nfft/2+1;
plot(f,10*log10(abs(S1(1:nfft/2+1))),'.-',f,10*log10(abs(S2(1:nfft/2+1))),'o-');

注釈:

win1win2を時系列信号として 入れることができます。またはLの長さです。 は FFT の長さです。の場合、関数はの残りの部分に追加されます。の場合、関数は の長さを にインターセプトします。win1win2nfftL < nfftfft()0nfftL > nfftfft()Lnfft

于 2012-08-26T02:24:29.540 に答える
1

タイム ステップまたはサンプルの周波数 (Fs) を、FFT に供給されるタイム ステップの数 (FFT 長) で割ると、FFT 結果ビンの周波数ステップ (Fs/2 まで) が得られます。

于 2012-08-26T03:28:01.230 に答える
1

あなたの質問の 1024 の「時間ステップ」に関しては、それは単に時間領域信号から取得されたサンプルの数です。

1024 個の時間領域サンプルが FFT にどのように影響するかについては、サンプルを取得するために使用されたサンプリング周波数が関係しています。

サンプリング周波数は通常、ナイキスト シャノンのサンプリング定理に準拠するように選択されます。これは基本的に、FFT を介して周波数 "F" を解決したい場合、時間領域信号を "2F" よりも高い周波数でサンプリングする必要があることを示しています。

Hann (Hanning) および Triangular ウィンドウ コードについては、次のとおりです。

Hann window:
for( i=0; i<bufLen; i++ )
   window[i] = 0.5 * ( 1 - cos( 2 * PI * i / (bufLen-1) ) )

Triangular window:
for( i=0; i<bufLen; i++ )
   window[i] = 2/bufLen * ( (bufLen)/2 - abs( i-((bufLen-1)/2) ) )

...

以下のプロットは、三角窓の周波数応答 (dB 振幅) です。

三角窓関数 dB マグニチュード

以下のプロットは三角窓の周波数応答ですが、現在は線形の大きさになっています。

三角窓関数の線形の大きさ

ハン関数、三角形関数、およびその他の多くのウィンドウ関数をここでプロットできます: ウィンドウ関数のプロット

于 2013-02-15T22:35:32.783 に答える