数字信号处理第一次试验:系统响应及系统稳定性

数字信号处理第一次试验:系统响应及系统稳定性

  • 前言
  • 一、实验目的
  • 二、实验原理与方法
  • 三、实验环境
  • 四、实验内容及步骤
  • 五、实验结果截图(含分析)
  • 六、思考题
  • 七、实验报告要求

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!

一、实验目的

(1)掌握求系统响应的方法。
(2)掌握时域离散系统的时域特性。
(3)分析、观察及检验系统的稳定性。

二、实验原理与方法

在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用 MATLAB 语言的工具箱函数 filter 函数。也可以用 MATLAB 语言的工具箱函数conv 函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。
系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。
系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的。系统的稳态输出是指当n→∞时,系统的输出。如果系统稳定,信号加入系统后,系统输 出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。
注意在以下实验中均假设系统的初始状态为零。

三、实验环境

Matlab 7.0及Matlab 2018b

四、实验内容及步骤

(1)编制程序,包括产生输入信号、单位脉冲响应序列的子程序,用 filter 函数或 conv函数求解系统输出响应的主程序。程序中要有绘制信号波形的功能。
(2)给定一个低通滤波器的差分方程为
y ( n ) = 0.05 x ( n ) + 0.05 x ( n − 1 ) + 0.9 y ( n − 1 ) y(n)=0.05x(n)+0.05x(n-1)+0.9y(n-1) y(n)=0.05x(n)+0.05x(n1)+0.9y(n1)
输入信号 x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n)
x 2 ( n ) = u ( n ) x_2(n)=u(n) x2(n)=u(n)
a) 分别求出系统对 x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n) x 2 ( n ) = u ( n ) x_2(n)=u(n) x2(n)=u(n)的响应序列,并画出其波形。
b) 求出系统的单位冲响应,画出其波形。
(3)给定系统的单位脉冲响应为
h 1 ( n ) = R 10 ( n ) h_1(n)=R_{10}(n) h1(n)=R10(n)
h 2 ( n ) = δ ( n ) + 2.5 δ ( n − 1 ) + 2.5 δ ( n − 2 ) + δ ( n − 3 ) h_2(n)=\delta(n)+2.5\delta(n-1)+2.5\delta(n-2)+\delta(n-3) h2(n)=δ(n)+2.5δ(n1)+2.5δ(n2)+δ(n3)

用线性卷积法分别求系统 h 1 ( n ) h_1(n) h1(n) h 2 ( n ) h_2(n) h2(n) x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n)的输出响应,并画出波形。
(4)给定一谐振器的差分方程为
y ( n ) = 1.8237 y ( n − 1 ) − 0.9801 y ( n − 2 ) + b 0 x ( n ) − b 0 x ( n − 2 ) y(n)=1.8237y(n-1)-0.9801y(n-2)+b_0x(n)-b_0x(n-2) y(n)=1.8237y(n1)0.9801y(n2)+b0x(n)b0x(n2)
b 0 = 1 / 100.49 b_0= 1/100.49 b0=1/100.49,谐振器的谐振频率为0.4rad。
a) 用实验方法检查系统是否稳定。输入信号为u(n)时,画出系统输出波形。
b) 给定输入信号为
x ( n ) = s i n ( 0.014 n ) + s i n ( 0.4 n ) x(n)=sin(0.014n)+sin(0.4n) x(n)=sin(0.014n)+sin(0.4n)
求出系统的输出响应,并画出其波形。

五、实验结果截图(含分析)

实验程序清单

