QPSK和OFDM的MATLAB系统对象

这个例子展示了如何模拟一个基本的通信系统,在这个系统中,信号首先被QPSK调制,然后受到正交频分复用。信号经过加性高斯白噪声信道,然后进行解复用和解调。最后,计算了误码率。这个例子展示了MATLAB®System objects™的使用。

设置仿真参数。

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]输出大小:[160 1]

确定数据子载波的数目ofdmDims结构变量。

numDC = ofdmDims.DataInputSize (1)
numDC = 117

根据每个符号的数据子载波数和比特数确定OFDM帧的大小(以比特为单位)。

frameSize = [k*numDC 1];

根据期望的Eb/No范围、每个符号的比特数和数据子载波数与子载波总数的比值设置信噪比向量。

EbNoVec = (0:10) ';snrVec = EbNoVec + 10*log10(k) + 10*log10(numDC/numSC);

初始化BER和错误统计信息数组。

berVec = 0(长度(EbNoVec), 3);errorStats = 0 (1、3);

在Eb/No值范围内模拟通信链路。对于每个Eb/No值,模拟将一直运行到其中之一maxBitErrors是被记录的还是被传输的比特总数超过了maxNumBits

m = 1:长度(EbNoVec) snr = snrVec(m);errorStats(2) <= maxBitErrors && errorStats(3) <= maxNumBits dataIn = randi([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;%保存BER数据errorStats = errorRate (dataIn dataOut 1);重置错误率计算器结束

使用berawgn函数来确定QPSK系统的理论误码率。

berTheory = berawgn (EbNoVec,相移键控的米,“nondiff”);

将理论和模拟数据绘制在同一图表上,以比较结果。

图semilogy (EbNoVec berVec (: 1),‘*’)举行semilogy (EbNoVec berTheory)传说(“模拟”,“理论”,“位置”,“最佳”)包含(“Eb /不(dB)”)ylabel (的误比特率网格)持有

模拟数据与理论数据吻合较好。