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 ');



结果

posted on   不回本不改名  阅读(375)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示