Matlab 计算音频信号的频率单元

Matlab 计算音频信号的频率单元,matlab,audio,signal-processing,dft,Matlab,Audio,Signal Processing,Dft,我正在对包含语音和音乐的音频文件进行fft(stft)。我从信号中取出一个1-200的范围,并将其保存在一个名为frequency_band1的变量中。如何从变量计算频率区间,该变量存储我特定选择的信号,fft之前应用于该信号。?我想,从某个地方读到,我需要计算fs/fftpoints。在我的例子中,44100/4096。我是否将其与我的变量频率_band1*(44100/4096)相乘?这是在matlab上完成的,我需要用stft来完成 DFT(FFT)的输出值在频率(0:n-1)/n*fs处

我正在对包含语音和音乐的音频文件进行fft(stft)。我从信号中取出一个1-200的范围,并将其保存在一个名为frequency_band1的变量中。如何从变量计算频率区间,该变量存储我特定选择的信号,fft之前应用于该信号。?我想,从某个地方读到,我需要计算fs/fftpoints。在我的例子中,44100/4096。我是否将其与我的变量频率_band1*(44100/4096)相乘?这是在matlab上完成的,我需要用stft来完成

DFT(FFT)的输出值在频率
(0:n-1)/n*fs
处,其中
n
是DFT大小,
fs
是采样频率

这里有一个例子。这将在已知频率下创建正弦波,执行整个信号的DFT(因此
n
是信号大小),并使用上述频率值绘制频谱

fs = 44100; % sample frequency
t = 0:1/fs:.1; % 0.1-second time axis
x = sin(2*pi*300*t); % sinusoid of frequency 220 Hz
X = fft(x); % DFT of x
f = (0:numel(X)-1)/numel(X)*fs; % frequency axis of DFT
plot(f, abs(X)) % plot the spectrum in absolute value
grid % add grid
axis([0 1000 -500 2500])
您可以检查该信号的谱线是否在其应处,即
300
(Hz)


DFT(FFT)的输出值在频率
[0:n-1]/n*fs
处,其中
n
为DFT大小,
fs
为样本frequency@LusiMendo,加上“n”,你是指fft点吗?我不太确定,因为我是matlab的新手。这和我的问题有什么关系?如果你能启发我,我会非常感激。我已经包括了一个带有example@Luis好的,谢谢你,现在我知道了。最后一个问题,对不起,顺便说一句,但是“numel”是否代表正弦信号的元素数,以便您可以创建频率向量?是的,
numel
是向量的大小
x
。如果
fft
的输出大小与输入大小不同(即,如果使用
fft
的第二个参数),则应实际使用
fft
的输出大小。我已经编辑过了