信号与系统实验指导书 下载本文

impulse(b3,a3)

极点对冲激响应波形的主要影响在于:一是冲激响应波形是指数衰减还是指数增长或等幅震荡,主要取决于极点位于s左半平面还是右半平面或在虚轴上;二是冲激响应波形衰减或增长快慢,主要取决于极点离虚轴距离的远近;三是冲激响应波形震荡的快慢,主要取决于极点离实轴距离的大小。至于系统函数的零点分布则只影响冲激响应函数的幅度和相位,对响应的模式没有影响。

2. 实践编程

(1) 试用MATLAB画出下列系统函数的零极点分布图以及对应的时域单位冲激响应波形,并分析系统函数极点对时域波形的影响。

H(s)?1?s?1?2?49

(2) 已知系统函数为

s2?4s?3H(s)?32

s?s?7s?2试用MATLAB命令画出其零极点分布图,并判断该系统是否稳定。

实验分析

观察实验结果,分析系统函数零极点的位置与冲激响应波形之间的关系;分析系统函数极点分布与系统稳定性的关系。

实验总结

总结实验认识、过程、效果、问题、收获、体会、意见和建议。

实验五 典型离散信号及其MATLAB实现

实验目的

1.掌握MATLAB语言的基本操作,学习基本的编程功能; 2.掌握MATLAB产生常用离散时间信号的编程方法; 3.掌握MATLAB计算卷积的方法。

17

实验原理

1. MATLAB常用离散时间信号

(1) 单位采样序列:?(n)??

?1?0n?0 n?0在MATLAB中可以利用zeros()函数实现。 (2) 单位阶跃序列:u(n)?

?1?0n?0n?0

在MATLAB中可以利用ones()函数实现。 (3) 正弦序列:x(n)?Asin(2?fn/Fs??) 在MATLAB中可以利用sin()函数实现。 (4) 复正弦序列:x(n)?ej?n

在MATLAB中可以利用exp()函数实现。 (5) 指数序列:x(n)?an

在MATLAB中可以利用x=a.^n命令实现。 (6) 下面的函数也可以产生特定的序列 y=fliplr(x)——信号的翻转; y=square(x)——产生方波信号; y=sawtooth(x)——产生锯齿波信号; y=sinc(x)——产生sinc函数信号。

2. 离散时间信号的卷积

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

y(n)?x(n)*h(n)?m????x(m)h(n?m)

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

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

y=conv(x,h)

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

18

实验内容

1. 离散信号的产生

离散信号的图形显示使用离散二维柱图函数stem()。编写MATLAB程序,产生下列典型脉冲序列。

(1) 单位脉冲序列:起点n0=0,终点nf=10,在ns=3处有一单位脉冲。

(2) 单位阶跃序列:起点n0=0,终点nf=10,在ns=3前为0,在ns处及以后均为1(n0?ns?nf)。 (3) 实指数序列:xn3?(0.75) (4) 复指数序列:x4?e(?0.2?j0.7)n

其MATLAB程序如下 n0=0;nf=10;ns=3;

n1=n0:nf;x1=[(n1-ns)==0]; %单位脉冲序列 n2=n0:nf;x2=[(n2-ns)>=0]; %单位阶跃序列 n3=n0:nf;x3=(0.75).^n3; %实指数序列 n4=n0:nf;x4=exp((-0.2+0.7j)*n4); %复指数序列 subplot(2,2,1),stem(n1,x1); subplot(2,2,2),stem(n2,x2); subplot(2,2,3),stem(n3,x3); figure

subplot(2,2,1),stem(n4,real(x4)); subplot(2,2,2),stem(n4,imag(x4));

subplot(2,2,3),stem(n4,abs(x4)); subplot(2,2,4),stem(n4,angle(x4));

2. 离散时间信号的卷积

用MATLAB实现两个有限长度序列的卷积运算,参考程序如下。 x=[3 4 0 -2 2 3 5]; %[x,nx]为第一个信号 nx=[-3:3];

h=[1 4 5 6 0 1]; %[h,nh]为第二个信号 nh=[N:N+5]; % N是你的学号最后两位 ny1=nx(1)+nh(1);

ny2=nx(length(x))+nh(length(h)); ny=[ny1:ny2];

y=conv(x,h); %conv(x,h)可以实现两个有限长度序列的卷积

19

subplot(221),stem(nx,x),grid on;title('f1(n)'); subplot(222),stem(nh,h),grid on;title('f2(n)'); subplot(212),stem(ny,y),grid on;title('f1(n)*f2(n)'); 将学号最后两位带入后求出卷积结果。

3. 实践编程

(1)计算卷积 。

用MATLAB计算序列a=[5 7 3 -1 2]和b=[2 6 0 -4]的离散卷积。 要求,首先用手工计算,然后用MATLAB编程计算,最后作图验证手工计算结果。

(2)信号相乘并作图 。其中,信号相乘的数学描述为:x?n??x1?n?*x2?n?。

要求用MATLAB实现: X?X1*X2 其中,X1=[1 0.7 0.4 0.1 0] X2=[0.1 0.3 0.5 0.7 0.9 1]。

实验分析

观察实验结果,掌握、分析典型的离散时间信号,分析卷积运算。

实验总结

总结实验认识、过程、效果、问题、收获、体会、意见和建议。

20