自适应均衡matlab仿真,对比RLS,LMS以及NLMS的均衡前后星座图效果,调制采用4QAM,16QAM,64QAM
1.算法描述
在无线通信系统中,由于多径效应及码间干扰的存在,信号误码率会升高。均衡技术是一种对抗码间干扰的重要技术。本文将介绍LMS均衡和RLS均衡两种均衡算法。在线性和非线性均衡中的应用。将MSK信号经过三径多径信道。
由于最陡下降法每次迭代都需要知道性能曲面上某点的梯度值,而实际上梯度值只能根据观察数据进行估计。而L M S LMSLMS实质上是用平方误差代替均方误差,即:
得到L M S LMSLMS算法的基本关系式:
RLS算法的关键是用二乘方的时间平均准则取代最小均方准则,并按照时间进行迭代计算,换句话说,对从起始时刻到当前时刻所有误差的平方进行平均并使之最小化,即:
对于,非平稳随机信号,为了更好的跟踪,引入一个指数加权因子对上式进行修正:
传统lms算法及归一化lms算法:
及其对于平稳过程,最小均方差(least mean square,lms)算法[4][5]是直接利用单次采样数据获得的e2(n)代替均方误差j(n),来进行梯度估计的。其算法流程如下:
(1)根据已知数据,期望信号d(n)和滤波器的输入信号矢量x(n)=[x(n)x(n-1)…x(1)]t,设置收敛因子μ(0<μ
(2)初始化滤波器的权矢量w(0)=0(或由先验知识确定)、泄漏因子γ(0<γ<1,通常取γ近似为1);
(3)对n=0,1,2…,计算滤波器输出信号y(n)=xt(n)w(n)、误差信号e(n)=d(n)-y(n)、以及滤波器权更新系数w(n+1)=w(n)+2μe(n)x(n);
(4)归一化lms算法(nlms)在传统lms算法权值更新上做了调整:w(n+1)=w(n)+2μe(n)x(n)/[x(n)×x(n)-1+β],参数属性与传统lms算法相同,参数β为防止x(n)×x(n)-1过小权值更新失真而设置。
2.仿真效果预览
matlab2022a仿真结果如下:
3.MATLAB核心程序
l=35; channel=[0.5,1.2,1.5,-1]; switch qam case 4 sigam=sqrt(2);%%%QAM4 case 16 sigam=sqrt(10);%%%QAM16 case 64 sigam=sqrt(42);%%%QAM64 case 256 sigam=sqrt(170);%%%QAM64 end lamda=1;%%%% 1/lamda lamda=1/lamda; phi=0.08; sigam1=sqrt(norm(channel)^2/10^(snr/10)); %QPSK sigam2=sqrt(sigam^2*norm(channel)^2/10^(snr/10)); %QAM16 %noise v=zeros(1,n1+n2); v(1:n1)=(sigam1/sqrt(2))*(randn(1,n1)+1j*randn(1,n1)); v(n1+1:n1+n2)=(sigam2/sqrt(2))*(randn(1,n2)+1j*randn(1,n2)); %data s(1:n1)=(randi(2,1,n1)*sqrt(2)-sqrt(2)*3/2)+1j*(randi(2,1,n1)*sqrt(2)-sqrt(2)*3/2); train=zeros(1,n1+delta); train(delta+1:n1+delta)=s(1:n1); s(n1+1:n1+n2)=qammod(randi(qam,1,n2)-1,qam); y=filter(channel,1,s); r=y+v; w=zeros(l,1); u=zeros(1,l); e=zeros(1,n1+n2); k=zeros(l,1); p=1/phi*eye(l); for i= 1:n1+delta u=[r(i),u(1:l-1)]; ss(i)=u*w; d(i)=train(i); k=lamda*p*u'/(1+lamda*u*p*u'); e(i)=d(i)-ss(i); w=w+k*e(i); %%%%%%%% p=lamda*p-lamda*k*u*p; end nm=0; for i=n1+delta+1:n1+n2 u=[r(i),u(1:l-1)]; ss(i)=u*w; dd(i)=qammod(qamdemod(ss(i),qam),qam); d(i)=dd(i); k=lamda*p*u'/(1+lamda*u*p*u'); e(i)=d(i)-ss(i); w=w+k*e(i); %%%%%%%% p=lamda*p-lamda*k*u*p; i; if(dd(i)~=s(i-delta)) nm=nm+1; end end