我正在尝试使用正确的频率轴(赫兹和a)显示声音样本的频谱 对数幅度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)))
这是它制作的图表之一:
我不知道这是否正确,但它看起来不像我见过的例子....
我知道这可能是一个非常愚蠢的问题而且我错过了一些明显的东西,或者说我实际上已经做对了,并且理解得不够明白,但是这些东西真的让我感觉不舒服我并没有发现文件特别有启发性。
答案 0 :(得分:1)
我认为x轴是正确的。
要获得对数y轴,请将plot
替换为semilogy
:
semilogy(f,2*abs(Y(1:NFFT/2+1)))
或等效地使用plot
,然后使用
set(gca,'YScale','log')