资源描述:
《实验二卷积及微分方程求解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验二卷积及微分.差分方程的求解一、实验目的1.学习利用Matlab工程软件实现系统时域输入一输出分析法2.观察和掌握各种常用信号的波形及其卷积后的结果。3.利用Matlab实现微分、差分方程的求解。二、原理说明在连续线性时不变因果(LTT)系统的时域分析中,我们可以通过经典求解微分方程的方法,同样在离散线性时不变因果(LTD系统的时域分析中我们也可以利川经典的差分方程求解法。这两种方法都是通过求解方程的齐次解和特解得到的,无论哪种方法都需要经过耕确、繁琐的数学计算,它们在高等数学课中都有详细介绍,这里我们不再赘述。对于线性系统的零状态响应n(t),我们定义为在初
2、始状态为零、系统只在激励信号e(t)作川下所产生的输出,若该系统的单位冲激响应为h(t)[系统在单位冲激信号作用下的零状态响应],则系统的rf(r)==£e(r)•h(t—r引入Matlab算法以后,我们可以利用有限的儿个函数就可以将方程的输入一输出关系求出,并且以图形的方式表达,从而方便、直接地观察系统的吋域特性。三、预习要求1.所用函数(1)单位阶跃信号:Heaviside(t);功能:产生单位阶跃信号。(2)门函数:rectpuls(t);^能:产生门函数。(3)函数square功能:产生周期为2幅值为1的方波信号,调用格式:x=square(t)x=squ
3、are(t,duty),其屮,t为时间向量duty为正幅值部分占周期的白分比。(4)sawtooth:功能:产牛锯齿波或三角波;调用格式:x=sawtooth(t)x=sawtooth(t,width);sawtooth⑴用于产生周期为2兀,最大幅度为1,最小輔度为-1的周期性三角波(锯齿波),其中,width参数为0和1Z间的数,表示最大幅度出现的位:loWidth=0.5吋,产生标准正三角波。(5)Isim能对由下列形式的微分方程求解矢今5k=0aim=0dtm注意,系数纵和叽必须被存入MATLAB向量屮,并且在序号k和m上以递增的次序存入。(1)函数plot
4、川于绘制二维x・y坐标图形,其调川格式为:plot(x,y)o(2)函数subplot当需要在同一个图形中显示不同坐标刻度的两个图形时,可以采用将一个图形分隔为几个子窗口的方法來进行,调用格式为:subplot(m,n,k)其中,m和n分别表示图形窗口将分隔成m行n列的子窗口,k表示将第个子窗口作为当前的操作窗口。(3)函数conv该惭数用来求两个函数fl和f2的卷积,调用格式为:conv(fbf2)1.线性时不变因果系统的微分方程求解方法;2.卷积积分的求解方法及卷积的性质。四、内容和步骤1.模拟信号生成函数1)单位阶跃信号参考程序:(=[-1:0.001:11
5、;y=heaviside(t)p1ot(t,y);gridonaxis([-l1-0.11.1]);2)门函数rectpuls(t);%产生幅度为1,门宽为1,对称中心在t=0的门函数rectpuls(t,w);%产牛幅度为1,门宽为w,对称中心在匸0的门函数rectpuls(t,tO,w);%产生幅度为1,门宽为w,对称中心在匸(0的门断数参考程序:y=rectpuls(t);plot(t,y);axis([・3,3,-0.1,l.l]);gridon;3)方波:产生幅值为1的周期性方波,周期为2s,脉冲宽度为Is,参考程序:x=[0:0.01:10];y=sq
6、uare(pi*x);plot(x,y);axis([0,10,-2,2]);title('square');xlabel('x');yl“bel(y);4)锯齿波:产生周期三角波(锯齿波)信号。t=-5*pi:pi/10:5*pi;x=sawtooth(t,0.5);plot(t,x);axis([-1616-1.51.5]);gridon;2.微分方程求解某系统的输入一输出描述方程为:邺。=--y(0+x(r)dt2参考程序一:匸[0:10];x=ones(l,length(t));b=l;a=[l0.5];%确定信号时间范围%定义输入信号形式%方程描述s=l
7、sim(b,a,x,t);plot(t,s;r-')%方程求解%系统输出信号波形绘制1.连续信号的卷积求解参考程序二、dt=0.5;tl=l:0.00l:2;%fl信号时间范围定义及信号定义fl=oncs(sizc(tl)).*(tl>l);(2=2:0.001:4;%f2信号定义及时间范围确定f2=ones(size(t2)).*(t2>2);subplot(3,l,l),plot(tl,fl,W);axis([l,2,0,l.l/dt]);holdon%fl和f2信号波形绘制subplot(3,1,2),plot(t2,f2,*b-');axis([2,4,0
8、,1.l/