用MATLAB做周期三角波的傅里叶级数,实验三 周期信号的傅里叶级数分析及MATLAB实现...

实验三周期信号的傅里叶级数分析及MATLAB实现

一、实验目的:

1.利用MATLAB实现周期信号的分解与合成,并图示仿真结果;

2.用MATLAB实现周期信号的频谱,画图观察和分析周期信号的频谱;

3.通过MATLAB对周期信号频谱的仿真,进一步加深对周期信号频谱理论知识的理解。

二、实验内容

9.1(a):程序:

display('Please input the value of m(傅里叶级数展开项数)');

m=input('m=');

t=-3*pi:0.01:3*pi;

n=round(length(t)/4);

f=cos(t).*(heaviside(t+2.5*pi)-heaviside(t+1.5*pi)+heaviside(t+0.5*pi)-heaviside(t-0.5 *pi)+heaviside(t-1.5*pi)-heaviside(t-2.5*pi));

y=zeros(m+1,max(size(t)));

y(m+1,:)=f';

figure(1);

plot(t/pi,y(m+1,:));

grid;

axis([-3 3 -1 1.5]);

title('半波余弦');

xlabel('单位:pi','Fontsize',8);

x=zeros(size(t));

kk='1';

syms tx n

T=2*pi;

fx=sym('cos(tx)');

Nn=30;

An=zeros(m+1,1);

Bn=zeros(m+1,1);

a0=2*int(fx,tx,-T/4,T/4)/T

an=2*int(fx*cos(2*pi*(n+eps/2)*tx/T),tx,-T/4,T/4)/T

bn=2*int(fx*sin(2*pi*(n+eps/2)*tx/T),tx,-T/4,T/4)/T

An(1)=double(vpa(a0,Nn));

An(2)=0.5;

for k=2:m

An(k+1)=double(vpa(subs(an,n,k),Nn));

Bn(k+1)=double(vpa(subs(bn,n,k),Nn));

  • 1
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值