当前位置:文档之家› 信号与系统实验报告

信号与系统实验报告

信号与系统实验指导老师:实验时间: 2015年6月学校:海南大学学院:信息科学技术学院专业班级:姓名:学号:《信号与系统实验》实验一基本信号在MATLAB中的表示和运算一、实验目的1.学会用MATLAB表示常用连续信号的方法;2.学会用MATLAB进行信号基本运算的方法;二、实验原理1.连续信号的MATLAB表示MATLAB提供了大量的生成基本信号的函数,例如指数信号、正余弦信号。

表示连续时间信号有两种方法,一是数值法,二是符号法。

数值法是定义某一时间范围和取样时间间隔,然后调用该函数计算这些点的函数值,得到两组数值矢量,可用绘图语句画出其波形;符号法是利用MATLAB的符号运算功能,需定义符号变量和符号函数,运算结果是符号表达的解析式,也可用绘图语句画出其波形图。

例1-1指数信号如f (t) = Ae at,调用格式为ft=A*exp (a*t)程序:A=1;a=-0.4;t=0:0.01:10;ft=A*exp(a*t);plot(t,ft);grid on;波形图:例1-2 正弦信号调用格式为ft=A*sin(w*t+phi)程序:A=1;w=2*pi;phi=pi/6;t=0:0.01:8;ft=A*sin(w*t+phi);plot(t,ft);grid on;波形图:例1-3 抽样信号定义为Sa(t) = sin c(t /π )程序:t=-3*pi:pi/100:3*pi;ft=sinc(t/pi);plot(t,ft);grid on;axis([-10,10,-0.5,1.2]);title('抽样信号')波形图:例1-4 三角信号调用格式为ft=tripuls(t,width,skew),产生幅度为1,宽度为width,且以0为中心左右各展开width/2大小,斜度为skew的三角波。

width的默认值是1,skew的取值范围是-1~+1之间。

一般最大幅度1出现在t=(width/2)*skew的横坐标位置。

程序:t=-3:0.01:3;ft=tripuls(t,4,0.5);plot(t,ft);grid on;axis([-3,3,-0.5,1.5]);波形图:例1-5 虚指数信号调用格式是f=exp((j*w)*t)程序:t=0:0.01:15;w=pi/4;X=exp(j*w*t);Xr=real(X);Xi=imag(X);Xa=abs(X);Xn=angle(X);subplot(2,2,1),plot(t,Xr),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),title('实部');subplot(2,2,3),plot(t,Xi),axis([0,15,-(max(Xa)+0.5),max(Xa)+0.5]),title('虚部');subplot(2,2,2),plot(t,Xa),axis([0,15,0,max(Xa)+1]),title('模');subplot(2,2,4),plot(t,Xn),axis([0,15,-(max(Xn)+1),max(Xn)+1]),title('相角'); %subplot(m,n,i)波形图:例1-6 复指数信号调用格式是f=exp((a+j*b)*t)程序:t=0:0.01:3;a=-1;b=10;f=exp((a+j*b)*t);subplot(2,2,1),plot(t,real(f)),title('实部') subplot(2,2,3),plot(t,imag(f)),title('虚部') subplot(2,2,2),plot(t,abs(f)),title('模') subplot(2,2,4),plot(t,angle(f)),title('相角') 波形图:例1-7 矩形脉冲信号矩形脉冲信号可用rectpuls函数产生,调用格式为y=rectpuls(t,width),幅度是1,宽度是width,以t=0为对称中心。

