【问题标题】:Plotting the log amplitude and frequency绘制对数幅度和频率
【发布时间】: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))) 

这是它生成的图表之一:

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

我知道这可能是一个非常愚蠢的问题,我遗漏了一些明显的东西,或者我实际上做对了,但没有足够的理解来实现它,但这些东西真的让我很头疼而且我没有发现文档特别有启发性。

【问题讨论】:

标签: matlab plot fft amplitude


【解决方案1】:

我认为 x 轴是正确的。

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

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

或等效地使用plot,因为它紧随其后

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2011-04-08
    相关资源
    最近更新 更多