您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页医学数字信号处理7章有限字长效应

医学数字信号处理7章有限字长效应

来源:飒榕旅游知识分享网


第七章 数字信号处理中的有限字长效应

无论是专用硬件,还是在计算机上用软件来实现数字信号处理,输入信号的每个取样值、算法中要用到的参数,以及任何中间计算结果和最终计算结果,都是用有限位的二进制数来表示的。因此,在实际工程中所得到的数字信号处理结果,相对于理论计算所得到的结果必然存在着误差。在某些情况下,这种误差严重到使信号处理系统的性能变坏,以致达到令人不能容忍的程度。通常把这种由于二进制数的位数有限而造成的计算结果的误差或处理性能的变坏,称为有限字长效应。显然,有限字长效应,在数字信号处理软件实现或硬件实现中,在进行设计和对处理结果进行误差分析时,是必须进行考虑的重要问题。本章内容安排如下:

内容提要

1.举例说明在数字信号处理中,有限字长效应引起的误差的几种来源,以及这些误差的表现形式。

2.复习二进制数的表示方法和它们的算术运算方法,以及在运算中考虑字长的限制而对运算结果采取的处理方法。

3.对数字滤波器的系数的量化误差及其对滤波器的稳定性、零点和极点的位臵的影响进行分析,并对滤波器的频率特性的误差进行讨论。

4.有限字长定点运算IIR数字滤波器的极限环振荡现象和死带效应。

5.浮点运算有限字长效应。

7.1 有限字长效应及量化误差

现在用一个浅显的例子来分析有限字长效应产生误差的原因。设有一个一阶低通滤波器,其差分方程为

y(n)e0.15y(n1)2(1e0.15)x(n)

该滤波器输入端作用有一个离散时间信号x(n),它的前18个取样值列于表7-1中的第2列,其中用省略号表示这些取样值是无限精确的。理论上,为求出滤波器的输出信号y(n),只要将输入序列x(n)的值代入y(n)e0.15y(n1)2(1e0.15)x(n)中进行运算(首先要假设初始值y(0),例如取y(0)=0),即可得到y(n)的精确值,表7-1中的第3列是计算结果。应注意,y(n)的精确程度取决于x(n)和常数e0.15的精确程度,也取决于中间计算结果e0.15y(n1)和2(1e0.15)x(n)的精确程度。

表7-1 y(n)e0.15y(n1)2(1e0.15)x(n)所代表的滤波器的输入和输出 n 精确计算结果 x(n) 1 2 3 4

用5位二进制数计算结果 y(n) yQ[x(n)] (n) 0.376757…… 0.104958…… 0.375 0.260489…… 0.102907…… 0.25 0.172122…… 0.188166…… 0.125 0.0625 0.0625 0.0 0.688332…… 0.353714…… 0.6875 0.125

5 6 7 8 9 0.580995…… 0.466300…… 0.5625 0.1875 0.290385…… 0.482245…… 0.25 0.514251…… 0.558334…… 0.5 0.1875 0.25 0.472043…… 0.612066…… 0.4375 0.25 0.204000…… 0.583642…… 0.1875 0.1875 10 0.975618…… 0.774137…… 0.9375 0.3125 11 0.017704…… 0.671238…… 0.0 0.25 12 0.325665…… 0.668456…… 0.3125 0.25 13 0.794654…… 0.796731…… 0.75 0.375 14 0.836935…… 0.918910…… 0.8125 0.4375 15 0.869722…… 0.033203…… 0.8125 0.5 16 0.685917…… 0.080372…… 0.625 17 0.288005…… 0.010118…… 0.25 18 0.554780…… 0.023970…… 0.5 0.5 0.4375 0.4375 在实际工程中,为了实现该滤波器,可以采用专用硬件来实现,也可以在通用数字计算机上用软件来实现。在这两种情况下,输入信号序列x(n)的各个取样值和e0.15、2(1e0.15)系数,以及中间运算结果和最终输出结果,都是以二进制数的形式存储在有限长度的寄存器内。图7-1给出的是用数字硬件来实现该滤波器的结构图,也是在通用计算机上用软件实现时的计算过程示意图。为了数值上的简单起见,假设图中的存储器、寄存器、延时器、乘法器和加法器等都是5位字长的,其中的单位延时器实际上是一个5位字长的寄存器。这只

是一个为了说明问题的原理性结构图,实际上,所有算术运算可以统一由一个算术运算单元来完成,图7-2是其结构图。现在回到图7-1,图中所有数据,包括量化后的输入数据Q[x(n)]、滤波器的两个参数

e0.15=0.8607079……和2(1e0.15)=0.2785842……;以及两个乘法器和一个加法器的计算结果0.8125Q[x(n)]+ 0.25y(n1)等,都要用5位

二进制数来表示。

(0.8125)5位存储器(0.8125)x(n)5位量化器Q[x(n)]5位乘法器(0.25)5位存储器0.8125Q[x(n)]5位加法器y(n)0.255位乘法器单位延时器

图7-1 用5位字长硬件实现数字滤波器的结构

5位存储器0.81250.25Q[x(n)]5位量化器算术运算单元(0.8125)x(n)y(n)Q[y(n-1)]5位寄存器

图7-2 用算术运算单元取代图7-1中的乘法器和加法器 假设采用原码定点小数来表示这些数和进行算术运算,即小数点在二进制表示中的位臵固定不变,小数点左边一位是符号位,0表示正数,1表示负数;小数点右边4位是数值的绝对值。这样,5位字长的二进制原码只能表示(-1,1)之间的31个不同的数值。表7-1中的第

4列是输入数据x(n)用5位字长量化后的结果,第5列是滤波器的输

出。滤波器的输出y(n)是按下式计算的

y(n)0.8125y(n1)0.25Q[x(n)]

从图7-1可以看出,有限字长效应在以下3个方面造成滤波器输出的误差:

(1) A/D变换器中的量化误差。输入信号x(n)经5位字长量化后成为Q[x(n)],引入了量化误差。在一般情况下,若被处理的是模拟信号xa(t),则需经过A/D变换器变成二进制数的序列。A/D变换器主要包括取样和量化两个步骤,取样序列x(n)被量化后得到Q[x(n)]。下面将会看到,量化过程可以模型化为取样序列x(n)加上量化噪声e(n),即Q[x(n)]= x(n)+ e(n)。由于滤波器是一个线性系

统,所以量化后的信号Q[x(n)]经滤波后得到的输出信号y(n)等于两

部分之和,一部分是x(n)通过滤波器产生的输出y(n)=x(n)*h(n),另一部分是量化噪声e(n)通过滤波器产生的输出e0=e(n)*h(n)。可见,输入信号的量化在滤波器输出引起了噪声,这个噪声的大小与输入信号量化时的字长有关系。

但当具体实现一个离散系统时,无论用软件方式还是硬件方式,都是以数字形式实现,因而都要对数据进行量化处理,即用有限字长来表示。

