文档库 最新最全的文档下载
当前位置:文档库 › RLS算法实现自适应均衡器的Matlab仿真

RLS算法实现自适应均衡器的Matlab仿真

RLS算法实现自适应均衡器的Matlab仿真
RLS算法实现自适应均衡器的Matlab仿真

基于RLS算法实现自适应均衡器的MATLAB仿真

1. 实验目的

用RLS算法实现自适应均衡器,画出一次实验的误差平方的收敛曲线,给出最后设计滤波器系数。一次实验的训练序列长度为500。进行20次独立实验,画出误差平方的收敛曲线。

2. 实验原理

自适应均衡器的工作过程包含两个阶段,一是训练过程,二是跟踪过程。在训练过程中,发送端向接收机发射一组已知的固定长度训练序列,接收机根据训练序列设定滤波器的参数,使检测误码率最小。典型的训练序列是伪随机二进制信号或一个固定的波形信号序列,紧跟在训练序列后面的是用户消息码元序列。接收机的自适应均衡器采用递归算法估计信道特性,调整滤波器参数,补偿信道特性失真,训练序列的选择应满足接收机均衡器在最恶劣的信道条件下也能实现滤波器参数调整

图1自适应均衡试验框图

如图1所示,系统中使用两个独立的随机数发生器,一个用xn来表示,用来测试信道。另一个用v(n)来表示,用来模拟接收器中加性白噪声的影响。序列xn是xn=1的Bernoulli2序列,随变量xn具有零均值和单位方差。第二个序列v(n)具有零均值,其方差v由实验中需要的信噪比决定。均衡器有11个抽头。

3. MATLAB仿真

1. RLS法1次实验

clear;

N=500;

db=25;

sh1=sqrt(10^(-db/10));

u=;

m=*sh1^2;

error_s=0;

for loop=1:1

w=zeros(1,11)';

p=1/m*eye(11,11);

V=sh1*randn(1,N );

Z=randn(1,N);

x=sign(Z);

for n=3:N;

M(n)=*x(n)+*x(n-1)+*x(n-2);

end

z=M+V;

for n=8:N;

d(n)=x(n-7);

end

for n=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;

end

error_s=error_s+e.^2;

end

w

error_s=error_s./1;

n=1:N;

plot(n,error_s);

xlabel('n (忘却因子u=1;DB=25时)');

ylabel('误差');

title('RLS法1次实验误差平方的均值曲线 ');

2. RLS法20次实验

clear;

N=500;

db=25;

sh1=sqrt(10^(-db/10));

u=;

m=*sh1^2;

error_s=0;

for loop=1:20

w=zeros(1,11)';

p=1/m*eye(11,11);

V=sh1*randn(1,N );

Z=randn(1,N);

x=sign(Z);

for n=3:N;

M(n)=*x(n)+*x(n-1)+*x(n-2);

end

z=M+V;

for n=8:N;

d(n)=x(n-7);

end

for n=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;

end

error_s=error_s+e.^2;

end

w

error_s=error_s./20;

n=1:N;

plot(n,error_s);

xlabel('n (忘却因子u=1;DB=25时)');

ylabel('误差');

title('RLS法20次实验误差平方的均值曲线 ');

4. 实验结果

图2

图3

相关文档