您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 离散系统的时域分析实验报告
实验2离散系统的时域分析一、实验目的1、熟悉并掌握离散系统的差分方程表示法;2、加深对冲激响应和卷积分析方法的理解。二、实验原理在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:其输入、输出关系可用以下差分方程描述:输入信号分解为冲激信号,记系统单位冲激响应,则系统响应为如下的卷积计算式:当时,h[n]是有限长度的(),称系统为FIR系统;反之,称系统为IIR系统。三、实验内容1、用MATLAB求系统响应1)卷积的实现线性移不变系统可由它的单位脉冲响应来表征。若已知了单位脉冲响应和系统激励就可通过卷积运算来求取系统响应,即)(*)()(nhnxny程序:x=input(‘Typeintheinputsequence=’);%输入xh=input(‘Typeintheimpulseresponsesequence=’);%输入hy=conv(x,h);%对x,h进行卷积N=length(y)-1;%求出N的值n=0:1:N;%n从0开始,间隔为1的取值取到N为止disp(‘outputsequence=’);disp(y);%输出ystem(n,y);%画出n为横轴,y为纵轴的离散图xlabel(‘Timeindexn’);ylable(‘Amplitude’);%规定x轴y轴的标签输入为:x=[-201-13]h=[120-1]图形:2)单位脉冲响应的求取线性时不变因果系统可用MATLAB的函数filter来仿真y=filter(b,a,x);其中,x和y是长度相等的两个矢量。矢量x表示激励,矢量a,b表示系统函数形式滤波器的分子和分母系数,得到的响应为矢量y。例如计算以下系统的单位脉冲响应y(n)+0.7y(n-1)-0.45y(y-2)-0.6y(y-3)=0.8x(n)-0.44x(n-1)+0.36x(n-2)+0.02x(n-3)程序:N=input(‘Desiredimpuseresponselength=’);b=input(‘Typeinthevectorb=’);a=input(‘Typeinthevectora=’);x=[1zeros(1,N-1)];y=filter(b,a,x);k=0:1:N-1;stem(k,y);xlabel(’Timeindexn’);ylable(‘Amplitude’);输入:N=41b=[0.8-0.440.360.02]a=[10.7-0.45-0.6]图形:2、以下程序中分别使用conv和filter函数计算h和x的卷积y和y1,运行程序,并分析y和y1是否有差别,为什么要使用x[n]补零后的x1来产生y1;具体分析当h[n]有i个值,x[n]有j个值,使用filter完成卷积功能,需要如何补零?程序:clf;h=[321-210-403];%impulseresponsex=[1-23-4321];%inputsequencey=conv(h,x);n=0:14;subplot(2,1,1);stem(n,y);xlabel('Timeindexn');ylabel('Amplitude');title('OutputObtainedbyConvolution');grid;x1=[xzeros(1,8)];y1=filter(h,1,x1);subplot(2,1,2);stem(n,y1);xlabel('Timeindexn');ylabel('Amplitude');title('OutputGeneratedbyFiltering');grid;图形:因为在y=filter(b,a,x)中,利用给定矢量a和b对x中的数据进行滤波,结果放入y矢量中,y与x长度要相等,所以要使用x[n]补零后的x1来产生y1。若h[n]有i个值,x[n]有j个值,则x1=[xzeros(1,i-1)3、编制程序求解下列两个系统的单位冲激响应,分别用filter和impz实现,并绘出其图形。给出理论计算结果和程序计算结果并讨论。第一题:filter实现:程序:N=input('Desiredimpuseresponselength=');b=input('Typeinthevectorb=');a=input('Typeinthevectora=');x=[1zeros(1,N-1)];y=filter(b,a,x);k=0:1:N-1;stem(k,y);xlabel('Timeindexn');ylabel('Amplitude');图形:impz实现:程序:b=input('Typeinthevectorb=');a=input('Typeinthevectora=');N=25y=impz(b,a,N);k=0:1:N-1;stem(k,y);xlabel('Timeindexn');ylabel('Amplitude');图形:第二题:filter实现:程序:N=input('Desiredimpuseresponselength=');b=input('Typeinthevectorb=');a=input('Typeinthevectora=');x=[1zeros(1,N-1)];y=filter(b,a,x);k=0:1:N-1;stem(k,y);xlabel('Timeindexn');ylabel('Amplitude');输入:Typeinthevectorb=[0.250.250.250.25]Typeinthevectora=1N=25图形:impz实现:程序:b=input('Typeinthevectorb=');a=input('Typeinthevectora=');N=30y=impz(b,a,N);k=0:1:N-1;stem(k,y);xlabel('Timeindexn');ylabel('Amplitude');图形:四、小结通过此次实验,了解了卷积在Matlab中计算方法,学会了计算单位脉冲响应的方法。求系统的脉冲响应由两步组成:①由y(n)=x(n)*h(n)求出y(n)在MATLAB中用conv(x,h)实现②用filter(b,a,x)求出单位脉冲响应
本文标题:离散系统的时域分析实验报告
链接地址:https://www.777doc.com/doc-5131186 .html