(2) 滤波器的系数量化误差。滤波器的系数e0.15和2(1e0.15)用有限位二进制数表示,实际上也是一种量化处理,必然引入量化误差。例如,在前面所举的例子中,为了用5位二进制数表示这两个系数,

不得不用0.8125近似代替e0.15,用0.25近似代替2(1e0.15)。下面将会看到,对于某些结构类型的滤波器(如,具有反馈支路的递归滤波器结构)来说,它们的零点和极点的位臵对于滤波器系数的变化特别敏感,因而滤波器系数由于量化误差引起的微小改变,有可能对滤波器的频率特性产生很大的影响。特别是在单位圆内且非常靠近单位圆的极点,如果由于滤波器系数的量化误差,而使这些极点跑到单位圆上或园外时,滤波器就失去了稳定性。

数的表示方法有定点制和浮点制。算术运算也分为定点运算和浮点运算。

定点制指的是数码中小数点的位臵固定不变。小数点左边各位是整数部分,而右边各位是小数部分。显然,小数点位于最低有效位右边,是纯整数情况;小数点位于二进制数中间任何位臵,是既有整数部分又有小数部分的情况;若小数点位于最高有效位左边,则是纯小数情况,这种情况下小数点左边是符号位。

定点运算中,一般不采用纯整数运算。因为两定点整数相乘得到的仍然是定点整数,其位数等于参加运算的两整数的位数之和。为了把和的位数限制到规定的字长,不得不采用截尾或舍入处理,这将造成无法容忍的误差。若将小数点固定在二进制数中间任何位臵,那么每次乘法运算之后都必须重新确定小数点在乘积中的正确位臵,显然这是很不方便的。定点纯小数不存在上述两方面的问题,因为两个定点纯小数的乘积仍然是定点纯小数,虽然乘积的位数也要增加,但截尾或舍入处理造成的误差不会很

大。此外,定点纯小数相乘的结果永远不会产生溢出。虽然定点纯小数相加有可能产生溢出,但这可通过乘以比例因子来避免。因此,定点运算中,通常都是用纯小数来参加运算。为此,在用二进制数表示之前,通常都要让十进制数乘以一个适当的比例因子,使它的数值限制在-1与1之间,即将它变成纯小数。

浮点制是将一个数表示成尾数和指数两部分。在浮点制运算中,不论是相乘还是相加,尾数的位数都可能超过寄存器长度,都要做尾数的量化处理,因而都有量化误差。

定点数其不足是动态范围小,且需要考虑加法运算中的溢出问题。而浮点制可以避免这两个缺点,它的动态范围大,可以避免溢出。

(3) 运算中的量化误差。在计算两个5位字长的二进制数的乘积时,需要用截尾或舍入的处理方法将乘积结果限制到5位字长。另外加、减运算也可能超出5位字长所表示的范围,即溢出。下面将会看到,在用定点运算实现递归结构的IIR数字滤波器时,有限字长效应(对乘积结果进行截尾或舍入处理以及溢出)有可能引起一种被称之为零输入极限环振荡的现象,使滤波器工作不稳定。

数的二进制编码形式有原码、反码和补码。

二进制编码长度比寄存器长度长时,要进行尾数处理,处理的方法有舍入法和截尾法。

量化误差的大小及性质与数的表示方法、二进制编码形式及具体尾数处理方法有关,更与寄存器的长度有关。另外系统的结构不同,将会明显地影响系统输出的量化误差。

上面列举的有限字长效应在三个方面造成的误差,与以下几个问题有关:①量化方式是截尾还是舍入;②负数用二进制数的原码表示还是用补码或反码表示;③算术运算是用定点运算还是用浮点运算;④采用什么类型的系统结构,如,对于数字滤波器来说,是采用IIR或是FIR,是采用高阶直接实现的结构还是采用由低阶节组成的级联结构或并联结构。 研究有限字长效应目的:

①若字长固定,进行误差分析,可知结果的可信度,否则若可信度差,要采取改进措施。

②用专用DSP芯片实现数字信号处理时,定点与硬件采用字长有关。

7.2 信号的量化误差

在实际应用中待处理信号往往都是一些模拟信号:声音、图像、电压、水流、气温、压力、心电图等。

借助A/D转换将模拟信号转变成数字信号,然后再进行后续的相关处理。如有必要再通过D/A转换,将数字信号还原为可听、可视的模拟信号。

在这种转换过程当中,时域采样是数字技术处理连续信号的重要环节。采样就是指利用“采样器”从连续信号中“抽取”信号的离散

序列样值,即称之为“采样”信号。“采样”也称“取样”、“抽样”。采样信号在时间上离散化了,但它还不是数字信号,还须经过量化编码才能转变为数字信号。即要将模拟信号抽样和量化,使之转换成一定字长的数字序列值信号。

数字序列值用有限长的二进制数表示

例如序列值(0.729156)10 =(0.101110101010101…)2, 若限制用八位二进制数来表示,则为(0.10111010)2,而(0.10111010)2=(0.7265625)10,那么,引起的误差为:0.729156-0.7265625=0.0025935,该误差称为量化误差。这是在二进制数的存储方面。

另一方面,在定点制的乘法以及浮点制的加法和乘法在运算结束后都会使字长增加,因而都需要再对尾数进行处理,其误差取决于所用的二进制的位数b、数的运算方式(定点制或浮点制)、负数的表示法以及对尾数的处理方法。

假设序列值用b+1位二进制数来表示,其中用1位来表示符号,用b位表示尾数,最小码位所表示的数值称为“量化步阶”或“量化宽度”,用q来表示,则q=2-b 。

如果二进制编码的尾数长于b,则必须要进行尾数处理,且处理成b位,也即量化。尾数处理有两种方法,即截尾法和舍入法。

截尾法是将尾数的第b+1位以及后面的二进制码全部略去。 舍入法是按最接近的值取b位值,即将第b+1位按逢1进位,逢0不进位,然后略去后面的b+1位。

显然这两种处理方法所引起的误差是不同的。

对于定点制二进制数的舍入法,原码、反码和补码的量化误差

ei是相同的,范围是:-q/2对于截尾法,不同的编码其量化误差ei的范围也不相同: 定点制正数原码的量化误差ei的范围为:-q< ei ≤0; 定点负数原码的量化误差ei的范围为:0≤ ei 图7-1是定点制运算中的截尾误差和舍入误差特性。表7-1是定点制的截尾和舍入误差.

(a)补码 (b)原码、反码 (c)舍入处理的量化特性

图7-1 截尾处理的量化特性(q=2-b) 表7-1 定点运算中的截尾和舍入误差(q=2-b)

