上海电力学院实验报告实验课程名称:数字信号处理实验项目名称:系统响应及系统稳定性班级:2008071姓名:王涛学号:20081938成绩:________实验时间:第三周一、实验目的(1)掌握求系统响应的方法(2)掌握时域离散系统的时域特性(3)分析、观察及检验系统的稳定性二、实验原理在时域中,本实验仅在时域求解。在计算机上用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响。三、实验步骤习题一第14题(2):1.新建.m文件ex114-2;2.程序代码:xn=[ones(1,12)2110.51111.5ones(1,12)];hn=[0.20.20.20.20.2];yn=conv(hn,xn);n=0:length(yn)-1;subplot(2,2,1);stem(n,yn,'.')title('(a)y(n)波形');xlabel('n');ylabel('y(n)')3.运行结果:习题一第15题:1.新建.m文件ex115;2.程序代码:xn=[1,2,3,4,2,1,zeros(1,10)];B=[1,0,2];A=[1,0.5];yn=filter(B,A,xn)n=0:length(yn)-1;subplot(3,2,1);stem(n,yn,'.');axis([0,15,-2,8])title('系统的零状态响应');xlabel('n');ylabel('y(n)')3.运行程序:习题一第16题:1.新建.m文件ex116;2.程序代码:B1=1;A1=[1,-0.6,0.08];B2=[2,0,-1];A2=[1,-0.7,0.1];xn=[1,zeros(1,30)];xi=filtic(B1,A1,0);hn1=filter(B1,A1,xn,xi);n=0:length(hn1)-1;subplot(3,2,1);stem(n,hn1,'.')title('(a)系统1的系统单位脉冲响应');xlabel('n');ylabel('h(n)')xn=ones(1,30);sn1=filter(B1,A1,xn,xi);n=0:length(sn1)-1;subplot(3,2,2);stem(n,sn1,'.')title('(b)系统1的系统单位阶跃响应');axis([0,30,0,3]);xlabel('n');ylabel('s(n)')xn=[1,zeros(1,30)];xi=filtic(B2,A2,0);hn2=filter(B2,A2,xn,xi);n=0:length(hn2)-1;subplot(3,2,5);stem(n,hn2,'.')title('(c)系统2的系统单位脉冲响应');axis([0,30,-1,2]);xlabel('n');ylabel('h(n)')xn=ones(1,30);sn2=filter(B2,A2,xn,xi);n=0:length(sn2)-1;subplot(3,2,6);stem(n,sn2,'.')title('(d)系统2的系统单位阶跃响应');xlabel('n');ylabel('s(n)')3.运行结果:实验10.11.新建.m文件ex10.1;2.程序代码:B=[0.05,0.05];A=[1,-0.9];xn=[1,zeros(1,57)];xi=filtic(B,A,0);hn=filter(B,A,xn,xi);n=0:length(hn)-1;subplot(2,2,1);stem(n,hn,'.')title('(a)系统单位脉冲响应');xlabel('n');ylabel('h(n)')x1n=[11111111zeros(1,50)];x2n=ones(1,128);y1n=filter(B,A,x1n);subplot(2,2,2);stem(n,y1n,'.')title('(b)系统对R8(n)的响应y1(n)');axis([0,60,0,0.7]);xlabel('n');ylabel('y1(n)')y2n=filter(B,A,x2n);n=0:length(y2n)-1;subplot(2,2,4);stem(n,y2n,'.')title('(c)系统对u(n)的响应y2(n)');axis([0,130,0,1.2]);xlabel('n');ylabel('y2(n)')x1n=[11111111];h1n=[ones(1,10)zeros(1,10)];h2n=[12.52.51zeros(1,10)];y21n=conv(h1n,x1n);y22n=conv(h2n,x1n);n=0:length(h1n)-1;subplot(2,2,1);stem(n,h1n,'.');axis([0,20,0,1.2]);xlabel('n');ylabel('h1(n)')title('(d)系统单位脉冲响应h1(n)')n=0:length(y21n)-1;subplot(2,2,2);stem(n,y21n,'.');xlabel('n');ylabel('y21(n)')title('(e)h1(n)与R8(n)的卷积y21(n)')n=0:length(h2n)-1;subplot(2,2,3);stem(n,h2n,'.');xlabel('n');ylabel('h2(n)')title('(f)系统单位脉冲响应h2(n)')n=0:length(y22n)-1;subplot(2,2,4);stem(n,y22n,'.');xlabel('n');ylabel('y22(n)')title('(g)h2(n)与R8(n)的卷积y22(n)')A=[1,-0.9];B=[0.05,0.05];un=ones(1,256);n=0:255;xsin=sin(0.014*n)+sin(0.4*n);A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49];y31n=filter(B,A,un);y32n=filter(B,A,xsin);subplot(2,1,1);stem(n,y31n,'.');title('(h)谐振器对u(n)的响应y31(n)');axis([0,260,-0.06,0.06]);xlabel('n');ylabel('y31(n)')subplot(2,1,2);stem(n,y32n,'.');title('(i)谐振器对正弦信号的响应y32(n)');axis([0,260,-1,1]);xlabel('n');ylabel('y31(n)')3.运行结果:四、实验心得及体会:通过本次实验我初步了解到MATLAB这个软件的基本使用方法,运行环境。通过这款软件使我们的学习更加方便。实验中,我掌握了filter和conv函数的基本用法,前者可计算知道输入信号的前提下求解输出响应的序列,后者则可通过输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。