该示例显示了如何模拟其中信号是第一个QPSK的基本通信系统,然后经受正交频分复用。然后在解复用和解调之前通过添加白色高斯噪声通道的信号。最后,计算比特错误的数量。该示例展示了MATLAB®系统对象™的使用。
设置仿真参数。
m = 4;%调制字母表k=log2(M);%位/符号numsc = 128;%数量的OFDM子载波cplen = 32;%OFDM循环前缀长度maxbiterrors = 100;%最大比特错误数maxnumbits = 1E7;传输的最大比特数
构造模拟所需的系统对象:QPSK调制器、QPSK解调器、OFDM调制器、OFDM解调器、AWGN信道和错误率计算器。使用名称-值对设置对象属性。
设置QPSK调制器和解调器,使其接受二进制输入。
qpskmod = comm.qpskmodulator(“比输入”,真的);qpskdemod = comm.qpskdemodulator('bitoup',真的);
根据仿真参数设置OFDM调制器和解调器对。
OFDMMOD = COMM.OFDMMODULATOR('fftlength',numsc,'cyclicprefixlength',cplen);OFDMDEMOD = COMM.OFDMDEMOMOMOMOULATOR('fftlength',numsc,'cyclicprefixlength',cplen);
设定噪声法
AWGN通道对象的属性方差
并定义varianceSource.
属性,以便可以从输入端口设置噪声功率。
信道=通信AWGN信道('noisemethod'那'方差'那......“VarianceSource”那'输入端口');
设定resetInputport.
财产符合事实的
在模拟期间启用错误率计算器要重置。
errorrate = comm.errorrate(“重置输入端口”,真的);
使用信息
功能的功能奥德蒙德
对象确定OFDM调制器的输入和输出尺寸。
OFDMDIMS = INFO(OFDMMOD)
OFDMDIMS =结构与字段:DataInputSize:[117 1]OutputSize:[160 1]
确定数据子载波的数量Ofdmdims.
结构变量。
numdc = ofdmdims.datainputsize(1)
numdc = 117
从数据子载波的数量和每个符号的比特数确定OFDM帧大小(以位)。
frameSize=[k*numDC 1];
基于所需Eb/No范围、每个符号的位数以及数据子载波数与子载波总数的比率设置SNR向量。
EBNOVEC =(0:10)';SNRVEC = EBNOVEC + 10 * log10(k)+ 10 * log10(numdc / numsc);
初始化BER和错误统计数组。
berVec=零(长度(EbNoVec),3);errorStats=零(1,3);
模拟EB / NO值范围内的通信链路。对于每个EB / NO值,模拟运行直到或maxbiterrors.
被记录或传输的比特总数超过maxnumbits.
。
为了m=1:长度(EbNoVec)snr=snrVec(m);虽然errorstats(2)<= maxbiterrors && errorstats(3)<= maxnumbits datain = randi([0,1],帧质化);%生成二进制数据QPSKTX = QPSKMOD(数据);%应用QPSK调制txsig = OFDMMOD(QPSKTX);%应用OFDM调制PowerDB = 10 * log10(var(txsig));%计算TX信号功率Noisevar = 10. ^(0.1 *(PowerDB-SNR));%计算噪声方差rxsig = channel(txsig,noisevar);%通过嘈杂的频道传递信号QPSKRX = OFDMDEMOD(RXSIG);%申请OFDM解调dataout = qpskdemod(qpskrx);%应用QPSK解调errorstats = errorrate(数据,数据,0);%收集错误统计信息结尾Bervec(m,:) = errorstats;%保存BER数据errorstats = errorrate(日期,dataout,1);%重置错误率计算器结尾
使用Berawgn.
函数用于确定QPSK系统的理论误码率。
Bertheory = Berawgn(Ebnovec,'psk',m,'nondiff');
绘制相同图表上的理论和模拟数据以比较结果。
图符号学(EbNoVec,berVec(:,1),'*')持有在…上Semilogy(Ebnovec,Bertheory)传奇('模拟'那“理论”那“位置”那'最好的事物')xlabel('EB / NO(DB)')伊拉贝尔(“误码率”) 网格在…上抓住离开
观察到模拟数据和理论数据之间有很好的一致性。