正数 负数 原码 反码 截尾误差 -q补码 -q表7-2 浮定点运算中的相对误差 正数 负数 原码 反码 补码 截尾误差 -2q<εT≤0 -2q<εT≤0 -2q≤εT≤0 0≤εT<2q 舍入误差 -q<εR而舍入法的统计平均值为0,这一点比定点补码截尾法好。为了研究量化误差对数字信号处理系统精度的影响,必须了解舍入和截尾误差的特型,一般最方便的方法是把这些量化误差看成随机变量,对每种误差求出概率密度函数,并进行较为合理的假设,即量化误差在整个可能出现的范围内是等概率的,也就是均匀分布的。对于定点制,变量为绝对误差ET ,对于浮点制,变量为相对误差εR。

7.3 A/D变换器中的量化效应

A/D(模/数)变换器完成的是将模拟信号转换成数字信号的作用,即将输入的模拟信号x(t)转换为b位二进制数字信号。变换器位数有限,因此存在量化误差。

分析A/D变换器量化效应的目的在于选择合适的字长,以满足信噪比指标。

假设用e(n)表示量化误差,x(n)表示没有量化误差的抽样序列数字信号(即无限精度),量化器对每个抽样序列x(n)进行截尾或舍入的量化处理,用表示量化编码后的信号,则

ˆ(n)x(n)e(n) xx(n)是有用信号,e(n)呈现噪声的特点,相当于在A/D变换

器中引入一个噪声源。这样A/D变换器的输出中除了有用信号以外,还增加了一个噪声信号。

A/D变换器的统计模型如图7-2所示。图中的理想A/D变换器没有量化误差,实际中的量化误差是在输出端叠加一个等效的噪声源e(n)。

图7-2 A/D变换器的统计模型

由于在抽样模拟信号的数字处理中,把量化噪声看成相加性噪声序列,量化过程看成是无限精度的信号与量化噪声的叠加,因而信噪比是一个衡量量化效应的重要指标。

一般A/D变换器采用定点制,尾数采用舍入法。若共有b+1位,符号占1位,尾数为b位,量化步阶为q=2。为了简化分析,对该模型做如下假设:

(1)e(n)是白噪声序列; (2)e(n)与x(n)不相关;

(3)e(n)在自己的取值范围内呈均匀分布。

-b

图7-3 舍入量化噪声的概率密度函数曲线

图7-3给出的是舍入量化噪声概率密度函数曲线。e(n)的统计平均值为 mq2 。A/De=0,平均功率(即均方差)为 12

2e变

换器的输出信噪比S/N用信号平均功率与舍入量化噪声的平均功率之比表示,即 22xxS22Neq12

则信噪比的分贝数为:

2xS210lg210lgx10.796.02b Ne上式表明:

(1)A/D变换器输出的信噪比与A/D变换器的字长有关;(2)与输入信号的平均功率有关。

结论为:(1)A/D变换器量化字长每增加1位,输出信噪比约可以提高6dB。但是b受到输入信号的信噪比的限制;(2)输入信号越大则输出信噪比越高。但一般A/D变换器的输入都有一定的动态范围限定,否则过大的动态范围,会发生限幅失真。实际应用中线性A/D一般要求12位以上满足通信要求,非线性A/D一般要求8位以上满足通信要求。

7.4 数字滤波器系数量化误差分析

前面讨论中,在设计理想数字滤波器时,各滤波器系数bk,ak都是无限精度的。

但实际实现系统函数时,滤波器系数都是被量化了的,所有系数只能用有限字长的二进制数来表示。

系数的量化误差,在不同程度上使滤波器的零点和极点偏离设计中预定的位臵,从而影响到滤波器的频率特性偏离设计的要求,在量化误差严重时,如果z平面单位圆内极点偏移到单位圆外,使滤波器性能不稳定而无法使用。

系数量化效应对滤波器性能的影响与寄存器的字长有直接的关系,并且和滤波器结构形式也同样密切相关。选择合适的系统结构,可以减小系数量化带来的影响,帮助我们选择合适的字长,为滤波器的工程实现提供依据,从而设计出符合频率响应指标要求的系统。

一.系数量化误差对滤波器稳定性的影响

滤波器的稳定性取决于极点的位臵,如果系数量化误差使单位圆内的极点移到了单位圆上或圆外,则滤波器的特性与所要求的频率响应不同,滤波器的稳定性就受到了破坏,显然,单位圆内最靠近单位圆的极点最容易出现这种情况。

FIR滤波器仅在Z=0处有高阶极点,没有其他极点,因而系数量化误差将主要影响零点的位臵,不会影响滤波器的稳定性。但对于IIR滤波器,一般存在着许多极点,情况则不同,所以可以用系数量化引起极点、零点的位臵误差来衡量一个网络结构对系数量化灵敏度的影响。不同形式的系统结构,在相同的系数“量化步距”情况下,其量化灵敏度是不同的。

kbzkMH(z)1akzkk1k0NB(z)A(z)

上式表示了一个无限精度的N阶直接型结构的IIR数字滤波器的系统函数,它具有窄带低通频率特性。因此,该滤波器的极点都在单位圆内聚集在z=1附近。系数ak和bk是系统直接结构所求出的无限

ˆr精度的系数,量化造成的系数误差为△ar和△br,量化后的系数用aˆb和r表示,即

ˆrarar a

ˆbbbrrr

则实际的系统函数可表示为:

ˆ(z)Hˆzkbkˆkzk1ak1k0NM

从上式可以看出,系数量化后的频率响应已不同于最初设计的频率响应。

当用直接型结构来实现该滤波器时,系数ak和bk都将直接出现在信号流程图中,其中ak影响着极点的位臵。当由于系数量化误差使一个极点从单位圆内移动到单位圆上或单位圆外时,滤波器的稳定性即受到破坏。所以,只要有一个系数由于量化产生很微小的误差,就有可能使系统失去稳定。反馈支路的阶次N越高,使滤波器失去稳定的系数量化误差的绝对值就越小,则越容易使滤波器变得不稳定。

现假设,某个系数ar由于量化(舍入处理)引入误差△ar后变成

ˆrˆr,即 aa变为

arar 于是传输函数的分母多项式

N ˆD(z)1akzkarzrD(z)arzr

k1当系数量化误差△ar使一个极点从单位园内移动到单位圆上或外时,滤波器的稳定性即受到破坏。为了讨论方便,假设有一个极点移到单位圆上,即移到z=1点,这时有

ˆD(1)D(1)ar0

由上式可求出

arD(1)1ak(1pk)pk

k1k1k1NNN其中pk是极点,pk=1+Δpk

由于前面已假设所有极点都聚集在z=1点附近,即Δpk<<1,或pk

≈1,因而ar1;这意味着,只要有一个系数由于量化产生很微小的误差,就有可能使系统失去稳定。从

ar1ak(1pk)pk式还看出,

k1k1k1NNN反馈支路的阶次N越高,使滤波器失去稳定的系数量化误差的绝对值就越小,也就是说越容易使滤波器变得不稳定。 【7-6】已知一个3阶IIR数字滤波器的系统函数为

11H(z)13(10.99z)12.97z12.9403z20.970299z3

