MATLAB使用手记(二):FFT示例
代码
%采样参数
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('时间/S');
ylabel(' 幅度/V ');
%对原始数据进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('频率/Hz');
ylabel(' 幅度/V ');
%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('频率/Hz');
ylabel(' 幅度/V ');
%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('频率/Hz');
ylabel(' 幅度/V ');
结果
分类:
信号与系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!