用MATLAB对信号做频谱分析

这篇博客介绍了如何使用MATLAB进行信号的频谱分析。通过学习傅里叶变换的基础,博主展示了如何分析不同类型的信号,包括正弦波、矩形波和白噪声等,利用FFT函数得到了相应的频域表示。
摘要由CSDN通过智能技术生成

1.首先学习下傅里叶变换的东西。学高数的时候老师只是将傅里叶变换简单的说了下,并没有深入的讲解。而现在看来,傅里叶变换似乎是信号处理的方面的重点只是呢,现在就先学习学习傅里叶变换吧。

   

上面这幅图在知乎一个很著名的关于傅里叶变换的文章中的核心插图,我觉得这幅图很直观的就说明了傅里叶变换的实质。时域上的东西直观的反应到了频域上了,很完美的结合到了一起,233333.  无数正弦波叠加,震荡的叠加的最后结果竟然是方波,同理,任何周期性函数竟然都能拆分为傅里叶级数的形式,这样的简介与优雅,真令人折服。

2.MATLAB对信号做频谱分析

代码:(1)对 f1 = Sa(2t)的频谱分析   

 1 clear;clc;
 2 hold on;                            
 3 R=0.05;
 4 t=-1.2:R:1.2;
 5 t1 = 2*t;
 6 f1=sinc(t1);                       %Sa函数                        
 7 subplot(1,2,1),plot(t,f1)
 8 xlabel('t'),ylabel('f1')
 9 axis([-2,2,-0.3,1.2]);             %写出Sa函数上下限
10 
11 N=1000;
12 k=-N:N;
13 W1=40;
14 W=k*W1/N;
15 F=f1*exp(-j*t'*W)*R;               %f1的傅里叶变换
16 F=real(F);                         %取F的实部
17 subplot(1,2,2),plot(W,F)
18 xlabel('W'),ylabel('F(jw)')  
View Code

结果如下图:

     

(2)对 f2 = u(t+2) - u(t-2)的频谱分析

 1 R=0.05;
 2 t=-3:R:3;
 3 f2=(t>=-2)-(t>=2);
 4 subplot(1,2,1),plot(t,f2)
 5 grid on;
 6 xlabel('t'),ylabel('f2')
 7 axis([-3,3,-0.5,1.5]);
 8 
 9 N=1000;k=-N:N;
10 W1=40;
11 W=k*W1/N;
12 F=f2*exp(-j*t'*W)*R;
13 F=real(F);
14 subplot(1,2,2),plot(W,F)
15 grid on;
16 xlabel('W'),ylabel('F(jw)')  
View Code

结果如下图:

     

(3)对f3 = t[u(t+1) - u(t-1) ]的频谱分析

 1 R=0.05
  • 13
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值