RLS和LMS算法进行比较
平衡QAM信号通过一个频率选择衰落信道使用LMS和RLS算法。比较两种算法的性能。
指定调制顺序。生成相应的QAM星座参考。
M = 16;sigConst = qammod (0: M - 1 M,“UnitAveragePower”,真正的);
创建一个频率选择静态通道有三个水龙头。
rchan = comm.RayleighChannel (“SampleRate”,1000,…“PathDelays”[0 1 e - 3 2 e - 3],“AveragePathGains”3 6][0,…“MaximumDopplerShift”0,…“RandomStream”,“与种子mt19937ar”,“种子”,73);
RLS均衡器
创建一个对象RLS均衡器。
eqrls = lineareq (rls (0.99, 0.1);eqrls。SigConst = SigConst;eqrls。ResetBeforeFiltering = 0;
生成和QAM调制随机训练序列。通过序列通过瑞利衰落信道。通过接收到的信号并通过均衡器训练信号设置均衡器抽头权值。
trainData =兰迪([0 m - 1], 200,1);trainSig = qammod (trainData, M,“UnitAveragePower”,真正的);rxSig = rchan (trainSig);[~,~,errorSig] =平衡(eqrls、rxSig trainSig);
情节的大小误差估计。
情节(abs (errorSig))标题(的错误估计,RLS均衡器)包含(“符号”)ylabel (“振幅”)
在200符号错误几乎消除。
传输一个QAM信号通过一个频率选择频道。平衡接收信号使用前面“训练”RLS均衡器。衡量执行处理循环所需要的时间。
抽搐为k = 1:20 data =兰迪([0 m - 1], 1000 1);%随机消息txSig = qammod(数据、米“UnitAveragePower”,真正的);%介绍信道失真。rxSig = rchan (txSig);%平衡接收信号。eqSig =平衡(eqrls rxSig);结束rlstime = toc;
情节的星座图和平衡的信号接收。
h =散点图(rxSig 1 0,“c”。);持有在散点图(eqSig 1 0,“b”。、h)传说(接收信号的,“平衡的信号”)标题(“RLS均衡器”)举行从
均衡器消除衰落信道的影响。
LMS均衡器
重复与LMS均衡器均衡过程。创建一个LMS均衡器对象。
eqlms = lineareq (6, lms (0.03));eqlms。SigConst = SigConst;eqlms。ResetBeforeFiltering = 0;
训练LMS均衡器。
trainData =兰迪([0 m - 1], 1000,1);trainSig = qammod (trainData, M,“UnitAveragePower”,真正的);rxSig = rchan (trainSig);[~,~,errorSig] =平衡(eqlms、rxSig trainSig);
情节的大小误差估计。
情节(abs (errorSig))标题(的错误估计,LMS均衡器)包含(“符号”)ylabel (“振幅”)
训练符号LMS均衡需要1000。
传输一个QAM信号通过相同的频率选择频道。平衡接收信号使用前面“训练”LMS均衡器。衡量执行处理循环所需要的时间。
抽搐为k = 1:20 data =兰迪([0 m - 1], 1000 1);%随机消息txSig = qammod(数据、米“UnitAveragePower”,真正的);%介绍信道失真。rxSig = rchan (txSig);%平衡接收信号。eqSig =平衡(eqlms rxSig);结束lmstime = toc;
情节的星座图和平衡的信号接收。
h =散点图(rxSig 1 0,“c”。);持有在散点图(eqSig 1 0,“b”。、h)传说(接收信号的,“平衡的信号”)标题(“LMS均衡器”)
均衡器消除衰落信道的影响。
比较循环两种均衡器算法的执行时间。
[rlstime lmstime]
LMS算法计算效率更高,因为它花了50%的时间来执行处理循环。然而,所需的训练序列LMS算法是5倍的时间。