Matlab 如何获得定义频带内所有fft单元的数量?
我使用matlab软件。回答我的问题。 我有一个音频信号,我正在对其应用STFT。我做一段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)
(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
codeBasicall
我想要(或我正在尝试做的)的是获取定义频带内的垃圾箱值,并对其进行算术平均
我选择46毫秒是因为,我希望它和fft
长度一样长,或者几乎和fft
一样长<代码>(不精确)。之后,我想尝试绘制它,但现在这并不重要。感谢您的帮助 大小为n的向量中的时域信号的傅里叶变换将返回相同信号但在频域中的另一个大小为n的向量
频域将从0(直流偏移)到采样频率。但你只能使用其中的一半。下半部分将具有相同的值,但镜像
您可以通过以下方法获得每个有用箱子的中心频率:
f = Fs*(0:(n/2))/n;
首先,谢谢你的回答。我不太确定变量“n”代表什么?我知道fft是如何工作的,但我会尝试去做。不幸的是,我对matlab编程的了解有限,“n”是fft的长度。就你而言,2048年