信号处理导论中文版.docx
- 文档编号:8830465
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:344
- 大小:1.90MB
信号处理导论中文版.docx
《信号处理导论中文版.docx》由会员分享,可在线阅读,更多相关《信号处理导论中文版.docx(344页珍藏版)》请在冰点文库上搜索。
信号处理导论中文版
第三章离散系统
本章的讨论(tǎolùn)重点是离散系统,尤其是离散(lísàn)线性时不变系统(xìtǒng)。
线性时不变系统的输入输出(I/O)方程可以用输入信号与系统(xìtǒng)冲激响应的离散卷积来表示。
根据(gēnjù)系统的冲激响应是否是有限延时还是无限延时可以分为有限冲激响应(FIR)和无限冲激响应(IIR)两种。
本章的主要目的是为FIR滤波器设计算法。
FIR滤波算法可以分为按块(BlocktoBlock)和样值处理(SampletoSample)算法两种。
分批处理算法中,输入信号视为一次抽样的块。
将这一块信号与滤波器冲激响应卷积得到一个输出块。
如果输入序列时限非常长或者是无限延时,这种方法需要做些改进,比如说可以将输入信号分成多个块,每一块的长度都可以分别处理,可以一次滤波一块,然后再把输出拼凑在一起。
样值处理算法中,一次只处理一个抽样。
滤波器可以看作是一台状态机器,也就是说,把输入抽样与滤波器当前的状态结合起来计算当前的输出抽样,同时也更新滤波器的内部状态为下一次处理作准备。
当输入信号特别长的时候,这种方法对于实时运算特别有效。
滤波器自身特性变化的自适应滤波就适合于使用这种算法。
目前的DSP芯片对这种算法也很有效。
§3.1输入输出规则
离散系统所实现的就是将输入的离散抽样序列x(n),根据一定的输入/输出(I/O)规则转换成输出序列的运算。
I/O规定了怎样由已知的输入计算输出。
样值处理方法,我们可以认为其I/O规则就是一次处理一个输入抽样。
[x,x,x,L,x,L]
123
n
−H→
[y,y,y,L,y,L]
123
n
按块处理的方法,输入序列划分成块,每次处理一块。
⎡x0⎤
⎡y0⎤
x=⎢x1⎥−−H→⎢y1⎥=y
⎢⎥
⎢⎥
⎢x2⎥
⎢⎥
⎣M⎦
⎢y2⎥
⎢⎥
⎣M⎦
因此其I/O规则也就是将输入向量根据某种函数映射成输出向量。
y=H[x]
对于线性系统,这种映射就是用矩阵H作线性变换。
线性定常系统,其变换矩阵H根据系统的冲激响应有特定的结构。
例3.1.1
例3.1.2
y(n)=2x(n)+3x(n-1)+4x(n-2)。
n时刻的输出是此前连续三个输入抽样的加权和。
也就是说,n时刻,线性系统必须记住前两个时刻的抽样x(n-1)、x(n-2)。
例3.1.3将长度(chángdù)为L=4的输入(shūrù)抽样{x0,x1,x2,x3}视为一块(yīkuài),例3.1.2所示的线性系统将其转换(zhuǎnhuàn)成长度为6的输出(shūchū)序列。
⎡y0⎤
⎢⎥
⎢y1⎥
⎡2
⎢
⎢3
⎢y3⎥
⎢y⎥
⎢
⎢⎣y5⎥⎦
4⎥
⎢0
⎢0
⎢
⎢⎣0
0
2
3
4
0
0
0
0
2
3
4
0
0⎤
⎥
0⎥⎡x0⎤
y=⎢
⎢y⎥
2
⎥=⎢
⎢4
0⎥⎢x⎥
2⎥⎢x2⎥
⎥⎢1⎥=Hx
3⎥⎢x⎥
⎥⎣3⎦
4⎥⎦
输出序列的长度比输入序列长度大2,因为系统必须保存两个抽样,最后的两个输出可以认为是输入消失后(input-off)的过渡状态。
如果输入的抽样为L=5,那么,输出的序列为:
⎡y0⎤
⎡2
0
0
0
0⎤
⎢⎥⎢
⎢y1⎥⎢32
0
00⎥⎡x⎤
⎥0
⎢4
3
2
0
0⎥⎢x
⎥⎢1
⎢0
4
3
2
0⎥⎢x2
⎢0
0
4
3
2⎥⎢x
⎢y5⎥
⎢0
0
0
43⎥⎢⎣x4⎥⎦
⎢⎥⎢
⎣y6⎦⎣0
0
0
0
4⎥
⎦
⎢⎥
y=⎢y3⎥=
⎢y2⎥
⎢
⎢y⎥
⎢
4⎥
⎢
⎥
⎥
⎥=Hx
⎥⎢⎥
⎥
3
例3.1.4、例3.1.2的输入输出方程也可以用下列样值处理的算法来实现:
y(n)=2x(n)+3w1(n)+4w2(n)w2(n+1)=w1(n)
w1(n+1)=x(n)
附加的w1(n)、w2(n)可以视为系统的内部状态。
当前的输入结合当前的内部状态足以计算当前的输出。
由有下一个输入x(n+1)所产生的输出y(n+1)要求我们知道已经更新的内部状态。
而此时的内部状态(n+1时刻的内部状态)已经更新。
也就是说,n+1时刻,我们有:
y(n+1)=2x(n+1)+3w1(n+1)+4w2(n+1)w2(n+2)=w1(n+1)
w1(n+2)=x(n+1)
这样的计算是从某个时刻开始并且不断重复,我们可以归结为以下算法:
foreachnewinputxdo:
y:
=2x+3w1+4w2w2:
=w1
w1:
=x
一旦内部状态的当前值在计算输出y的时候使用过以后,他们就被后两个赋值的方程更新,用来计算下一个输入的抽样。
因此{w1、w2}必须在一次调用到下一次调用的过程中保存。
{w1、w2}更新的次序非常重要,也就是首先更新w2,接下来更新w1,以避免把正确的值覆盖。
例3.1.2、例3.1.3、例3.1.4是同一个离散系统的等效描述方式。
究竟是采用哪一种形式取决于应用的场所,也就是要看输入序列是有限长还是无限长、输入抽样是否在接收到以后应该立刻处理还是可以延缓处理。
上面的例子实际上是用下述I/O方程描述的、具有更一般形式的状态空间的特例:
y(n)=g(x(n),s(n))————输出方程
s(n+1)=f(x(n),s(n))————状态更新(gēngxīn)方程。
⎡w1(n)⎤
其中(qízhōng)s(n)是维数一定(yīdìng)的状态方程矢量。
比如说前面的例子中,s(n)=⎢w(n)⎥。
I/O算法(suànfǎ)根据当前
⎣2⎦
已知的输入(shūrù)x(n)和当前的状态s(n)计算出当前的输出y(n)和下一时刻的状态s(n+1)。
也可以将它表述成
下面的重复演算形式:
foreachnewinputxdo:
y:
=g(x,s)
s:
=f(x,s)
线性时不变系统的状态空间实现是由函数f和g来表述的,而f和g
又是其变量的线性函数,即:
f(x,s)=As+Bxg(x,s)=Cs+Dx
ABCD维数各不相同。
对于上例,我们有:
y:
=2x+3w+4w=
12
[3,4
]
⎡w⎤
1
⎢⎥
⎣w2⎦
+2x=[3,4]s+2x=g(x,s)
⎡w1⎤⎡x⎤⎡0
s=:
==
⎢⎥⎢⎥⎢
⎣w2⎦⎣w1⎦
⎣1
0⎤⎡w1⎤+⎢1⎥x=⎡0
0⎦⎣w2⎦⎣0⎦
⎥⎢⎥⎢⎥⎢
⎣1
0⎤⎢1⎥
s+x=f(x,s)
0⎦
⎥⎢⎥
⎣0⎦
例3.1.5
y(n)=0.5y(n-2)+2x(n)+3x(n-1)
输出由常系数差分方程递归计算得到。
任意时刻n,系统必须记住前一个输入x(n-1)和前一个时刻的输出y(n-1)。
例3.1.6例3.1.5也可以将I/O方程表述为样值运算算法:
foreachnewinputxdo:
y:
=0.5w1+2x+3v1
w1:
=y
v1:
=x
它对应于所谓差分方程的直接实现形式,要求计算并且更新附加量{w1,v1}。
例3.1.5所示的I/O计算规则也可与下列所谓的规范形式相对应:
foreachnewinputxdo:
w0:
=x+0.5w1y:
=2w0+3w1
w1:
=w0
y(n)=1[x(n+2)+x(n+1)+x(n)+x(n-1)+x(n-2)]为线性时不变系统
5
y(n)=2x(n)+3
y(n)=x2(n)
非线性、时不变系统
y(n)=2x(n)+3x(n-1)+x(n)x(n-1)
y(n)=med[x(n+1),x(n),x(n-1)]--取中间值
y(n)=nx(n)
y(n)=1{x(0)+x
(1)+Lx(n-1)}
n
线性、时变(shíbiàn)系统
y(n+1)=
nn+1
y(n)+
1
n+1
x(n)
例3.1.16
⎧x(n2)
y(n)=⎨
⎩0
n为偶数(ǒushù)n为奇数(jīshù)
相当于一个上采样器。
在抽样(chōuyànɡ)之间插入零,因此输出将输入抽样的数量增加。
[x,x,x,x,L,x,L]
0123
n
−H→
[x,0,x,0,x,0,x,0L,x,0,L]
0123
n
§3.2线性与时不变性
x(n)=a1x1(n)+a2x2(n)
一个系统是线性系统,则当输入是由两个(liǎnɡɡè)抽样序列x1(n)、x2(n)的线性组合时,其输出序列也是其相应输出序列的线性组合。
即:
时,其输出为
(3.2.1)
(3.2.2)
y(n)=a1y1(n)+a2y2(n)
为了验证一个系统是否是线性系统,必须分别验证三个输出序列,y(n)、y1(n)、y2(n)满足(3.2.2)
x1(n)
a1
x1(n)
y1(n)
a1
H
x(n)
y(n)
H
a1y1(n)+a2y2(n)
H
x2(n)
a2
x2(n)
y2(n)
a2
式。
时不变系统是指系统不随时间变化而改变。
相同的输入序列,无论在何时施加到系统上,将产生相同的输出。
输入信号延时(右移)或提前(左移)D单位时间,输出序列也将相应延时(右移)或提前(左移)D单位时间。
00D
时不变可以用下图来解释。
D
H
)
yD(n)
H
y(n)
D
x(n-D
xD(n)
x(n)y(n-D)x(n)
输入信号经系统先延时后变换和输入信号先经过系统变换后的输出再延时得到(dédào)的输出序列应该是一样的。
设YD(n)为先延时,后变换(biànhuàn)得到的输出。
Y(n-D)为先变换,后延时得到(dédào)的输出。
若yD(n)=y(n-D),那么(nàme),该系统是时不变系统。
例3.2.1
若
则而
y(n)=2x(n)+3
x(n)=a1x1(n)+a2x2(n)。
y(n)=2[a1x1(n)+a2x2(n)]+3
[a1y1(n)+a2y2(n)]=a1[2x1(n)+3]+a2[2x2(n)+3]
显然输入为两个信号的线性叠加时,输出并不是两个信号单独(dāndú)作用时输出的线性叠加,既:
[a1y1(n)+a2y2(n)]≠y[a1x1(n)+a2x2(n)]
。
所以为非线性系统。
y(n)=x2(n)
x(n)=a1x1(n)+a2x2(n)时,则
y(n)=[ax(n)+ax(n)]2=a2x2(n)+2aax(n)x(n)+a2x2(n)
1122
22
11121222
非线性系统。
≠a1x1(n)+a2x2(n)=a1y1(n)+a2y2(n)
而
为时变系统。
同理,若:
y(n)=nx(n)yD(n)=nxD(n)=nx(n-D)
y(n-D)=(n-D)x(n-D)
yD(n)≠y(n-D)
y(n)=x(2n)yD(n)=xD(2n)=x(2n-D)
y(n-D)=x(2(n-D))=x(2n-2D)
y(n-D)≠yD(n)
所以是时变系统。
这是一个下采样器。
我们可以从原信号的输出和延时信号的输出更直观的看出:
[x,x,x,x,x,x,xL]
0123456
−H→
−H→
[x,x,x,x,L]
0246
[0,x,x,x,x,x,x,xL]
0123456
[0,x,x,x,L]
135
第一种情况下,输入经系统变换后每两个输入丢掉(diūdiào)丢掉一个。
下面一种情况下,输入延时一个单位,输出同样每两个(liǎnɡɡè)输入被丢掉一个,得到的输出并不是上面的输出延时一个单位。
所以为时变系统。
§3.3冲激响应。
(离散)线性时不变系统(xìtǒng)可以用其冲激响应序列h(n)来唯一(wéiyī)表征。
而冲激响应h(n)就是系统对于(duìyú)单位冲激输入δ(n)的响应。
⎧1当
δ(n)=⎨
⎩0当
n=0
h(n)
n≠0
δ(n)
H
δ(n)
h(n)
0nn
因此,我们有:
δ(n)⇒h(n)
或者说:
{1,0,0,0,L}⇒{h0,h1,h2,L}
若系统是时不变系统,就意味单位冲激输入延时一段时间,(比如说,D单位时间),其冲激响应输出将会是大小一样,但延时为D的输出h(n-D)。
δ(n-D)⇒h(n-D)
其中D可以正,也可以负。
线性性就意味任意输入的线性组合将会产生同样的线性组合输出。
δ(n)+δ(n-1)+δ(n-2)⇒h(n)+h(n-1)+h(n-2)
更一般性,三个输入的加权线性组合:
x(0)δ(n)+x
(1)δ(n-1)+x
(2)δ(n-2)
将会产生同样三个输出的加权线性组合:
x(0)h(n)+x
(1)h(n-1)+x
(2)h(n-2)
任意输入序列,{x(0),x
(1),x
(2),…}可以看作是延时并且权重为单位冲激函数的线性组合。
x(n)=x(0)δ(n)+x
(1)δ(n-1)+x
(2)δ(n-2)+L
上式中,n=0则只有第一项不为零,其余各项为零。
n=1则只有第二项不为零,其余各项为零等等。
因而得到。
y(n)=x(0)h(n)+x
(1)h(n-1)+x
(2)h(n-2)+L
或写作(xiězuò):
y(n)=∑x(m)h(n-m)
m
(LTIForm)(3.3.2)
上式又称为(chēnɡwéi)输出函数的LTI形式。
其实就是输入(shūrù)序列x(n)与滤波器冲激响应序列(xùliè)h(n)的离散(lísàn)时间卷积。
也可以说,LTI(线性时不变系统)就是一个卷积器。
y(n)=∑h(m)x(n-m)
m
(DirectForm)(3.3.3)
一般说来,上式中的求和m值可以扩展到负数,主要取决于输入信号。
改变求和式当中求和项的次序,也可以写成另一种形式:
图3.3.3线性组合的响应
§3.4FIR和IIR滤波器
离散时不变系统根据其冲激响应是否是有限延时还是无限延时可以分成FIR(有限冲激响应)和IIR(无限冲激响应)两类。
FIR冲激响应IIR冲激响应
FIR滤波器的冲激响应仅仅延续有限长时间,也就是说,0≤n≤M,其余均为零。
{h0,h1,h2,L,hM,0,0,0,L}
M称为滤波器的阶数。
FIR滤波器冲激响应矢量h的长度为:
Lh=M+1
冲激响应的系数{h0,h1,h2,L,hM}在不同的教科书上有不同的名称,比方说,滤波器系数、滤波器的权、
filterstaps(滤波器的节拍)。
式3.3.3又成为卷积的直接形式。
当m>M和m<0时,h(m)都不存在,只有
0 所以3.3.3式又可以写成为: M y(n)=∑h(m)x(n-m) m=0 FIR卷积方程(fāngchéng)3.4.1 或者(huòzhě)写成显式表达式: y(n)=h(0)x(n)+h (1)x(n-1)+h (2)x(n-2)+L+h(M)x(n-M) 3.4.2 因此(yīncǐ),I/O方程(fāngchéng)可以由当前的输入抽样x(n)与过去(guòqù)的M个抽样x(n-1),x(n-2),…,x(n-M)的加权和得 到。 例3.4.1 y(n)=2x(n)+3x(n-1)+4x(n-2)可以视为二阶滤波器,滤波器的系数h=[h0,h1,h2]=[2,3,4]y(n)=h0x(n)-h1x(n-1)+h3x(n-2) 例3.4.3求下列FIR滤波器的冲激响应系数h。 y(n)=2x(n)+3x(n-1)+5x(n-2)+2x(n-3) 滤波器系数: h=[h0,h1,h2,h3]=[2,3,5,2]为一个三阶滤波器 y(n)=x(n)-x(n-4) 滤波器系数: h=[1,0,0,0,-1]为一个四阶滤波器 当输入为冲激序列时x(n)=δ(n),输出也是冲激响应序列: h(n)=2δ(n)+3δ(n-1)+5δ(n-2)+2δ(n-3) 和 h(n)=δ(n)-δ(n-4) 另一方面,IIR滤波器冲激响应h(n)时限无限延长,0 ∞ y(n)=∑h(m)x(n-m) m=0 IIR滤波方程3.4.3 I/O方程计算不可行,因为我们无法实现无限项求和。 我们只能局限于一类IIR滤波器,这类滤波器系数不是任意的,而是相互之间有藕合。 这种系数与系数之间的耦合关系又称为常系数线性差分方程。 对于这一类IIR滤波器,(3.4.3)式(IIR滤波方程)又可以重新排列为差分方程,差分方程允许我们以递归方式计算y(n)。 例3.4.4一IIR滤波器冲激响应系数h(n)的耦合关系为以下差分方程: h(n)=h(n-1)+δ(n) 试求其输入输出的差分方程? 解: 令n=0,我们有h(0)=h(-1)+δ(0)=h(-1)+1 假设初始条件为: h(-1)=0,则h(0)=1。 n>0时,冲激函数δ(n)=0,因此差分方程为: h(n)=h(n-1),也就是说: h(0)=h (1)=h (2)=…=1。 所有系数都是一样的。 因此我们有: ⎧1 h(n)=u(n)=⎨ ⎩0 n≥0 n≤-1 其中(qízhōng),u(n)为离散时间单位(dānwèi)阶跃序列。 将上式代入卷积方程(fāngchéng)(3.4.3),我们(wǒmen)得到: ∞ ∞ y(n)=∑h(m)x(n-m)=∑x(n-m) m=0m=0 或者(huòzhě)写成: y(n)=x(n)+x(n-1)+x(n-2)+x(n-3)+L 将n换成n-1,前一时刻的输出为: y(n-1)=x(n-1)+x(n-2)+x(n-3)+L 由此得到: y(n)-y(n-1)=x(n) 因此,I/O卷积方程等效于下列递归差分方程: y(n)=y(n-1)+x(n) 这是一个累加器,或者叫做离散时间积分器。 注意到I/O卷积方程(递归差分方程)与h(n)的差分方程具有相同的形式。 实际上,冲激响应差分方程中,只要将y(n)=h(n)、x(n)=δ(n)代入滤波器系数所满足的差分方程,就可以得到递归差分方程。 例3.4.5设滤波器系数满足下列差分方程: h(n)=ah(n-1)+δ(n)a为常数。 求输出y(n)与输入x(n)之间的差分方程。 解: h(0)=ah(-1)+δ(0) h (1)=ah(0)+δ (1)=a⋅1+0=ah (2)=ah (1)+δ (2)=a⋅a+0=a2h(3)=ah (2)+δ(3)=a⋅a2+0=a3 以此类推,我们得到: 代入卷积方程,得到: h(n)=anu(n)=⎪⎧a ⎪ n ⎩0 n≥0 n≤-1 y(n)=x(n)+ax(n-1)+a2x(n-2)+a3x(n-3)+L =x(n)+a[x(n-1)+ax(n-2)+a2x(n-3)+L] y(n)=ay(n-1)+x(n) 可以看出,它所满足的方程正好是滤波器系数所满足的差分方程。 例3.4.6求满足下列I/O差分方程的IIR滤波器的卷积方程和冲激响应: y(n)=-0.8y(n-1)+x(n) 分方程: 解: 上述方程恰好是上例中a=-0.8。 令x(n)=δ(n)、y(n)=h(n),我么就得到h(n)所满足的差 h(n)=-0.8h(n-1)+δ(n) 设初始条件h(-1)=0,对n作几次迭代(diédài),我们得到: ⎧(-0.8)n h(n)=(-0.8)nu(n)=⎨ ⎩0 n≥0 n≤1 将h(n)代入卷积方程(fāngchéng)(3.4.3)我们(wǒmen)得到: y(n)=x(n)+(-0.8)x(n-1)+(-0.8)2x(n-2)+(-0.8)3x(n-3)+L 上式包括(bāokuò)无限多项。 例3.4.7设滤波器的冲激响应为: ⎧2 n=0 h(n)=⎨ ⎩4(0.5) n-1 n≥1 求y(n)和h(n)所满足的差分(chàfēn)方程。 解: h(0)和h (1)为任意给定的。 n≥2后,各系数可以递归计算。 比如说: h (1)=4h (2)=0.5h (1)h(3)=0.5h (2)h(4)=0.5h(3)… 把以上系数代入卷积方程(3.4.3),我们得到: yn=h0xn+h1xn-1+h2xn-2+h3xn-3+L =2xn+4xn-1+2[xn-2+0.5xn-3+0.52xn-4+L] 此前一个时刻的输出: 2 yn-1=2xn-1+4xn-2+2[xn-3+0.5xn-4+0.5xn-5+L] 方程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 处理 导论 中文版