主要内容

估算硬决策和软决策维特比解码的误码率

估计AWGN中硬决策和软决策维特比译码器的误码率(BER)性能。将其性能与未编码的64-QAM链路进行比较。

设置仿真参数。

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

初始化BER结果向量。

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

为速率设置网格结构和回溯深度1/2、约束长度7卷积码。

Trellis = poly2trellis(7,[171 133]);台= 32;率= 1/2;

主处理循环执行以下步骤:

  • 生成二进制数据

  • 对数据进行卷积编码

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

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

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

  • Viterbi使用硬的和非量化的方法解码信号

  • 计算误码数

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

n = 1:长度(EbNoVec)%将Eb/No转换为SNRsnrdB = EbNoVec(n) + 10*log10(k*rate);单位平均信号功率的%噪声方差计算noiseVar = 10 ^ (-snrdB / 10);%重置错误和位计数器[numErrsSoft, numErrsHard numBits] =交易(0);numErrsSoft < 100 && numBits < 1e7%生成二进制数据并转换为符号dataIn = randi([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);% Viterbi解码解调数据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;结束

绘制估计的软硬BER数据。绘制非编码64-QAM信道的理论性能图。

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

图中包含一个坐标轴对象。坐标轴对象包含3个line类型的对象。这些对象代表Soft, Hard, Uncoded。

不出所料,软决策解码产生了最好的结果。

Baidu
map