✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知
⛄ 内容介绍
本文首先分析了MIMO-OFDM技术的特点,构建了MIMO-OFDM系统总体框图.使用MATLAB对MIMO-OFDM系统进行建模仿真,在低信噪比条件下,采用QPSK和16QAM两种调制方式,对比系统的SNR与误比特率等技术参数.
⛄ 部分代码
close all;clear all;clc;
EbNodB=0:2:20; %defines range of SNRs
numPkts=100; %number of packets
N = 200; % number of symbols
M = 16; % constellation size
seq=[1;1;1;1;1;0;0;1;1;0;1;0;1];%m-sequence
cp=1; %prefix length
numFingers=1; %if using RAKE defines number of fingers
numPaths=2; %defines number of paths
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%16QAM%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
[totPktErRate1,theoryBer,simBer]=qam(N, M, numPkts, seq, cp, numFingers, numPaths);
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%QPSK%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
numBytes=N*log2(M); %same number of bits transmitted in 16-QAM
%---------pre-allocations---------%
[totPktErRate2,totErRateQPSK,therErRateQPSK]=qpsk(numPkts,numBytes,cp, seq, numFingers, numPaths);
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%BPSK%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
[totPktErRate3, totErRateBPSK, therErRateRAY,therErRateBPSK]=bpsk(numPkts,numBytes,cp,seq, numFingers, numPaths);
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%PLOTS%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%
fiure
semilogy(EbNodB,theoryBer,'mx-','LineWidth',2);hold on;semilogy(EbNodB,simBer,'m*-','LineWidth',2);
grid on
hold on;
semilogy(EbNodB,totErRateBPSK,'bo-'); hold on; semilogy(EbNodB,therErRateBPSK,'g*-');
hold on;
semilogy(EbNodB,therErRateQPSK,'rd-');hold on; semilogy(EbNodB,totErRateQPSK,'rx:');
title('Bit Error Rates');xlabel('EbNo (dB)');ylabel('Error Rate');
legend('theory16QAM', 'simulation16QAM', 'Actual Error Rate BPSK','Theory BPSK RAY','Theory QPSK RAY','Actual Error Rate QPSK','Location','sw');
axis([min(EbNodB) max(EbNodB) 10^-7 1]);
figure
semilogy(EbNodB,totPktErRate1,'bo-');hold on;semilogy(EbNodB,totPktErRate2,'go-'); hold on; semilogy(EbNodB,totPktErRate3,'g*-');
title('Bit Error Rates');xlabel('EbNo (dB)');ylabel('Packet Error Rate');
legend('PER 16QAM', 'PER BPSK','PER QPSK','Location','sw');
axis([0 10 10^-3 1]);
⛄ 运行结果
⛄ 参考文献
[1] 谭清元, 潘学文. QPSK和16QAM调制下MIMO-OFDM系统Matlab仿真实现[J]. 电脑知识与技术:学术版, 2019, 15(12):2.
[2] 潘学文. QPSK和QAM调制下OFDM通信系统MATLAB仿真实现[J]. 今日自动化, 2021, 000(006):P.162-163.
[3] 王坤明. 基于FPGA的OFDM无线通信系统基带设计与实现[D]. 北京邮电大学.
[4] 李玮, 谢月新, 戴勤. 基于MATLAB中的M文件实现QPSK及QDPSK的调制[J]. 湘南学院学报, 2009, 30(2):4.
[5] 吕彦明. 基于MATLAB的QPSK调制解调的设计与实现[J]. 电脑迷, 2017.