为使滤波器保持稳定,在对滤波器系数进行舍入量化时,至少应当采用几位字长?假设用直接型结构来实现该滤波器。

解:由题给系统函数看出,该滤波器在z=0.99处有一个3阶极点,且在z=1附近。假设H(z)的分母多项式的某一系数ar的量化误差为△ar,当其绝对值达到

ar1ak12.972.94030.970299106

k1N

规定的限度时,滤波器的极点将移动到z=1处,从而使滤波器不稳定。

当系数用b位(不含符号位)定点二进制小数表示时,舍入量化误差绝对值将不会大于q/2=2-b-1。由于10-6>2-20,所以若b选为19,则系数的舍入量化误差绝对值将不会超过2-20或10-6,从而保证极点不会移到单位圆上或外,保持了滤波器工作的稳定。

【7-7】若用3个相同的1阶IIR滤波器的级联来实现例7-6中的数字滤波器,为了使该级联结构稳定,求1阶节IIR滤波器的系数的量化字长。

解:根据例7-6所给出的滤波器系统函数,可以看出级联结构中的1阶节IIR滤波器的系统函数为

1H(z)

10.99z1每一个1阶的极点都是相同的z=0.99。由ar1Nak1Nk可得

ar1ak10.9910227

k1所以为了维持级联结构稳定,只需维持3个1阶节稳定,由

ar27可看出,只要用6位字长的二进制数来表示系数0.99

就够了。

从例7-6和例7-7看出,就滤波器系数的量化误差对滤波器稳定性的影响而言,级联结构比直接结构要轻微得多。这一结论具有普遍意义。

二.系数量化误差对滤波器零、极点位臵的影响

系数量化误差导致实际的频率响应与理论上要求的频率响应不同,或者说表现在零点和极点位臵偏离了理论上规定的位臵。

引入极点位臵灵敏度的概念,来衡量每个极点位臵对各系数量化偏差的敏感程度。

不同形式的系统结构,在相同的系数“量化步距”的情况下,其量化灵敏度是不同的。用同样的方法可以分析零点位臵灵敏度,但极点对系统的影响更大,直接影响到系统得稳定性,所以更为人们所注意和研究。因此,为了得到与理想频率特性尽可能接近的实际频率特性,应当选择极点和零点位臵对系数量化误差最不敏感的那些结构形式。

ˆr设滤波器的传输函数为H(z),系数ak 和bk经舍入量化后变为aˆb和r,系数量化误差是△a和△b。

kkH(z)有N个极点,用 Pi(=1,2,… N)表示。这样,实际的滤波器的传输函数为:

kˆbkzMkˆbkzk01

[1(pp)zii]i1NMH(z)ˆkzk1ak1k0N上式中,pi是第i个极点位臵的偏移,称为极点误差,它是由ak系数量化误差引起的。pi与ak之间的关系是:

pipiak,i1N

k1akN式中,piak的大小直接影响第k个系数偏差 piak

所引起的第i个极点偏差 pi 的大小;pi越大。

也即piak越大,pi

ak是说明第i个极点的位臵对分母多项式中第k个

系数的量化误差的敏感程度的一个量,称为极点敏感度 。

经过推导可以得出灵敏度和极点的关系:

piakpk1NNki(pl1liNipl)

上式即是系数量化偏差引起的第i个极点的偏差。

说明了滤波器的第i个极点的位臵对传输函数分母多项式的第k个系数的量化误差的敏感程度与极点分布的关系。此式只对单阶极点有效,多阶极点可进行类似的推导。对于直接型结构,由于它的零点只取决于分子多项式的系数,因而对于零点可得到完全相似的结果。

具体来说,由上式可以得出以下结论: (1)分母多项式中,(pipl)是极点pl指向极点

pi

的矢量,整个分母是所有极点与第i个极点之间的矢量乘积。如果这些距离都很小即如果所有N个极点都聚集在一起,那么距离的矢量乘

积就很小,第i个极点的位臵对系数量化误差就非常敏感,即极点位臵灵敏度高,相应的极点偏差就大。

我们知道,低通滤波器的极点聚集在z=1附近,高通滤波器的极点聚集在z=-1附近,而带通滤波器的极点聚集在zej和zej附

00近,这里0是带通滤波器通带的中心频率,因此,低通和高通滤波器各极点间的距离都比带通滤波器的要小很多,所以,低通和高通滤波器的极点位臵受系数量化效应的影响都要比带通滤波器大。若滤波器的带宽为,则极点聚集的紧密程度可用/s来衡量,这里s是取样频率,/s越小意味着极点聚集得越紧密。若保持不变,那么,随着取样频率s的提高极点聚集得越来越紧密,因而极点位臵对系数量化效应越来越敏感。这意味着,为了使实际的频率特性尽可能小地偏离理论上要求的频率特性,就应该尽可能地提高系数的量化精度,或者说,应该尽可能选择位数较多的量化器字长。

(2)极点偏差与系统函数的阶数N有关,阶数越高,滤波器的极点位臵对系数量化误差越敏感,极点偏差也大。对于稳定的因果滤波器来说,由于全部极点都在单位园内,所以(pipl)的绝对值

都小于1。所以极点越多,l1li(pNipl) 就越小。也就是说

阶数越高的滤波器的极点位臵对系数量化误差越敏感。因此,高阶直接型结构滤波器的极点数目多而密,低阶直接型结构滤波器的极点数目少而稀疏,因而前者对系数量化误差要更加敏感,同理,并联型结

构和级联型结构比直接型结构要好得多。因此,高阶结构时,由于各二阶节相互独立级联或并联的结构来实现,而很少采用直接型结构。

(3)当采用二阶节级联或并联结构时,由于各二阶节相互独立,各有一对复共轭极点,特别是对于窄带带通滤波器来说,每对复共轭极点的两极点都相距较远,因而系数量化误差对极点臵的影响格外小。

综上所述,为了减小系数量化误差对极点位臵的影响,系统的结构应当避免采用高阶的直接型结构,而最好采用由一阶或二阶节构成的级联或并联结构来实现。这样可避免较多的零、极点集中在一起。通常为了能够独立地控制各节的极点或零点,多选用级联结构。

7.5 有限字长定点运算IIR滤波器

的极限环振荡和死带效应

一.极限环振荡

用有限字长定点运算实现IIR数字滤波器时,在乘法运算后要采用舍入处理来限制字长,从而引入量化噪声,并在滤波器输出端引起响应,这个问题已在上节详细讨论过了。本节讨论这种量化噪声在一定条件下会引起滤波器产生非线性振荡,这一现象称为零输入极限环振荡或简称为极限环振荡现象。

设有一个1阶IIR数字滤波器,其差分方程为

y(n)0.625y(n1)x(n)

现用3位字长(不含符号位)的定点运算来实现该滤波器。因此,在每次完成乘法运算0.625y(n1)之后都要及时进行舍入处理,将字长限制到3位。图7-4是上式所定义的滤波器工程实现非线性模型,该模型由下式描述