%实验1:系统响应及系统稳定性
close all;clear
%=====内容1:调用filter解差分方程,由系统对u(n)的响应判断稳定性=====
A=[1,-0.9];B=[0.05,0.05];%系统差分方程系数向量B和A 
x1n=[1 1 1 1 1 1 1 1 zeros(1,50)];%产生信号xl(n)=R8(n)
x2n=ones(1,128);%产生信号x2(n)=u(n)
hn=impz(B,A,58);%求系统单位脉冲响应h(n)
subplot(2,2,1);y='h(n)';tstem(hn,y);%调用函数tstem绘图
title('(a)系统单位脉冲响应h(n)');box on 
y1n=filter(B,A,x1n);%求系统对xl(n)的响应yl(n)
subplot(2,2,2);y='y1(n)';tstem(y1n,y);
title('(b)系统对R8(n)的响应y1(n)');box on 
y2n=filter(B,A,x2n);%求系统对x2(n)的响应y2(n)
subplot(2,2,4);y='y2(n)';tstem(y2n,y);
title('(c)系统对u(n)的响应y2(n)');box on
%=====内容2:调用conv 函数计算卷积=====
x1n=[1 1 1 1 1 1 1 1];%产生信号x1(n)=R8(n)
h1n=[ones(1,10) zeros(1,10)];h2n=[1 2.5 2.5 1 zeros(1,10)];
y21n=conv(h1n,x1n);
y22n=conv(h2n,x1n);
figure(2)
subplot(2,2,1);y='h1(n)';tstem(h1n,y);%调用函数tstem绘图
title('(d)系统单位脉冲响应h1(n)');box on
subplot(2,2,2);y='y21(n)';tstem(y21n,y);
title('(e)hl(n)与R8(n)的卷积y21(n)');box on 
subplot(2,2,3);y='h2(n)';tstem(h2n,y);%调用函数tstem绘图
title('(f)系统单位脉冲响应h2(n)');box on 
subplot(2,2,4);y='y22(n)';tstem(y22n,y);
title('(g)h2(n)与R8(n)的卷积y22(n)');box on
%====内容3:谐振器分析====
un=ones(1,256);%产生信号u(n)
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];%系统差分方程系数向量B和A 
y31n=filter(B,A,un);%谐振器对u(n)的响应y31(n)
y32n=filter(B,A,xsin);%谐振器对u(n)的响应y31(n)
figure(3)
subplot(2,1,1);y='y31(n)';tstem(y31n,y);
title('(h)谐振器对u(n)的响应y31(n)');box on 
subplot(2,1,2);y='y32(n)';tstem(y32n,y);
title('(i)谐振器对正弦信号的响应y32(n)');box on

function tstem(xn,yn)
%时域序列绘图函数
% xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串)
n=0:length(xn)-1;
stem(n,xn,'.');
xlabel('n');ylabel(yn);
axis([0,n(end),min(xn),1.2*max(xn)])

实验程序运行结果及分析讨论
程序运行结果如下图所示。
实验内容(2)系统的单位冲响应、系统对 x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n) x 2 ( n ) = u ( n ) x_2(n)=u(n) x2(n)=u(n)的响应序列分别如图(a)、(b)和©所示;
实验内容(3)系统 h 1 ( n ) h_1(n) h1(n) h 2 ( n ) h_2(n) h2(n) x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n)的输出响应分别如图(e)和(g)所示;
实验内容(4)系统对u(n)和 x ( n ) = s i n ( 0.014 n ) + s i n ( 0.4 n ) x(n)=sin(0.014n)+sin(0.4n) x(n)=sin(0.014n)+sin(0.4n)的响应序列分别如图(h)和(i)所示。由图(h)可见,系统对u(n) 的响应逐渐衰减到零,所以系统稳定。由图(i)可见,系统对 x ( n ) = s i n ( 0.014 n ) + s i n ( 0.4 n ) x(n)=sin(0.014n)+sin(0.4n) x(n)=sin(0.014n)+sin(0.4n)的稳态响应近似为正弦序列,这一结论验证了该系统的谐振频率是0.4 rad。
数字信号处理第一次试验:系统响应及系统稳定性_第1张图片
数字信号处理第一次试验:系统响应及系统稳定性_第2张图片
数字信号处理第一次试验:系统响应及系统稳定性_第3张图片

六、思考题

(1) 如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应? 如何求?
(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号会有何变化,用前面第一个实验结果进行分析说明。
(3)在MATLAB中filter和conv函数的区别
答:(1) 如果输入信号为无限长序列,系统的单位脉冲响应是有限长序列,可否用线性卷积法求系统的响应。①对输入信号序列分段;②求单位脉冲响应 h(n)与各段的卷积;③将各段卷积结果相加。具体实现方法有第三章介绍的重叠相加法和重叠保留法。
(2)如果信号经过低通滤波器,把信号的高频分量滤掉,时域信号的剧烈变化将被平滑,由实验内容(1)结果图 10.1.1(a)、(b)和©可见,经过系统低通滤波使输入信号 δ ( n ) \delta(n) δ(n) x 1 ( n ) = R 8 ( n ) x_1(n)=R_8(n) x1(n)=R8(n) x 2 ( n ) = u ( n ) x_2(n)=u(n) x2(n)=u(n)的阶跃变化变得缓慢上升与下降。
(3)对于conv(signal,hn,'same')来说,是居中对齐的,当hn=[0,1,0]时卷积出的序列和signal一致;当hn=[1,0,0]时卷积出的序列前移一位;对于filter(hn,1,siganl)来说,是左对齐的,当hn=[1,0,0]时卷积获得原序列,hn=[0,1,0]时卷积出的结果为原序列的延迟。

七、实验报告要求

(1)简述在时域求系统响应的方法。
(2)简述通过实验判断系统稳定性的方法。分析上面第三个实验的稳定输出的波形。
(3)对各实验所得结果进行简单分析和解释。
(4)简要回答思考题。
(5)打印程序清单和要求的各信号波形。

你可能感兴趣的:(数字信号处理,matlab)