最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英语でご覧になれます。

さまざまなイコライザーのBER性能

この例では,パスバンドにヌル値をもつ静的チャネルにある数种类のイコライザーのBER性能を示します。この例は,线形イコライザーオブジェクトと判定フィードバックイコライザー(DFE)オブジェクトを构筑し,実行します。また,最尤系列推定(MLSE)イコライザーを初期化し,起动します.MLSEイコライザーでは最初に完全なチャネル认识法が呼び出され,次にわかりやすいが不完全なチャネル推定法が呼び出されます。

シミュレーションが进むと,BERプロットを更新してイコライズ方法の比较分析を行います。また,线形にイコライズされた信号とDFEでイコライズされた信号の信号スペクトルも示します。さらに,相対的なバースト误りの状况も示して,BERが低いとMLSEアルゴリズムとDFEアルゴリズムの両方にバースト误りが発生することを示します。特に,DFEの误り性能はフィードバックされた正しいビットよりも検出されたビットでバーストが多くなります。最后に, “不完全な” MLSE部分のシミュレーション时に,推定チャネル応答が示され动的に更新されます。

この例を実行するために,チャネルインパルス応答,イコライザーのタップ重みの数,再帰的最小二乘(RLS)忘却系数,最小平均二乘(LMS)ステップサイズ,MLSEトレースバックの长さ,推定されたチャネル长での误りや各的Eb / No値で计算される最大误り数などのパラメーターを変更することができます。

コードの构成

この例は,他のいくつかのスクリプトと关数に依存して的Eb / No値の范囲でのリンクシミュレーションを実行します。これらのファイルは以下のとおりです。

eqber_adaptive - 线形およびDFEイコライザーのリンクシミュレーションを実行するスクリプト。

eqber_mlse - 理想的および不完全なMLSEイコライザーのリンクシミュレーションを実行するスクリプト。

eqber_siggen - パルス整形を行わずに2位相シフトキーイング(BPSK)信号を生成し,チャネルで处理してノイズを付加するスクリプト。

eqber_graphics - 线形,DFE,およびMLSEイコライザーの性能を示すプロットを生成し,更新する关数このファイルを表示するにはMATLAB®のコマンドラインで “编辑eqber_graphics” と入力します。

スクリプトeqber_adaptiveおよびeqber_mlseは,状态の情报がデータブロック间で保持されるように,复数のデータブロック全体で适応イコライザーとMLSEイコライザーを使用する方法について说明します。

信号パラメーターとチャネルパラメーター

信号とチャネルに关するパラメーターを设定します。パルス整形のないBPSK,および5タップの実数値対称チャネルインパルス応答を使用します(チャネルの详细は,数字通信由J. Proakis,第4版,の第10.20.3节を参照してください)。データとノイズジェネレーターの初期状态を设定します.eb伪/否范囲を设定します。

%系统仿真参数FS = 1;%采样频率(名义上)NBITS = 2048;每个矢量的BPSK符号的数目%maxErrs = 200;在每一个的Eb误差%的目标数量/否maxBits = 1E6;在每个码元的Eb%的最大数量/否%调制信号参数M = 2;调制的%为了RS = FS;% 符号指数nSamp = FS /卢比;每符号%的样品RB =卢比* LOG2(M);%的码率%的信道参数CHNL = [0.227 0.460 0.688 0.460 0.227]';%的信道脉冲响应chnlLen =长度(CHNL);%的沟道长度,在样品的EbNo =零点14;%的分贝BER =零(大小(的EbNo));%初始化值%创建BPSK调制器bpskMod = comm.BPSKModulator;%指定的种子随机数生成器,以确保可重复性。RNG(12345)

适応イコライザーパラメーター

线形イコライザーとDFEイコライザーのパラメーターを设定します0.31タップ线形イコライザー,および15フィードフォワードおよびフィードバックタップ付きのDFEを使用します。最初のデータブロックに再帰的最小二乘(RLS)アルゴリズムを使用して迅速なタップ收束を确保します。その后,最小平均二乘(LMS)アルゴリズムを使用して実行速度を速めます。

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

MLSEイコライザーとチャネル推定パラメーター,および初期可视化

