主要内容

MATLAB系统对象によるQPSKとOFDM

この例では,基本的な通信システムをシミュレトします。ここでは,最初に信号をQPSK変調してから直交周波数分割多重方式を適用します。次に,信号を加法性ホワereplicationトガウスノereplicationズチャネルで処理してから,逆多重化および復調を行います。最後に,ビット誤り数を計算します。次の例では,MATLAB®系统对象™の使い方を紹介します。

シミュレションパラメタを設定します。

M = 4;调制字母k = log2(M);%比特/符号numSC = 128;% OFDM子载波数cpLen = 32;OFDM循环前缀长度maxBitErrors = 100;最大误码数maxNumBits = 1e7;传输的最大比特数

シミュレションに必要な系统对象を構築します。QPSK変調器,QPSK復調器,OFDM変調器,OFDM復調器,AWGNチャネルおよび誤り率計算機。名前と値のペアを使用してオブジェクトのプロパティを設定します。

バQPSKの変調器と復調器のペアを設定します。

qpskMod = com . qpskmodulator (“BitInput”,真正的);qpskDemod = com . qpskdemoator (“BitOutput”,真正的);

シミュレションパラメタに従ってofdmの変調器と復調器のペアを設定します。

ofdmMod = com . ofdmmodulator (“FFTLength”numSC,“CyclicPrefixLength”, cpLen);ofdmDemod = com . ofdmdemoator (“FFTLength”numSC,“CyclicPrefixLength”, cpLen);

AwgnチャネルオブジェクトのNoiseMethodプロパティを方差に設定し,VarianceSourceプロパティを定義してノ邮箱ズパワ邮箱を入力端子から設定できるようにします。

channel = com . awgnchannel (“NoiseMethod”“方差”...“VarianceSource”输入端口的);

ResetInputPortプロパティを真正的に設定してシミュレション時に誤り率計算機がリセットされるようにします。

= com . errorRate (“ResetInputPort”,真正的);

ofdmModオブジェクトの関数信息を使用してofdm変調器の入力と出力の次元を決定します。

ofdmMod = info(ofdmMod)
ofdmDims =带有字段的结构:DataInputSize: [117 1] OutputSize: [160 1]

ofdmDims構造体変数からデタ副搬送波数を決定します。

numDC = ofdmdim . datainputsize (1)
numDC = 117

データ副搬送波数からOFDMフレームサイズ(ビット単位)およびシンボルあたりのビット数を決定します。

frameSize = [k*numDC 1];

必要なEb /不の範囲に基づく信噪比ベクトル,シンボルあたりのビット数,副搬送波の合計数に対するデータ副搬送波数の比率を設定します。

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

Berおよび誤り統計の配列を初期化します。

berVec = 0 (length(EbNoVec),3);errorStats = 0 (1,3);

Eb/否値の範囲にある通信リンクをシミュレションします。Eb/否値それぞれにいて. txtmaxBitErrorsが記録されるか,送信ビットの総数が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 = channel(txSig,noiseVar);让信号通过一个有噪声的通道。qpskRx = ofdmDemod(rxSig);%应用OFDM解调dataOut = qpskDemod(qpskRx);%应用QPSK解调errorStats = errorRate(dataIn,dataOut,0);%收集错误统计信息结束berVec(m,:) = errorStats;保存误码率数据errorStats = errorRate(dataIn,dataOut,1);重置错误率计算器结束

関数berawgnを使用してQPSKシステムの理論上のberを決定します。

n .理论;理论;理论;相移键控的米,“nondiff”);

同じグラフに理論上のデタとシミュレトされたデタをプロットし結果を比較します。

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

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象代表模拟和理论。

シミュレトされたデタと理論上のデタが十分一致していることを確認します。