m软件接收机中同步技术以及LMS-RLS自适应均衡技术的matlab仿真

news2024/11/25 22:28:42

目录

1.算法描述

2.仿真效果预览

3.MATLAB核心程序

4.完整MATLAB


1.算法描述

       自适应均衡属于自适应信号处理的应用范畴,各种各样的自适应均衡算法如迫零(ZF)算法、最小均方(LMS)算法、递归最小二乘(RLS)算法、变换域均衡算法、Bussgang算法、高阶或循环统计量算法、基于非线性滤波器或神经网络的均衡算法等应运而生。均衡器通常工作在接收机的基带或中频信号部分,基带信号的复包络含有信道带宽信号的全部信息,所以,均衡器通常在基带信号完成估计信道冲激响应和解调输出信号中实现自适应算法等,本文选择了两种典型的自适应算法:以LMS自适应均衡器和RLS自适应均衡器为基础,用MATLAB仿真软件对LMS和RLS两种算法进行仿真,比较并分析了两种算法的性能。

1自适应均衡器

        一种均衡器,可用于校正高速双极性信号的符号间干扰。它可响应电话线路的静态和动态性能变化。均衡器包括若干级逻辑控制线路及抽头线路,每个抽头线路有一个积分器,积分器由电子开关控制进行充电放电。积分器的输出在逻辑控制下相加或相减。均衡信号还可以在线路变压器处直接监视。

       自适应均衡器的工作过程包含两个阶段,典型的训练序列是伪随机二进制信号或一个固定的波形信号序列,紧跟在训练序列后面的是用户消息码元序列。接收机的自适应均衡器采用递归算法估计信道特性,调整滤波器参数,补偿信道特性失真,训练序列的选择应满足接收机均衡器在最恶劣的信道估计条件下也能实现滤波器参数调整。所以,均衡器参数基本上接近最佳值,以保证用户数据的接收,成为均衡器的收敛。用户数据序列需要被分割成数据分组或时隙分段传送。

1基于LMS的自适应均衡算法

       感知器和自适应线性元件在历史上几乎是同时提出的,并且两者在对权值的调整的算法非常相似。它们都是基于纠错学习规则的学习算法。感知器算法存在如下问题:不能推广到一般的前向网络中;函数不是线性可分时,得不出任何结果。而由美国斯坦福大学的Widrow和Hoff在研究自适应理论时提出的LMS算法,由于其容易实现而很快得到了广泛应用,成为自适应滤波的标准算法。

LMS算法[1]采用的是最小均方误差准则,代价函数是:

3fd692d66721bf6e81d0b9817af96025.gif

2基于RLS的自适应均衡算法

RLS算法[3]所采用的准则是最小二乘准则,其代价函数为:

2dc034f93d7b6860aeaaa0667f16f0c3.png

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

3.MATLAB核心程序

clc;
clear;
close all;
warning off;
pack;
rng(2);
%产生QAM基带信号
%二进制数据长度
N      = 10000;      
 %传送的有效数据长度
N_data = N;             
M      = 32;
 
for i = 1:N
    x(i) = 1 + floor(M*rand);
end
qam_sig = func_32QAM(x);
sybol1  = qam_sig(:,1);
sybol2  = qam_sig(:,2);
figure;
subplot(221);
plot(sybol1,sybol2,'b.');
axis([-7,7,-7,7]);
%成型滤波器
Fs   = 2000;         
T    = 2/Fs;           
t    =-5*T:1/Fs:5*T;   
t    = t+0.00001; 
alfa = 0.4;
p    = rcosfir(alfa,[-5,5],Fs*T,1000,'sqrt');
%%%%%%%%%%%%%%%%%%%%%基带成形
%I路成形
n    = length(sybol1);     % Number of symbols
r    = T*Fs;               % Oversampling factor 
pams1= zeros(size(1:r*n));
pams1(1:r:r*n)=sybol1;     % Pulse sequence
ynI  = filter(p,1,pams1);  % Pulse shaping filtering
%Q路成形
pams2= zeros(size(1:r*n));
pams2(1:r:r*n)=sybol2;     % Pulse sequence
ynQ  = filter(p,1,pams2);  % Pulse shaping filtering
%正交调制
yn0  = ynQ+ynI*j;
%星座图
subplot(222);
plot(ynQ,ynI,'b.');
axis([-7,7,-7,7]);
 
%%
%信道模型
SNR= 20;
H  = [0.47,0.8,0.6];%信道参数
yn = filter(H/sum(H),1,yn0);
%加入噪声
yn = awgn(yn,SNR); 
 
%接收初步滤波处理
H1    = fir1(7,0.5); 
yn    = filter(H1,1,yn);
%基带等效正解解调
r_ynQ = real(yn);
r_ynI = imag(yn);
%由于时延固定取常数 
delay       = 1; 
re_I        = r_ynI(delay);
re_Q        = r_ynQ(delay);
 
for i=1:(N/4-delay)
   re_I=[re_I,r_ynI(i*2+delay)];
   re_Q=[re_Q,r_ynQ(i*2+delay)];