MLSEイコライザーのパラメーターを设定します。トレースバックの长さにはチャネルインパルス応答の6倍の长さを使用します。イコライザーの状态を初期化します。イコライザーモードを[连続]に设定し,复数のデータブロックでシームレスなイコライズを行います。チャネル推定法で巡回プレフィックスを使用し,接头语の长さを设定します。チャネルのインパルス応答を推定した长さを実际の长さより1サンプル分长くすることを前提にしています。

%MLSE均衡器参数tbLen = 30;%MLSE均衡回溯长度numStates = M ^(chnlLen-1);格状态的数量%[mlseMetric,mlseStates,mlseInputs] =交易([]);常量=星座(bpskMod);%的信号星座mlseType ='理想';起初%完美的信道估计mlseMode =“续”;%没有MLSE复位%的信道估计参数chnlEst = CHNL;%完美的估计数进行初始prefixLen = 2 * chnlLen;%循环前缀长度excessEst = 1;估计的信道脉冲响应的长度%%超越了真实长度%初始化图形仿真。绘制非均衡通道%的频率响应,以及理想的BPSK系统的BER。idealBER = berawgn(的EbNo,'PSK',男,'nondiff');[hBER,hLegend,legendString,hLinSpec,hDfeSpec,hErrs,hText1,hText2,...hFit,hEstPlot,hFig,hLinFig,hDfeFig] = eqber_graphics('在里面'...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伪/否が増加すると,线形イコライズされた信号スペクトルのヌル値は徐々に大きくなることに注意してください。これは,线形イコライザーには,チャネルを大きなヌル値で适切にイコライズする多くのタップが必要になるという事実を明らかにします。エラーは短い间隔で発生し,そのことがこのような高い误り率になると予想されることにも注意してください。

适応イコライザーのシミュレーションコードのリストは,eqber_adaptive.mを参照してください。

firstRun = TRUE;%标志以确保已知的初始状态为噪声和数据eqType =“线性”;eqber_adaptive;

判定フィードバックイコライザー

DFEを実行し,各データブロックのイコライズされた信号スペクトル,BER,およびバースト误りの性能をプロットします。スペクトルプロットとBERプロットに示すように,DFEは线形イコライザーよりも效果的にチャネルのヌルを缓和できます。特定のEb / No的値でプロットされたBERポイントは,すべてのデータブロックを更新するため,该当するブロックで收集された误り数に応じて上下に移动します.DFEのバースト误りは,正しいビットではなく検出されたビットをフィードバックすることで引き起こされる伝播エラーによることにも注意してください。バースト误りのプロットは,BERが低下すると,エラー间隔が5ビット以下になったときに多数の误り数が発生することを示します(DFEイコライザーを常时トレーニングモードで実行した场合,バースト误りはかなり减少します)。

すべてのデータブロックの场合,プロットは,エラーがランダムに発生した场合には平均的なエ​​ラー间隔になることも示します。

适応イコライザーのシミュレーションコードのリストは,eqber_adaptive.mを参照してください。

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

完全なチャネル认识の理想的なMLSEイコライザー

完全なチャネル推定を使用してMLSEイコライザーを実行し,各データブロックのBERとバースト误りの性能をプロットします。エラーは非常に集中して発生することに注意してください.BERが低いと特に,エラー间隔が1または2ビットになるとエラーが多数発生することを确认してください。

MLSEイコライザーのシミュレーションコードのリストは,eqber_mlse.mを参照してください。

关闭(hLinFig(ishghandle(hLinFig)),hDfeFig(ishghandle(hDfeFig)));eqType ='MLSE';mlseType ='理想';eqber_mlse;

不完全なチャネル推定のMLSEイコライザー

不完全なチャネル推定のMLSEイコライザーを実行し,各データブロックのBERとバースト误りの性能をプロットします。これらの结果は理想的なMLSE结果とかなりの程度で一致しています(送信されたデータブロックのFFTがヌル値をもたないように,チャネル推定アルゴリズムはデータから大きな影响を受けます)。推定チャネルプロットが実际のチャネルのスペクトルプロットとどのように比较されるかに注目してください。

MLSEイコライザーのシミュレーションコードのリストは,eqber_mlse.mを参照してください。

mlseType ='不完善';eqber_mlse;