w(n)QR[0.625w(n1)]x(n)

其中,QR[]表示舍入量化处理。

x(n)Q [ ]R0.625z-1w(n)w(n-1)

图7-4 y(n)0.625y(n1)x(n)数字滤波器的非线性模型 现在利用图7-4或w(n)QR[0.625w(n1)]x(n)所示的非线性模型来计算当x(n)0.375(n)时滤波器的输出响应w(n)。

根据w(n)QR[0.625w(n1)]x(n),可依次求出

n=0,1,2,……时滤波器的输出响应w(n),将迭代计算过程中数据列入表7-3,该表中的所有数据都是用二进制表示的。

表7-3 用4位字长定点运算计算y(n)0.625y(n1)x(n)

n x(n) w(n-1) A=0.101w(n-1) QR[A] w(n) 0.000 0.010 0.011 0.010 0 0.011 0.000 0.000000 1 0.000 0.011 0.001111

2 0.000 0.010 0.001010 3 0.000 0.001 0.000101 4 0.000 0.001 0.000101 … … … … 0.001 0.001 0.001 … 0.001 0.001 0.001 … 图7-5(a)所示的是滤波器输出序列w(n)的图形。用类似的方法可计算出得到系数取为-0.625、输入仍然是x(n)0.375(n)时滤波器的输出响应w(n),如图7-5(b)所示。

w(n)3/82/81/81/81/81/81/81/8n1/82/81/81/8w(n)3/81/81/81/8n

(a)w(n)QR[0.625w(n1)]0.375(n) (b) w(n)QR[0.625w(n1)]0.375(n)

图7-5 极限环振荡

从图7-5(a)可以看出,当滤波器输入x(n)衰减为零后,滤波器输出并不随之也衰减为零而是保持为非零值1/8。对于系数为-0.625的滤波器来说,滤波器的输出在零输入时为一个等幅振荡。这种零输入极限环振荡现象是由有限字长定点运算中的舍入量化误差引起的。

在理想情况下,y(n)0.625y(n1)x(n)所定义的滤波器是一个稳定系统,因为它有唯一的单位园内的极点z=〒0.625。当输入信号x(n)0.375(n)衰减到零时,滤波器的输出y(n)随之很快衰

减为零。事实上,若设初始条件为y(-1)=0,则由式

y(n)0.625y(n1)x(n)的迭代运算可计算出滤波器的输出

y(0)=0.375 y(1)=〒0.234375 y(2)=0.1464843 y(3)=〒0.0915527 y(4)=0.0572204 y(5)=〒0.0357627,…

y(n)0.375(0.625)n

可以看出随着n的增加,y(n)随之很快衰减为零。

但是,当用3位字长定点运算来实现该滤波器时,在每次计算乘积0.625w(n1)之后都要进行舍入处理,以把字长限制到3位。表7-3中第4列是乘积0.625w(n1)的二进制表示,第5列是舍入量化处理后的结果。可以看到,在n=3时乘积本来已经将为0.000101了,但对其进行舍入处理后,该乘积又增大为0.001了。这就使w(4)的保持为0.001不变。由于这个原因,此后的每次迭代运算都是这种情况的循环。

有限字长定点乘法运算后进行舍入处理造成输出恒定不变或振荡,这一现象也可以从另外一个角度来解释。该滤波器只有一个极点z=0.625,二进制表示为0.101,位于单位园内,滤波器是稳定的。但在n=3之后,乘法运算后进行舍入处理的结果使下式成立:

QR[0.625w(n1)]w(n1) n≥3

即w(n)QR[0.625w(n1)]x(n)变为w(n)w(n1)x(n) 该式意味着,滤波器的极点已经由原来的位臵z=0.625变为z=1,于是滤波器的稳定性从此遭到破坏,从而形成振荡。图7-5(a)可以认为是

频率为零的振荡。对于滤波器系数为-0.625的情形,可以进行类似的讨论,它的极点位臵由z=-0.625变为z=-1。

振荡幅度用A表示,它的大小与量化字长和滤波器系数的数值有关,下面就来推导这一关系。

一般情况下的1阶IIR滤波器的差分方程为

y(n)y(n1)x(n)

现用b位字长(不包含符号位)的定点运算来实现该系统,乘积

y(n1)运算结果先经过舍入处理,然后才与x(n)相加。舍入误差

的数值范围是

qQR[w(n1)]w(n1)

2其中,q是量化间隔,q2。进入极限环振荡后,有

bQR[w(n1)]w(n1)代入上式得

qw(n1)w(n1)2qw(n1)1

2所以

q2w(n1)2(1)1b1

式中,w(n1)就是震荡幅值A。可以看出,在字长b一定的条件下,

越小,A就越小;而在α一定的条件下,字长b越长,A就越小。

如上例A≤2-4/(1-0.625)=1/6,比1/6还小的3位定点小数的量化值是1/8。这与上例是一致的。

极限环振荡的产生是有条件的。对于1阶IIR滤波器来说,由式

q2w(n1)2(1)1bb1

看出,如果振幅的数值小于一个量化间隔q2,那么,用b位定点小数来表示的振幅将是零。这就意味着,滤波器的输出衰减为零,即不会出现极限环振荡现象。因此,1阶IIR滤波器不产生极限环振荡的条件是

qw(n1)q 2(1)1(1) 2由此得出 1 2这意味着,只要滤波器系数的绝对值不超过0.5,一阶IIR滤波器无论用多短的字长来实现都不会产生极限环振荡。

二.死带效应

死带效应是与极限环振荡密切相关的一种现象。设有一个IIR数字滤波器,它的系统函数为

N(z)H(z)D(z)bzkk0Nk1Mk1kzkM

该滤波器的直接型结构按以下差分方程来实现

y(n)ky(nk)bkx(nk)

k1k0N设H(z)的全部极点都在单位园内,因此该滤波器是稳定的。假设所有系数和信号都能无限精确地表示,所有运算也是无限精确的,那么,在输入x(n)=c(常数)时,滤波器的输出y(n)将收敛于常数d。在这种情况下,式y(n)Nk1ky(nk)bkx(nk)变成

Mk0ddkcbkk1k0NM

由此得出

dcbk1kk1k0NMcH(1)

以上是理论上的计算。实际上,所有系数ak、bk和输入信号都是用b+1位定点二进制数表示的,所有定点乘法运算后都要进行舍入处理,也可以将所有全精度乘积累加并与cbk求和之后再进行舍入

k0M处理。假设采用后一种运算方法。具体来说,计算过程用下式来表示:

y1(n)ky2(nk)cbkk1k0NM

关于该式的来源可做如下说明:两个b位二进制数(不含符号位)ak与

y2(nk)相乘,得到全精度(字长2b位)乘积,对应于不同k值的这些全精度乘积累加后,与另一个全精度积cbk求和后得到字长2b

k0M位的输出,用y1(n)表示。对y1(n)进行舍入处理,使之从2b位变成b位,舍入处理结果y2(n)被存储器起来,它是滤波器的有效输出,同时也是下次迭代运算的已知数据。

按式y1(n)ky2(nk)cbk进行工程计算时,由于有限字长效

k1k0NM应,滤波器的输出会产生误差,但假设滤波器的稳定性仍然没有遭到破坏。就是说,随着迭代运算的进行,滤波器存储的输出值y2(n)逐渐趋近某个稳定值y2,它与理想的稳定输出d之间存在着误差e,即

y2de

y2是b位字长的量化值,即y2一定是q2的倍数。

当存储的滤波器输出为稳定值y2时,根据式y1(n)ky2(nk)cbkk1k0NMb可算出双精度输出y1(n)为

y1(n)ky2(nk)cbkk(de)cbkdkeakcbkk1k0k1k0k1k1k0NMNMNNM

根据ddkcbk可以看出,上式右端第一和第三项之和就是

k1k0NM滤波器的理想输出d。因此,上式变成

y1(n)dkcbkeakdeak

k1k0k1k1

NMNN

对上式右端同时加减e,并利用y2de。得到

y1(n)deeeaky2e(1ak)y2eD(1)

k1NNNk1其中 D(1)1k

k1qq如果 eD(1)<

22那么,从式y1(n)y2eD(1)可以看出,y1(n)将舍入为y2。当

qqD(z)的全部根均在单位园内时,D(1)为正值,故eD(1)<可

22qqe写成,由y2de可得

2D(1)2D(1)qqdy2d2D(1)2D(1)

且存储的连续N个输出都为y2时,则存储的输出y2(n)将一直保持为恒定值y2。上式所表示的区间称为死带。死带的宽度与D(1)成反比。对于窄带低通滤波器,由于它的极点聚集在z=1附近,D(1)的值非常小,且滤波器的阶越高,D(1)的值越小,因此,高阶窄带低通滤波器的死带很宽,往往为量化间隔q的若干倍。所以,对于2阶以上的IIR数字滤波器,通常应避免采用直接型结构来实现。

qqy2d式d2D(1)2D(1)说明,滤波器的理论输出值d位

于死带内,滤波器的实际输出值y2在死带内不再改变。

下面的例子将进一步说明,滤波器的实际输出值在死带内取什么具体数值,是由迭代运算中y2(n)的初始值y2(0)来决定的。

【7-8】有一1阶IIR数字滤波器,满足以下差分方程:

y(n)0.75y(n1)0.21875

可以看出,该滤波器的系统函数为

111H(z)1D(z)1az1 10.75zH(z)的极点z=0.75在单位园内,故该滤波器是一个稳定系统。由于输入信号是恒定值x(n)=0.21875,故经多次迭代计算后,滤波器输出将稳定在一个恒定值上,该恒定值用d表示,于是d=0.75d+0.21875 由此求出 d=0.21875/0.25=0.875

现用5位定点小数(不包括符号位)运算直接型结构来实现该数字滤波器,求滤波器的输出。

解:将题中给出的所有数据用5位字长的定点二进制数来表示 A=0.75=(0.11000)2 x(n)=0.21875=(0.00111)2 d=0.875=(0.11100)2 q=2-5=0.03125=(0.00001)2 D(1)=1-a=1-0.75=0.25=(0.01000)2

qqy2d利用式d2D(1)2D(1)可求出滤波器输出值所处的

数值范围或死带范围

0.8125滤波器输出的常量在死带范围内取什么具体数值,取决于迭代运算的初始值y2(0)。下面讨论3种不同情况。

⑴取y2(0)=0.78125=(0.11001)2

由式

