主要内容

误码性能不同的均衡器

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

随着仿真的发展,更新系统图之间的比较分析均衡方法。它也显示了信号的光谱线性平衡的和教育部平衡的信号。它也显示了错误的相对burstiness,表明在低伯斯,MLSE算法和DFE算法受到错误爆发。DFE误差性能特别是丛发性与检测位反馈比正确的反馈。最后,在“不完美”的MLSE部分模拟,它显示了估计信道响应和动态更新。

尝试这个例子中,你可以改变信道脉冲响应等参数均衡器抽头权值的数量,递归最小二乘(RLS)遗忘因子最小均方(LMS)步长,MLSE回溯长度,估计误差通道长度和最大数量的错误收集每个Eb /没有价值。

代码结构

这个例子依赖这些辅助脚本和函数执行链接模拟/ Eb /不值的范围。

eqber_adaptive.m——一个脚本,该脚本运行连接模拟线性和教育部均衡器

eqber_mlse.m——一个脚本链接运行模拟理想和完美的MLSE均衡器

eqber_siggen.m——一个脚本,该脚本生成一个二进制相移键控(BPSK)信号没有脉冲整形,然后通过英吉利海峡和添加噪声过程

eqber_graphics.m——一个函数生成和更新块显示性能的线性,教育部,MLSE均衡器。

脚本eqber_adaptive eqber_mlse说明如何使用自适应和MLSE均衡器跨多个数据块,这样状态信息是数据块之间保留。

信号和信道参数

设置参数相关的信号通道。使用BPSK没有脉冲整形,5-tap实值对称信道脉冲响应。(见章节10.2.3数字通信的j . Proakis第四版,更多细节的通道)。设置初始状态的数据和噪音发电机。设置Eb /不范围。

%系统仿真参数Fs = 1;%采样频率(名义)nBits = 2048;%每个向量的BPSK符号数maxErrs = 200;%的目标在每个Eb /不的错误数量maxBits = 1 e6;%最大数量的符号在每个Eb /不%调制信号参数M = 2;%的调制Rs = f;%符号率nSamp = Fs / Rs;每个符号%样本k = log2 (M);%每个符号位Rb = Rs * k;%比特率%信道参数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)

自适应均衡器参数

设置参数值的线性和教育部均衡器。使用一个31-tap线性均衡器,教育部与15前馈和反馈。使用递归最小二乘(RLS)算法的第一数据块,以确保快速收敛。使用最小均方(LMS)算法之后,以确保快速的执行速度。

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

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

MLSE均衡器的参数设置。使用回溯长度6次通道脉冲响应的长度。初始化均衡器。将均衡模式设置为“连续”,使无缝均衡多个数据块。使用循环前缀的信道估计技术,并设置前缀的长度。假设估计信道脉冲响应的长度是一个样本的时间比实际的长度。

% MLSE均衡器参数tbLen = 30;% MLSE均衡器回溯长度numStates = M ^ (chnlLen-1);%的格子[mlseMetric, mlseStates mlseInputs] =交易([]);const =星座(bpskMod);%的信号星座mlseType =“理想”;%完美的信道估计mlseMode =“合同”;%没有MLSE重置%信道估计参数chnlEst = chnl;%的最初估计prefixLen = 2 * chnlLen;%循环前缀长度excessEst = 1;%的长度估计信道脉冲响应%超越真实的长度%初始化图形仿真。情节unequalized通道%的频率响应,和理想BPSK系统的方方面面。idealBER = berawgn (EbNo,相移键控的米,“nondiff”);(hb、hLegend legendString、hLinSpec hDfeSpec,赫尔,hText1, hText2,hFit、hEstPlot hFig、hLinFig hDfeFig] = eqber_graphics (“init”,chnl、EbNo idealBER nBits);

构建RLS和LMS线性和教育部均衡器对象

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”,真正的);

线性均衡器

运行线性均衡器,并画出平衡的信号频谱,方方面面,破裂为每个数据块错误性能。注意,作为Eb /不增加,线性平衡的信号频谱逐渐深空。这突显出一个事实:一个线性均衡器必须有更多的水龙头充分平衡与深空信道。还要注意小inter-error间隔的错误出现,也会在这样一个高错误率。

看到eqber_adaptive.m清单的仿真代码的自适应均衡器。

firstRun = true;%的旗帜,确保噪声和数据的初始状态eqType =“线性”;eqber_adaptive;

判决反馈均衡器

DFE运行,并且画出平衡的信号频谱,方方面面,破裂为每个数据块错误性能。DFE要好得多注意,能够减轻通道零比线性均衡器,谱图中所示,情节的误码率。绘制误码率点在给定Eb /不价值更新每一个数据块,所以他们向上或向下移动根据错误中收集的块的数量。DFE有些丛发性错误,还请注意,由于造成的误差传播反馈检测位而不是正确位。破裂的错误情节表明数量减少,出现大量的错误inter-error到来的五位或更少。(如果DFE均衡器在训练模式下运行,错误就会少得多丛发性)。

对于每一个数据块,情节也表明平均inter-error间隔如果这些错误是随机发生的。

看到eqber_adaptive.m清单的仿真代码的自适应均衡器。

关闭(hFig (ishghandle (hFig)));eqType =“教育部”;eqber_adaptive;

理想的MLSE均衡器,以完美的知识频道

运行MLSE均衡器与完美的信道估计,和情节突发错误的数量和每个数据块的性能。注意,错误发生在一个极其热门的时尚。观察,特别是在低伯斯,绝大比例的错误发生inter-error间隔的一个或两个部分。

看到eqber_mlse.m的仿真代码清单的MLSE均衡器。

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

MLSE均衡器与一个不完美的信道估计

运行MLSE均衡器与一个不完美的信道估计,和情节突发错误的数量和每个数据块的性能。这些结果与理想的MLSE结果相当接近一致。(信道估计算法是高度依赖数据,这样一个数据块传输的FFT没有null)。注意估计通道情节与实际信道频谱图。

看到eqber_mlse.m的仿真代码清单的MLSE均衡器。

mlseType =“不完美”;eqber_mlse;