实验二(一)系统响应及系统稳定性
1、实验目的
(1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2、实验仪器
PC机一台 MATLAB软件 3、实验原理
在时域中,描写系统特性的方法是差分方程和系统的单位脉冲响应,在频域中可以用系统函数描述系统的特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应。本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳态响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都有界,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。系统的稳态输出时指当n趋近与无穷时,系统的输出。如果系统稳定,则信号加入系统后,系统输出的开始一段称为暂态效应,随着n的加大,幅度趋于稳定,达到稳定输出。
注意在一下实验中均假设系统的初始状态为零。 4、实验内容及步骤
(1)给定一个低通滤波器的差分方程为y(n)?0.05x(n)?0.05x(n?1)?0.9y(n?1),
输入信号
x1(n)?R8(n)x2(n)?u(n)
① 分别求出x1(n)?R8(n)和x2(n)?u(n)的系统响应y1(n)和y2(n),并画出波形; ② 求出系统的单位脉冲响应,画出波形。 (2)给定系统的单位脉冲响应为
h1(n)?R10(n)
h2(n)??(n)?2.5?(n?1)?2.5?(n?2)??(n?3)
用线性卷积法求x1(n)?R8(n)分别对系统h1(n)和h2(n)的输出响应y21(n)和
y22(n),并画出波形。
(3)给定一谐振器的差分方程为
y(n)?1.8237y(n?1)?0.9801y(n?2)?bx(n?1)?bx(n?2)
其中b?1/100.49。
用实验方法检查系统是否稳定。如果输入信号为u(n)时,画出系统输出波形
y3(n)。
5、实验用MATLAB函数介绍
(1)数字信号处理中常用到的绘图指令(只给出函数名,具体调用格式参看help) figure(); plot(); stem(); axis(); grid on; title(); xlabel(); ylabel(); text(); hold on; subplot()
(2)求单位脉冲响应和系统的响应函数 Impz();filter()
(3)卷积计算可能涉及的函数 conv(); length() 6、思考题
(1)如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应?如何求?
(2)如果信号经过一个低通滤波器,即信号的高频分量被滤掉,时域信号的频谱有何变化?用前面第一个实验结果分析。
7、实验报告要求
(1)简述实验目的及原理。
(2)写出实验步骤和程序清单,总结实验所得主要结论。 (3)简要回答思考题。
(二)线性卷积和循环卷积
1、实验目的
(1)进一步掌握线性卷积的计算机编程方法,利用卷积的方法观察系统响应的时域特性。
(2)掌握循环卷积的计算机编程方法,并比较与线性卷积的差别,验证二者之间的关系。利用循环卷积的方法观察、分析系统响应的时域特性。 2、实验仪器
PC机一台 MATLAB软件 3、实验原理 (1)线性卷积:
线性时不变系统(Linear Time-Invariant System, or L. T. I系统)输入、输出间的关系为:当系统输入序列为x(n),系统的单位脉冲响应为h(n),输出序列为y(n),则系统输出为:
y(n)?x(n)?h(n)?m????x(m)h(n?m)
?上式称为线性卷积。 (2)循环卷积
设两个有限长序列x1(n)和x2(n),长度分别为N1和N2,
N点DFTN点DFT???X2(k) x1(n)?????X1(k) x2(n)??如果
X(k)?X1(k)?X2(k)
则x(n)?IDFT[X(k)]??x1(m)x2((n?m))NRN(n)
m?0N?1上式称为x1(n)和x2(n)的循环卷积。 (3)两个有限长序列的线性卷积
序列x1(n)和x2(n),长度分别为L点和P点,x3(n)为这两个序列的线性卷积,则x3(n)为
x3(n)?x1(n)?x2(n)?m????x(m)x1?2(n?m)
且线性卷积x3(n)的非零值长度为L?P?1点。 (4)循环卷积与线性卷积的关系
序列x1(n)为L点长,序列x2(n)为P点长,若序列x1(n)和x2(n)进行N点的循环卷积xc(n),其结果是否等于该两序列的线性卷积xl(n),完全取决于循环卷积的长度。
由教材相关推导,得xc(n)?q????x(n?qN)Rl?N(n),也就是说,循环卷积是线
性卷积的周期延拓序列再取主值区间。
当N?L?P?1时循环卷积等于线性卷积,即xc(n)?xl(n); 当N?L?P?1时,两者不等。 4、实验内容
已知长为4的两个有限长序列
x(n)?(n?1)R4(n)h(n)?(4?n)R4(n)
(1)利用MATLAB的conv()函数求线性卷积y(n)?x(n)?h(n),并绘出图形。 (2)利用MATLAB构建的循环卷积函数计算下述4种情况下x(n)和h(n)循环卷积,并绘出图形。
x(n)⑤h(n) x(n)⑥h(n) x(n)⑦h(n) x(n)⑧h(n)
(3)调用fft()函数利用循环卷积定理计算下述4种情况下x(n)和h(n)循环卷积,并绘出图形。
x(n)⑤h(n) x(n)⑥h(n) x(n)⑦h(n) x(n)⑧h(n)
(4)比较线性卷积和循环卷积的结果,总结结论。 5、实验用MATLAB函数介绍
conv(); fft(); ifft(); stem(); figure(); fftfilt() MATLAB构建的循环卷积函数circonv()如下: function y=circonv(x1,x2)
%这里的两个序列x1,x2都是假设从1开始,一直到N; xn2=[x2(1),fliplr(x2)]; xn2(length(xn2))=[]; C=xn2; R=x2;
M=toeplitz(C,R); y=x1*(M); 6、思考题
若系统脉冲响应h(n)长为L,系统输入x(n)长为P,且P??L,应使用什么方法进行编程上机计算? 7、实验报告要求
(1)简述实验目的及实验原理。
(2)编程实现各实验内容,列出实验清单及说明。
(3)将实验结果和理论分析结果进行比较,并得出相应结论。 (4)简要回答思考题。