当前位置: 首页 > news >正文

(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滤波器进行信道均衡时在判决引导自适应模式下工作良好。

在训练误差对比图上,误差信号差异的突然跳跃表明在决策导向算法中使用了不正确的符号决策。只要这些误差发生的概率足够低,其影响是微乎其微的,并且判决引导自适应均衡器的性能与训练过的均衡器的性能几乎相当。


http://www.mrgr.cn/news/71988.html

相关文章:

  • idea 删除本地分支后,弹窗 delete tracked brank
  • LeetCode【0028】找出字符串中第一个匹配项的下标
  • Flink_DataStreamAPI_输出算子Sink
  • vue计算属性 初步使用案例
  • android dvr黑屏
  • Spring Boot 的生命周期
  • rust高级特征
  • 基于微信小程序的养老院管理系统的设计与实现,LW+源码+讲解
  • Qt---双缓冲绘图
  • 【bat】自动生成指定层级文件夹
  • pytorch奇怪错误
  • 数字信号处理Python示例(12)生成Chirp(线性调频)信号
  • 实验27:lcd12864液晶显示实验
  • CAN总线位同步的使用以及总线仲裁规则详解
  • 基于YOLOv5的人群密度检测系统设计与实现
  • 跟着尚硅谷学vue2—进阶版2.0—使用 Vue 脚手架2.0
  • 常用数字器件的描述-时序逻辑器件的描述
  • 类似keepalived的软件还有哪些
  • Docker部署Redis哨兵
  • 在 Service Worker 中caches.put() 和 caches.add()/caches.addAll() 方法他们之间的区别
  • 【知识科普】ARM架构和x86架构
  • CustomersettleController
  • 大循环引起CPU负载过高
  • Android命令行启动SoftAP功能
  • golang项目三层依赖架构,自底向上;依赖注入trpc\grpc
  • 51c视觉~合集6