基于Matlab实现BPSK、QPSK 和 16QAM 调制的循环前缀和直接序列扩频

本文通过MATLAB对MIMO-OFDM系统进行了建模仿真,研究了在不同信噪比下QPSK和16QAM两种调制方式的性能。利用SNR与误比特率等参数对比了两者的误码率表现,提供了相关代码示例,并给出了运行结果的图表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,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.

⛳️ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值