您好,欢迎来到微智科技网。
搜索
您的当前位置:首页实验二离散序列卷积及及系统时域响应分析

实验二离散序列卷积及及系统时域响应分析

来源:微智科技网
实验二 离散序列卷积及及系统时域响应分析一.实验目的

学会运用MATLAB求解离散时间系统的零状态响应;学会运用MATLAB求解离散时间系统的单位脉冲响应;学会运用MATLAB求解离散时间系统的卷积和。

二.实验原理及实例分析1. 离散时间系统的响应

离散时间LTI系统可用线性常系数差分方程来描述,即

(2-1)

其中,(,1,…,N)和(,1,…,M)为实常数。

MATLAB中函数filter可对式(2-1)的差分方程在指定时间范围内的输入序列所产生的响应进行求解。函数filter的语句格式为

y=filter(b,a,x)

其中,x为输入的离散序列;y为输出的离散序列;y的长度与x的长度一样;b与a分别为差分方程右端与左端的系数向量。

由离散时间系统的频域分析法可知,线性时不变离散系统也可以用

系统函数来表示: (2-2)

其中a0=1。MATLAB信号处理工具箱提供了一个dlsim( )函数,通过H(z)来求解任意输入的系统的零状态响应。其调用方式为:

y=dlsim(b,a,x);

式中,b,a分别为系统函数H(z)中,由对应的分子项和分母项系数所构成的数组,x为输入序列。

【实例2-1】 已知某LTI系统的差分方程为

试用MATLAB命令绘出当激励信号为时,该系统的零状态响应。

解:MATLAB源程序为:a=1/3*[3 -4 2];

b=1/3*[1 2 0];n=0:30;

x=(1/2).^n;

y=filter(b,a,x);

stem(n,y,'fill'),grid on

xlabel('n'),title('系统响应y(n)')程序运行结果如图2-1所示。

参考程序:clf

a=[3 -4 2]/3;b=[1 2]/3; n=0:30;

x=(1/2).^n;

y=dlsim(b,a,x);stem(n,y,'fill');grid on;

xlabel('n');

title('系统响应y(n)');

2 离散时间系统的单位脉冲响应

系统的单位取样响应定义为系统在激励下系统的零状态响应,用表示。MATLAB求解单位取样响应可利用函数filter,并将激励设为前面所定义的impseq()函数。

【实例2-2】求解实例2-1中系统的单位取样响应时,MATLAB源程序为

参考程序1:a=[3 -4 2];b=[1 2];n=0:30;

x=(n==0);

h=filter(b,a,x);

stem(n,h,'fill'),grid on

xlabel('n'),title('系统单位取样响应h(n)')

参考程序2:

调用函数function y=impse q(n)

y=(n==0); %当参数为0时冲激为1,否则为0

该方法请自行编写。

程序运行结果如图2-2所示。

图2-2 实例2-2的系统单位脉冲响应

MATLAB另一种求单位取样响应的方法是利用控制系统工具箱提供的函数impz()来实现。impz()函数的常用语句格式为

impz(b,a,N)

其中,参数N通常为正整数,代表计算单位脉冲响应的样值个数。

【实例2-3】 已知某LTI系统的差分方程为

利用MATLAB的impz函数绘出该系统的单位取样响应。

解:MATLAB源程序为a=[3 -4 2];b=[1 2];n=0:30;

impz(b,a,30),grid on

title('系统单位取样响应h(n)')

程序运行结果如图2-3所示,比较图2-2和图2-3,不难发现结果相同。

图2-3 实例2-3的系统单位脉冲响应

3 离散时间信号的卷积和运算

由于系统的零状态响应是激励与系统的单位取样响应的卷积,因此卷积运算在离散时间信号处理领域被广泛应用。离散时间信号的卷积定

义为

(2-3)

可见,离散时间信号的卷积运算是求和运算,因而常称为“卷积和”。

MATLAB求离散时间信号卷积和的命令为conv,其语句格式为

y=conv(x,h)

其中,x与h表示离散时间信号值的向量;y为卷积结果。用MATLAB进行卷积和运算时,无法实现无限的累加,只能计算时限信号的卷积。

【实例2-4】利用MALAB的conv命令求两个长为4的矩形序列的卷积和,即,其结果应是长为7(4+4-1=7)的三角序列。用向量[1 1 1 1]表示矩形序列,MATLAB源程序为:

x1=[1 1 1 1];x2=[1 1 1 1];n=1:7;

g=conv(x1,x2);stem(n,g,'fill');grid on;

xlabel('n');

程序运行结果如图2-4所示。

图2-4 实例2-4的矩形序列卷积和

对于给定函数的卷积和,我们应计算卷积结果的起始点及其长度。两个时限序列的卷积和长度一般等于两个序列长度的和减1。

【实例2-5】已知两个信号序列: 求两序列的卷积和。参考程序:

clear

nf1=0:20;%建立f1的时间向量f1=0.5.^nf1;%建立f1信号subplot(2,2,1);

stem(nf1,f1,'filled');title('f1(n)');

nf2=0:10;%建立f2的时间向量

lf2=length(nf2);%取f2时间向量的长度f2=ones(1,lf2);%建立f2信号subplot(2,2,2);

stem(nf2,f2,'filled');title('f2(n)');

y=conv(f1,f2);%卷积运算subplot(2,1,2);stem(y,'filled');title('y(n)');

图2-5 实例2-5的两序列的卷积和

三.实验内容及步骤

1. 试用MATLAB命令分别求解(1)(2)离散时间系统的单位取样响应。(1)(2)

当x(n)=0.5nu(n)时,求(1)式系统的零状态响应。

2. 已知某系统的单位取样响应为,试用MATLAB求当激励信号为

时,系统的零状态响应。

四、实验中常用MATLAB函数

conv(); impz(); filter();dlsim();figure();plot();stem();axis();title(); xlabel(); ylabel(); text(); hold on;grid on;subplot();abs(); angle();length(); min(); max()

五、实验报告要求

(1) 简述实验目的及实验原理。

(2) 列出实验程序清单,描绘实验程序产生的曲线图形。(3)总结实验中的主要结论。

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

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

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

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