主要内容

硬和软判决维特比解码估计误码率

估计比特误码率(BER)性能的艰难的决定,不痒的决定在AWGN维特比解码器。比较性能的未编码的64 - qam链接。

设置仿真参数。

rng默认的M = 64;%调制顺序k = log2 (M);%每个符号位EbNoVec = (4:10) ';% Eb /不值(dB)numSymPerFrame = 1000;% QAM符号每帧的数量

初始化系统结果向量。

berEstSoft = 0(大小(EbNoVec));berEstHard = 0(大小(EbNoVec));

设置框架结构和回溯深度率1/2、约束长度7卷积码。

格子= poly2trellis (7 (171 133));台= 32;率= 1/2;

主要处理循环执行这些步骤:

  • 生成二进制数据

  • 卷积编码的数据

  • 数据应用于QAM调制符号。指定单位平均功率的传输信号

  • 通过通过AWGN信道调制信号

  • 解调接收信号使用困难的决定和近似LLR方法。指定单位接收信号的平均功率

  • 维特比解码的信号和unquantized方法使用困难

  • 计算一些错误的数量

循环继续直到100遇到错误或处理数据 10 7 位传输。

n = 1:长度(EbNoVec)%转换Eb /不信噪比snrdB = EbNoVec (n) + 10 * log10 (k *率);%噪声方差计算统一信号平均功率noiseVar = 10 ^ (-snrdB / 10);%复位误差和位计数器[numErrsSoft, numErrsHard numBits] =交易(0);e7 numErrsSoft < 100 & & numBits < 1%生成二进制数据并转换为符号dataIn =兰迪([0,1],numSymPerFrame * k, 1);%卷积编码数据dataEnc = convenc (dataIn,格子);% QAM调制txSig = qammod (dataEnc, M,InputType =“一点”,UnitAveragePower = true);%通过AWGN信道rxSig = awgn (txSig snrdB,“测量”);%解调的信号(钻头)和使用困难的决定%软决策(近似LLR)方法。rxDataHard = qamdemod (rxSig, M,OutputType =“一点”,UnitAveragePower = true);rxDataSoft = qamdemod (rxSig, M,OutputType =“approxllr”,UnitAveragePower = true,NoiseVariance = noiseVar);%维特比解码解调数据dataHard = vitdec (rxDataHard,格子、台“合同”,“硬”);dataSoft = vitdec (rxDataSoft,格子、台“合同”,“unquant”);%计算框架中的一些错误的数量。%为解码延迟调整,等于%回溯深度。numErrsInFrameHard =biterr (dataIn (1: end-tbl), dataHard(台+ 1:结束);numErrsInFrameSoft =biterr (dataIn (1: end-tbl), dataSoft(台+ 1:结束);%增加误差和计数器numErrsHard = numErrsHard + numErrsInFrameHard;numErrsSoft = numErrsSoft + numErrsInFrameSoft;numBits = numBits + numSymPerFrame * k;结束%为两种方法估计误码率berEstSoft (n) = numErrsSoft / numBits;berEstHard (n) = numErrsHard / numBits;结束

绘制数据估计软硬误码率。64 - qam阴谋的理论性能未编码的通道。

semilogy (EbNoVec [berEstSoft berEstHard),“- *”)举行semilogy (EbNoVec berawgn (EbNoVec“qam”传说,M)) (“软”,“硬”,的未编码的,“位置”,“最佳”)网格包含(“Eb /不(dB)”)ylabel (的误比特率)

图包含一个坐标轴对象。坐标轴对象包含Eb /没有(dB), ylabel比特误码率包含3线类型的对象。这些对象代表软,硬,未编码的。

正如预期的那样,软判决解码产生最好的结果。