使用这个代码我只得到fft光谱从0到正无穷大的一半。我试图沿着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])
答案 0 :(得分:2)
这是正常行为。 FFT仅以正频率返回频谱(在0和Fs之间)。您可以使用fftshift
进行更正。然后,零频率将位于x轴的中心。所以你应该使用
plot(fftshift(y))
axis([-100+1e4,100+1e4,0,5000])