我的频谱图有问题,我有一个音频文件,我在其上运行fft
函数并尝试绘制其频谱:
fileName = 'stuff.wav' ;
[y, Fs] = audioread(fileName);
Y = fft(y(:,1));
Y = Y / length(y);
plot(fftshift(abs(Y));
以下是我得到的内容:
幅度是正确的,但频率不是。
所以我写了一个小脚本来测试这个:
fs =8000;
t = 0:1/fs:10;
x = 3*sin(2*pi*5*t);
U = abs(fft(x));
stem(t,fftshift(U));
axis([-20 20 -5 5]);
结果是:
为什么峰值在正确的位置意味着5但我在-5 负频率中怀疑第二个为什么我能看到它以及如何正确地缩放X轴? 谢谢你的帮助 !
答案 0 :(得分:3)
您正在绘制FFT结果(U
)vs U
:
%// Same as in your code:
fs = 8000;
t = 0:1/fs:10;
x = 3*sin(2*pi*5*t);
U = abs(fft(x));
%// Do the following changes to your code:
f = -fs/2:fs/(numel(t)-1):fs/2; %// frequency axis
stem(f, fftshift(U)); %// plot U versus frequency
axis([-10 10 0 15e4]); %// zoom in to see -5 Hz and 5 Hz values