§5.5系数量化对系数滤波器的影响下面讨论第三种量化效应——系数的量化效应。由于滤波器的所有系数必须以有限长度的二进码形式存放在存储器中,所以必然对理想系数值取量化,造成实际系数存在误差,使零、极点位置发生偏离,影响滤波器性能。一个设计正确的滤波器,在实现时,由于系数量化,可能会导致实际滤波器的特性不符合要求,严重时甚至使单位圆内的极点偏离到单位圆外,从而系统失去稳定性。系数量化对滤波器的影响与字长有关,也与滤波器的结构有关,选择合适的结构可改善系数量化的影响。幅度dB00.20.40.60.81-80-70-60-50-40-30-20-100//量化前量化后(a)系数量化前后的频率响应(b)系数量化前后的零极点分布‘o’量化前的零点,‘*’量化后的零点,‘x’量化前的极点,‘+’量化后的极点-1-0.500.51-1-0.8-0.6-0.4-0.200.20.40.60.81实部虚部五阶椭圆低通滤波器的量化效应5.5.1极点位置灵敏度指每个极点位置对各系数偏差的敏感程度。极点位置的变化将直接影响系统的稳定性。所以极点位置灵敏度可以反映系数量化对滤波器稳定性的影响。系数量化后的实际系统函数为:NiiiNiiizbzazH11ˆ1ˆ)(ˆiiiiiibbbaaaˆˆ)()(1)(11zBzAzbzazHNiiiNiii量化后的系数分析一个N阶直接型结构的IIR滤波器的系统函数分析量化偏差造成的极零点位置偏差。设理想极点为,则系数量化后,极点变为,位置偏差是由引起的。,1,2,,ipiNNiiNiiizpzbzB111)1(1)(iippipibiiba,对的影响:因每个极点都与个bi系数有关,决定量化影响大小,反映极点pi对系数bk变化的敏感程度。大,对的影响大;小,对的影响小,称之为极点位置灵敏度。ibizNNibbbppNii,,1),,,,(21NkkkiNNiiiibbpbbpbbpbbpp12211kibpkibpkbipkibpkbip下面由B(Z)求灵敏度:利用偏微分关系:kibp)()()(kipzipzkbppzBbzBiiipzikkipzBbzBbp)()(kkzbzB)(NikkkikNikipppbp1)(NikkkNNikkiipzzzpzpzB1111)()1()(又故上式分母中每个因子(pi-pk)是一个由极点pk指向当前极点pi的矢量,整个分母是所有极点指向极点pi的矢量积,这些矢量越长,极点彼此间的距离越远,极点位置灵敏度越低;矢量越短,极点位置灵敏度越高。即极点位置灵敏度与极点间距离成反比。例1一个共轭极点在虚轴附近的滤波器如图(a),一个共轭极点在实轴附近的滤波器如图(b)两者比较,前者极点位置灵敏度比后者小,即系数量化程度相同时,前者造成的误差比后者小。影响极点位置灵敏度的几个因素:l与零极点的分布状态有关;极点位置灵敏度大小与极点间距离成反比;l与滤波器结构有关。高阶直接型极点位置灵敏度高;并联或级联型,由于二阶节中共轭极点位置误差互不影响,因此系数量化误差的影响小;l高阶滤波器避免用直接型,尽量分解为低阶网络的级联或并联。5.5.2利用MATLAB分析系数量化对数字滤波器性能的影响functionbeq=a2dR(d,b)%beq=a2dR(d,b)将十进制数利用舍入法得到b位的二进制数%然后将该二进制数再转换为十进制数m=1;d1=abs(d);whilefix(d1)0d1=abs(d)/(2^m);m=m+1;endbeq=fix(d1*2^b+.5);beq=sign(d).*beq.*2^(m-b-1);例3:分析六阶切比雪夫I型低通滤波器的量化效应,其边界频率为0.3π,通带纹波为3dB。对滤波器做舍入处理,使用函数a2dR.m,分子系数舍入到小数点后12位,分母系数舍入到小数点后8位。解用以下MATLAB程序分析量化效应clf;[b,a]=cheby1(6,3,0.3);[h,w]=freqz(b,a,512);g=20*log10(abs(h));bq=a2dR(b,12);aq=a2dR(a,8);[hq,w]=freqz(bq,aq,512);gq=20*log10(abs(hq));figure(1)plot(w/pi,g,'b',w/pi,gq,'r:');grid;axis([01-1205]);xlabel('\omega/\pi');ylabel('Gain,dB');legend('量化前','量化后');figure(2)[z1,p1,k1]=tf2zp(b,a);[z2,p2,k2]=tf2zp(bq,aq);zplaneplot([z1,z2],[p1,p2],{'o','p','d','s'});axis([-21.2-1.21.5]);legend('量化前的零点','量化后的零点','量化前的极点','量化后的极点');系数量化前后的频率响应系数量化前后的零极点分布例:对上一例子采用级联结构,在指标不变的情况下观察其量化效应,对滤波器系数做舍入处理,同样,分子系数舍入到小数点后12位,分母系数舍入到小数点后8位。解用以下MATLAB程序分析量化效应clf;[b,a]=cheby1(6,3,0.3);[z,p,k]=tf2zp(b,a);sos=zp2sos(z,p,k);[h,w]=freqz(b,a,512);g=20*log10(abs(h));sosq=sos;sosq(:,1:3)=a2dR(sos(:,1:3),12);级联形式的分子系数sosq(:,4:6)=a2dR(sos(:,4:6),8);级联形式的分母系数R1=sosq(1,:);R2=sosq(2,:);R3=sosq(3,:);6阶3个二阶节b1=conv(R1(1:3),R2(1:3));bq=conv(R3(1:3),b1);多项式相乘得到传递函数形式a1=conv(R1(4:6),R2(4:6));aq=conv(R3(4:6),a1);[hq,w]=freqz(bq,aq,512);gq=20*log10(abs(hq));figure(1)plot(w/pi,g,'b',w/pi,gq,'r:');grid;axis([01-1205]);xlabel('\omega/\pi');ylabel('Gain,dB');legend('量化前','量化后');figure(2)[z1,p1,k1]=tf2zp(b,a);[z2,p2,k2]=tf2zp(bq,aq);zplaneplot([z,z2],[p,p2],{'o','p','d','s'});axis([-21.2-1.21.5]);legend('量化前的零点','量化后的零点','量化前的极点','量化后的极点');系数量化前后的频率响应系数量化前后的零极点分布•补码的加法运算p188,p201的问题•溢出的处理方法以及不会引入新的误差p210•P215的程序•P147的吉布斯现象理解