计算音频信号的频率区间

时间:2017-01-26 22:19:13

标签: matlab audio signal-processing dft

我在音频文件上做了一个fft(stft),其中包含语音和音乐。我从信号中取出了 1-200 的范围,我将其保存在一个名为frequency_band1的变量中。我如何计算变量的频率分档,它存储我特定选择的信号,之前应用了fft。我想,在某处读,我需要计算 fs / fftpoints 。就我而言, 44100/4096 。我将它与变量 frequency_band1 *(44100/4096)相乘?这是在matlab上完成的,我需要用stft来完成它。

1 个答案:

答案 0 :(得分:0)

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)处。

enter image description here