您现在的位置:首页 >> 通信 >> 内容

基于MATLAB的自适应调制解调通信系统的误码率仿真,对比BPSK,QPSK,16QAM,64QAM

时间:2023/2/25 20:52:21 点击:

  核心提示:A416,包括程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/ZJWZm5du

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览




3.算法概述

BPSK:Binary Phase Shift Keying  二相相移键控,一个符号代表1bit

QPSK:Quadrature Phase Shift Keying   四相相移键控,一个符号代表2bit

8PSK:8 Phase Shift Keying   八相相移键控,一个符号代表3bit

16QAM:16 Quadrature Amplitude Modulation  16正交幅相调制,一个符号代表4bit

64QAM:64 Quadrature Amplitude Modulation   64正交幅相调制,一个符号代表6bitPSK是相移键控(Phase Shift Keying),是通过相位的变化代表“0”和“1”的。BPSK中的B是“Binary”的意思,也就是有两个变化状态,比如说相位上的“+90°(代表1)、-90°(代表0)”,一个状态代表的就是一个比特。QPSK的“Q”是“Quadrature”的意思,有四个变化状态,如相位上的“+45°(代表00)、-45°(代表11)、+135°(代表10)、-135°(代表01)”,那么一个状态就代表两个比特的信息,如图2所示。同理8PSK的一个状态代表三个比特。

4.部分源码

.......................................................................

load dat.mat

%传输

SNRdB = 0:5:30;   

SER_matrix = zeros(5,length(SNRdB));  

Ttotal_matrix = zeros(5,length(SNRdB));   

for i = 1:5

    for j = 1:length(SNRdB)

         [i,j]

        [temp1,temp2]      = TransmissionEffectFun(dats,SNRdB(j),i);

        SER_matrix(i,j)    = temp1;

        Ttotal_matrix(i,j) = temp2;

    end

end

figure

subplot(231)

semilogy(SNRdB,SER_matrix(1,:),'-bs',...

    'LineWidth',1,...

    'MarkerSize',8,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.9,0.0]);

legend('BPSK');

xlabel('SNR');

ylabel('误码率');

grid on

 

subplot(232)

 

semilogy(SNRdB,SER_matrix(2,:),'-mo',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.5,0.9,0.0]);

 

legend('QPSK');

xlabel('SNR');

ylabel('误码率');

grid on

 

subplot(233)

semilogy(SNRdB,SER_matrix(3,:),'-b^',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.2,0.9,0.5]);

 

legend('16QAM');

xlabel('SNR');

ylabel('误码率');

grid on

 

subplot(234)

semilogy(SNRdB,SER_matrix(4,:),'-r>',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.9,0.0]);

 

legend('64QAM');

xlabel('SNR');

ylabel('误码率');

grid on

 

 

subplot(235)

semilogy(SNRdB,SER_matrix(5,:),'-r<',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.3,0.3]);

grid on

legend('自适应调制');

xlabel('SNR');

ylabel('误码率');

 

 

figure

semilogy(SNRdB,SER_matrix(1,:),'-bs',...

    'LineWidth',1,...

    'MarkerSize',8,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.9,0.0]);

hold on

semilogy(SNRdB,SER_matrix(2,:),'-mo',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.5,0.9,0.0]);

hold on

semilogy(SNRdB,SER_matrix(3,:),'-b^',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.2,0.9,0.5]);

hold on

semilogy(SNRdB,SER_matrix(4,:),'-r>',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.9,0.0]);

hold on

semilogy(SNRdB,SER_matrix(5,:),'-r<',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.3,0.3]);

grid on

legend('BPSK','QPSK','16QAM','64QAM','自适应调制');

xlabel('SNR');

ylabel('误码率');

 

figure

plot(SNRdB,Ttotal_matrix(1,:),'-bs',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.0,0.0]);

hold on

plot(SNRdB,Ttotal_matrix(2,:),'-mo',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.5,0.9,0.0]);

hold on

plot(SNRdB,Ttotal_matrix(3,:),'-b^',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.2,0.9,0.5]);

hold on

plot(SNRdB,Ttotal_matrix(4,:),'-r>',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.9,0.0]);

hold on

plot(SNRdB,Ttotal_matrix(5,:),'-r<',...

    'LineWidth',1,...

    'MarkerSize',6,...

    'MarkerEdgeColor','k',...

    'MarkerFaceColor',[0.9,0.3,0.3]);

grid on

legend('BPSK','QPSK','16QAM','64QAM','自适应调制');

xlabel('SNR');

ylabel('传输时间');

A416

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关文章
  • 没有相关文章
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168