合工大2021信号与系统实验 matlab部分

实验1,波形的叠加

实验内容:
1、利用正弦波序列构造周期矩形脉冲,观察吉布斯现象;
2、观察理解幅度失真和相位失真
3、计算周期矩形脉冲通过RC低通滤波器后的波形。
以下为matlab代码:

clear all;
t=-0.5:0.001:7;
%以下是第一个实验的前三张图,演示k等于不同值时的合成情况
%图1
rectwave=zeros(size(t));for k=0:100rectwave=rectwave+sin((2*k+1)*t)/(2*k+1);end;
rectwave=0.5+(2/pi)*rectwave;%之前的计算都只算了累加部分,没有算系数,在此处最终取2/Π并加1/2,可简化运算
subplot(3,1,1);
plot(t,rectwave);
title({'HFUT Signal&System2021 Exp-1.1';'k=100'},'FontSize',16);
%图2
rectwave=zeros(size(t));
for k=0:20rectwave=rectwave+sin((2*k+1)*t)/(2*k+1);end;
rectwave=0.5+(2/pi)*rectwave;subplot(3,1,2);
plot(t,rectwave);
title('k=20','FontSize',16);
%图3
rectwave=zeros(size(t));
for k=0:3rectwave=rectwave+sin((2*k+1)*t)/(2*k+1);end;
rectwave=0.5+(2/pi)*rectwave;
subplot(3,1,3);
plot(t,rectwave);
title('k=3','FontSize',16);%开始画第一个实验的4、5张图,演示全部元素减半与只有三次谐波减半时的情况
figure(2);
%图4,全部元素变为原来的二分之一
rectwave=zeros(size(t));
for k=0:500rectwave=rectwave+0.5*sin((2*k+1)*t)/(2*k+1);end;
rectwave=0.5+(2/pi)*rectwave;
subplot(2,1,1);
plot(t,rectwave);
title({'HFUT Signal&System2021 Exp-1.2';'k=500,HalfSized All'},'FontSize',24);
%图5,只有三次谐波减半
rectwave=zeros(size(t));
rectwave=0.5*sin(3*t)/3
for k=1:500rectwave=rectwave+sin((2*k+1)*t)/(2*k+1);end;
rectwave=0.5+(2/pi)*rectwave;
subplot(2,1,2);
plot(t,rectwave);
title('k=500,Only HalfSized in k=1','FontSize',24);%以下是第一个实验的6、7张图,演示了全部相移与只有三次谐波相移的情景
figure(3);
%图6,相移全部
rectwave=zeros(size(t));
for k=0:500rectwave=rectwave+sin((2*k+1)*t+(2*k+1)*pi/3)/(2*k+1);end;
rectwave=0.5+(2/pi)*rectwave;
subplot(2,1,1);
plot(t,rectwave);
title({'HFUT Signal&System2021 Exp-1.3';'k=500,Phase Shift All'},'FontSize',24);
%图7,只相移三次谐波
rectwave=zeros(size(t));
rectwave=sin(3*t+pi)/3
for k=1:500rectwave=rectwave+sin((2*k+1)*t)/(2*k+1);end;
rectwave=0.5+(2/pi)*rectwave;
subplot(2,1,2);
plot(t,rectwave);
title('k=500,Only Phase Shift in k=1','FontSize',24);%以下是第一个实验的最后4张图,演示了波形通过RC滤波器时的变化
%不同的RC值,不同的滤波器
figure(4);
clear all;
t=-0.5:0.001:7;
rc=0.1;
rectRC1=zeros(size(t));
for k=0:500b=2*k+1rectRC1=rectRC1+(sin(t*b-atan(rc*b))/sqrt(1+(rc*b)^2))/b;
end
rectRC1=0.5+(2/pi)*rectRC1;rc=0.3;
rectRC2=zeros(size(t));
for k=0:500b=2*k+1rectRC2=rectRC2+(sin(t*b-atan(rc*b))/sqrt(1+(rc*b)^2))/b;
end


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部