详解matlab均衡算法equalize()
在matlab中,有一个常用的均衡器对象来均衡基带信号,它就是equalize()。
先来上一个例子看看具体的功效呗;
源码1:
clc
close all
clear
% Set up parameters.
M = 16; % Alphabet size for modulation
sigconst = step(comm.RectangularQAMModulator(M),(0:M-1)');% Signal constellation for 16-QAM
chan = [1 0.45 0.3+0.2i]; % Channel coefficients
hMod = comm.RectangularQAMModulator(M); % QAMModulator System object% Set up equalizers.
eqrls = lineareq(6, rls(0.99,0.1)); % Create an RLS equalizer object.
eqrls.SigConst = sigconst'; % Set signal constellation.
eqrls.ResetBeforeFiltering = 0; % Maintain continuity between iterations.
eqlms = lineareq(6, lms(0.003)); % Create an LMS equalizer object.
eqlms.SigConst = sigconst'; % Set signal constellation.
eqlms.ResetBeforeFiltering = 0; % Maintain continuity between iterations.
eq_current = eqrls; % Point to RLS for first iteration.
% Main loop
for jj = 1:4msg = randi([0 M-1],500,1); % Random messagemodmsg = step(hMod,msg); % Modulate using 16-QAM.% Set up training sequence for first iteration.if jj == 1ltr = 200; trainsig = modmsg(1:ltr);else% Use decision-directed mode after first iteration.ltr = 0; trainsig = [];end% Introduce channel distortion.filtmsg = filter(chan,1,modmsg);% Equalize the received signal.s = equalize(eq_current,filtmsg,trainsig);% Plot signals.h = scatterplot(filtmsg(ltr+1:end),1,0,'bx'); hold on;scatterplot(s(ltr+1:end),1,0,'g.',h);scatterplot(sigconst,1,0,'k*',h);legend('Received signal','Equalized signal','Signal constellation');title(['Iteration #' num2str(jj) ' (' eq_current.AlgType ')']);hold off;% Switch from RLS to LMS after second iteration.if jj == 2eqlms.WeightInputs = eq_current.WeightInputs; % Copy final inputs.eqlms.Weights = eq_current.Weights; % Copy final weights.eq_current = eqlms; % Make eq_current point to eqlms.end
end
结果如下图,这是对一个干扰较为严重的基带信号,经LMS均衡后,有极佳的效果。
来吧,刨析一波这个equalize()方法。
以下是matlab2018a中help的解释:
首先,它的使用语法有:
y = equalize(eqobj,x)
y = equalize(eqobj,x,trainsig)
[y,yd] = equalize(...)
[y,yd,e] = equalize(...)
equalize方法用均衡器对象eqobj处理基带信号矢量x,并返回均衡的信号矢量y 。
在进程结束时,eqobj包含更新的状态信息,如均衡器权重值和输入缓冲值。若要构造eqobj,请使用lineareq或dfe函数,如自适应算法中所述。
比如可以这样写:
eq_signal = equalize(lineareq(8, rls(0.99, 1e-2)),baseband_signal, training_signal);
其中上述training_signal是发送端为被干扰的信号,baseband_signal是接收端已被信道干扰,需要被均衡的信号。
均衡器函数假定信号x是按每个符号的nsamp采样进行采样的,其中nsamp是eqobj的nSampPerSym属性的值。对于CMA以外的自适应算法,均衡器使用由eqobj的SigConst属性指定的检测器在判决定向模式下进行自适应。均衡器的延迟为(eqobj.RefTap-1)/eqobj.nSampPerSym,如“来自均衡的延迟”中所述。
请注意,(eqobj.RefTap-1)必须是nSampPerSym的整数倍。对于分数间隔均衡器,抽头在符号周期的分数处间隔。参考抽头属于训练符号,因此必须与所有符号(即每个符号采样的整数)重合。RefTap=1对应于第一个符号,eqobj.RefTap=nSampPerSym+1对应于第二个符号,依此类推。因此(eqobj.RefTap-1)必须是nSampPerSym的整数倍。
如果eqobj.ResetBeforeFilting为0,则Equize在启动均衡操作时使用eqobj中的现有状态信息。因此,equize(eqobj,[x1 x2])等价于[equize(eqobj,x1)equize(eqobj,x2)]。若要手动重置eqobj,请将重置功能应用于eqobj。
如果eqobj.ResetBeforeFilting为1,则在开始均衡操作之前,均衡重置eqobj,覆盖eqobj中以前的任何状态信息。
Y=equalize(eqobj,x,traing)最初使用训练序列来调整均衡器。在对训练序列进行处理后,均衡器在判决引导模式下自适应。traing的向量长度必须小于或等于长度(X)-(eqobj.RefTap-1)/eqobj.nSampPerSym。
[Y,yd]=equalize(...)返回检测到的数据符号的矢量yd。
[Y,yd,e]=equalize(...)返回错误计算中描述的错误计算的结果。对于CMA以外的自适应算法,e是y和参考信号之间的误差矢量,其中参考信号由训练序列或检测到的符号组成。
详解matlab均衡算法equalize()相关推荐
- 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码
粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...
- matlab guide图像处理实例,现代数字图像处理技术提高及应用案例详解 MATLAB版-教科书.pdf...
数字,图像处理,技术,提高,应用,案例,详解,教科书 [General Information] 书名=现代数字图像处理技术提高及应用案例详解 MATLAB版 作者=赵小川编著 页数=384 SS号 ...
- 最形象的卷积神经网络详解:从算法思想到编程实现(转载)
mark一下,感谢作者分享! 原标题:最形象的卷积神经网络详解:从算法思想到编程实现 1 新智元推荐 查看全文 http://www.taodudu.cc/news/show-4611564.html ...
- matlab在数值计算中的应用,详解MATLAB在科学计算中的应用
详解MATLAB在科学计算中的应用 编辑 锁定 讨论 上传视频 <详解MATLAB在科学计算中的应用>是2011年电子工业出版社出版的图书,作者是陈泽占海明. 书 名 详解MATLA ...
- 牛顿斯科特MATLAB求积分,详解Matlab求积分的各种方法
详解Matlab求积分地各种方法 一.符号积分 符号积分由函数int来实现.该函数地一般调用格式为: int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示地默认变量对被积函数或符号 ...
- 【算法知识】详解希尔排序算法
前言 已发布: [算法知识]详解选择冒泡算法 [算法知识]详解选择排序算法 [算法知识]详解插入排序算法 当待插入元素是一个很小(当需求是从小到大排序时,从大到小排序时此处为很大)直接插入排序需要移动 ...
- 【算法知识】详解直接插入排序算法
前言 已发布: [算法知识]详解选择冒泡算法 [算法知识]详解选择排序算法 在玩扑克牌的时候,我们抽到一张牌的时候,都是将它插入到当前手中牌的合适位置的. 如下图: (上图来自算法导论) 直接插入排序 ...
- 算法详解_常用算法详解——打印杨辉三角形
杨辉三角,是二项式系数在三角形中的一种几何排列.在中国南宋数学家杨辉1261年所著的<详解九章算法>一书中出现.在欧洲,这个表叫做帕斯卡三角形.帕斯卡(1623----1662)是在165 ...
- matlab求积分 没有解,详解Matlab求积分的各种方法
详解Matlab求积分的各种方法 一.符号积分 符号积分由函数int来实现.该函数的一般调用格式为: int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号 ...
最新文章
- 深度学习框架哪家强?国产框架OneFlow做了一份测评报告
- 生信人写程序2. Editplus添加Perl, Shell, R模板和语法高亮
- 退出命令_退出不褪色 离别不离志----石嘴山支队举行2019年度冬季消防员退出命令宣布大会...
- 《AI系统周刊》第5期:Cerebras发布可运行120万亿参数AI模型的CS-2芯片
- vue开发(1) 软件安装
- html点击按钮弹出窗口_电脑桌面总是弹出广告怎么办?教你2种方法,轻松解决...
- 数据分析能力的8个等级,你能做到哪一步?
- 读书笔记 《TAOCP》 V1 S1.2
- 计算机软硬件的组成及主要技术指标,计算机软硬件系统的组成及主要技术指标...
- Egret引擎基础教程I(下载安装创建第一个项目)
- Chromedrive下载与安装
- 查询Products中单价(UnitPrice)最高的Products的资料;
- linux内核编程,实现内核之间的调用
- 达人秀计算机教学,回顾〡信息技术达人秀
- 上海大专计算机专业排名,2019上海软科世界一流学科排名计算机科学与工程专业排名乔治华盛顿大学排名第301-400...
- java设置铃声_APP集成小米消息推送自定义铃声设置
- 安卓性能测试(四):耗电量(功耗计算)
- 网线传输速度测试_家中重新布了网线,要测试有没有达到千兆的网速,应该怎么做?...
- 【大数据实验1】note1:安装CentOS 7.7(桥接模式)
- 百度地图开发:调用jsAPI实现实时定位的解决方案及常见问题