正交相移编码和OFDM与MATLAB系统对象
这个例子展示了如何模拟基本通信系统的信号首先QPSK调制,然后进行正交频分复用。然后信号被加性高斯白噪声通过一个通道之前去复用和解调。最后,一些错误的数量计算。的示例展示了使用MATLAB®系统™对象。
设置仿真参数。
M = 4;%调制字母表k = log2 (M);%比特/符号numSC = 128;% OFDM副载波的数量cpLen = 32;% OFDM循环前缀长度maxBitErrors = 100;%最大数量的错误maxNumBits = 1 e7;%最大传输的比特数
构建系统仿真所需的对象:QPSK调制器,QPSK解调器,OFDM调制器,OFDM解调器,错误率AWGN信道和一个计算器。使用名称-值对设置对象属性。
设置QPSK调制器和解调器接受二进制输入。
qpskMod = comm.QPSKModulator (“BitInput”,真正的);qpskDemod = comm.QPSKDemodulator (“BitOutput”,真正的);
设置OFDM调制器和解调器对根据仿真参数。
ofdmMod = comm.OFDMModulator (“FFTLength”numSC,“CyclicPrefixLength”,cpLen);ofdmDemod = comm.OFDMDemodulator (“FFTLength”numSC,“CyclicPrefixLength”,cpLen);
设置NoiseMethod
AWGN信道对象的属性方差
和定义VarianceSource
可以设置属性,这样噪音功率从输入端口。
频道= comm.AWGNChannel (“NoiseMethod”,“方差”,…“VarianceSource”,输入端口的);
设置ResetInputPort
财产真正的
使错误率计算器仿真期间被重置。
errorRate = comm.ErrorRate (“ResetInputPort”,真正的);
使用信息
的函数ofdmMod
对象来确定OFDM调制器的输入和输出尺寸。
ofdmDims = info (ofdmMod)
ofdmDims =结构体字段:DataInputSize: 117年[1]OutputSize: 160 [1]
确定副载波的数据的数量ofdmDims
结构变量。
numDC = ofdmDims.DataInputSize (1)
numDC = 117
确定OFDM帧大小(位)从数据副载波的数量和每个符号位的数量。
frameSize = [k * numDC 1];
设置基于所需的信噪比向量Eb /不范围,每个符号的比特数,数据副载波的数量比副载波的总数。
EbNoVec = (0:10) ';snrVec = EbNoVec + 10 * log10 (k) + 10 * log10 (numDC / numSC);
初始化系统和误差统计数组。
berVec = 0(长度(EbNoVec), 3);errorStats = 0 (1、3);
模拟通信链路/ Eb /没有值的范围。对于每个Eb /没有值,模拟运行,直到maxBitErrors
记录或传输的比特总数超过maxNumBits
。
为m = 1:长度(EbNoVec)信噪比= snrVec (m);而errorStats (2) < = maxBitErrors & & errorStats (3) < = maxNumBits dataIn =兰迪([0,1],frameSize);%生成二进制数据qpskTx = qpskMod (dataIn);%将QPSK调制txSig = ofdmMod (qpskTx);%应用OFDM调制powerDB = 10 * log10 (var (txSig));%计算Tx信号功率noiseVar = 10 ^ (0.1 * (powerDB-snr));%计算噪声方差rxSig =通道(txSig noiseVar);%的信号通过一个噪声信道qpskRx = ofdmDemod (rxSig);%应用OFDM解调dataOut = qpskDemod (qpskRx);%将QPSK解调errorStats = errorRate (dataIn dataOut 0);%收集错误统计信息结束:berVec (m) = errorStats;%保存系统数据errorStats = errorRate (dataIn dataOut 1);%重置错误率计算器结束
使用berawgn
函数来确定正交相移编码系统理论误码率。
berTheory = berawgn (EbNoVec,相移键控的米,“nondiff”);
阴谋理论和模拟数据在同一图比较的结果。
图semilogy (EbNoVec berVec (: 1),‘*’)举行在semilogy (EbNoVec berTheory)传说(“模拟”,“理论”,“位置”,“最佳”)包含(“Eb /不(dB)”)ylabel (的误比特率网格)在持有从
观察到有很好的模拟和理论数据之间的协议。