0


(46)MATLAB仿真从正弦波转换为方波

文章目录


前言

本文使用MATLAB仿真的方法,给出从正弦波转换为方波的过程,说明方波的傅里叶级数展开式是如何由奇次谐波的和构成的。另外,说明了在此过程中的吉布斯效应。


一、MATLAB代码

以下给出的MATLAB代码,说明方波的傅里叶级数展开式是如何由奇次谐波的和构成的。

% 基波
f =1;% 基频,单位Hz
fs =300;% 采样率,单位samples/s
Ts =1/fs;% 采样间隔
T =1;% 时长
t =0:Ts:T;% 时间向量
y =sin(2*pi*f*t);% 基波

figure()subplot(221)plot(t,y);
grid on
title('基波(f=1Hz)')% 基波加3次谐波的和信号
f3 =3*f;
y =sin(2*pi*f*t)+sin(2*pi*f3*t)/3;%figure()subplot(222)plot(t,y);
grid on
title('基波+3次谐波')% 基波加第3、5、7、9次谐波的和信号
f5 =5*f;
f7 =7*f;
f9 =9*f;
y =sin(2*pi*f*t)+sin(2*pi*f3*t)/3+...sin(2*pi*f5*t)/5+sin(2*pi*f7*t)/7+...sin(2*pi*f9*t)/9;%figure()subplot(223)plot(t,y);
grid on
title('基波+3+5+7+9次谐波')% 在基波上叠加更多高次谐波分量,一直到第19次谐波
% 此时,和信号更接近方波。实际上即使增加更多的高次谐波分量,和信号也不会变成理想的方波,这就是吉布斯效应。
y =zeros(10,length(t));
x =zeros(size(t));for k =1:2:19
    fk = k*f;
    x = x +sin(2*pi*fk*t)/(2*pi*k);y((k+1)/2,:)= x;
end

%figure()subplot(224)plot(t,y);
grid on
title('方波的构建:吉布斯效应')% 绘制三维网格图,展示正弦波到方波的渐变过程。
figure()mesh(y);title('方波的构建')

二、仿真结果画图

基波加奇次谐波逼近方波的时域波形图:

在这里插入图片描述

三维网格图:

在这里插入图片描述

三、吉布斯效应

在基波上叠加更多高次谐波分量时,和信号将更接近方波。实际上,即使增加更多的高次谐波分量,和信号也不会变成理想的方波,这就是吉布斯效应。



本文转载自: https://blog.csdn.net/weixin_45333185/article/details/143136084
版权归原作者 通信仿真实验室 所有, 如有侵权,请联系我们删除。

“(46)MATLAB仿真从正弦波转换为方波”的评论:

还没有评论