代码
%采样参数
T=10; %采样时间
N=100; %采样次数
F_sample=N/T; %采样频率
%被采样信号
pi=3.14;
f = 1; % 频率
t = linspace(0,T,N); % 根据采样点
x_raw = cos(2*pi*f*t)+cos(3*2*pi*f*t); %假定信号是标准余弦函数
%绘制原始数据波形
subplot(2,2,1);
plot(t,x_raw);
title('(a)原始数据的时域波形图')
xlabel('时间');
ylabel(' 幅度 ');
%对原始数据进FFT
Xn = fft(x_raw);
F_f = (0:N-1)*F_sample/N;
%绘制直接FFT后的频谱图
subplot(2,2,2);
plot(F_f,abs(Xn));
title('(b)fft后直接输出的频谱图');
xlabel('频率');
ylabel(' 幅度 ');
%FFT后的数据进行平移
Xn_s = fftshift(Xn);
fshift = (-N/2:N/2-1)*(F_sample/N);
%绘制频移后正确的频谱图
subplot(2,2,3);
plot(fshift,abs(Xn_s));
title('(c)shift过的频谱图');
xlabel('f');
ylabel(' 幅度 ');
%FFT的的真实的频谱幅值
Xn_r=2*abs(Xn(1:N/2+1))/N;
realf=(0:N/2)*(F_sample/N);
%绘制原始信号的真实的频谱
subplot(2,2,4);
plot(realf,Xn_r);
title('(d)真实的频谱图');
xlabel('f');
ylabel(' 幅度 ');