您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > matlab软件仿真实验(信号与系统) (1)
1《信号与系统实验报告》学院:信息科学与工程学院专业:物联网工程姓名:学号:目录实验一、MATLAB基本应用实验二信号的时域表示实验三、连续信号卷积实验四、典型周期信号的频谱表示实验五、傅立叶变换性质研究实验六、抽样定理与信号恢复2实验一MATLAB基本应用一、实验目的:学习MATLAB的基本用法,了解MATLAB的目录结构和基本功能以及MATLAB在信号与系统中的应用。二、实验内容:例一已知x的取值范围,画出y=sin(x)的图型。x=0:0.05:4*pi;y=sin(x);plot(y)例二计算y=sin(/5)+4cos(/4)例三已知z取值范围,x=sin(z);y=cos(z);画三维图形。z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)xlabel('x')ylabel('y')zlabel('z')3例四已知x的取值范围,用subplot函数绘图。参考程序:x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(2,2,1),plot(x,y1),title('sin(x)')subplot(2,2,2),plot(x,y2),title('1.5*cos(x)')subplot(2,2,3),plot(x,y3),title('sin(2*x)')subplot(2,2,4),plot(x,y4),title('5*cos(2*x)')连续信号的MATLAB表示1、指数信号:指数信号Aeat在MATLAB中可用exp函数表示,其调用形式为:y=A*exp(a*t)(例取A=1,a=-0.4)4参考程序:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);gridon;2、正弦信号:正弦信号Acos(w0t+)和Asin(w0t+)分别由函数cos和sin表示,其调用形式为:A*cos(w0t+phi);A*sin(w0t+phi)(例取A=1,w0=2,=/6)参考程序:A=1;w0=2*pi;phi=pi/6;t=0:0.001:8;ft=A*sin(w0*t+phi);plot(t,ft);gridon;3、抽样函数:抽样函数Sa(t)在MATLAB中用sinc函数表示,其定义为:sinc(t)=sin(t)/(t)其调用形式为:y=sinc(t)参考程序:t=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);gridon;4、矩形脉冲信号:在MATLAB中用rectpuls函数来表示,其调用形式为:y=rectpuls(t,width),用以产生一个幅值为1,宽度为width,相对于t=0点左右对称5的矩形波信号,该函数的横坐标范围由向量t决定,是以t=0为中心向左右各展开width/2的范围,width的默认值为1。例:以t=2T(即t-2T=0)为对称中心的矩形脉冲信号的MATLAB源程序如下:(取T=1)t=0:0.001:4;T=1;ft=rectpuls(t-2*T,2*T);plot(t,ft);gridon;axis([04–0.51.5]);周期性矩形波(方波)信号在MATLAB中用square函数来表示,其调用形式为:y=square(t,DUTY)用以产生一个周期为2、幅值为1的周期性方波信号,其中的DUTY参数表示占空比,即在信号的一个周期中正值所占的百分比。例如频率为30Hz的周期性方波信号的MATLAB参考程序如下:t=-0.0625:0.0001:0.0625;y=square(2*pi*30*t,75);plot(t,y);axis([-0.06250.0625–1.51.5]);gridon;实验二信号的时域表示实验目的:利用MATLAB实现信号的时域表示以及图形表示题目一:连续信号的MATLAB描述设计要求:列出单位冲激函数、单位阶跃函数、复指数函数的MATLAB表达式。建模:1、单位冲激函数(t)无法直接用MATLAB描述,可以把它看作是宽度为(程序中用dt表示),幅度为1/的矩形脉冲,即x1(t)=(t-t1)=1/t1tt1+0其余表示在t=t1处的冲激。2、单位阶跃函数:在t=t1处跃升的阶跃可写为u(t-t1).定义为x2(t)=u(t-t1)=1t1tt1+0t03、复指数函数x3(t)=e(u+j)t若=0,它是实指数函数,如u=0,则为虚指数函数,其实部为余弦函数,虚部为正弦函数。本例u=-0.5,=10.参考程序:clear,t0=0;tf=5;dt=0.05;t1=1;6t=[t0:dt:tf];st=length(t);n1=floor((t1-t0)/dt);x1=zeros(1,st);x1(n1)=1/dt;subplot(2,2,1),stairs(t,x1),gridonaxis([0,5,0,22])x2=[zeros(1,n1-1),ones(1,st-n1+1)];subplot(2,2,3),stairs(t,x2),gridonaxis([0,5,0,1.1])alpha=-0.5;w=10;x3=exp((alpha+j*w)*t);subplot(2,2,2),plot(t,real(x3)),gridonsubplot(2,2,4),plot(t,imag(x3)),gridon程序运行结果:题目二:LTI系统的零输入响应设计要求:描述n阶线性时不变(LTI)连续系统的微分方程为:a1(dny/dtn)+a2(dn-1y/dt)+…+an(dy/dt)+(an+1)y=b1(dmu/dtm)+…+bm(du/dt)+(bm+1)u,已知y及其各阶导数的初始值为y(0),y(1)(0),…,y(n-1)(0),求系统的零输入响应。参考程序:a=input('输入分母系数向量a=[a1,a2......]=');n=length(a)-1;Y0=input('输入初始条件向量Y0=[y0,Dy0,D2y0,....]=');p=roots(a);V=rot90(vander(p));c=V\Y0';dt=input('dt=');tf=input('tf=')t=0:dt:tf;y=zeros(1,length(t));fork=1:ny=y+c(k)*exp(p(k)*t);endplot(t,y),grid;holdon运行此程序并输入:a=[3,5,7,1];dt=0.2;tf=8;Y0取[1,0,0];[0,1,0];[0,0,1],三种情况,运行结果如图7实验三连续信号卷积实验目的:掌握使用MATLAB实现信号的卷积运算、卷积的可视化题目一:卷积的计算设计要求:某LTI系统的冲激响应h(t)=e-0.1t,输入u(t)如图3-1(a)所示,初始条件为零,求系统的响应y(t).参考程序:clearuls=input('输入u数组u=(例如ones(1,10))');lu=length(uls);hls=input('输入h数组h=(例如exp(-0.1*[1:15]))');lh=length(hls);lmax=max(lu,lh);iflulhnu=0;nh=lu-lh;elseiflulhnh=0;nu=lh-lu;elsenu=0;lh=0;enddt=input('输入时间间隔dt=(例如0.5)')8lt=lmax;u=[zeros(1,lt),uls,zeros(1,nu),zeros(1,lt)];t1=(-lt+1:2*lt)*dt;h=[zeros(1,2*lt),hls,zeros(1,nh)];hf=fliplr(h);y=zeros(1,3*lt);fork=0:2*ltp=[zeros(1,k),hf(1:end-k)];y1=u.*p*dt;yk=sum(y1);y(k+lt+1)=yk;subplot(4,1,1);stairs(t1,u)axis([-lt*dt,2*lt*dt,min(u),max(u)]),holdonylabel('u(t)')subplot(4,1,2);stairs(t1,p)9axis([-lt*dt,2*lt*dt,min(p),max(p)])ylabel('h(k-t)')subplot(4,1,3);stairs(t1,y1)axis([-lt*dt,2*lt*dt,min(y1),max(y1)+eps])ylabel('s=u*h(k-t)')subplot(4,1,4);stem(k*dt,yk)axis([-lt*dt,2*lt*dt,floor(min(y)+eps),ceil(max(y+eps))])holdon,ylabel('y(k)=sum(s)*dt')ifk==round(0.8*lt)disp('暂停,按任意键继续'),pauseelsepause(1),endend程序2:u=input('输入u数组u=');h=input('输入h数组h=');dt=input('输入时间间隔dt=');y=conv(u,h);10plot(dt*([1:length(y)]-1),y),grid题目二:LTI系统的零状态响应设计要求:设二阶连续系统,其特性可用常微分方程表示:d2y/dt2+2(dy/dt)+8y=u求其冲激响应。若输入为u=3t+cos(0.1t),求其零状态响应。参考程序:clf,cleara=input('多项式分母系数向量a=');b=input('多项式分子系数向量b=');t=input('输入时间序列t=[0:dt:tf]');u=input('输入序列u=');tf=t(end);dt=tf/(length(t)-1);[r,p,k]=residue(b,a);h=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t);11subplot(2,1,1),plot(t,h);grid;y=conv(u,h)*dt;subplot(2,1,2);plot(t,y(1:length(t)));grid运行该程序,取a=[1,2,8],b=1,t=[0:0.1:5]及u=3*t+cos(0.1*t),所得结果如图实验四典型周期信号的频谱表示实验目的:用MATLAB分析周期矩形脉冲、三角波脉冲的频谱题目一:周期信号的频谱设计要求:周期电流、电压(统称其为信号)f(t)可展开为直流与各次谐波之和,即式中=2/T是基波角频率,T为周期。12周期信号的有效值定义为4.2若用各谐波有效值则表示为全波整流电压Us(t)的波形如图13所示,用傅立叶级数可求得4.113可写出其展开式为(它只含直流和偶次谐波,令k=2n)若Um=100V,频率f=50Hz,(相应的T=0.02S,1=100rad/s),分别用式(6.1)和式(6.2)计算其有效值Us1和Us2(取至六次谐波),并求Us2的误差。参考程序:clear,formatcompactUm=100;T=0.02;w=2*pi*5方法一:按傅立叶分析定义计算N=input('取的谐波次数N=');t=linspace(-T/2,T/2);dt=T/99;u=Um*abs(sin(w*t));fork=0:Na(k+1)=trapz(u.*cos(k*w*t))*dt/T*2;b(k+1)=trapz(u.*sin(k*w*t))*dt/T*2;14A(k+1)=sqrt(a(k+1)^2+b(k+1)^2);end[[0:N]',[A(1)/2,A(2:end)]']stem(0:N,[a(1)/2,A(2:end)])Usll=sqrt(trapz(u.^2)*dt/T)Us12=sqrt(A(1)^2/4+sum(A(2:end).^2/2))方法二:按推导出的全波傅立
本文标题:matlab软件仿真实验(信号与系统) (1)
链接地址:https://www.777doc.com/doc-6339420 .html