首页 百科知识 离散系统的冲激响应和阶跃响应

离散系统的冲激响应和阶跃响应

时间:2023-10-10 百科知识 版权反馈
【摘要】:当离散时间线性时不变系统的输入为单位阶跃u信号时,离散时间线性时不变系统的单位阶跃响应s为在MATLAB中,可以利用函数zeros产生一个有限区间上的单位冲激序列δ,在2.2节中我们已经采用了这种方法。而冲激响应为h= 0.9nu,输出信号是二者的卷积,试在区间[-5, 50]上产生并画出输入、冲激和输出序列。由图3-11可知,用filter函数和用impz函数求得的单位冲激响应结果完全相同,而用filter函数和用stepz函数求得的单位阶跃响应结果也完全相同。

3.3 离散LTI系统的冲激响应和阶跃响应

3.3.1 单位冲激序列δ(n)

单位冲激序列δ(n)定义为

img186

δ(n)在n =0时取值为1,n≠0时取值为0,如图3-7所示。

img187

图3-7 单位冲激序列

离散时间线性时不变系统(用T(·)表示)的冲激响应h(n)定义为输入为δ(n)时系统的响应,即

h(n)= T(δ(n)).

3.3.2 单位阶跃响应

单位阶跃序列u(n)定义为

img188

u(n)的图像如图3-8所示。

δ(n)与u(n)之间的关系为

δ(n)= u(n)-u(n-1),

这就是u(n)的后向差分。

当离散时间线性时不变系统的输入为单位阶跃u(n)信号时,离散时间线性时不变系统的单位阶跃响应s(n)为

img189

由上式有h(n)= s(n)-s(n-1),这就是s(n)的后向差分。

img190

图3-8 单位阶跃序列

3.3.3 冲激响应与阶跃响应的MATLAB实现

1.单位冲激序列

在MATLAB中,可以利用函数zeros(1, N)产生一个有限区间上的单位冲激序列δ(n),在2.2节中我们已经采用了这种方法。然而,逻辑关系式n = =0是实现δ(n)的一种绝妙方法。例如:要实现在区间n1≤n0≤n2

img191

可以用下面的函数:

img192

2.单位阶跃序列

在MATLAB中,可以利用函数ones(1, N)产生一个有限区间上的单位阶跃序列u(n),在2.2节中我们已经采用了这种方法。然而一种更好的途径是利用逻辑关系式n>=0。例如:要实现在区间n1≤n0≤n2

img193

可以用下面的函数:

function[x, n]= stepseq(n0, n1, n2)

%构造x(n)= u(n-n0)

%调用形式:[x, n]= stepseq(n0, n1, n2)

n =[n1:n2] ;

x = [(n-n0)>=0] ;

例3.7 在给出的区间上产生并画出下面序列:

(a)x(n)=2δ(n+2)-δ(n-4),-5≤n≤5;

(b)x(n)= n(u(n)-u(n-10))+10e-0.3(n-10)(u(n-10)-u(n-20)), 0≤n≤20。

MATLAB求解:

%imseq为构造序列x(n)= delta(n-n0)的函数

%stepseq为构造序列x(n)= u(n-n0)的函数

%先求序列(a)

img194

%再求序列(b)

img195

运行结果如图3-9所示。

例3.8 对一个线性时不变系统,设其输入序列为矩形冲激信号

x(n)= u(n)-u(n-10),

img196

图3-9 例3.7中的序列(a)和(b)

而冲激响应为h(n)= 0.9nu(n),输出信号是二者的卷积,试在区间[-5, 50]上产生并画出输入、冲激和输出序列。

MATLAB求解:

%stepseq为构造序列x(n)= u(n-n0)的函数

img197

img198

运行结果如图3-10所示。

img199

图3-10 例3.8运行结果

3.单位冲激响应和单位阶跃响应的MATLAB求解

MATLAB中, filter函数可以用来计算单位冲激响应和单位阶跃响应,而impz函数可用来直接计算单位冲激响应, stepz函数可用来直接计算单位阶跃响应。

(1)filter函数

filter函数是利用递归滤波器或非递归滤波器对数据进行滤波。因为一个离散系统可以看做一个滤波器,系统的输出就是输入经过滤波器滤波的结果。filter函数有两种格式:

y = filter(b, a, x);

[y, zf]= filter(b, a, x, zi);

格式y = filter(b, a, x)是由b和a组成的系统对输入x进行滤波,如果输入为单位冲激信号δ(n),那么输出y就是系统的单位冲激响应h(n);如果输入为单位阶跃信号u(n),那么输出y就是系统的单位阶跃响应。

(2)impz函数

impz函数的调用格式为

impz(b, a);

impz(b, a)可直接给出系统的单位冲激响应,并且画出系统的单位冲激响应的图形。

(3)stepz函数

stepz函数的调用格式为

stepz(b, a);

stepz(b, a)可直接给出系统的单位阶跃响应,并且画出系统的单位阶跃响应的图形。

例3.9 计算下式的单位冲激响应和单位阶跃响应:

img200

MATLAB求解:

img201

img202

img203

图3-11 单位冲激响应和单位阶跃响应

运行结果如图3-11所示。

由图3-11可知,用filter函数和用impz函数求得的单位冲激响应结果完全相同,而用filter函数和用stepz函数求得的单位阶跃响应结果也完全相同。

例3.10 (M点移动平均滤波器的实现)实际检测到的信号往往受到了噪声的污染,设信号用s(n)表示,噪声用d(n)表示,x(n)是实际检测到的信号,它们满足

x(n)= s(n)+d(n).

这时,可采用如下M点移动平均滤波器进行平滑滤波:

img204

M点移动平均滤波器的MATLAB实现:

img205

img206

运行结果如图3-12所示。

img207

图3-12 M点移动平均滤波器的实现

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