对频率为15Hz的正弦波信号进行FFT分析,并且直接画图,matlab代码如下:
fs = 100; % sampling frequency
t = 0:(1/fs):(10-1/fs); % time vector
S = cos(2*pi*15*t);
n = length(S);
X = fft(S);
f = (0:n-1)*(fs/n); %frequency range
power = abs(X).^2/n; %power
plot(f,power)
得到结果:低频在两边,高频在中间。
平移零频分量,然后绘制以零为中心的功率,代码如下:
Y = fftshift(X);
fshift = (-n/2:n/2-1)*(fs/n); % zero-centered frequency range
powershift = abs(Y).^2/n; % zero-centered power
plot(fshift,powershift)
得到结果:把低频移到中间,方便分析处理。
进一步分析,一个正常的、频率为15Hz的正弦波物理信号,它要经过FFT,以及FFTshift,我们才进一步分析。故发射端,在做ifft前,也应该做ifftshift,才能构造这样一个正常的物理信号。个人便于记忆的理解哈。