不同均衡器的误码率性能

这个例子展示了在通带为空的静态信道中几种类型的均衡器的误码率性能。该实例构造并实现了一个线性均衡器对象和一个决策反馈均衡器(DFE)对象。它还初始化并调用最大似然序列估计(MLSE)均衡器。首先使用完美的信道知识调用MLSE均衡器,然后使用简单但不完美的信道估计技术。

随着仿真的进展,它更新了一个BER图比较分析之间的均衡方法。同时给出了线性均衡信号和DFE均衡信号的信号谱。它还显示了错误的相对突突性,表明在低BERs时,MLSE算法和DFE算法都存在错误突突。特别地,反馈检测到的比特比反馈正确比特的DFE错误性能更大。最后,在仿真的“不完善”的MLSE部分,它显示和动态更新估计的信道响应。

来试验本实施例中,可以改变这些参数作为信道脉冲响应,均衡器抽头权重的数目,递归最小二乘(RLS)遗忘因子,所述最小均方(LMS)的步长,则MLSE回溯长度,所述误差在估计的信道长度,以及在每个Eb / No的值收集差错的最大数量。

代码结构

这个示例依赖于其他几个脚本和函数来执行一系列Eb/No值上的链接模拟。这些文件如下:

eqber_adaptive - 一个脚本运行的线性和DFE均衡器链接模拟

eqber_mlse—为理想的和不完美的MLSE均衡器运行链接模拟的脚本

一个脚本,生成一个二进制相移键控(BPSK)信号,没有脉冲整形,然后处理它通过通道和添加噪声

一个生成和更新显示线性、DFE和MLSE均衡器性能的图形的函数。在MATLAB®命令行中输入“edit eqber_graphics”以查看此文件。

脚本eqber_adaptive和eqber_mlse说明了如何在多个数据块中使用adaptive和MLSE均衡器,以便在数据块之间保留状态信息。

信号和通道参数

相关的信号和信道集合的参数。使用BPSK没有任何脉冲成形,并且一个5抽头实值对称信道脉冲响应。(由J. Proakis,第4版,对于信道的更多细节数字通信的见10.2.3节。)设置数据和噪声发生器的初始状态。设置的Eb / No范围。

%系统仿真参数FS = 1;%采样频率(理论上)nBits = 2048;每个矢量的BPSK符号的数目%maxErrs = 200;在每一个的Eb误差%的目标数量/否maxBits = 1E6;每个Eb/No的最大符号数%%调制信号参数M = 2;调制的%为了RS = FS;%符号率nSamp = FS /卢比;每个符号百分比样本Rb = Rs * log2 (M);%比特率%信道参数chnl = [0.227 0.460 0.688 0.460 0.227]';%的信道脉冲响应chnlLen =长度(chnl);通道长度,在样本中的EbNo = 0:14;在dB %1 = 0(大小(EbNo));%初始化值创建BPSK调制器bpskMod = comm.BPSKModulator;为随机数生成器指定一个种子,以确保可重复性。rng (12345)

自适应均衡器参数

为线性和DFE均衡器设置参数值。使用31个抽头的线性均衡器,和15个前馈和反馈抽头的DFE。对第一个数据块使用递归最小二乘(RLS)算法,以确保快速的tap收敛。然后使用最小均方(LMS)算法保证快速的执行速度。

%线性均衡器参数NWTS = 31;重量百分比algType =RLS的;% RLS算法forgetFactor = 0.999999;RLS算法的参数%% DFE参数-使用与线性均衡器相同的更新算法nFwdWts = 15;前馈权重%数nFbkWts = 15;反馈权重数量%

MLSE均衡器和信道估计参数和初始可视化

设置均衡器MLSE的参数。使用信道脉冲响应的长度的六倍的回溯长度。初始化均衡状态。设置均衡模式为“连续的”,以使得在数据的多个块无缝均衡。使用循环前缀的信道估计技术,并设置前缀的长度。假定信道脉冲响应的估计的长度是一个样品比实际长度要长。

