• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

signal processing matlab-2(fft级数)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文主要来讨论下信号频率分析的傅里叶级数,傅里叶是是每个做信号处理必须了解的一个处理技巧,他能带我们从不同的角度来看待信号的特性,可以说是十分的很好了。。

下面我就给出傅里叶级数的主要表达式:

关于傅里叶级数的详细推导和物理意义可参考如下的链接:

https://www.bilibili.com/video/BV1wb411K7Kp/?spm_id_from=333.788.videocard.0

https://zhuanlan.zhihu.com/p/19763358

我们在matlab中进行分析求解,按照傅里叶的表达式进行带入:

按照视频里面给出的弹簧阻尼系统,我们求解的是一个矩形波,最大值为7,最小值为3,周期为20,

matlab代码见下:

function F=fft_hust
syms x;
T=20;
n=10; %谐波的阶数
t=0:0.01:80;
%如果创建-1,+1的方波直接调用square即可
%50是50%占空比
f=max(7*square(pi*0.1*t,50),3);%创建方波最大值是1,最小值是0
plot(t,f);
grid on;
hold on;
% axis([0 4*pi -0.5 1.5]);
A0=5;%可根据函数直接算出
F=0;
Fx=0;
for i=1:n
As=int(14*cos(2*pi*i*x/T)/T,x,0,T/2)+int(6*cos(2*pi*i*x/T)/T,x,T/2,T);%傅里叶系数an
Bs=int(14*sin(2*pi*i*x/T)/T,x,0,T/2)+int(6*sin(2*pi*i*x/T)/T,x,T/2,T);%傅里叶系数bn
F=F+As*cos(2*pi*i*t/T)+Bs*sin(2*pi*i*t/T);%求傅里叶级数展开
Fx=Fx+As*cos(2*pi*i*x/T)+Bs*sin(2*pi*i*x/T);
end
F=F+A0;
Fx=Fx+A0;
Fx
%figure(2)
plot(t,F)

代码运行起来可能会比较蛮,可以改下参数来调整。。

另外:说明下square函数,,具体的说法可以这样来理解:

 

周期性矩形脉冲信号
MATLAB语言调用形式:  y=square(t,duty)
产生一个周期为2 π,幅值为±1的周期性方波, duty表示占空比(duty cycle)占空比是指脉冲宽度τ与周期T的比值(τ/T)

t=-0.0625:0.0001:0.0625;
y=square(2*pi*30*t,75);
plot(t,y),grid on
axis([-0.1,0.1,-1.5,1.5])


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
matlab将多张图片合成视频发布时间:2022-07-18
下一篇:
(转)matlab与C混合编程之中级篇发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap