matlab 模拟吉布斯效应

在这里插入图片描述

计算傅里叶级数

在这里插入图片描述
总之,一个周期的矩形脉冲信号可以用下面的傅里叶级数表示
在这里插入图片描述

代码和运行结果

clear all;
clf;

DC = 1; %直流分量
N = 100;%谐波次数
for k=1:N,
    X(k) = sin(k*pi/2)/(k*pi/2);%每个谐波分量对应的傅里叶系数
    disp(X(k));
end

X=[DC X];%第一个元素DC为直流分量的系数,后面的X为前面计算出的各谐波分量的傅里叶系数
Ts=0.001;
t=0:Ts:1-Ts;%周期的区间
L=length(t);
x=2*[ones(1, L/4) zeros(1, L/2) ones(1, L/4)];%矩形脉冲的一个周期的幅值

figure(1);
xN=X(1)*ones(1, length(t));%1个谐波
for k=2:N,
    xN=xN+2*X(k)*cos(2* pi * (k-1).*t);%K个谐波的叠加
    plot(t, xN);%绘制K个谐波的叠加

    hold on;
    plot(t, x, 'r');
    hold off;
    pause(0.1);
end

可以更改谐波次数 N 的值,观察不同的模拟情况
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

N = 1000 时出现下面的情况,看不出吉布斯效应,这是因为程序里面的 Ts = 0.001 设置的太大了
在这里插入图片描述
将设置为 Ts = 0.0001 后,图形变的正常
在这里插入图片描述

  • 8
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值