%MLSE均衡器参数tbLen = 30;%MLSE均衡回溯长度numStates = M ^(chnlLen-1);格状状态的%数[mlseMetric,mlseStates,mlseInputs] =交易([]);常量=星座(bpskMod);%的信号星座mlseType =“理想”;%完美的渠道估计开始mlseMode =“续”;未重新设置MLSE信道估计参数chnlEst = chnl;%完美的估计数进行初始prefixLen = 2 * chnlLen;循环前缀长度%excessEst = 1;估计的信道脉冲响应的长度%%超越了真实长度%初始化图形仿真。绘制非均衡通道%频率响应,和一个理想BPSK系统的误码率。idealBER = berawgn(的EbNo,'PSK'米,'nondiff');(hb、hLegend legendString、hLinSpec hDfeSpec,赫尔,hText1, hText2,hFit、hEstPlot hFig、hLinFig hDfeFig] = eqber_graphics (“init”,chnl、EbNo idealBER nBits);

构造RLS和LMS线性和DFE均衡器对象

采用RLS更新算法对均衡器抽头权值进行调整,将参考抽头设置为中心抽头。

linEq = comm.LinearEqualizer ('算法'algType,'ForgettingFactor',forgetFactor,'NumTaps'nWts,'星座',常量,“ReferenceTap”圆(nWts / 2),“TrainingFlagInputPort”,真正的);dfeEq = comm.DecisionFeedbackEqualizer('算法'algType,'ForgettingFactor',forgetFactor,“NumForwardTaps”nFwdWts,'NumFeedbackTaps'nFbkWts,'星座',常量,“ReferenceTap”,圆(nFwdWts / 2),“TrainingFlagInputPort”,真正的);

线性均衡器

运行线性均衡器,并绘制均衡信号频谱,BER,和突发错误性能为每个数据块。注意,当Eb/No增加时,线性均衡的信号频谱有一个逐渐加深的零。这突出了一个事实,即线性均衡器必须有更多的水龙头,以充分均衡一个深空通道。还要注意的是,这些错误发生的间隔时间很短,这是在如此高的错误率下所能预料到的。

看到eqber_adaptive。表示自适应均衡器的仿真代码列表。

firstRun = true;标记以确保噪音和数据的已知初始状态eqType =“线性”;eqber_adaptive;

判决反馈均衡器

运行DFE,并绘制经过均衡的信号频谱时,BER,以及用于每个数据块的突发错误性能。注意,DFE好得多能够减轻信道空比线性均衡器中,如图光谱图和BER曲线。在给定的Eb / No值绘制的BER点,每一个数据块的更新,所以他们向上或向下移动取决于该块收集错误的数量。还要注意的是DFE误差有些突发性的,由于由反馈检测到的比特,而不是正确的比特错误传播。突发误差曲线表明,随着BER减小,与五个位或更少的错误间到达发生错误的显著数。(如果DFE均衡器是在训练模式中始终保持运行,这些错误会突发逊色得多。)

对于每个数据块,图中还显示了随机发生的平均误差间隔。

看到eqber_adaptive。表示自适应均衡器的仿真代码列表。

关闭(hFig(ishghandle(hFig)));eqType ='DFE';eqber_adaptive;

理想的MLSE均衡器,具有完善的渠道知识

具有完美信道估计执行MLSE均衡器,并绘制BER和每个数据块的突发错误性能。需要注意的是发生在一个非常时尚的突发性错误。观察,特别是在低的BER,即错误的压倒性百分比发生与一个或两个比特的误差间的间隔。

见eqber_mlse.m,对用于MLSE均衡器的模拟程序的列表。

关闭(hLinFig (ishghandle (hLinFig)), hDfeFig (ishghandle (hDfeFig)));eqType =“mlse”;mlseType =“理想”;eqber_mlse;

具有不完美信道估计的MLSE均衡器

在不完善的信道估计下运行MLSE均衡器,并绘制每个数据块的误码率和突发错误性能。这些结果与理想的MLSE结果相当接近。(信道估计算法高度依赖于数据,因此传输数据块的FFT不存在零值。)注意估计的信道图与实际的信道谱图之间的比较。

见eqber_mlse.m,对用于MLSE均衡器的模拟程序的列表。

mlseType ='不完善';eqber_mlse;