(67)RLS滤波器用于信道均衡时的判决引导(Decision-Directed)自适应模式的MATLAB仿真
文章目录
- 前言
- 一、仿真说明
- 1.RLS均衡器的训练模式与工作模式
- 2. RLS算法的基本概念、算法原理、和其他应用
- 二、RLS均衡器判决引导自适应模式仿真
- 1. 仿真代码
- 2. 仿真说明
- 三、仿真结果
- 1.接收16QAM信号的星座图
- 2.判决导向自适应均衡的16QAM信号的星座图
- 3.信道均衡系统的收发16QAM信号星座图
- 4.训练误差对比
- 5.仿真结果分析
前言
对于自适应信道均衡器而言,在使用训练数据完成对均衡器的权系数调整之后,均衡器就由训练模式转入工作模式,此时均衡器使用训练阶段得到的均衡器权系数继续对接收到的新数据进行均衡,只是此阶段均衡器的权系数不再进行调整。
均衡器工作阶段的另外一种模式是判决导向自适应(Decision-Directed Adaptation)。这种模式可以在没有训练数据可用的工作模式时间段内继续进行自适应信道均衡,在这种情况下,期望信号d[n]被输出信号y[n]的判决结果所代替,其理论依据是判决结果最接近发送信号中的有效符号。
本文给出使用RLS自适应算法在符号间隔的逐样本模式中用于这种判决导向自适应的MATLAB仿真。
一、仿真说明
1.RLS均衡器的训练模式与工作模式
本文介绍的RLS均衡器用于信道均衡时的判决引导(Decision-Directed)自适应模式,属于自适应信道均衡器的工作模式的内容。实际上,自适应均衡器需要首先经过训练模式并得到收敛的权系数之后,才能加入工作模式。所以本文介绍的内容是RLS自适应滤波器应用于数字通信中的信道均衡的第二部分。
关于RLS自适应滤波器应用于数字通信中的信道均衡的第一部分,也即RLS均衡器工作模式的内容,可以参看:
(65)使用RLS自适应滤波器进行信道均衡的MATLAB仿真
2. RLS算法的基本概念、算法原理、和其他应用
为避免内容重复,本文将不再对RLS滤波器的基本概念、算法原理等方面进行介绍。关于这些内容,以及RLS滤波器用于未知系统辨识、降噪、和预测等方面的内容,可以参看这三篇文章:
(62)使用RLS自适应滤波器进行系统辨识的MATLAB仿真
(63)使用RLS自适应滤波器进行降噪的MATLAB仿真
(64)使用RLS自适应滤波器进行预测的MATLAB仿真
二、RLS均衡器判决引导自适应模式仿真
1. 仿真代码
使用RLS滤波器进行信道均衡判决引导自适应模式的仿真代码如下:
e = [e(1:2000) zeros(1,3000)]; % e是训练误差
yhat_out = zeros(1,3000); % 输出信号(估计值)
ydd_out = zeros(1,3000); % 输出信号判决结果
data_temp = zeros(1,3000);for n = 2001:5000 % 2001:5000为训练序列后面的数据序列yhat = RLSfilter.Coefficients*[x(n);RLSfilter.States(1:end-1)];yhat_out(n-2000) = yhat;% 判决ydd = round((yhat+1+j)/2)*2-1-j;if (abs(real(ydd))>3)ydd = complex(3*sign(real(ydd)), imag(ydd));endif (abs(imag(ydd))>3)ydd = complex(real(ydd), 3*sign(imag(ydd)));endydd_out(n-2000) = ydd; % 输出信号判决结果% 误差信号(判决后的)e(n) = d(n) - yhat;
endfigure()
plot(yhat_out,'.');
grid on;
title('均衡滤波器输出的估计值');
xlabel('Re\{yhat[n]\}');ylabel('Im\{yhat[n]\}');
axis([-5 5 -5 5]);axis('square');figure()
plot(ydd_out,'r*');
hold on;
plot(s,'bo');
legend('均衡滤波后的判决结果','发射机发送的信号')
grid on;
title('信道均衡系统的收发信号星座(16QAM)');
xlabel('Re\{ydd[n]\}');ylabel('Im\{ydd[n]\}');
axis([-5 5 -5 5]);axis('square');%% 与全部序列用于训练的自适应进行比较
reset(RLSfilter); % 重置均衡器对象
[ytrain,etrain] = RLSfilter(x,d); % 全部序列都用于训练
n = 1:5000;figure()
semilogy(n,abs(e),n,abs(etrain),n,abs(e-etrain));
grid on;
legend('训练+判决导向模式','全训练模式','两者差异','Location','SouthWest');
title('训练+判决导向模式和全训练模式均衡器的误差对比');
xlabel('迭代次数');
ylabel('|e[n]|^2');
2. 仿真说明
如果符号判决是正确的,那么判决引导自适应将得到与训练自适应相同的性能。所以,代码中还将所有接收信号都作为训练数据,计算得到了误差序列。并以此与来自组合训练/判决引导自适应均衡器的误差序列进行比较。
三、仿真结果
仿真结果如下:
1.接收16QAM信号的星座图
2.判决导向自适应均衡的16QAM信号的星座图
3.信道均衡系统的收发16QAM信号星座图
4.训练误差对比
5.仿真结果分析
由均衡后16QAM信号的星座图、信道均衡系统的收发16QAM信号星座图、和误差信号对比,可以看到RLS滤波器进行信道均衡时在判决引导自适应模式下工作良好。
在训练误差对比图上,误差信号差异的突然跳跃表明在决策导向算法中使用了不正确的符号决策。只要这些误差发生的概率足够低,其影响是微乎其微的,并且判决引导自适应均衡器的性能与训练过的均衡器的性能几乎相当。