0

使用此代码,我只能得到从 0 到正无穷大的 fft 频谱的一半。我试图沿着 y 轴镜像这个,以获得与这个对称的另一半,从 0 到负无穷大。

    Fs = 1000;   %sampling rate
    Ts = 1/Fs; %sampling time interval
    t = -10:Ts:10-Ts; %sampling period
    n = length(t); %number of samples
    y = heaviside(t)-heaviside(t-4); %the step curve

    matlabFFT = figure;  %create a new figure
    YfreqDomain = fft(y); %take the fft of our step funcion, y(t)
    y=abs(YfreqDomain);
    plot(y)
    xlabel('Sample Number')
    ylabel('Amplitude')
    title('Using the Matlab fft command')
    grid
    axis([-100,100,0,5000])
4

1 回答 1

2

这是正常的行为。FFT 仅返回正频率(0 到 Fs 之间)的频谱。你可以用它fftshift来纠正。然后,零频率将位于 x 轴的中心。所以你应该使用

plot(fftshift(y))
axis([-100+1e4,100+1e4,0,5000])

在此处输入图像描述

于 2013-10-31T22:46:43.377 回答