1、数字信号处理实验综合实验 粒状极限环现象和解决方法姓名:刘虔堃 学号:20091060027 班级: 通信国防 指导教师:柏正尧 实验日期:2011.12.23 1目录Comprehensive Laboratory Exercise .2Theoretical Basis(基本理论): .2Finite Word Length Effect(有限字长效应) .2Truncatedyi=0;x=0.04;for n=1:21y(n)=a2dR(alpha*yi,5)+x;yi=y(n);x=0;endk=0:20;stem(k,y)ylabel(振幅);xlabel(时间序号 n)【CODE1
2、; 为用户手动输入的数值 ;初始值 x0=0.04, y0=0】CODE1 中涉及到一个舍入处理函数 function a2dR。通过这个函数可以将十进制数通过舍入的方式得到近似的二进制数。函数 function a2dR 的代码如下:function beq=a2dR(d,n)%BEQ=A2DR(D,N)4%产生一个十进制数向量 D 的二进制表示的十进制等数 BEQ%其中 N 表示有 N 位用于通过舍入得到的幅度部分m=1;d1=abs(d);while fix(d1)0d1=abs(d)/(10m);m=m+1;endbeq=0;d1=d1+2(-n-1);for k=1:nbeq=fix
3、(d1*2)/(2k)+beq;d1=(d1*2)-fix(d1*2);endbeq=sign(d).*beq*10(m-1);【CODE2;N 对应 CODE1 中 y(n)=a2dR(alpha*yi,5)+x 的常量值 5,决定舍入的精度,N 值越大,舍入保留的位数越多,精度越高】运行 CODE1 进行观察The plots generated by running Code1 for = 0.55 is shown below(输入 =0.55 观察结果):0 2 4 6 8 10 12 14 16 18 2000.0050.010.0150.020.0250.030.0350.04信
4、信信信信信n=0.555From the plot we conclude thatAs a result of round-off processing ,the limit cycle will present in the filter.(由于舍入处理的影响,滤波器中将会出现极限环。)为了更好的观测极限环的现象,现对上述 CODE1 进行修改修改后的 CODE1:%一阶无限冲激响应滤波器中的粒状极限环alpha=input(输入 的值=);yi=0;x=1;for n=1:21y(n)=a2dR(alpha*yi,4)+x;yi=y(n);x=0;disp(y=);disp(yi);en
5、dk=0:20;stem(k,y)ylabel(振幅);xlabel(时间序号 n)【CODE3;disp 语句用来显示 yn的值,初始值 x0改为 1,N 值修改为 4】运行 CODE3 进行观察The plots generated by running Code3 for = 0.55 = 0.5 and = - 0.5 are shown below(输入 =0.55 和 =0.5 观察结果):60 2 4 6 8 10 12 14 16 18 2000.10.20.30.40.50.60.70.80.91信信信信信信n=0.550 2 4 6 8 10 12 14 16 18 200
6、0.10.20.30.40.50.60.70.80.91信信信信信信n=0.570 2 4 6 8 10 12 14 16 18 20-0.500.51信信信信信信n= -0.5极限环理论表明,极限环振荡现象严重程度和滤波器的精度关,现在将代码 3 中的 N 修改为 8,提高其舍入精度后再次运行代码 3 进行观察The plots generated by running Code3 for = 0.5 and = - 0.5 are shown below(输入=0.5 观察结果):0 2 4 6 8 10 12 14 16 18 2000.10.20.30.40.50.60.70.80.9
7、1信信信信信信n=0.580 2 4 6 8 10 12 14 16 18 20-0.500.51信信信信信信n= -0.5=0.55,N=4 =0.5,N=4 =-0.5,N=4 =0.5,N=8 =-0.5,N=8y=1 y=1 y=1 y=1 y=1y=0.5625 y=0.5000 y=-0.5000 y=-0.5000 y=-0.5000y=0.3125 y=0.2500 y=0.2500 y=0.2500 y=0.2500y=0.1875 y=0.1250 y=-0.1250 y=0.1250 y=-0.1250y=0.1250 y=0.0625 y=0.0625 y=0.0625
8、 y=0.0625y=0.0625 y=0.0625 y=-0.0625 y=0.0313 y=-0.0313y=0.0625 y=0.0625 y=0.0625 y=0.0156 y=0.0156y=0.0625 y=0.0625 y=-0.0625 y=0.0078 y=-0.0078y=0.0625 y=0.0625 y=0.0625 y=0.0039 y=0.0039y=0.0625 y=0.0625 y=-0.0625 y=0.0039 y=-0.0039y=0.0625 y=0.0625 y=0.0625 y=0.0039 y=0.0039y=0.0625 y=0.0625 y=-
9、0.0625 y=0.0039 y=-0.0039y=0.0625 y=0.0625 y=0.0625 y=0.0039 y=0.0039y=0.0625 y=0.0625 y=-0.0625 y=0.0039 y=-0.0039y=0.0625 y=0.0625 y=0.0625 y=0.0039 y=0.0039y=0.0625 y=0.0625 y=-0.0625 y=0.0039 y=-0.0039y=0.0625 y=0.0625 y=0.0625 y=0.0039 y=0.0039y=0.0625 y=0.0625 y=-0.0625 y=0.0039 y=-0.0039y=0.0
10、625 y=0.0625 y=0.0625 y=0.0039 y=0.0039y=0.0625 y=0.0625 y=-0.0625 y=0.0039 y=-0.0039y=0.0625 y=0.0625 y=0.0625 y=0.0039 y=0.0039各次运行的输出结果9From these plots we conclude thatAt the beginning, the zero-input terminal is weaken fast, but after the value of y decreases to one constant, the limit cycle wi
11、ll present in the filter. (在初始阶段,零输入响应快速减弱,而在 y 减低到某固定值后则发生极限环振荡。)N=4,the limit cycle presents when y=0.0625(= 0.55,= 0.5) and y=0.0625( =- 0.5),the value of |y| and a are irrespective. (N=4 时,振荡点在y=0.0625(=0.55, =0.5)和 y=0.0625(= -0.5)并且极限环出现时 |y|的大小和 无关。)N=8,the phenomenon of granular limit cycle
12、weakens obviously. (N=8 时,粒状极限环振荡现象明显减弱。)Therefore we may draw the further conclusionThe granular limit cycle is related to the filters precision and has nothing to do with the type and coefficient of the filter. The solution to the granular limit cycle is to improve the filters precision.(粒状极限环的产生和
13、滤波器的精度有关而和滤波器的类型和系数无关。解决粒状极限环的方法就是提高滤波器的精度。 )Circumstantiate Granular Limit Cycles Influence To The Filter(验证粒状极限环对滤波器的影响)首先我们需要模拟一个巴特沃斯高通滤波器,这个滤波器对一个扫频信号进行滤波,以观察极限环对滤波器的截止和通行部分的影响。滤波器参数:抽样频率 3500Hz;通带边界频率 1050;阻带边界频率 600;通带波纹 1dB;最小阻带衰减 20dB。输入扫频信号参数:最小频率 0.005;最大频率 0.5;序列长 40;初始相位 0。输入信号采用舍入法处理,舍入位数为 N。巴特沃斯高通滤波器代码如下:%巴特沃斯高通滤波器的设计N=input(输入舍入位数 N=);ft=3500;fp=1050;fs=600;rp=1;rs=20;wp=fp/ft;ws=fs/ft; n1,wn1=buttord(wp,ws,rp,rs); %估计滤波器阶数num,den=butter(n1,wn1,high,s); %设计滤波器disp(num=);disp(num); %显示传输函数disp(den=);disp(den);