主要内容

AWGN信道编码配置Eb/No

这个例子展示了如何设置比特能量噪声密度比(Eb/No)通信链路采用信道编码。

指定Reed-Solomon码的码字和消息长度。指定调制顺序。

N = 15;符号中R-S码字的长度K = 9;% R-S消息长度,以符号表示M = 16;%调制顺序

构造一个(15,9)Reed-Solomon编码器和一个16-PSK调制器。指定对象以便它们接受位输入。

rsEncoder=comm.rsEncoder(“CodewordLength”N“MessageLength”、钾、...“比输入”,真正的);pskModulator = comm.PSKModulator (“ModulationOrder”米,“比输入”,真正的);

创建相应的Reed-Solomon解码器和16-PSK解调器对象。

rsDecoder = comm.RSDecoder (“CodewordLength”N“MessageLength”、钾、...“比输入”,对);pskDemodulator=comm.pskDemodulator(“ModulationOrder”米,“BitOutput”,真正的);

根据消息符号与码字长度的比率计算里德-所罗门码率。确定PSK调制器的每个符号位。

codeRate = K / N;bitsPerSymbol = log2 (M);

在dB中指定未编码的Eb/No。使用码率将未编码的Eb/No转换为相应的编码Eb/No。

UncodedEbNo = 6;CodedEbNo = UncodedEbNo + 10*log10(codeRate);

构造一个考虑到每个符号的比特数的AWGN信道。设置EbNo的属性通道以编码的Eb/No。

频道= comm.AWGNChannel (“BitsPerSymbol”, bitsPerSymbol);通道。EbNo= CodedEbNo;

设置模拟的错误和位的总数。为了精度,模拟应该一直运行到遇到足够数量的位错误。总位的数量被用来确保模拟不会运行太长时间。

totalErrors = 100;totalBits = 1 e6;

构造错误率计算器系统对象™并初始化错误率向量。

errorRate = comm.ErrorRate;errorVec = 0 (3,1);

运行模拟以确定误码率。

errorVec(2) < totalErrors && errorVec(3) < totalBits%生成随机位dataIn =兰迪([0,1],360,1);%使用RS(15,9)编码器增加纠错能力dataEnc = rsEncoder (dataIn);%采用16-PSK调制txSig = pskModulator (dataIn);%将调制后的数据通过AWGN通道rxSig =通道(txSig);%对接收信号进行解调demodData = pskDemodulator (rxSig);用RS(15,9)解码器解码解调的数据dataOut = rsDecoder (demodData);%收集错误统计信息errorVec = errorRate (dataIn demodData);结束

显示结果的误码率。

数量= errorVec (1)
1 = 0.0935