绘制对数幅度和频率

时间:2013-11-10 22:52:29

标签: matlab plot fft amplitude

我正在尝试使用正确的频率轴(赫兹和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))) 

这是它制作的图表之一: speech graph

我不知道这是否正确,但它看起来不像我见过的例子....

我知道这可能是一个非常愚蠢的问题而且我错过了一些明显的东西,或者说我实际上已经做对了,并且理解得不够明白,但是这些东西真的让我感觉不舒服我并没有发现文件特别有启发性。

1 个答案:

答案 0 :(得分:1)

我认为x轴是正确的。

要获得对数y轴,请将plot替换为semilogy

semilogy(f,2*abs(Y(1:NFFT/2+1)))

或等效地使用plot,然后使用

set(gca,'YScale','log')