【发布时间】:2013-11-11 08:11:04
【问题描述】:
我正在尝试以正确的频率轴显示声音样本的频谱,以赫兹为单位,并且 对数幅度 y 轴。我以为我的频率显示是正确的,但它生成的图表看起来很奇怪,而且我完全没有发现任何关于在轴上显示对数幅度的信息。
我正在使用的代码(大量借鉴 mathsworks fft 示例)是:
y=x(100:200);
Fs = 10000; % Sampling frequency
numsamples = 20000; % Number of samples in the signal
NFFT = 2^nextpow2(numsamples); % Next power of 2 from length of y
Y = fft(y,NFFT)/numsamples;
f = Fs/2*linspace(0,1,NFFT/2+1);
plot(f,2*abs(Y(1:NFFT/2+1)))
这是它生成的图表之一:
我不知道这是否正确,但它看起来不像我见过的例子......
我知道这可能是一个非常愚蠢的问题,我遗漏了一些明显的东西,或者我实际上做对了,但没有足够的理解来实现它,但这些东西真的让我很头疼而且我没有发现文档特别有启发性。
【问题讨论】:
-
我建议你看看 fftshift mathworks.com/help/matlab/ref/fftshift.html 和 semilogy mathworks.com/help/matlab/ref/semilogy.html