判决反馈LMS均衡仿真
标签:
杂谈 |
分类: 学术讨论 |
应网友要求,现在上传DFE-LMS均衡算法仿真程序,参考Matlab 2007b
帮助文档,其DFE-LMS均衡器结构原理如下图:
http://s11/middle/5def5a66hd3413c4b20ca&690
采用10次蒙特卡洛仿真绘制结果,如果想获得更平滑结果,可适当调整nFrame,我将DFE-LMS和横向滤波器LMS
均衡做在了一起比较,如有问题,请留言!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% DFE-LMS算法 实数基带系统仿真程序
% 功能:实数基带系统判决反馈LMS均衡算法仿真-->BER\MSE指标
% 编写:李振兴
% E-Mail:lizhenxing@126.com
% Tel:
% 任何问题以及错误欢迎通过邮箱交流
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all
close all hidden
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 初始化参数设置(用户可根据需要修改此处参数)
nFrame = 10;
% 仿真发送的帧数(可作为蒙特卡洛仿真次数)
nPacket = 2500;
% 每帧的发送的数据点数
stepa = 0.01;
% 学习步长
stepb = 0.1;
dB = 25;
% 信噪比
e = zeros(1,nPacket);
% 瞬时计算误差
E = zeros(1,nPacket);
% 统计均方误差(为平滑用)
h = [0.18,0.3,1,0.18];
%ISI信道参数
h = h/norm(h);
nW = 11;
% 横向均衡器阶数
nB = 2;
% 反馈层阶数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 注意:当帧数nFrame不等于1的时候不要绘制星座图!
% nFrame根据需要可以适当设置,只要使得MSE曲线足够平滑就可以
% 均衡器阶数对结果影响较大,这里给出的是经过实验的最佳阶数
% 学习步长不宜设置过大
%% 算法实现过程
LP = nPacket-nW;
% 移掉几个数据避免负或零下标
X = zeros(nW+1,LP);
% 组织均衡器输入矩阵
Y = zeros(nB+1,LP);
y = zeros(1,nPacket);
z = zeros(1,nPacket);
% 循环开始(迭代次数=nFrame*nPacket)
for kk = 1:nFrame
% 此处修改蒙特卡洛次数
W =
zeros(nW+1,1);
B =
zeros(nB+1,1);
sX =
round(rand(1,nPacket))*2-1; % BPSK 或 2PAM 信号
%
scatterplot(sX);
http://s11/middle/5def5a66hd3413c4b20ca&690
采用10次蒙特卡洛仿真绘制结果,如果想获得更平滑结果,可适当调整nFrame,我将DFE-LMS和横向滤波器LMS
均衡做在了一起比较,如有问题,请留言!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% DFE-LMS算法 实数基带系统仿真程序
% 功能:实数基带系统判决反馈LMS均衡算法仿真-->BER\MSE指标
% 编写:李振兴
% E-Mail:lizhenxing@126.com
% Tel:
% 任何问题以及错误欢迎通过邮箱交流
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear all
close all hidden
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 初始化参数设置(用户可根据需要修改此处参数)
nFrame = 10;
nPacket = 2500;
stepa = 0.01;
stepb = 0.1;
dB = 25;
e = zeros(1,nPacket);
E = zeros(1,nPacket);
h = [0.18,0.3,1,0.18];
h = h/norm(h);
nW = 11;
nB = 2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 注意:当帧数nFrame不等于1的时候不要绘制星座图!
% nFrame根据需要可以适当设置,只要使得MSE曲线足够平滑就可以
% 均衡器阶数对结果影响较大,这里给出的是经过实验的最佳阶数
% 学习步长不宜设置过大
%% 算法实现过程
LP = nPacket-nW;
X = zeros(nW+1,LP);
Y = zeros(nB+1,LP);
y = zeros(1,nPacket);
z = zeros(1,nPacket);
% 循环开始(迭代次数=nFrame*nPacket)
for kk = 1:nFrame
%

加载中…