Introduction to Signal Processing 第三章离散系统 本章的讨论重点是离散系统,尤其是离散线性时不变系统。线性时不变系统的输入输出(/O)方 程可以用输入信号与系统冲激响应的离散卷积来表示。 根据系统的冲激响应是否是有限延时还是无限延时可以分为有限冲激响应(FR)和无限冲激响 应R)两种。本章的主要目的是为FIR滤波器设计算法。FIR滤波算法可以分为按块(Block to Block) 和样值处理(Sample to Sample)算法两种。 分批处理算法中,输入信号视为一次抽样的块。将这一块信号与滤波器冲激响应卷积得到一个输 出块。 如果输入序列时限非常长或者是无限延时,这种方法需要做些改进,比如说可以将输入信号分成 多个块,每一块的长度都可以分别处理,可以一次滤波一块,然后再把输出拼凑在一起。 样值处理算法中,一次只处理一个抽样。滤波器可以看作是一台状态机器,也就是说,把输入抽 样与滤波器当前的状态结合起来计算当前的输出抽样,同时也更新滤波器的内部状态为下一次处理作准 备。 当输入信号特别长的时候,这种方法对于实时运算特别有效。滤波器自身特性变化的自适应滤波 就适合于使用这种算法。目前的DSP芯片对这种算法也很有效。 3.1 输入输出规则 离散系统所实现的就是将输入的离散抽样序列x(n),根据一定的输入/输出(I/O)规则转换成输 出序列的运算。I/O规定了怎样由已知的输入计算输出。 样值处理方法,我们可以认为其/O规则就是一次处理一个输入抽样。 [x1,x2,X3,…,xn,] y,y2,3,,yn, 按块处理的方法,输入序列划分成块,每次处理一块。 Xo 0 xI =y x2 y2 : 因此其I/O规则也就是将输入向量根据某种函数映射成输出向量。 y=] 对于线性系统,这种映射就是用矩阵H作线性变换。线性定常系统,其变换矩阵H根据系统的冲 激响应有特定的结构。 例3.1.1 例3.1.2m=2m)+3n-0+40n-2) n时刻的输出是此前连续三个输入抽样的加权和。也就是说,n时刻,线性系统必须记住前两个时 刻的抽样x(n-1)、xn-2)
Introduction to Signal Processing 1 第三章 离散系统 本章的讨论重点是离散系统,尤其是离散线性时不变系统。线性时不变系统的输入输出(I/O)方 程可以用输入信号与系统冲激响应的离散卷积来表示。 根据系统的冲激响应是否是有限延时还是无限延时可以分为有限冲激响应(FIR)和无限冲激响 应(IIR)两种。本章的主要目的是为 FIR 滤波器设计算法。FIR 滤波算法可以分为按块(Block to Block) 和样值处理(Sample to Sample)算法两种。 分批处理算法中,输入信号视为一次抽样的块。将这一块信号与滤波器冲激响应卷积得到一个输 出块。 如果输入序列时限非常长或者是无限延时,这种方法需要做些改进,比如说可以将输入信号分成 多个块,每一块的长度都可以分别处理,可以一次滤波一块,然后再把输出拼凑在一起。 样值处理算法中,一次只处理一个抽样。滤波器可以看作是一台状态机器,也就是说,把输入抽 样与滤波器当前的状态结合起来计算当前的输出抽样,同时也更新滤波器的内部状态为下一次处理作准 备。 当输入信号特别长的时候,这种方法对于实时运算特别有效。滤波器自身特性变化的自适应滤波 就适合于使用这种算法。目前的 DSP 芯片对这种算法也很有效。 §3.1 输入输出规则 离散系统所实现的就是将输入的离散抽样序列 x(n),根据一定的输入/输出(I/O)规则转换成输 出序列的运算。I/O 规定了怎样由已知的输入计算输出。 样值处理方法,我们可以认为其 I/O 规则就是一次处理一个输入抽样。 [ , , , , , ] [ , , , , , ] 1 H x1 x2 x3 L xn L → y y2 y3 L yn L 按块处理的方法,输入序列划分成块,每次处理一块。 x = y → = M M 2 1 0 H 2 1 0 y y y x x x 因此其 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.13将长度为L=4的输入抽样o,x1,2,x视为一块,例3.12所示的线性系统将其转换成长 度为6的输出序列。 yo 0 0 0 3 2 0 0 y2 4 3 2 0 y= Hx 3 0 4 3 2 X2 0 0 4 3 0 0 0 4 输出序列的长度比输入序列长度大2,因为系统必须保存两个抽样,最后的两个输出可以认为是 输入消失后(iput-of田的过渡状态。如果输入的抽样为L=5,那么,输出的序列为: % 0 000 3 2 0 0 0 2 4 3 2 0 0 y= y3 0 2 0 Hx y4 0 0 3 X3 0 0 0 4 3 y6 0 0 4 例3.1.4、例3.12的输入输出方程也可以用下列样值处理的算法来实现: y(n)=2x(n)+3wi(n)+4w2(n) w2(n+1=w(n) wi(n+1)=x(n) 附加的w(n)、w2()可以视为系统的内部状态。当前的输入结合当前的内部状态足以计算当前的 输出。由有下一个输入x(n+1)所产生的输出y(+1)要求我们知道己经更新的内部状态。而此时的内部状 态+1时刻的内部状态)已经更新。也就是说,n+1时刻,我们有: y(n+1)F2x(+1)+3w1n+1)+4w2(n+1) w2(n+2=w1(n+1) w1(n+2Fx(n+1) 这样的计算是从某个时刻开始并且不断重复,我们可以归结为以下算法: 一旦内部状态的当前值在计算输出y的时候使用过以后,他 for each new input x do: 们就被后两个赋值的方程更新,用来计算下一个输入的抽样。因 y:=2x+3w1+4w2 此{w1、w}必须在一次调用到下一次调用的过程中保存。{w、 1W2:=1w1 w2}更新的次序非常重要,也就是首先更新wM2,接下来更新w1, W1:=x 以避免把正确的值覆盖。 例3.1.2、例3.1.3、例31.4是同一个离散系统的等效描述方式。究竞是采用哪一种形式取决于应 用的场所,也就是要看输入序列是有限长还是无限长、输入抽样是否在接收到以后应该立刻处理还是可 以延缓处理。 上面的例子实际上是用下述/O方程描述的、具有更一般形式的状态空间的特例: y(n)=g(x(n),s(n)) 输出方程
第三章 离散时间系统 2 例 3.1.3 将长度为 L=4 的输入抽样{x0 , x1 , x2 , x3 }视为一块,例 3.1.2 所示的线性系统将其转换成长 度为 6 的输出序列。 y = Hx = = 3 2 1 0 5 4 3 2 1 0 0 0 0 4 0 0 4 3 0 4 3 2 4 3 2 0 3 2 0 0 2 0 0 0 x x x x y y y y y y 输出序列的长度比输入序列长度大 2,因为系统必须保存两个抽样,最后的两个输出可以认为是 输入消失后(input-off)的过渡状态。如果输入的抽样为 L=5,那么,输出的序列为: y = Hx = = 4 3 2 1 0 6 5 4 3 2 1 0 0 0 0 0 4 0 0 0 4 3 0 0 4 3 2 0 4 3 2 0 4 3 2 0 0 3 2 0 0 0 2 0 0 0 0 x x x x x y y y y y y y 例 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) 这样的计算是从某个时刻开始并且不断重复,我们可以归结为以下算法: 一旦内部状态的当前值在计算输出 y 的时候使用过以后,他 们就被后两个赋值的方程更新,用来计算下一个输入的抽样。因 此{w1、w2}必须在一次调用到下一次调用的过程中保存。{w1、 w2}更新的次序非常重要,也就是首先更新 w2,接下来更新 w1, 以避免把正确的值覆盖。 for each new input x do: y:= 2x+3w1+4w2 w2:=w1 w1:=x 例 3.1.2、例 3.1.3、例 3.1.4 是同一个离散系统的等效描述方式。究竟是采用哪一种形式取决于应 用的场所,也就是要看输入序列是有限长还是无限长、输入抽样是否在接收到以后应该立刻处理还是可 以延缓处理。 上面的例子实际上是用下述 I/O 方程描述的、具有更一般形式的状态空间的特例: y(n)=g(x(n),s(n)) ———— 输出方程
Introduction to Signal Processing 3 s(n+1)=f(x(n),s(n)) 状态更新方程。 w(n) 其中sn)是维数一定的状态方程矢量。比如说前面的例子中,s(n)= I/O算法根据当前 w2(n) 己知的输入xn)和当前的状态sn)计算出当前的输出y(n)和下一时刻的状态sn+1)。也可以将它表述成 下面的重复演算形式: for each new input x do: 线性时不变系统的状态空间实现是由函数f和g来表述的,而f和g y:=g(x,s) 又是其变量的线性函数,即: s:=f(x,s) f(x,s)=As+Bx g(x,s)=Cs+Dx ABCD维数各不相同。对于上例,我们有: y=2x+3w1+42=[3,4 1W1 +2x=[3,4s+2x=g(x,s) 0 0 0 0 01w2 0 1 x=f(x,s) 例3.1.5 yn))=0.5y(n-2)+2x(n)+3x(n-1) 输出由常系数差分方程递归计算得到。任意时刻,系统必须记住前一个输入x(n-1)和前一个时刻的输 出y(-l)。 例3.1.6例3.1.5也可以将I/0方程表述为样值运算算法: for each new input x do: y=0.5w1+2x+3v1 W1可y VI:=X 它对应于所谓差分方程的直接实现形式,要求计算并且更新附加量{w1,V}。 例3.1.5所示的/O计算规则也可与下列所谓的规范形式相对应: for each new input x do: wo=X+0.5w1 y:=2wo+3wj W1=W0 间=a+2)+a++m+a-小+a-2】为线性时不变系统 (m)=2x(n+3 (n)=x2(n) 非线性、时不变系统 y(n)=2x(n)+3x(n-1)+x(n)x(n-1) y(m)=medx(n+I),x(n),x(n-l]--取中间值
Introduction to Signal Processing 3 s(n+1)=f(x(n),s(n)) ———— 状态更新方程。 其中 s(n)是维数一定的状态方程矢量。比如说前面的例子中,s 。I/O 算法根据当前 已知的输入 x(n)和当前的状态 s(n)计算出当前的输出 y(n)和下一时刻的状态 s(n+1)。也可以将它表述成 = ( ) ( ) ( ) 2 1 w n w n n 下面的重复演算形式: for each new input x do: y:=g(x,s) s:=f(x,s) 线性时不变系统的状态空间实现是由函数 f 和 g 来表述的,而 f 和 g 又是其变量的线性函数,即: f(x,s)=As+Bx g(x,s)=Cs+Dx A B C D 维数各不相同。对于上例,我们有: : 2 3 4 [ ] 3,4 2 [3,4] 2 ( , ) 2 1 1 2 x s x g x s w w y x w w + = + = = + + = ( , ) 0 1 1 0 0 0 0 1 1 0 0 0 : 2 1 2 1 1 s x s x f x s w w w x w w = + = + = = = 例 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 方程表述为样值运算算法: for each new input x do: y:=0.5w1+2x+3v1 w1:=y v1:=x 它对应于所谓差分方程的直接实现形式,要求计算并且更新附加量{w1,v1}。 例 3.1.5 所示的 I/O 计算规则也可与下列所谓的规范形式相对应: for each new input x do: w0:=x+0.5w1 y:=2w0+3w1 w1:=w0 [ ( 2) ( 1) ( ) ( 1) ( 2)] 5 1 y(n) = x n + + x n + + x n + x n − + x n − 为线性时不变系统 = + − − −取中间值 = + − + − = = + ( ) [ ( 1), ( ), ( 1)] ( ) 2 ( ) 3 ( 1) ( ) ( 1) ( ) ( ) ( ) 2 ( ) 3 2 y n med x n x n x n y n x n x n x n x n y n x n y n x n 非线性、时不变系统
第三章离散时间系统 4 y(n)=(n)) m)=0)+x0+…xn-1房 线性、时变系统 n n+)=” n() 例3.1.16 x(n/2) n为偶数 y(n)= 0 n为奇数 相当于一个上采样器。在抽样之间插入零,因此输出将输入抽样的数量增加。 [x0x1,X2,X3,…,Xn] H→[x,0,x,0,x2,0,x3,0…,xn0, S3.2线性与时不变性 一个系统是线性系统,则当输入是由两个抽样序列x1()、x2()的线性组合时,其输出序列也是其 相应输出序列的线性组合。即: x(n)=ax(n)+a,x,(n) (3.2.1) 时,其输出为 y(n)=ay(n)+azy2 (n) (3.2.2) 为了验证一个系统是否是线性系统,必须分别验证三个输出序列,y()、y1()、y2(n)满足(3.2.2) 式。 xi(n) xi(n) yi(n) a H aiyi(n)azy2o) H X2(n) a2 x(n) y2(n)a2 时不变系统是指系统不随时间变化而改变。相同的输入序列,无论在何时施加到系统上,将产生 相同的输出。输入信号延时(右移)或提前(左移)D单位时间,输出序列也将相应延时(右移)或提 前(左移)D单位时间。 0 时不变可以用下图来解释
第三章 离散时间系统 4 ( ) 1 1 ( ) 1 ( 1) { (0) (1) ( 1)} 1 ( ) ( ) ( ) x n n y n n n y n x x x n n y n y n nx n + + + + = = + + − = L 线性、时变系统 例 3.1.16 = 为奇数 为偶数 n x n n y n 0 ( 2) ( ) 相当于一个上采样器。在抽样之间插入零,因此输出将输入抽样的数量增加。 [ , , , , , , ] [ ,0, ,0, ,0, ,0 , ,0, ] 0 1 2 3 H x0 x1 x2 x3 L xn L → x x x x L xn L §3.2 线性与时不变性 一个系统是线性系统,则当输入是由两个抽样序列 x1(n)、x2(n)的线性组合时,其输出序列也是其 相应输出序列的线性组合。即: ( ) ( ) ( ) 1 1 2 2 x n = a x n + a x n (3.2.1) 时,其输出为 ( ) ( ) ( ) 1 1 2 2 y n = a y n + a y n (3.2.2) 为了验证一个系统是否是线性系统,必须分别验证三个输出序列,y(n)、y1(n)、y2(n)满足(3.2.2) 式。 x1(n) a1 x1(n) y1(n) a1 x(n) y(n) a1y1(n)+ a2y2(n) x2(n) a2 x2(n) y2(n) a2 H H H 时不变系统是指系统不随时间变化而改变。相同的输入序列,无论在何时施加到系统上,将产生 相同的输出。输入信号延时(右移)或提前(左移)D 单位时间,输出序列也将相应延时(右移)或提 前(左移)D 单位时间。 0 0 D 时不变可以用下图来解释
Introduction to Signal Processing x(n) H v(n) y(n-D) x(n) x(n-D) yp(n) Xp(n) 输入信号经系统先延时后变换和输入信号先经过系统变换后的输出再延时得到的输出序列应该是 一样的。 设Yo(n)为先延时,后变换得到的输出。Y(n-D)为先变换,后延时得到的输出。 若yD(n)戶y(n-D),那么,该系统是时不变系统。 例3.2.1 y(n)=2xn)+3 若 x(n)=a x (n)+ax2 (n) 则 y(n)=2[a1(n)+a2x2(m]+3 而 [a1h(m+a2y2(m]=a1[2x1(m))+3]+a2[2x2(m)+3] 显然输入为两个信号的线性叠加时,输出并不是两个信号单独作用时输出的线性叠加,既: [a(n)+a22(n)】≠ax(n)+a2x2(n)] 所以为非线性系统。 y(n)=x2(n) x(n)=ax1(n)+a2x2(m)时,则 y(n)=[ax (n)+azx (n)2=ax(n)+2aazx (n)x2 (n)+ax(n) ≠ax2(n)+a2x(m))=a1y(m))+a2y2(n)) 非线性系统。 y(n)=nx(n) yp(n)=nxp(n)=nx(n-D) 而 y(n-D)=(n-D)x(n-D) yo(n)≠y(n-D) 为时变系统。 同理,若: y(n)=x(2n) yp(n)=xp(2n)=x(2n-D) y(n-D)=x(2(n-D))=x(2n-2D) y(n-D)≠yon) 所以是时变系统。这是一个下采样器。我们可以从原信号的输出和延时信号的输出更直观的看出:
Introduction to Signal Processing 5 x(n) y(n) y(n-D) x(n) x(n-D) yD(n) xD(n) H D D H 输入信号经系统先延时后变换和输入信号先经过系统变换后的输出再延时得到的输出序列应该是 一样的。 设 YD(n)为先延时,后变换得到的输出。Y(n-D)为先变换,后延时得到的输出。 若 yD(n)=y(n-D),那么,该系统是时不变系统。 例 3.2.1 y(n)=2x(n)+3 若 ( ) ( ) ( ) 1 1 2 2 x n = a x n + a x n 。 则 y(n) = 2[a1x1(n) + a2 x2 (n)]+ 3 而 [ ( ) ( )] [2 ( ) 3] [2 ( ) 3] a1 y1 n + a2 y2 n = a1 x1 n + + a2 x2 n + 显然输入为两个信号的线性叠加时,输出并不是两个信号单独作用时输出的线性叠加,既: [ ( ) ( )] [ ( ) ( )] 1 1 2 2 1 1 2 2 a y n + a y n ≠ y a x n + a x n 。 所以为非线性系统。 y(n)=x 2 (n) ( ) ( ) ( ) 1 1 2 2 x n = a x n + a x n 时,则 ( ) ( ) ( ) ( ) ( ) [ ( ) ( )] ( ) 2 ( ) ( ) ( ) 1 1 2 2 2 2 2 2 1 1 2 2 2 1 2 1 2 2 2 1 2 1 2 1 1 2 2 a x n a x n a y n a y n y n a x n a x n a x n a a x n x n a x 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) 所以是时变系统。这是一个下采样器。我们可以从原信号的输出和延时信号的输出更直观的看出:
第三章离散时间系统 6 [x0,X1,X2,X3,x4,x3,x6] H→ [x0,X2,x4,x6,] [0,xo,x1,x2,x3,x4,x5,X6] H→[0,x,x3,x5 第一种情况下,输入经系统变换后每两个输入丢掉丢掉一个。下面一种情况下,输入延时一个单位,输 出同样每两个输入被丢掉一个,得到的输出并不是上面的输出延时一个单位。所以为时变系统。 §3.3冲激响应。 (离散)线性时不变系统可以用其冲激响应序列h(n)来唯一表征。而冲激响应h()就是系统对于 单位冲激输入δ(n)的响应。 1 当 n=0 6(n)= 0 当 n≠0 6(n) 6(n) H h(n) h(n) n n 因此,我们有: δ(n)→h(n) 或者说: {1,0,0,0}→h,h,h2,} 若系统是时不变系统,就意味单位冲激输入延时一段时间,(比如说,D单位时间),其冲激响应 输出将会是大小一样,但延时为D的输出h(n-D)。 6(n-D)→h(n-D) 其中D可以正,也可以负。 线性性就意味任意输入的线性组合将会产生同样的线性组合输出。 6(n)+6(n-l)+6(n-2)→h(n)+h(n-1)+h(n-2) 更一般性,三个输入的加权线性组合: x(0)6(n)+x1)6(n-1)+x(2)δ(n-2) 将会产生同样三个输出的加权线性组合: x(0)hn)+x(1)h(n-1)+x(2)h(n-2) 任意输入序列,{x0),x1),x(2),…}可以看作是延时并且权重为单位冲激函数的线性组合。 x(n)=x(0)(n)+x(1)6(n-1)+x(2)6(n-2)+… 上式中,=0则只有第一项不为零,其余各项为零。n=1则只有第二项不为零,其余各项为零等等。 因而得到
第三章 离散时间系统 6 [0, , , , , , , ] [0, , , , ] [ , , , , , , ] [ , , , , ] 1 3 5 H 0 1 4 5 6 0 2 4 6 H 0 1 4 5 6 L L L L x x x x x x x x x x x x x x x x x x x x x 2 3 2 3 → → 第一种情况下,输入经系统变换后每两个输入丢掉丢掉一个。下面一种情况下,输入延时一个单位,输 出同样每两个输入被丢掉一个,得到的输出并不是上面的输出延时一个单位。所以为时变系统。 §3.3 冲激响应。 (离散)线性时不变系统可以用其冲激响应序列 h(n)来唯一表征。而冲激响应 h(n)就是系统对于 单位冲激输入 δ(n)的响应。 ≠ = = 0 n 0 1 n 0 ( ) 当 当 δ n δ(n) δ(n) h(n) h(n) 0 n n H 因此,我们有: δ (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 则只有第二项不为零,其余各项为零等等。 因而得到
Introduction to Signal Processing y(n)=x(0)h(n)+x(1)h(n-1)+x(2)h(n-2)+… 或写作: n)=∑xm)hn-m) (LT1Fom)(3.3.2) 上式又称为输出函数的LTI形式。其实就是输入序列xn)与滤波器冲激响应序列(n)的离散时间卷积。 也可以说,LTI(线性时不变系统)就是一个卷积器。 一般说来,上式中的求和m值可以扩展到负数,主要取决于输入信号。改变求和式当中求和项的 次序,也可以写成另一种形式: y(n)=∑h(m)x(n-m) (Direct Form)(3.3.3) 图3.3.3线性组合的响应 §3.4FIR和IIR滤波器 离散时不变系统根据其冲激响应是否是有限延时还是无限延时可以分成F(有限冲激响应)和 R(无限冲激响应)两类。 FIR冲激响应 R冲激响应 FIR滤波器的冲激响应仅仅延续有限长时间,也就是说,Os≤M,其余均为零。 {h,h,h2,…,hw,0,0,0…} M称为滤波器的阶数。FIR滤波器冲激响应矢量h的长度为: Lh=M+1 冲激响应的系数,h,,…,}在不同的教科书上有不同的名称,比方说,滤波器系数、滤波器的权、 filters taps((滤波器的节拍)。式3.3.3又成为卷积的直接形式。当m>M和m<0时,h(m)都不存在,只有 0<m<M的项不为零。所以3.3.3式又可以写成为:
Introduction to Signal Processing 7 y(n) = x(0)h(n) + x(1)h(n −1) + x(2)h(n − 2) +L 或写作: = ∑ − m y(n) x(m)h(n m) (LTI Form)(3.3.2) 上式又称为输出函数的 LTI 形式。其实就是输入序列 x(n)与滤波器冲激响应序列 h(n)的离散时间卷积。 也可以说,LTI(线性时不变系统)就是一个卷积器。 一般说来,上式中的求和 m 值可以扩展到负数,主要取决于输入信号。改变求和式当中求和项的 次序,也可以写成另一种形式: = ∑ − m y(n) h(m)x(n m) (Direct Form)(3.3.3) 图 3.3.3 线性组合的响应 §3.4 FIR 和 IIR 滤波器 离散时不变系统根据其冲激响应是否是有限延时还是无限延时可以分成 FIR(有限冲激响应)和 IIR(无限冲激响应)两类。 FIR 冲激响应 IIR 冲激响应 FIR 滤波器的冲激响应仅仅延续有限长时间,也就是说,0≤n≤M,其余均为零。 {h0 ,h1 ,h2 ,L,hM ,0,0,0,L} M 称为滤波器的阶数。FIR 滤波器冲激响应矢量 h 的长度为: L h=M+1 冲激响应的系数{ 在不同的教科书上有不同的名称,比方说,滤波器系数、滤波器的权、 filters taps(滤波器的节拍)。式 3.3.3 又成为卷积的直接形式。当 m>M 和 m<0 时,h(m)都不存在,只有 0<m<M 的项不为零。所以 3.3.3 式又可以写成为: h0 ,h1,h2 ,L,hM }
第三章 离散时间系统 P y(n)=>∑h(m)x(n-m) FR卷积方程 3.4.1 或者写成显式表达式: y(m)=h0)x(n))+h(1)x(n-1)+h(2)x(n-2)+…+h(M)x(n-M0 3.4.2 因此,I/O方程可以由当前的输入抽样xn)与过去的M个抽样x(n-1),x(n-2),·,x(n-M)的加权和得 到。 例3.4.1 y(n=2x(n)t3x(n-1)+4xn-2) 可以视为二阶滤波器,滤波器的系数h=[h,h,h]=[2,3,4] y(n)=hox(n)-hix(n-1)+h3x(n-2) 例3.4.3求下列FIR滤波器的冲激响应系数h。 y(n=2x(n)+3x(n-1+5x(n-2)+2xn-3) 滤波器系数:h=[ho,h,h2,h]=2,3,5,2]为一个三阶滤波器 y(n=x(n)-x(n-4) 滤波器系数:h=[1,0,0,0,-1]为一个四阶滤波器 当输入为冲激序列时x(n)尸8(n),输出也是冲激响应序列: h(n)=28(n)+38(n-1+58(n-2)+28(n-3) 和 h(n=6(n)-8(n-4) 另一方面,ⅡR滤波器冲激响应h(n)时限无限延长,00时,冲激函数8(n)=0,因此差分方程为: h(n)=h(n-1),也就是说:h(0)=h(1)=h(2)==1。所有系数都是一样的。 因此我们有: h(n)=u(n)= n≥0 0 n≤-l
第三章 离散时间系统 8 ∑= = − M m y n h m x n m 0 ( ) ( ) ( ) FIR 卷积方程 3.4.1 或者写成显式表达式: 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 因此,I/O 方程可以由当前的输入抽样 x(n)与过去的 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)时限无限延长,00 时,冲激函数δ(n)=0,因此差分方程为: h(n)=h(n-1),也就是说:h(0)=h(1)=h(2)=…=1。所有系数都是一样的。 因此我们有: ≤ − ≥ = = 0 1 1 0 ( ) ( ) n n h n u n
Introduction to Signal Processing 9 其中,u()为高散时间单位阶跃序列。将上式代入卷积方程(3.4.3),我们得到: m=2hMmx0n-m=至x0n-m m=0 m=0 或者写成: y(n)=x(n)+x(n-1)+x(n-2)+xn-3)+… 将n换成n-l,前一时刻的输出为: y(n-1)=x(n-1)+x(n-2)+x(n-3)+… 由此得到: y(m)-y(n-1)=x(nm) 因此,/O卷积方程等效于下列递归差分方程: y(n)=yn-1)+x(n) 这是一个累加器,或者叫做离散时间积分器。注意到I/O卷积方程(递归差分方程)与(n)的差 分方程具有相同的形式。实际上,冲激响应差分方程中,只要将y(n)=h(n)、x(n)=8(n)代入滤波器系数 所满足的差分方程,就可以得到递归差分方程。 例3.4.5设滤波器系数满足下列差分方程: h(n)=ahn-l)+δn) a为常数。求输出y(n)与输入xn)之间的差分方程。 解: h(0)=ah(-l)+6(0) h(1)=ah(0)+(I)=a1+0=a h(2)=ahI)+6(2)=aa+0=a2 h(3)=ah2)+63)=aa2+0=a3 以此类推,我们得到: h(n=a"u(n)= n≥0 0 n≤-l 代入卷积方程,得到: y(n)=x(n)+ax(n-1)+a2x(n-2)+ax(n-3)+. =x(n)+a[x(n-1)+ax(n-2)+a2x(n-3)+] y(n)=ay(n-1)+x(n) 可以看出,它所满足的方程正好是滤波器系数所满足的差分方程。 例3.4.6求满足下列I/O差分方程的ⅡR滤波器的卷积方程和冲激响应: y(n)=-0.8y(n-1)+x(m) 解:上述方程恰好是上例中a=一0.8。令x(n)=8(n)、y(n=h(n),我么就得到h(n)所满足的差 分方程: h(n)=-0.8h(n-l)+6(n)
Introduction to Signal Processing 9 ∑ ∑ ∞ = ∞ = = − = − 0 0 ( ) ( ) ( ) ( ) m m y n h m x n m x n m 其中,u(n)为离散时间单位阶跃序列。将上式代入卷积方程(3.4.3),我们得到: 或者写成: 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) 2 3 2 (3) (2) (3) 0 (2) (1) (2) 0 (1) (0) (1) 1 0 h ah a a a h ah a a a h ah a a = + = ⋅ + = = + = ⋅ + = = + = ⋅ + = δ δ δ 以此类推,我们得到: ≤ − ≥ = = 0 1 0 ( ) ( ) n a n h n a u n n n 代入卷积方程,得到: ( ) ( 1) ( ) ( ) [ ( 1) ( 2) ( 3) ] ( ) ( ) ( 1) ( 2) ( 3) 2 2 3 y n ay n x n x n a x n ax n a x n y n x n ax n a x n a x n = − + = + − + − + − + = + − + − + − + L L 可以看出,它所满足的方程正好是滤波器系数所满足的差分方程。 例 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)
第三章离散时间系统 10 设初始条件h(-1))=O,对n作几次迭代,我们得到: h(n)=(-0.8)"(n= (-0.8)" n≥0 0 n≤1 将h(n)代入卷积方程(3.4.3)我们得到: y(n)=x(n)+(-0.8)x(n-1)+(-0.8)2x(n-2)+(-0.8)3x(n-3)+… 上式包括无限多项。 例3.4.7设滤波器的冲激响应为: 2 n=0 h(n)= 40.5)-1 n≥1 求y(n)和h(n)所满足的差分方程。 解:h(0)和h(I)为任意给定的。n≥2后,各系数可以递归计算。比如说: h(1)=4h(2)=0.5h(1)h(3)=0.5h(2)h(4)=0.5h(3)… 把以上系数代入卷积方程(3.4.3),我们得到: yn =hoxn+hxn-1+h2xn-2+h3xn-3+... =2xn+4xm-1+2[xm-2+0.5xm-3+0.52xn-4+ 此前一个时刻的输出: yn-1=2xm-1+4xn-2+2[xn-3+0.5xn-4+0.52xn-5+ 方程两边同乘以0.5得到: 0.5ym1=xn-1+2[xm-2+0.5xn-3+0.52xn-4+0.53xn-5+] 用y(n)减去0.5y(n-1)得到: y(n)-0.5y(n-1)=2x(n)+3x(n-1)) 或者: yn)=0.5y(n-1)+2x(n)+3x(n-1) 既为输入和输出所满足的差分方程。 用h(n)替换y(n),8(n)替换xn),得到冲激响应所满足的差分方程: h(n)=0.5h(n-1)+26(m)+36n-1) 例3.4.8求满足下列差分方程的R滤波器的卷积和冲激响应。 yn)=0.25y(n-2)+x(n) 解:冲激响应满足下列差分方程: hn)=0.25h(n-2)+6(n) 设初始条件为零:h(-l)=h(-2)=0。滤波器前几项系数的迭代为:
第三章 离散时间系统 10 设初始条件 h(-1)=0,对 n 作几次迭代,我们得到: ≤ − ≥ = − = 0 1 ( 0.8) 0 ( ) ( 0.8) ( ) n n h n u n n n 将 h(n)代入卷积方程(3.4.3)我们得到: y(n) = x(n) + (−0.8)x(n −1) + (−0.8) 2 x(n − 2) + (−0.8) 3 x(n − 3) +L 上式包括无限多项。 例 3.4.7 设滤波器的冲激响应为: ≥ = = − 4(0.5) 1 2 0 ( ) 1 n n h n n 求 y(n)和 h(n)所满足的差分方程。 解:h(0)和 h(1)为任意给定的。n≥2 后,各系数可以递归计算。比如说: h(1)=4 h(2)=0.5h(1) h(3)=0.5h(2) h(4)=0.5h(3) … 把以上系数代入卷积方程(3.4.3),我们得到: 2 4 2[ 0.5 0.5 ] 4 2 1 2 3 0 1 1 2 2 3 3 L L = + + + + + = + + + + − − − − − − − n n n n n n n n n n x x x x x y h x h x h x h x 此前一个时刻的输出: 2 4 2[ 0.5 0.5 ] 5 2 yn−1 = xn−1 + xn−2 + xn−3 + xn−4 + xn− +L 方程两边同乘以 0.5 得到: 0.5 2[ 0.5 0.5 0.5 ] 5 3 4 2 yn−1 = xn−1 + xn−2 + xn−3 + xn− + xn− +L 用 y(n)减去 0.5y(n-1)得到: y(n) − 0.5y(n −1) = 2x(n) + 3x(n −1) 或者: y(n) = 0.5y(n −1) + 2x(n) + 3x(n −1) 既为输入和输出所满足的差分方程。 用 h(n)替换 y(n),δ(n)替换 x(n),得到冲激响应所满足的差分方程: h(n) = 0.5h(n −1) + 2δ (n) + 3δ (n −1) 例 3.4.8 求满足下列差分方程的 IIR 滤波器的卷积和冲激响应。 y(n) = 0.25y(n − 2) + x(n) 解:冲激响应满足下列差分方程: h(n) = 0.25h(n − 2) +δ (n) 设初始条件为零:h(-1)=h(-2)=0。滤波器前几项系数的迭代为: