对方波信号进行傅里叶级数展开,利用matlab绘制展开后的波形

设方波信号如下所示:

对其进行傅里叶级数展开,计算后可得:

   

     

 

编写的matlab代码如下:

close all;

clear all;

N = 1000;    %取展开式的项数为1000项

T = 1;         %方波周期为1

fs = 1/T;

N_sample = 128; %为了画出波形,设置每个周期的采样点个数

dt = T/N_sample;

t=0:dt:10*T-dt;

ft = zeros(1,length(t));

for n=1:N

    an = (2*sin(pi*n) - sin(2*pi*n))/(pi*n);

    bn = (1-2*cos(n*pi)+cos(2*pi*n))/(pi*n);

    ft = ft + an*cos(n*2*pi*fs*t)+bn*(sin(n*2*pi*fs*t));

end

plot(t,ft);

展开式的项数设置为1000项时,波形如下:

 

展开式的项数设置为100项时,波形如下:

两幅图对比可以证明展开式项数越多,波形越接近方波。 

 

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值