程序:t=-2:0.01;2;width=1;ft=2*rectpuls(t,width);plot(t,ft);grid on;波形图:例1-8 单位阶跃信号单位阶跃信号u(t)用“t>=0”产生,调用格式为ft=(t>=0) 程序:t=-1:0.01:5;ft=(t>=0);plot(t,ft); grid on;axis([-1,5,-0.5,1.5]);波形图:例1-9 正弦信号符号算法程序:syms ty=sin(pi/4*t)ezplot(y,[-16,16])波形图:例1-10 单位阶跃信号MATTLAB符号数学函数Heaviside表示阶跃信号,但要画图需在工作目录创建Heaviside的M文件文件Heaviside.m的程序function f=Heaviside(t),f=(t>0);程序:t=-1:0.01:3;f=heaviside(t);plot(t,f)axis([-1,3,-0.2,1.2])波形图:2.信号基本运算的MATLAB实现信号基本运算是乘法、加法、尺度、反转、平移、微分、积分,实现方法有数值法和符号法例1-11 以f(t)为三角信号为例,求f(2t) , f(2-2t)程序:t=-3:0.001:3;ft=tripuls(t,4,0.5);subplot(3,1,1);plot(t,ft); grid on;title('f(t)');ft1=tripuls(2*t,4,0.5);subplot(3,1,2);plot(t,ft1);grid on;title('f(2t)');ft2=tripuls(2-2*t,4,0.5);subplot(3,1,3);plot(t,ft2); grid on;title('f(2-2t)');波形图:例1-12 已知f1(t)=sinwt , f2(t)=sin8wt , w=2pi , 求f1(t)+f2(t)和f1(t)f2(t) 的波形图程序:w=2*pi;t=0:0.01:3;f1=sin(w*t);f2=sin(8*w*t);subplot(211)plot(t,f1+1,':',t,f1-1,':',t,f1+f2)grid on,title('f1(t)+f2(t)')subplot(212)plot(t,f1,':',t,-f1,':',t,f1.*f2)grid on,title('f1(t)*f2(t)')波形图:符号算法也可实现上述运算,以信号的微积分运算为例说明符号算法应用微分的调用格式为diff(function,’variable’,n) 积分的调用格式为int(function,’variable’,a,b) 式中function表示要微分或积分的函数,variable表示运算变量,n表示求导阶数,默认值是求一阶导数,a是积分下限,b是积分上限,a b默认是求不定积分。

例1-13 求一阶导数的例题已知Y1=sin(ax2),y2=xsinxlnx程序:clearsyms a x y1 y2y1=sin(a*x^2);y2=x*sin(x)*log(x);dy1=diff(y1,'x')dy2=diff(y2)结果:dy1 =2*cos(a*x^2)*a*xdy2 =sin(x)*log(x)+x*cos(x)*log(x)+sin(x)例1-14 求积分的例题程序:clearsyms a x y3 y4y3=x^5-a*x^2+sqrt(x)/2;y4=(x*exp(x))/(1+x)^2;iy3=int(y3,'x')iy4=int(y4,0,1)结果:iy3 =1/6*x^6-1/3*a*x^3+1/3*x^(3/2) iy4 =1/2*exp(1)-1三、上机实验内容1.验证实验原理中程序2.画出信号波形(1) f(t)-(2-e-2t)u(t)答:程序:A=1;a=-2;t=-1:0.01:4;f1=2-A*exp(a*t);f2=(t>=0);plot(t,f1.*f2);grid on;波形图:(2) f(t)=(1+cosπt)[u(t)-u(t-2)]答:程序:A=1;w=pi;t=-1:0.01:3;f1=1+cos(w*t);f2=(t>=0);f3=(t>=2);plot(t,f1.*(f2-f3));grid on;波形图:3.信号f(t)=(2-e-2t)u(t),求f(2t)/f(2-t)波形答:程序:A=1;a=-2;t=-1:0.01:3;f1=2-A*exp(a*t);f2=(t>=0);subplot(3,1,1);plot(t,f1.*f2);grid on;title('f(t)');subplot(3,1,2);plot(2*t,f1.*f2);grid on;subplot(3,1,3);plot(2-t,f1.*f2);grid on;波形图:实验二连续时间LTI系统的时域分析一、实验目的1.学会用MATLAB求解连续系统的零状态响应;2. 学会用MATLAB求解冲激响应及阶跃响应;3.学会用MATLAB实现连续信号卷积的方法;二、实验原理1.连续时间系统零状态响应的数值计算我们知道,LTI连续系统可用如下所示的线性常系数微分方程来描述,∑a i y(i)(t)=∑b j f(j)(t)在MATLAB中,控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数lsim。

其调用格式y=lsim(sys,f,t)式中,t表示计算系统响应的抽样点向量,f是系统输入信号向量,sys是LTI系统模型,用来表示微分方程,差分方程或状态方程。

其调用格式sys=tf(b,a)式中,b和a分别是微分方程的右端和左端系数向量。

例如,对于以下方程:可用[a3a2a1a0][b3b 2b1b0];sys=tf(b,a)获得其LTI模型。

注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或b中的对应元素应为零,不能省略不写,否则出错。

例2-1 已知某LTI系统的微分方程为y’’(t)+ 2y’(t)+100y(t)=f(t)其中,y(0)=y’(0)=0,f(t)=10sin(2πt)求系统的输出y(t).解:程序:ts=0;te=5;dt=0.01;sys=tf([1],[1,2,100]);t=ts:dt:te;f=10*sin(2*pi*t);y=lsim(sys,f,t);plot(t,y);xlabel('Time(sec)');ylabel('y(t)');波形图:2.连续时间系统冲激响应和阶跃响应的求解在MATLAB中,对于连续LTI系统的冲激响应和阶跃响应,可分别用控制系统工具箱提供的函数impluse和step来求解。

相关主题