MATLAB实验二 下载本文

实验二(一)系统响应及系统稳定性

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)简要回答思考题。