您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 用RLS算法实现自适应均衡器的MATLAB程序
1用RLS算法实现自适应均衡器的MATLAB程序考虑一个线性自适应均衡器的原理方框图如《现代数字信号处理导论》p.275自适应均衡器应用示意图。随机数据产生双极性的随机序列x[n],它随机地取+1和-1。随机信号通过一个信道传输,信道性质可由一个三系数FIR滤波器刻画,滤波器系数分别是0.3,0.9,0.3。在信道输出加入方差为σ平方高斯白噪声,设计一个有11个权系数的FIR结构的自适应均衡器,令均衡器的期望响应为x[n-7],选择几个合理的白噪声方差σ平方(不同信噪比),进行实验。用RLS算法实现这个自适应均衡器,画出一次实验的误差平方的收敛曲线,给出最后设计滤波器系数。一次实验的训练序列长度为500。进行20次独立实验,画出误差平方的收敛曲线。给出3个步长值的比较。仿真结果:2345用RLS算法设计的自适应均衡器系数序号123456789101120次0.0051-0.01180.0290-0.07920.2077-0.54581.4606-0.54050.1926-0.06630.01731次0.0069-0.01570.0265-0.07420.1966-0.53491.4514-0.53930.1987-0.07560.0251结果分析:可以看到,RLS算法的收敛速度明显比LMS算法快,并且误差也比LMS算法小,但是当用更小的忘却因子时,单次实验结果明显变坏,当忘却因子趋于0时,LS算法也就是LMS算法。6附程序:1.RLS法1次实验%writtenin2005.1.13%writtenbyli***clear;N=500;db=25;sh1=sqrt(10^(-db/10));u=1;m=0.0001*sh1^2;error_s=0;forloop=1:1w=zeros(1,11)';p=1/m*eye(11,11);V=sh1*randn(1,N);Z=randn(1,N)-0.5;x=sign(Z);forn=3:N;M(n)=0.3*x(n)+0.9*x(n-1)+0.3*x(n-2);endz=M+V;forn=8:N;d(n)=x(n-7);endforn=11:N;z1=[z(n)z(n-1)z(n-2)z(n-3)z(n-4)z(n-5)z(n-6)z(n-7)z(n-8)z(n-9)z(n-10)]';k=u^(-1).*p*z1./(1+u^(-1).*z1'*p*z1);e(n)=d(n)-w'*z1;w=w+k.*conj(e(n));p=u^(-1).*p-u^(-1).*k*z1'*p;y(n)=w'*z1;e1(n)=d(n)-w'*z1;enderror_s=error_s+e.^2;endwerror_s=error_s./1;n=1:N;plot(n,error_s);xlabel('n(忘却因子u=1;DB=25时)');ylabel('误差');title('RLS法1次实验误差平方的均值曲线');72.RLS法20次实验%writtenin2005.1.13%writtenbyli***clear;N=500;db=25;sh1=sqrt(10^(-db/10));u=1;m=0.0001*sh1^2;error_s=0;forloop=1:20w=zeros(1,11)';p=1/m*eye(11,11);V=sh1*randn(1,N);Z=randn(1,N)-0.5;x=sign(Z);forn=3:N;M(n)=0.3*x(n)+0.9*x(n-1)+0.3*x(n-2);endz=M+V;forn=8:N;d(n)=x(n-7);endforn=11:N;z1=[z(n)z(n-1)z(n-2)z(n-3)z(n-4)z(n-5)z(n-6)z(n-7)z(n-8)z(n-9)z(n-10)]';k=u^(-1).*p*z1./(1+u^(-1).*z1'*p*z1);e(n)=d(n)-w'*z1;w=w+k.*conj(e(n));p=u^(-1).*p-u^(-1).*k*z1'*p;y(n)=w'*z1;e1(n)=d(n)-w'*z1;enderror_s=error_s+e.^2;endwerror_s=error_s./20;n=1:N;plot(n,error_s);xlabel('n(忘却因子u=1;DB=25时)');ylabel('误差');title('RLS法20次实验误差平方的均值曲线');
本文标题:用RLS算法实现自适应均衡器的MATLAB程序
链接地址:https://www.777doc.com/doc-6509221 .html