私はmatlabソフトウェアを使用しています。私の質問に。 私はSTFTを適用しているオーディオ信号を持っています。私はy(audio signal)
から (46 ms, specifially chosen)
の部分を取り、FFT
を使っています。それから私はオーディオ信号の終わりまで次のセグメントに行きます。定義された周波数帯で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
私が望むもの(または私がやろうとしていること)は、定義された周波数帯で私のビンの値を取得し、その上で算術平均を行うことです。
fft
の長さ、またはfft
とほぼ同じ長さにしたいので、46 msを選択しました。 (It is not exact).Afterwards
、私はそれをプロットしようとしたいが、それは今は重要ではない。どんな助けもありがとうございます。
まず、感謝に答えるために。変数 "n"は何を表しているのかよく分かりません。私は知っている、どのようにfftはちょっと働くが、私はそれに取り組んでみるだろう。残念ながら、matlabプログラミングの知識は限られています –
"n"はあなたのfftの長さです。あなたの場合2048 –