4、 离散序列卷积:
MATLAB提供一个conv函数
功能:进行两个序列间的卷积运算。
调用格式:y=conv(x,h),用于求取两个有限长度序列x和h的卷积,y的长度等于x和h的长度之和减1。
注意:conv函数默认两个信号的时间序列从n=0开始的。 例:已知两个信号序列;
f1?0.8n (0 2、如果两个信号不是从n=0开始的,则采用[y , ny]=conv_new(x , nx , h , nh)函数。 其中x 是输入序列,nx是它的序列号,h是另一个序列,nh是它的序列号,y是卷积和,ny是它的序列号。 %conv_new.m实现任意位置序列卷积运算,返回值是卷积和的值y和时间向量ny。 function[y,ny]=conv_new(x,nx,h,nh) n1=nx(1)+nh(1); n2=nx(length(x))+nh(length(h)); ny=[n1:n2]; y=conv(x,h); 例:x=[3,11,7,0,-1,4,2]; nx=[-3:3]; h=[2,3,0,-5,2,1,]; nh=[-1:4]; [y,ny]=conv_new(x,nx,h,nh); subplot(3,1,1),stem(nx,x); axis([min(nx),max(nx),1.1*min(x),1.1*max(x)]); subplot(3,1,2),stem(nh,h); axis([min(nh),max(nh),1.1*min(h),1.1*max(h)]); subplot(3,1,3),stem(ny, y); axis([min(ny),max(ny),1.1*min(y),1.1*max(y)]); 实验三:离散系统的冲激响应和阶跃响应 1、 impz(): 功能:求解数字系统的冲激响应。 调用格式:[h,t]=impz(b,a);求解数字系统的冲激响应h,取样点数为缺省值。 [h,t]=impz(b,a,n);求解数字系统的冲激响应h,取样点数为n值。 impz(b,a);在当前窗口用stem(t,h )函数出图。 2、 dstep(): 功能:求解数字系统的阶跃响应。 调用格式:[h,t]=dstep(b,a);求解数字系统的阶跃响应h,取样点数为缺省值。 [h,t]=dstep(b,a,n);求解数字系统的阶跃响应h,取样点数为n值。 dstep(b,a);在当前窗口用stairs(t,h)函数出图。 3、filter子函数 功能:对数字系统的输入信号进行滤波处理。因为一个离散系统可以看作是一个滤波器,系统的输出就是输入经过滤波器滤波的结果。 调用格式:y=filtet(b , a, x),对于由矢量b, a决定的数字系统(b和a分别表示系统函数H(z)对应的分子项和分母项系数构成的数组,而且分母系数要归一化处理。)当输入信号为x时,对x中的数据进行滤波,结果存于y中,长度取max(na , nb). [y , zf]=filter(b , a, x);除得到结果矢量y外,还得到x 的最终状态矢量zf。 y=filter(b , a, x, zi);可在zi中指定x的初始状态。 4、filtic子函数 功能:为filter子函数选择初始条件。 调用格式:zi=filtic(b ,a ,y ,x);求给定输入x和y时的初始状态。 zi=filtic(b , a, y);求x=0,给定输入y时的初始状态。 其中,x和y分别是表示过去的输入和输出。 例:已知一个因果系统的差分方程为 6y(n)+2y(n-2)=x(n)+3x(n-1)+3x(n-2)+x(n-3)满足初始条件y(-1)=0,x(-1)=0.求系统的单位冲激响应和阶跃响应。 将上述方程对y(n)项系数进行归一化,得到其系统函数分子和分母系数 a0=1, a1=0, a2=1/3, a3=0 b0=1/6, b1=1/2, b2=1/2, b3=1/6 用impz()函数的MATLAB程序(取N=32点作图) a=[1,0,1/3, 0]; b=[1/6, 1/2, 1/2, 1/6]; N=32; n=0:N-1; hn=impz(b,a,n); gn=dstep(b,a,n); subplot(1,2,1),stem(n,hn,’filled’); title(‘系统的单位阶跃响应’); ylabel(‘h(n)’);xlabel(‘n’); axis([0,N-1,-1.1*min(hn),1.1*max(hn)]); subplot(1,2,2), stem(n,gn,’k’); title(‘系统的单位阶跃响应’); ylabel(‘g(n)’);xlabel(‘n’); axis([0,N-1,-1.1*min(gn),1.1*max(gn)]); 用filter()函数的MATLAB程序(取N=32点作图) a=[1,0,1/3, 0]; b=[1/6, 1/2, 1/2, 1/6]; xi=filtic(b,a,0,0); N=32; n=0:N-1; x1=[n==0]; %单位冲激信号 hn=filter(b,a,x1,xi); subplot(1,2,1),stem(n,hn,’filled’); title(‘系统的单位阶跃响应’); ylabel(‘h(n)’);xlabel(‘n’); axis([0,N-1,-1.1*min(hn),1.1*max(hn)]); x2=[n>=0]; %单位阶跃信号 gn=filter(b,a,x2,xi); subplot(1,2,2), stem(n,gn,’k’); title(‘系统的单位阶跃响应’); ylabel(‘g(n)’);xlabel(‘n’); axis([0,N-1,-1.1*min(gn),1.1*max(gn)]); 注:1、hold() 控制当前图形是否刷新的双向切换开关。hold on3、 使当前轴及图形保持 而不被刷新,准备接受此后将绘制的新曲线。hold off使当前轴及图形不再具备刷新的性质。 pause() 暂停执行文件,等待用户按任意键继续,pause(n) 在继续执行之前,暂停n秒。 实验四: 离散LSI系统的时域响应 对于离散LSI系统的响应,MATLAB为我们提供了多种求解方法: (1) 用conv子函数进行卷积积分,求任意输入的系统零状态响应。 (2) 用dlsim子函数求任意输入的系统零状态响应。 (3) 用filter和filtic子函数求任意输入的系统完全响应。 1、 dlsim子函数 功能:求解离散系统的响应。 调用格式:y=dlsim(b , a , x),求输入信号为x时系统的响应。 其中,b和a分别表示系统函数H(z)中,由对应的分子项和分母项系数构成的数组,而且分母系数要归一化处理。 例:(书本P96页15题)已知一个用以下差分方程表示的线性移不变因果系统为: y(n)?2ry(n?1)cos??r2y(n?2)?x(n) 当激励x(n)?anu(n)时,求系统的响应。 2、 用filter和filtic子函数求LSI系统对任意输入的响应 Filter子函数 功能:对数字系统的输入信号进行滤波处理。 调用格式:y=filtet(b , a, x),对于由b和a决定的数字系统(b和a分别表示系统函数H(z)中,由对应的分子项和分母项系数构成的数组,而且分母系数要归一化处理。)当输入信号为x时,对x中的数据进行滤波,结果存于y中,长度取max(na , nb). [y , zf]=filter(b , a, x);除得到结果矢量y外,还得到x 的最终状态矢量zf。 y=filter(b , a, x, zi);可在zi中指定x的初始状态。 Filtic子函数 功能:为filter子函数选择初始条件。 调用格式:zi=filtic(b ,a ,y ,x);求给定输入x和y时的初始状态。 zi=filtic(b , a, y);求x=0,给定输入y时的初始状态。 其中,x和y分别是表示过去的输入和输出。 例:已知一个因果系统的差分方程为: 6y(n)-2y(n-4)=x(n)-3x(n-2)+3x(n-4)-x(n-6) 满足初始条件y(-1)=0,x(-1)=0,求系统的单位冲激响应和单位阶跃响应,时间轴上N取32点作图。 例:已知一个IIR数字低通滤波器的系统函数为: 0.1321?0.3963z?1?0.3963z?2?0.1321z?3 H(z)= 1?0.34319z?1?0.60439z?2?0.20407z?3输入一个矩形信号序列 x=square(n/5) (-2 作业:书本p96页16题。 作业:1、已知离散线性时不变的系统函数,请分别用impz和dstep子函数,filter和filtic子函数两种方法求解系统的冲激响应和阶跃响应。 1?0.5z?1 (1) H(z)? ?1?21?z?z (2) H(z)?1?0.5z?1?0.5z?2?z?3?0.5z?4?z?5 2、一个LSI系统的系统函数表示式为: 0.18763?20.2412z4?11?0.2412z4?22?0.1876z3?32 H(z)? ?31?0.6020z1?12?0.4956z8?24?0.03592z44满足初始条件y(-1)=5,y(-2)=5,试用filtet和filtic子函数求此系统的输入序列x(n) 为下列信号时的零输入,零状态以及完全响应。 (1) x(n)=R5(n) (2) x(n)=cos 2?3?n?sinn 310 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库实验部分:matlab在数字信号处理中的应用(2)在线全文阅读。
相关推荐: