《数字信号处理 第9章》由会员分享,可在线阅读,更多相关《数字信号处理 第9章(91页珍藏版)》请在金锄头文库上搜索。
1、第9章 数字信号处理的实现 第9章 数字信号处理的实现 9.1 数字信号处理中的量化效应 9.2 数字信号处理技术的软件实现9.3 数字信号处理的硬件实现简介第9章 数字信号处理的实现 9.1 数字信号处理中的量化效应9.1.1 量化及量化误差数字信号处理技术实现时,信号序列值、运算结果及参加运算的各个参数都必须用二进制的编码形式存储在有限长的寄存器中,如果该编码长度长于寄存器的长度,需要进行尾数处理;运算中,二进制乘法会使位数增多,也需要进行 尾数处理。尾数处理必然带来误差,例如,序列值0.8012用二进制表示为(0.1100110101)2,如用7位二进制表示,序列值则为(0.110011
2、)2, 其十进制为0.796 875,与原序列值的差值为0.80120.796 875=0.004 325 ,该差值是因为用有限位二进制数表示序列值形成的误差,称为量化误差。第9章 数字信号处理的实现 量化误差产生的原因是用有限长的寄存器存储数字引起的,因此也将这种误差引起的各种效应称为有限寄存器长度效应。这些量化效应在数字信号处理技术实现中,表 现在以下几方面:A/DC中量化效应,数字网络中参数量化效应,数字网络中运算量化效应,FFT中量化效应等。这些量化效应在数字信号处理技术实现时,都是很重要的问题,一直受到科技工作者的重视,并在理论上进行了很多研究。随着科学技术的飞速发展,主要是数字计算
3、机的发展 ,计算机字长由8位、16位提高到32位;一些结合数字信号处理特点发展起来的数字信号处理专用芯片近几年来发展 尤其迅速,不仅处理快速,字长达到32 bit;另外,高精度的A/D变换器也已商品化。 第9章 数字信号处理的实现 这样,随着计算字长的大大增加,量化误差大大减少了,因此,对于处理精度要求不高、计算字长较长的一般数字信号处理技术的实现,可以不考虑这些量化效应。但是对于要求成本低,用硬件实现时,或者要求高精度的硬 件实现时,这些量化效应问题亦然是重要问题。如果信号值用b+1位二进制数表示(量化),其中一位表示符号,b位表示小数部分,能表示的最小单位称为量化阶(或量化步长),用q表示
4、,q=2b。对于超过b位的部分进行尾数处理。尾数处理有两种方法:一种是舍入法,即 将尾数第b+1位按逢1进位,逢0不进位,b+1位以后的数略去的原则处理;另一种是截尾法,即将尾数第b+1位以及以后的数码略去。显然这两种处理方法的误差会不一样。 第9章 数字信号处理的实现 如果信号x(n)值量化后用Qx(n)表示,量化误差用e(n)表示,e(n)=Qx(n)x(n)一般x(n)是随机信号,那么e(n)也是随机的,经常将e(n)称为量化噪声。为便于分析,一般假设e(n)是与x(n)不相关的平稳随机序列,且是具有均匀分布特性的白噪声。设采用定点补码制,截尾法和舍入法的量化噪声概率密度曲线分 别如图9
5、.1.1(a)和(b)所示。这样截尾法量化误差的统计平均值为q/2,方差为q2/12;舍入法的统计平均值为0,方差也为q2/12,这里q=2b。很明显,字长b+1愈长,量化噪声方差愈小。后面我们将分别介绍各种量化效应。 第9章 数字信号处理的实现 图9.1.1 量化噪声e(n)的概率密度曲线第9章 数字信号处理的实现 根据上述量化原理,建立量化的数学模型:Qx=q roundx/q (9.1.1)式中,roundx表示对x四舍五入后取整,roundx/q表示x包含量化阶q的个数,所以Qx=q.roundx/q就是量化后的数值。x可以是标量、向量和矩阵。将数取整的方法有四舍五入取整、向上取整、向
6、下取整、向零 取整,对应的MATLAB取整函数分别为 round(x)、 ceil(x)、floor(x)、fix(x)。round最常用,对应的MATLAB量化语句为xq=q*round(x/q)。第9章 数字信号处理的实现 例如,x=0.8012,b=6,量化程序如下: x=0.8012; b=6; q=2-b; %计算量化阶qxq=q*round(x/q) %对x舍入值量化e=x-xq %计算量化误差e运行结果: xq=0.796875, e=0.004325第9章 数字信号处理的实现 9.1.2 A/D变换器中的量化效应A/D变换器的功能原理图如图9.1.(a) 所示,图中 是量化编码
7、后的输出,如果未量化的二进制编码用x(n)表示,那么量化噪声为 ,因此A/D变换器的输出 为 (9.1.2)考虑A/D变换器的量化效应,其统计模型如图9.1.2(b)所示。这样,由于e(n)的存在而降低了输出端的信噪比。第9章 数字信号处理的实现 图9.1.2 A/DC功能原理图及统计模型 第9章 数字信号处理的实现 假设A/D变换器输入信号xa(t)不含噪声,输出 中仅考虑量化噪声e(n),信号xa(t)平均功率用 表示,e(n)的平均功率用 表示,输出信噪比用S/N表示,信噪比通常用dB数表示:(9.1.3a) 第9章 数字信号处理的实现 A/D变换器采用定点舍入法,e(n)的统计平均值m
8、e=0,方差 将 代入(9.1.3a)式,得到: 此式表明,A/D变换器的位数b愈多,信噪比愈高;每增加一位,输出信噪比增加约6 dB。当然,输出信噪比也和输入信号功率有关,为增加输出信噪比,应在A/D变换器动态范围中,尽量提高信号幅度。如果对输出端信噪比提出要求, 根据(9.1.3b)式可以估计对A/D变换器的位数要求。 (9.1.3b)第9章 数字信号处理的实现 设xa(t)服从标准正态分布N(0, ),A/D变换器的动态范围为1 V。 我们知道,对于正态分布,xa(t)的幅度落入3x以外的概率很小,可以忽略。为充分利用其动态范围,取 ,代入(9.1.3)式,得如果要求S/N60 dB,由
9、上式计算出b10;如果S/N80 dB,则d13。增加A/D变换器的位数,会增加输出端信噪比,但A/D变换器的成本也会随位数b增加而迅速增加;另外,输入信号本身有一定的信噪比,过分追求减少量化噪声提高输出信噪比是没有意义的。因此,应根据实际需 要,合理选择A/D变换器位数。 第9章 数字信号处理的实现 输入最大幅度为1 V的b位A/D变换器,根据舍入量化模型(9.1.1)式,可以写出b位A/D变换器的MATLAB量化函数quant: function y=quant(x, b, V) if nargin3 V=max(abs(x); end %缺省V,则默认V等于x的最大值 ax=abs(x)
10、; %去掉负号q=V/(2b-1); %计算量化阶qxq=q*round(ax/q); %对|x|舍入值量化y=sign(x).*xq; %加入负号,恢复带负号的量化值y第9章 数字信号处理的实现 该函数可以对带负号的数据x进行A/D变换,x可以是标量、向量和矩阵。应当注意,上述为线性量化,其缺点是不利于小信号。为了改善小信号量化信噪比,工程上常常采用非线性量化。第9章 数字信号处理的实现 9.1.3 数字系统中的系数量化效应系统对输入信号进行处理时需要若干参数或者说系数,这些系数都要存储在有限位数的寄存器中,因此存在系数的量化效应。系数的量化误差直接影响系统函数的零、极点位置,如果发生了偏移
11、,会使系统的频率响应偏离理论设计的频率响应,不满足实际需要。量化误差严重时,极点移到单位圆上或者单位圆外,造成系统不稳定。系数量化效应直接和寄存器的长度有关,但也和系统的结构有关,有的结构对系数的量化误差不敏感,有的却很敏感。各种结构对系数量化误差的敏感度也是本节要研 究的内容之一。第9章 数字信号处理的实现 MATLAB按二进制双精度格式表示数,表示一个数用8字节(64位二进制数)。键入命令eps、realmin和realmax,可以显示出MATLAB浮点制表示的量化阶q=252=2.22041016、可以表示的最大数和最小数分别为2.225110308 和0.797710308。所以MAT
12、LAB的量化误差可以忽略不计,用MATLAB设计的滤波器系数可以看成精确的理论值。工程实际中要把用MATLAB设计的滤波器付诸实现,必须采用嵌入式的DSP芯片(或专用数字硬件电路),DSP芯片(或专用数字硬件电路)的字长一般为8、16、32 bit,采用定点或浮点二进制表示数,并进行数值运算。第9章 数字信号处理的实现 因此,用MATLAB设计完成后,必须考虑实际系统的有效字长,对设计结果进行量化仿真检验。当然,实际系统的有效字长越长,实际实现的性能越逼近MATLAB设计结果。好在MATLAB提供了定点运算方真模块库(Fix Point Blockset), 有兴趣的读者请找相关书籍学习。第9
13、章 数字信号处理的实现 1. 系数量化对系统频响特性的影响数字网络或者数字滤波器的系统函数用下式表示: 式中的系数br和ar必须用有限位二进制数进行量化,存储在有限长的寄存器中,经过量化后的系数用 表示,量化误差用br和ar表示,那么(9.1.4)第9章 数字信号处理的实现 (9.1.5) (9.1.6) 实际的系统函数用 表示,公式为 显然,系数量化后的频率响应不同于原来设计的频率响应。 (9.1.7)第9章 数字信号处理的实现 【例 9.1.1】假设窄带滤波器的系统函数如下式:如果用b+1位二进制表示上式中的系数,b=4,采用舍入法处理尾数,试分析系数量化误差对极点位置和频响特 性的影响。
14、解 求解本例的系数量化与绘图程序为ep911.m。第9章 数字信号处理的实现 %ep911.m: 例题9.1.1 系数量化与图9.1.3绘图程序B=1; A=1, -0.17, 0.965;%量化前系统函数系数向量b=4; %量化2进制位数Aq=quant(A, b); %对系统函数分母系数向量A进行b位量化p=roots(A) %计算量化前的极点pq=roots(Aq) %计算量化后的极点ap=abs(p) %计算量化前极点的模a pq=abs(pq) %计算量化后极点的模%以下为绘图部分省略第9章 数字信号处理的实现 运行程序,得到量化后的系统函数 为并求出H(z)和 的极点分别为显然,因
15、为系数的量化,使极点位置发生变化,算出极点 的模为: |p1, 2|=0.9823, ,说明量化后的极点离单位圆稍远一些,会使带通滤波器的幅度特性的峰值减小,中心频率有所移动。第9章 数字信号处理的实现 程序自动画出H(z)和 的幅频特性曲线分别如图9.1.3中的实线和虚线所示。该例题说明由于系数量化效应,使极点位置发生了变化,从而改变了原来设计的频率响应特性。 )(zH第9章 数字信号处理的实现 图9.1.3 量化前后系统幅频响应曲线第9章 数字信号处理的实现 应当注意,数字滤波器的系数的大小有时差别很大,如果用b位定点数表示时,以最大的系数确定量化阶q,对所有系数统一量化,必然使较小的系数相对量化误差很大,使滤波器性能远离设计指标要求。所以工程实际中常常采用浮点制表示系数。第9章 数字信号处理的实现 2. 极点位置敏感度下面分析系数量化误差对极零点位置的影响。如果 极零点位置改变了,严重时不仅IIR系统的频率响应会发生变化,还会影响系统的稳定性。因此研究极点位置的改变更加重要。为了表示系数量化对极点位置的影响 ,引入极点位置灵敏度的概念,所谓极点灵敏度, 是指每个极点对系数偏差的敏感程度。相应的还有零点位置灵敏度,分析方法相同。下面讨论系数量化对极点位置 的影响。(9.1.4)式中,分母多项式A(z