您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页离散系统的时域分析实验报告

离散系统的时域分析实验报告

来源:爱go旅游网
实验2 离散系统的时域分析

一、实验目的

1、熟悉并掌握离散系统的差分方程表示法;2、加深对冲激响应和卷积分析方法的理解。二、实验原理

在时域中,离散时间系统对输入信号或者延迟信号进行运算处理,生成具有所需特性的输出信号,具体框图如下:

其输入、输出关系可用以下差分方程描述:输入信号分解为冲激信号,记系统单位冲激响应

,则系统响应为如下的卷积计算式:当

时,h[n]是有限长度的(

),称系统为FIR系统;反之,称系统为IIR系统。三、实验内容

1、用MATLAB求系统响应

1) 卷积的实现

线性移不变系统可由它的单位脉冲响应来表征。若已知了单位脉冲响应和系统激励就可通过卷积运算来求取系统响应,即程序:

x=input(‘Type in the input sequence=’); %输入x

h=input(‘Type in the impulse response sequence=’); %输

入h

y=conv(x,h); % 对x,h进行卷积N=length(y)-1; %求出N的值

n=0:1:N; %n从0开始,间隔为1的取值取到N为止disp(‘output sequence=’); disp(y); %输出y

stem(n,y); %画出n为横轴,y为纵轴的离散图

xlabel(‘Time index n’); ylable(‘Amplitude’); % 规定x轴y

轴的标签

输入为: x=[-2 0 1 -1 3]

h=[1 2 0 -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(‘Desired impuse response length=’);

b=input(‘Type in the vector b=’);a=input(‘Type in the vector a=’);x=[1 zeros(1,N-1)];y=filter(b,a,x);k=0:1:N-1;stem(k,y);

xlabel(’Time index n’); ylable(‘Amplitude’);输入:N=41

b=[0.8 -0.44 0.36 0.02]a=[1 0.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 = [3 2 1 -2 1 0 -4 0 3]; %impulse responsex = [1 -2 3 -4 3 2 1]; %input sequencey = conv(h,x);n = 0:14;

subplot(2,1,1);stem(n,y);

xlabel('Time index n'); ylabel('Amplitude');title('Output Obtained by Convolution'); grid;x1 = [x zeros(1,8)];y1 = filter(h,1,x1);subplot(2,1,2);stem(n,y1);

xlabel('Time index n'); ylabel('Amplitude');title('Output Generated by Filtering'); grid;

图形:

因为在y=filter(b,a,x)中,利用给定矢量a和b对x中的数据进行滤波,结果放入y矢量中,y与x长度要相等,所以要使用x[n]补零后的x1来产生y1。若h[n]有i个值,x[n]有j个值,则x1 = [x zeros(1,i-1)

现,并绘出其图形。filter实现:

impz实现:

和 impz实

3、编制程序求解下列两个系统的单位冲激响应,分别用filter 给出理论计算结果和程序计算结果并讨论。第一题:

N=input('Desired impuse response length=');b=input('Type in the vector b=');a=input('Type in the vector a=');x=[1 zeros(1,N-1)];y=filter(b,a,x);k=0:1:N-1;

stem(k,y);

xlabel('Time index n');ylabel('Amplitude');

b=input('Type in the vector b=');a=input('Type in the vector a=');

z(b,a,N);k=0:1:N-1;stem(k,y);

xlabel('Time index n'); ylabel('Amplitude');

图形:

第二题:

filter实现:

nput('Desired impuse response length=');nput('Type in the vector b=');nput('Type in the vector a=');1 zeros(1,N-1)];ilter(b,a,x);

bel('Time index n');bel('Amplitude');

Type in the vector b=[0.25 0.25 0.25 0.25]Type in the vector a=1

图形:

impz实现:

b=input('Type in the vector b=');a=input('Type in the vector a=');

y=impz(b,a,N);k=0:1:N-1;stem(k,y);

xlabel('Time index n'); ylabel('Amplitude');

图形:

四、小结

通过此次实验,了解了卷积在Matlab中计算方法,学会了计算单位脉冲响应的方法。求系统的脉冲响应由两步组成:

y(n)=x(n)*h(n) 求出y(n) 在MATLAB中用conv(x,h)实现filter(b,a,x)求出单位脉冲响应

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务