Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 如何获得定义频带内所有fft单元的数量?_Matlab_Audio_Fft_Bins - Fatal编程技术网

Matlab 如何获得定义频带内所有fft单元的数量?

Matlab 如何获得定义频带内所有fft单元的数量?,matlab,audio,fft,bins,Matlab,Audio,Fft,Bins,我使用matlab软件。回答我的问题。 我有一个音频信号,我正在对其应用STFT。我做一段 (46毫秒,具体选择)从我的信号y(音频信号)中取出FFT。然后我转到下一段,直到我的音频信号结束 我的WAV文件长10.8526秒。如果我有一个样本频率 44100Hz,这意味着我的y是10.8526*fs=478599.66 在工作区中显示为478 6000 x2双精度 我的fft的长度是2048。我的信号在较低的频带[0 300]、mfb[301 5000]和hfb[5001 22050(fs/2)

我使用matlab软件。回答我的问题。 我有一个音频信号,我正在对其应用STFT。我做一段
(46毫秒,具体选择)
从我的信号
y(音频信号)
中取出
FFT
。然后我转到下一段,直到我的音频信号结束

我的WAV文件长10.8526秒。如果我有一个样本频率 44100Hz,这意味着我的
y
10.8526*fs=478599.66
在工作区中显示为
478 6000 x2双精度

我的
fft
的长度是
2048
。我的信号在较低的频带
[0 300]
mfb[301 5000]
hfb[5001 22050(fs/2)]
下进行区分

这些波段只是一个示例,而不是实际的
matlab
code
Basicall
我想要(或我正在尝试做的)的是获取定义频带内的垃圾箱值,并对其进行算术平均


我选择46毫秒是因为,我希望它和
fft
长度一样长,或者几乎和
fft
一样长<代码>(不精确)。之后,我想尝试绘制它,但现在这并不重要。感谢您的帮助

大小为n的向量中的时域信号的傅里叶变换将返回相同信号但在频域中的另一个大小为n的向量

频域将从0(直流偏移)到采样频率。但你只能使用其中的一半。下半部分将具有相同的值,但镜像

您可以通过以下方法获得每个有用箱子的中心频率:

f = Fs*(0:(n/2))/n;

首先,谢谢你的回答。我不太确定变量“n”代表什么?我知道fft是如何工作的,但我会尝试去做。不幸的是,我对matlab编程的了解有限,“n”是fft的长度。就你而言,2048年