首页 > 解决方案 > MATLAB FFT 绘图

问题描述

如何绘制 FFT 图的 x 轴?我的幅度下降了,但是 x 轴让我很难过。另外,我的幅度也反映了。我将如何防止这种情况发生?

标签: matlabsignal-processingfftmatlab-figure

解决方案


N具有采样频率的离散时间信号的点 DFTfs给出频率0, 1/fs, ..., (N-1)/fs。要将零频率放在图的中心,您可以将fftshift其应用于 DFT 结果,然后将频率定义( -N/2:N/2-1 )/N*fsN偶数或奇数(这利用了 DFT 的周期性)( -(N-1)/2:(N-1)/2 )/N*fsN

例子

由两个不同频率和幅度的正弦波形成的信号。

N = 400;
fs = 1000; % Hz
fc1 = 120; % Hz
fc2 = 260; % Hz
y = sin(2*pi*fc1*(0:N-1)/fs) + .5*sin(2*pi*fc2*(0:N-1)/fs); % example signal
Y = fft(y);
if ~mod(N,2) % even
    f_axis = ( -N/2:N/2-1 )/N*fs;
else % odd
    f_axis = ( -(N-1)/2:(N-1)/2 )/N*fs;
end
plot(f_axis, fftshift(abs(Y)));
grid    

在此处输入图像描述


推荐阅读