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

链接地址:https://www.31ppt.com/p-4979978.html