资源描述
课程名称
实验成绩
指导教师
实 验 报 告
院系
班级
学号
姓名
日期
实验二:系统响应及系统稳定性
一、实验目的
(1) 掌握求系统响应的方法。
(2) 掌握时域离散系统的时域特性。
(3) 分析、观察及检验系统的稳定性。
二、实验原理与方法
在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号, 可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。
实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当n→∞时,系统的输出。如果系统稳定,信号加入系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零
三、实验内容及步骤
编程如下:
(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)的系统响应,并画出其波形。
② 求出系统的单位脉冲响应,画出其波形。
A=[1,-0.9];B=[0.05,0.05]; %产生一个由1和0.9组成的序列
x1n=[1 1 1 1 1 1 1 1 zeros(1,50)]; %产生一个由8个1和50个0组成的行矩阵
x2n=ones(1,128); %产生单位矩阵
hn=impz(B,A,58);
subplot(2,2,1);y='hn';stem(hn,'g','.'); %显示图形
title('(a)系统单位脉冲响应h(n)')
y1n=filter(B,A,x1n); %调用filter解差分方程,求系统输出信号y1n
subplot(2,2,2);y='y1n';stem(y1n,'g','.');
title('(b)系统对R8(n)的响应y1(n)')
y2n=filter(B,A,x2n); % 调用filter解差分方程,求系统输出信号y2n
subplot(2,2,4);y='y1n';stem(y2n,'g','.');
title('(c)系统对u(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)的输出响应,并画出波形。
程序如下:
x1n=[1 1 1 1 1 1 1 1];%产生行矩阵
h1n=[ones(1,10) zeros(1,10)]; %产生10个110个0组成的行矩阵,表示h1(n)
h2n=[1 2.5 2.5 1 zeros(1,10)]; %产生行矩阵,表示h2(n)
y21n=conv(h1n,x1n); %调用conv函数
y22n=conv(h2n,x1n);
figure(2)%显示图形
subplot(2,2,1);
y='h1(n)';
stem(h1n,'g','.');
title('(d)系统单位脉冲响应h1(n)')
subplot(2,2,2);
y='y21(n)';
stem(y21n,'g','.');
title('(e)h1(n)与R8(n)的卷积y21(n)')
subplot(2,2,3);
y='h2(n)';
stem(h2n,'g','.');
title('(f)系统对单位脉冲响应h2(n)')
subplot(2,2,4);
y='y22(n)';
stem(y22n,'g','.');
title('(g)h2(n)与R8(n)的卷积y22(n)')
图形如下:
(3)给定一谐振器的差分方程为
y(n)=1.8237y(n-1)-0.9802y(n-2)+b0x(n)-b0x(n-2)
令b0=1/100.49,谐振器的谐振频率为0.4rad。
① 用实验方法检查系统是否稳定。输入信号为u(n)时,画出系统输出波形。 ② 给定输入信号为 x(n)=sin(0.014n)+sin(0.4n)
编程如下:
un=ones(1,256);
n=0:255;
xsin=sin(0.014*n)+sin(0.4*n);
A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49];
y31n=filter(B,A,un); %调用filter函数
y32n=filter(B,A,xsin);
figure(3)%显示图形
subplot(2,1,1);
y='y31(n)';
stem(y31n,'g','.');
title('(h)谐振器对u(n)的响应y31(n)')
subplot(2,1,2);
y='y32(n)';
stem(y32n,'r','.');
title('(i) 谐振器对xsin的响应y32(n)')
三、思考题
(1)如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应?如何求?、
答:可以。把输入信号进行分段,分别进行卷积,最后将各段卷积结果相加即可。
(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化? 用前面第一个实验结果进行分析说明。
答:时域信号的剧烈变化将被平滑,由实验内容(1)的内容可见,经过系统的低通滤波使输入信号和输出的阶跃变化变得缓慢上升与下降。
四、实验小结
通过本次实验,更加了解了几个函数的运行过程,也更家了解了MATLAB的使用方法,相信通过以后多的接触,能更好的理论与实际结合起来。
展开阅读全文