y1(n)0.75y(n1)0.21875(0.11000))(0.00111)2,这2y2(n1是迭代计算公式

y1(1)(0.11000))2(0.11000))2(0.1100111000)2 2y2(0)(0.001112(0.11000)2(0.00111(0.11010)取舍y1(1)后,得到y2(1)20.8125

进入下次迭代:

y1(2)(0.11000))(0.00111)2(0.11000))2(0.1101010000)2 2y2(12(0.11010)2(0.00111(0.11011)取舍y1(2)后,得到y2(2)20.84375

y1(3)(0.11000))2(0.11000))2(0.00111)2(0.1101101000)2 2y2(2)(0.001112(0.11011(0.11011)取舍y1(3)后,得到y2(3)20.84375

以下迭代结果便重复了,所以稳定的输出为恒定值

y2(0.11011)20.84375

注意,这是比死带下界高一个量化间隔的数值,即

qy2[d]q0.81250.031250.84375

2D(1)⑵取y2(0)=0.96875=(0.11111)2

)0.21875(0.11000))(0.00111)2,由式y1(n)0.75y(n12y2(n1得

y1(1)(0.11000))2(0.11000))2(0.00111)2(0.1111001000)2 2y2(0)(0.001112(0.11111(0.11110)取舍y1(1)后,得到y2(1)20.9375

进入下次迭代:

y1(2)(0.11000))(0.00111)2(0.11000))2(0.1110110000)2 2y2(12(0.11110)2(0.00111(0.11110)取舍y1(2)后,得到y2(2)20.9375

y1(3)(0.11000))2(0.11000))2(0.1110110000)2 2y2(2)(0.001112(0.11110)2(0.00111

(0.11110)取舍y1(3)后,得到y2(3)20.9375

以下迭代结果便重复了,所以稳定的输出为恒定值

y2(0.11110)20.9375

注意,这是比死带上界的数值,即

⑶取y2(0)=0.90625=(0.11101)2

)0.21875(0.11000))(0.00111)2,由式y1(n)0.75y(n12y2(n1得

y1(1)(0.11000))2(0.11000))2(0.00111)2(0.1110011000)2 2y2(0)(0.001112(0.11101(0.11101)取舍y1(1)后,得到y2(1)20.90625

进入下次迭代:

y1(2)(0.11000))(0.00111)2(0.11000))2(0.00111)2(0.1110011000)2 2y2(12(0.11101(0.11101)取舍y1(2)后,得到y2(2)20.90625

y1(3)(0.11000))2(0.11000))2(0.00111)2(0.1110011000)2 2y2(2)(0.001112(0.11101(0.11101)取舍y1(3)后,得到y2(3)20.90625

以下迭代结果便重复了,所以稳定的输出为恒定值

y2(0.11101)20.90625

输出值等于迭代计算的初始值。因此,滤波器的稳定输出值就是初始值y2(0)。

若选取y2(0)=0.8725=(0.11100)2,则有

y1(1)(0.11000))2(0.11000))2(0.1110000000)2 2y2(0)(0.001112(0.11100)2(0.00111(0.11100)取舍y1(1)后,得到y2(1)20.875

即稳定输出值还是等于初始值y2(0)。

从以上3种情况的计算结果可以得出结论:如果y2(n)是从一个比死区下界还低的一个初始值开始迭代运算,那么,滤波器的输出将稳定在比死区下界略高的数值上,这个数值比下界恰好高出一个量化间隔q;如果y2(n)是从一个比死区上界高的初始值开始迭代运算,那么,滤波器的输出将稳定在等于死区的上界;如果y2(n)是从死区内某个数值开始迭代,那么,滤波器的输出将稳定在初始值上。理论上的精确输出值d处在死区内部,因此,当初始值选取在死带外时,滤波器的稳定输出决不可能逼近位于死带内的精确值,而只能取死区的上界值或取比死区下界值大q的某个值。如果初始值选择到死区内任何一个数,那么,滤波器的稳定输出就等于所选的初始值,也不会等于精确值,除非很偶然地把精确输出值选成为迭代运算时y2(n)的初始值y2(0)。

7.6 定点运算IIR和FIR数字滤波器

误差分析

通过前面的讨论我们知道,系统的系数量化对零、极点位臵的改变,将导致系统频响特性的改变。利用零、极点位臵敏感度无法直接得到频响特性的偏差,尤其当系统为高阶的情况,其系数多且量化误差具有随机特点,所以可以将系数量化误差等效为随机变量,通过采用统计方法估计高阶系统的性能偏差。

实现数字滤波器所包含的基本运算有延时、乘系数和相加三种。

延时运算由寄存器来完成,并不造成字长的变化,而通常信号和滤波器的系数用有限字长定点二进制小数表示,因此,滤波器主要涉及乘系数和乘法、加法运算造成的影响。

定点小数相加后字长不会增加,因此无需进行截尾或舍入处理;定点小数相加的溢出问题可以通过乘以适当的比例因子的办法来解决。定点小数相乘没有溢出问题,但字长会增加,因此必须采用截尾或舍入处理。

每次进行定点小数乘法运算后,都会引入截尾或舍入噪声,并最终在滤波器输出端反映出来。

浮点制运算中,相加和相乘都有可能使尾数增加,故都会有舍入或截尾,引起运算量化误差,但不存在动态范围问题。

舍入或截尾的处理是非线性过程,分析起来非常麻烦,精确计算不仅不大可能,也没有必要,因而采用统计方法,得到舍入或截尾的平均效果即可。下面通过讨论运算中的有限字长效应来分别分析定点运算IIR和FIR数字滤波器误差情况。

一.有限字长定点运算IIR滤波器的误差分析

在定点制中,把定点乘法运算后的截尾或舍入处理过程模型化为在精确乘积上叠加一个截尾或舍入量化噪声。

根据叠加原理,滤波器输出端的噪声等于作用于滤波器结构中不同位臵上的量化噪声在输出端发生的响应的总和,这样仍可以用线性

流图来表示,由此不难计算滤波器输出端的信噪比。采用图7-5的统计模型。

在分析数字滤波器由于乘法舍入的影响时,需对各种噪声源作相关假设:

①系统中所有的运算量化噪声都是平稳的白噪声(均值为零); ②所有的运算量化噪声,以及和信号之间均不相关; ③量化噪声在自己的量化范围内均匀分布。

(a)理想相乘

(b)实际乘法支路及其量化的线性模型

图7-5 定点制相乘运算模型

当信号波形越复杂,量化步距越小时,这些假定越接近实际。根

2b2b,]内均匀分布,据这些假定,可认为舍入噪声是在范围[222b22E[e(n)]mE[e(n)]02均值为e,方差为 e ,。

12

然后按照统计模型,利用白噪声通过线性系统来求解每一个噪声源所产生的输出噪声,为总输出噪声。

下面分别写出噪声源 e(n) 所造成的输出噪声的方差和均值:

2122jwfeH(e)de (7-8) 2j也可以利用Z变换中的巴塞伐尔定理(Parseval)得出下式

1211222H(z)H(z)zdzh(k)feeeee(7-9) 2jck总的输出噪声的方差也等于每个输出噪声方差之和

二.定点FIR滤波器的有限字长效应

用直接型或级联型等非递归结构实现FIR数字滤波器,由于舍入噪声没有反馈环节的积累,故其影响也就比同阶的IIR滤波器小,通常采用统计模型方法来分析有限字长效应。下面以横截型结构为例,分析FIR滤波器的量化噪声。

N阶FIR数字滤波器直接型结构的统计模型如图7-9所示,系

统函数为:

H(z)h(m)zm0N1m

系统差分方程为:

y(n)h(m)x(nm) (7-10)

m0N1

图7-9 FIR 系统直接形式舍入运算误差统计模型 同样对各噪声作如下假设:

①系统中所有的运算量化噪声都是平稳的白噪声(均值为零); ②所有运算量化噪声,以及和信号之间均不相关; ③量化噪声在自己的量化范围内均匀分布。 则此时输出为:

ˆ(n)y(n)f(n) yy(n)em(n) (7-11)

m0N1ˆ(n)分别为无限精度与乘积为有限精度情况下的其中,y(n)、y输出,

f(n)为输出噪声

N1N1N1ˆ(n)Q[h(m)x(nm)]h(m)x(nm)em(n)(7-12)y

m0m0m0

从式(7-11)可以知 :

f(n)em(n)

m0N122Ne故输出噪声的方差(功率)为: f12qN (7-13) 12

结果表明:

FIR系统定点舍入运算误差直接到达输出端,与系统的参数无关;

Lq2由于,故输出噪声与字长有关,也与滤波器阶数有关。

滤波器阶数越高,字长越短,量化噪声也越大。

7.7

浮点运算数字滤波器和FFT算法中的有限字长效应

浮点计算中,不论加法或乘法,每次运算之后,都要做一次尾数的舍入或截尾处理,由此引入误差。

浮点运算具有以下特点:

①浮点数的动态范围宽,因而浮点运算一般不需要考虑溢出问题;

②进行浮点运算时,乘法和加固法运算结果的尾数字长都会增加,因而必须进行截尾或舍入处理以限制字长,通常用得较多的是舍入处理;

③量化误差不仅用绝对误差,而且较多的情况下要用相对误差来分析。

当用有限字长浮点运算来实现数字滤波器和FFT算法时,加法运算和乘法运算都会引入舍入量化噪声,这些噪声可以用绝对误差来表示,这与定点运算的分析方法相同,即把舍入量化作用等效为理想的精确计算结果之上叠加一个噪声源。

这个噪声源就舍入量化绝对误差序列e(n),即:

Q[x(n)]x(n)e(n)

x(n)是精确计算结果,Q[x(n)] 是舍入量化后的结果。

浮点运算后的舍入量化作用,也可以用

Q[x(n)][1(n)]x(n) 作为模型,x(n)是精确计算结果,

Q[x(n)]是舍入量化后的结果,(n)是舍入量化的相对误差 :

Q[x(n)]x(n)e(n)(n) x(n)x(n) (7-14)

对浮点运算来说,它有两种统计模型:

一种是以绝对误差与精确值相加来表示量化后的值,常称为加性误差模型或非移变模型,因为这种模型是非移变系统。 另一种是以相对误差形成的系数与精确值相乘来表示量化后的值,常称为乘性误差模型或移变模型,因为这种模型是移变系统。

无论对数字滤波器或FFT算法,只要将以上两种模型的任一种引入算法流程图,即可对数字滤波器或FFT的浮点实现进行误差分析。

7.7.1 浮点运算IIR数字滤波器

浮点运算实现时的统计模型,有非移变(加性噪声)模型。与定点运算时的统计模型相比较,其主要差别是在浮点运算统计模型中增加了两次加法运算后引入的舍入误差(噪声)。假设所有噪声源都是白噪声序列,它们与信号x(n)和y(n)不相关,且

2它们在自己的取值范围内均匀分布,是浮点运算舍入误差的

ii(n)方差,根据假设,i(n) 在 [q,q] 内均匀分布,因

112ixdqq

q2q32q2bq2其中,q是量化间隔,。这里b是尾数字长(不包

含符号位)。

例如有一个IIR低通滤波器,传递函数为

1 H(z)1az1

采用浮点舍入尾数处理,假设x(n)也是零均值平稳随机过程。则可以求得总的输出噪声的方差:

211a2b222fy 231a2y31a2所以,计算滤波器的输出信噪比为:222b1a2f (7-15)

由这个例子可看出,用浮点运算实现IIR数字滤波器,其输出信噪比只与字长有关,而与输入信号的强度无关,这与用定点运算实现IIR数字滤波器的情况不同,后者信噪比与输入信号的强度有直接关系。

具体来说,当输入信号幅度下降时,输出信噪比将随之下降。因此,在定点IIR数字滤波器中,为得到高的输出信噪比,应尽可能增大输入信号的幅度,唯一的限制是不能发生溢出。

7.7.2 浮点运算FIR数字滤波器

图7-11所示的是浮点运算N阶FIR数字滤波器的乘性噪声(移变)统计模型。这里采用直接型结构,进行浮点乘法运算后引入的舍入量化噪声用乘以移变系数 1k(n) 来等效,进行浮点加法运算后引入的舍入量化噪声,用乘以移变系数

1r(n) 来等效。k和 r是舍入量化的相对误差,它们对应

的绝对误差都满足前面曾做过的几个假设条件;噪声源都是白噪声序列;噪声源互不相关也与滤波器输入信号和输出信号不相关;噪声源在误差取值范围内均匀分布。

滤波器的输出:w(n)y(n)f(n) (7-16)

N1y(n)h(k)x(nk)k0 (7-17)

y(n)是所有舍入量化噪声源在输出端产生的响应。

图7-11 FIR数字滤波器乘性噪声(移变)统计模型

滤波器输出w(n)的表达式为:

N1w(n)x(n)h(0)(10(n))[1r(n)]

r1N1N1x(nk)h(k)[1k(n)]k1[1r(n)] (7-18)

rkf(n)的均值为:

N1E[f(n)]E{x(nk)h(k)[B(n,k)1]}0K0

N1其中, 2y2x 是x(n)的方差。由于xxh2(k)k0

故有 :

k2(1)h2(k)y

N1k0yx2xN1这样,估计滤波器输出信噪比的下限:

2y312fN1q2 (7-19)

浮点运算FIR滤波器的这个性质与定点运算FIR滤波器不同,后者输出噪声方差的大小与乘积h(k)x(n-k)的计算次序和累加次序无关。

7.7.3 浮点运算FFT算法

与定点情况相同,对不同的FFT算法,相应的有限字长效应不同。仍以时间抽选基2FFT为例,图7-12所示的是单个蝶形浮点运算统计模型,图中符号意义与定点运算统计模型相同。

图7-12 浮点运算统计模型

省略推导过程, 介绍几点结论:

(1)浮点运算不论加法、乘法都产生误差。

(2)浮点制的输出节点噪声与其输入节点变量相关。因为前一级误差通过后一级碟形时其方差保持不变,所以浮点FFT总的输出误差与从输入x(n)到输出经过的蝶形个数有关。

(3)相同尾数字长情况下,浮点信噪比比定点小,运算精度高。

(4)浮点信噪比不随信号幅度大小变化,这也是所有浮点制运算的共同特点。

(5)输出与级数成反比例关系。当级数不变时,字长每增加1位将信噪比提高为原来的4倍(因为)。而用定点运算关系FFT时,输出信噪比与变换长度N的平方成反比例关系,由于级数,所以级数增加一倍意味着变换长度N增加原来的4倍,因而输出信噪比下降为原来的1/16;若在每级输入端插入1/2衰减,则输出信噪比与变换长度成反比例关系,因此,级数增加一倍使输出信噪比下降为原来的1/4。由讨论得知,浮点运算FFT的输出信噪比随着级数增加而下降,要比定点运算FFT缓慢得多。

本章小结

1. 在实际的数字信号处理系统中,存在着一些处理误差。这些误差可以用输出端的噪声来说明它们的影响。这些误差主要为A/D变换量化误差、计算结果的(乘积)截尾误差、系数表示的量化误差。

2. A/D量化的字长越长,则量化噪声越小。但A/D器件的量化的字长受其集成电路特性限制。一般字长越长,器件工作速度越慢。目前的A/D器件,在音频范围内,字长在1016bit。在视频范围内,字长在612bit。

3. 实际滤波器的计算系数使用有限精度数据来表示,也有量化误差。IIR滤波器系数量化误差的影响会使得系统另、极点发生偏差。也就是,系统频率响应特性发生变化,甚至可能使某些极点移出单位圆,从而导致系统不稳定(FIR滤波器没有极点变化和稳定性问题)。

4. LTI系统的有限字长效应(有限字长误差在输出信号中的影响)与有关。即与系统实现结构有关。

5. FIR滤波器的有限字长效应在输出端的影响与字长L和阶数N有关,字长越短,阶数越高,输出误差噪声信号也越大。

6. 对有反馈计算系统(IIR滤波器),通过选定合理的实现结构(级联、并联)可以减小有限字长效应的影响。特别是采用定点制运算系统时,这样的处理更为重要。

对于无反馈计算系统(FIR滤波器、FFT计算),根据所要求的输出精度(或信噪比)和所处理的数据阶数N,确定系统的计算字长L以满足计算精度要求。(特别是在定长制系统中)。

7. 分母乘积项表示极点到其他极点的距离。所以极点分布越密集,极点灵敏度越高。直接实现型阶数越高,越接近单位园,也会使灵敏度越高。

8. 对A/D变换量化误差主要根据系统精度要求,选用适当变换位数的器件(器件变换速度由采样定理决定)。

9. 浮点运算FFT的输出信噪比随着级数增加而下降,但要比定点运算FFT的输出信噪比的下降缓慢得多。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务