2

私はmatlabソフトウェアを使用しています。私の質問に。STFT を適用しているオーディオ信号があります。(46 ms, specifially chosen)信号からセグメントを 取り出し、その上でy(audio signal)a を使用FFTします。次に、音声信号が終わるまで、次のセグメントに進みます。

私の WAV ファイルの長さは 10.8526 秒です。サンプル周波数が 44100Hz の場合、これはyワーク10.8526*fs = 478599.66スペースに として表示されることを意味します478 6000 x2 double

私の長さはfftです2048。私の信号は、より低い周波数帯域の下で区別されます[0 300]mfb [301 5000]およびhfb [5001 22050(fs/2)].

バンドは単なる例であり、実際のmatlabコードではありません。Basicall私が望むこと (または私がやろうとしていること) は、定義された周波数帯域でビンの値を取得し、それに対して算術平均を行うことです。

私が 46 ミリ秒を選択したのは、fft長さと同じか、ほぼ同じ長さが必要だからfftです。(It is not exact).Afterwards、プロットしてみたいと思いますが、それは今のところ重要ではありません。どんな助けでも大歓迎です。

4

1 に答える 1

1

サイズ n のベクトルで時間領域の信号をフーリエ変換すると、同じ信号のサイズ n の別のベクトルが周波数領域で返されます。

周波数ドメインは、0 (DC オフセット) からサンプリング周波数までになります。しかし、その半分しか使えません。後半は同じ値になりますが、ミラーリングされます。

次の方法で、有用な各ビンの中心周波数を取得できます。

f = Fs*(0:(n/2))/n;
于 2016-12-20T11:24:59.297 に答える