end
%LMS均衡
uu          = 0.005;
Lens        = 1024;
%I路均衡
Order       = 18;
W           = zeros(size(1:Order+1)).';   
Start       = 1;
%取前Lens个数据作为训练序列
Ref(1:Lens) = sybol1(1:Lens);    
for i=Start+1:Lens-Order/2
    rk           = flipud(re_I(i:i+Order).');  
    Err(i-Start) = Ref(i-Start+Order/2) - W.'*rk;
    W            = W + uu*Err(i-Start)*rk;
end
%均衡
re_I        = filter(W,1,re_I);         
%Q路均衡
W           = zeros(size(1:Order+1)).';  
Ref(1:Lens) = sybol2(1:Lens);%取前512个数据作为训练序列
for i=Start+1:Lens-Order/2
    rk           = flipud(re_Q(i:i+Order).'); % Received signal vector
    Err(i-Start) = Ref(i-Start+Order/2)-W.'*rk; % Error signal, we use the symbol sequence known in
    W            = W+uu*Err(i-Start)*rk;
end
%均衡
re_Q        = filter(W,1,re_Q);  %对re_Q进行均衡
subplot(223);
s=re_I*j+re_Q;
plot(re_I,re_Q,'b.');
title('均衡后信号星座图(20db)');
axis([-7,7,-7,7]);
 
 
 
%%
%信道模型
SNR= 10;
H  = [0.47,0.8,0.6];%信道参数
yn = filter(H/sum(H),1,yn0);
%加入噪声
yn = awgn(yn,SNR); 
 
%接收初步滤波处理
H1    = fir1(7,0.5); 
yn    = filter(H1,1,yn);
%基带等效正解解调
r_ynQ = real(yn);
r_ynI = imag(yn);
%由于时延固定取常数 
delay       = 1; 
re_I        = r_ynI(delay);
re_Q        = r_ynQ(delay);
 
for i=1:(N/4-delay)
   re_I=[re_I,r_ynI(i*2+delay)];
   re_Q=[re_Q,r_ynQ(i*2+delay)];
end
%LMS均衡
uu          = 0.005;
Lens        = 1024;
%I路均衡
Order       = 18;
W           = zeros(size(1:Order+1)).';   
Start       = 1;
%取前Lens个数据作为训练序列
Ref(1:Lens) = sybol1(1:Lens);    
for i=Start+1:Lens-Order/2
    rk           = flipud(re_I(i:i+Order).');  
    Err(i-Start) = Ref(i-Start+Order/2) - W.'*rk;
    W            = W + uu*Err(i-Start)*rk;
end
%均衡
re_I        = filter(W,1,re_I);         
%Q路均衡
W           = zeros(size(1:Order+1)).';  
Ref(1:Lens) = sybol2(1:Lens);%取前512个数据作为训练序列
for i=Start+1:Lens-Order/2
    rk           = flipud(re_Q(i:i+Order).'); % Received signal vector
    Err(i-Start) = Ref(i-Start+Order/2)-W.'*rk; % Error signal, we use the symbol sequence known in
    W            = W+uu*Err(i-Start)*rk;
end
%均衡
re_Q        = filter(W,1,re_Q);  %对re_Q进行均衡
subplot(224);
s=re_I*j+re_Q;
plot(re_I,re_Q,'b.');
title('均衡后信号星座图(10db)');
axis([-7,7,-7,7]);
01_150m

4.完整MATLAB

V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/89102.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用CreateJS实现一个【拯救球员】小游戏,快@你的小伙伴一起来玩儿吧

拯救球员游戏需求👇核心玩法👇👇界面原型👇👇成品演示👇游戏开发1.游戏素材准备2.代码实现1.创建index.html页面2.首页转场动画实现3.添加分数倒计时4.卡片排序展示5.游戏结束世界杯开赛前夕,球…

拷贝构造,赋值运算符重载(六千字长文详解!)

c之类和对象详解 拷贝构造,赋值运算符重载 文章目录c之类和对象详解 拷贝构造,赋值运算符重载拷贝构造拷贝构造特征拷贝构造的注意赋值运算符重载运算符重载赋值重载赋值运算符的写法注意赋值重载的默认性赋值重载和拷贝赋值的区别在哪里?拷贝…

Ubuntu问题汇总

1.sudo ifconfig 找不到命令 ubuntu找不到ifconfig_猿 白的博客-CSDN博客_ubuntu ifconfig命令找不到 没有找到ifconfig的命令,需要进行安装,按照提示中的命令安装相关的工具包 sudo apt install net-tools 2.ip查找 3.重启服务器后,nvid…

记一次浏览器预览通过nginx且有权限控制的静态文件

我的需求是,后台生成了合同文件,用户需要进行预览,如果采用流的实现方式的话,会涉及到输入流、输出流,性能开销较大,所以采用的是直接访问文件,这里就涉及到一个问题,就是 需要设置…

Mobtech秒验SDK——一站式解决用户登录场景

据悉,北京中文万维科技有限公司旗下多款APP,和MobTech开发的秒验SDK达成合作,为其提供用户一键登录解决方案。 北京中文万维科技有限公司是一家立志以移动互联网阅读为发展起点的阅读互动娱乐高新技术企业,旗下拥有多款阅读类APP。…

互动教学场景下的视频直播线上研讨会应用(组图)

阿酷TONY / 原创 / 2022-12-14 / 长沙 / 互动教学/互动培训类场景特点: 1. 直播过程中,学员不仅是观看讲师的授课内容,还要与讲师直接进行音视频会话;当然一些非培训教学场景也常用到,比如线上学术类研讨会等等。 2…

【Pycharm教程】 详解 PyCharm Macros宏

宏提供了一种方便的方法来自动化您在编写代码时经常执行的重复过程。您可以录制、编辑和播放宏,为它们分配快捷方式并共享它们。 宏可用于在文件中组合一系列与编辑器相关的操作。 您无法记录按钮单击、导航到弹出窗口以及访问工具窗口、菜单和对话框。 可以使用没…

从3s到40ms,看看人家的性能优化技巧,确实优雅

什么是高性能系统 先理解一下什么是高性能设计,官方定义: 高可用(High Availability,HA)核心目标是保障业务的连续性,从用户视角来看,业务永远是正常稳定的对外提供服务,业界一般用几个 9 来衡量系统的可用性。通常采…

代码随想录算法训练营第五十天|123.买卖股票的最佳时机III、 188.买卖股票的最佳时机IV

123.买卖股票的最佳时机III 此题限定了买卖的次数,所以应该用几个状态来记录所对应得利润 至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。 dp数组及下标含义 一天一共就有五个状态, 0 没有操作 1 第…

java+mysql 基于ssm的驾校预约管理系统

随着现代驾校预约管理的快速发展,可以说驾校预约管理已经逐渐成为现代驾校预约管理过程中最为重要的部分之一。但是一直以来我国传统的驾校预约管理并没有建立一套完善的行之有效的驾校预约管理系统,传统的驾校预约管理已经无法适应高速发展,无论是从效率还是从效果来看都远远的…

代码随想录Day50|123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

文章目录123.买卖股票的最佳时机III188.买卖股票的最佳时机IV123.买卖股票的最佳时机III 文章讲解:代码随想录 (programmercarl.com) 题目链接:123. 买卖股票的最佳时机 III - 力扣(LeetCode) 题目: 给定一个数组&…

[附源码]Python计算机毕业设计感动校园人物投稿网站Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

极简入门 2022 docker 部署skywalking9.2.0

安装skywalking服务 官方地址:官网 安装文档:文档地址 拉取镜像 docker pull apache/skywalking-oap-server:9.2.0 docker pull apache/skywalking-ui:9.2.0运行skywalking-oap容器 docker run --name skywalking-oap -e TZAsia/Shanghai -p 12800:1…

ffmpeg的基本用法

title: ffmpeg的基本用法 categories:[ffmpeg] tags:[音视频编程] 一、ffmpeg的安装 1.Centos安装 FFmpeg 在默认的CentOS 8 源仓库中没有提供。你可以选择通过源文件编译安装 FFmpeg,或者使用dnf工具从Negativo17源仓库中安装。我们将会使用第二个选项。 完成…

正大期货数据整合 新鲜事简单报

本周观察重点: 🔹美国11月CPI数据昨晚公布为7.1%,低于市场预期7.3%,较于前值7.7%大幅回落,随通膨回落,静待联准会未来货币政策方向。 12/15 (四) 美国、香港、欧洲、英国、台湾央行12月利率决策会议 12/16 (六) 日本、…

基于java+springboot+mybatis+vue+mysql的小学家校一体作业帮

项目介绍 本系统采用java语言开发,后端采用springboot框架,前端采用vue技术,数据库采用mysql进行数据存储。系统功能如下: 前台: 首页、微社区、试卷、公告通知、个人中心、后台管理 后台: 首页、个人中…

SpringCloud02

1.Nacos配置管理 Nacos除了可以做注册中心,同样可以做配置管理来使用。 1.1.统一配置管理 当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案&#xff…

技术分享 | 软件项目管理与跨部门沟通协作

项目管理是在项目活动中运用知识、技能、工具和方法,以便达到项目要求。 软件项目管理有其特定的对象、范围和活动,着重关注成本、进度、风险和质量的管理,还需要协调开发团队和客户的关系,协调内部各个团队之间的关系&#xff0…

怎么把pdf格式转成word文档?如何将 PDF 转换为 Word

怎么把pdf格式转成word文档?PDF是运用得很广泛地的办公文档,但是不能编辑,为了方便编辑,需要将PDF转换为word,那么,如何将 PDF 转换为 Word,下面,易我小编会讲解实用的pdf转word的操…

基于VBA实现电缆结构自动出图(二) —— 单芯线

大家敢相信吗,原来VBA竟然可以实现电缆结构自动出图,换句话说,只要输入数据,VBA会自动将电缆的结构画出来,同时还可以渲染,结果竟然不输画图软件,真真让我刮目相看。这里我就不过多介绍VBA了&am…