当前位置: 首页 > news >正文

(78)MPSK基带调制通信系统瑞利平坦衰落信道传输性能的MATLAB仿真

文章目录

  • 前言
  • 一、MATLAB仿真
    • 1.仿真代码
    • 2.仿真结果
  • 二、子函数与完整代码
  • 总结


前言

本文给出瑞利平坦衰落信道上的M-PSK通信系统性能仿真的MATLAB源代码与仿真结果。其中,调制方式M-PSK包括BPSK、QPSK、8-PSK、16-PSK、32-PSK等方式。


一、MATLAB仿真

1.仿真代码

% 仿真参数设置
nSym = 1e5;                       % 符号数
EbN0dB = -5:2:25;                 % Eb/N0范围(单位:dB)
MODU_TYPE = 'PSK';                % 调制类型
arrayM = [2,4,8,16,32];           % 要仿真的M值数组
plotColor = ['b','g','r','c','m','k'];    % 绘图颜色
indexp = 1;
legendString = cell(1,length(arrayM)*2);  % 创建cell单元格数组,用于图例条目figure();                         % 创建一个绘图窗口
for n = 1:length(arrayM)% 仿真参数初始化M = arrayM(n);k = log2(M);EsN0dB = 10*log10(k) + EbN0dB;       % 计算EsN0dBSER_sim = zeros(1,length(EbN0dB));   % 仿真符号错误率%-----------------Transmitter----------------------% 生成随机符号d = randi([1 M],1,nSym);% M-PSK基带调制[s,ref_Constellation] = mpsk_modulator(M,d);for i = 1:length(EsN0dB)% 平坦瑞利衰落[hs,h] = Rayleigh_flat_fading_channel(s,nSym);% 加AWGN噪声snrdB = EsN0dB(i);               % Eb/No转换为SNRr = add_awgn_noise(hs,EsN0dB(i));% 增加AWGN噪声%-----------------Receiver----------------------% 信道均衡(假设已估计得到信道衰落情况)y = channel_equalization(r,h);% 解调d_hat= mpsk_demodulator(M,y);% 统计SERSER_sim(i) = sum((d~=d_hat)) / nSym;  % SER计算endSER_theory = ser_rayleigh(EbN0dB,MODU_TYPE,M); % 理论SERsemilogy(EbN0dB,SER_sim,[plotColor(indexp) 'o']); hold on;semilogy(EbN0dB,SER_theory,plotColor(indexp),'linewidth',1); legendString{2*indexp-1} = ['Simulate ',num2str(M),'-',MODU_TYPE];legendString{2*indexp} = ['Theory ',num2str(M),'-',MODU_TYPE];indexp = indexp + 1;
end% ylim([1e-6 1])
grid on;
legend(legendString,'location','southwest');
title(['Probability of Symbol Error for M-',MODU_TYPE,' Rayleigh flat fading channel']);
xlabel('Eb/N0(dB)');ylabel('SER(Ps)');

2.仿真结果

在这里插入图片描述

二、子函数与完整代码

子函数与完整代码列表如下:

在这里插入图片描述

完整代码,已上传至我的资源:

https://download.csdn.net/download/weixin_45333185/90071827?spm=1001.2014.3001.5503

总结

暂无。后续有机会补上。



http://www.lryc.cn/news/497500.html

相关文章:

  • 【机器学习】机器学习的基本分类-监督学习-决策树-CART(Classification and Regression Tree)
  • 【金猿CIO展】复旦大学附属中山医院计算机网络中心副主任张俊钦:推进数据安全风险评估,防范化解数据安全风险,筑牢医疗数据安全防线...
  • 工业机器视觉-基于深度学习的水表表盘读数识别
  • 基于ZooKeeper搭建Hadoop高可用集群
  • 力扣88题:合并两个有序数组
  • python 笔记之线程同步和死锁
  • SpringBoot小知识(4):高级配置知识与bean的绑定
  • Python毕业设计选题:基于大数据的淘宝电子产品数据分析的设计与实现-django+spark+spider
  • Lua面向对象实现
  • OpenCV的圆形检测‌HoughCircles
  • iOS视图控制器的生命周期及各阶段的作用
  • 四轮阿克曼(前轮转向、后轮驱动)车子仿真控制
  • Blender均匀放缩模型
  • Python基于 Opencv+wxPython 的人脸识别上课考勤系统,附源码
  • 【AI工具】强大的AI编辑器Cursor详细使用教程
  • DApp开发与APP开发的五大区别
  • 哪款云手机适合多开?常用云手机功能对比
  • Python几种常用数据结构(重制版)
  • C++ 游戏开发:开启游戏世界的编程之旅(2)
  • 用 Python 做数据分析需要掌握哪些基础?
  • UE5 像素流进行内网https证书创建
  • Envoy-istio
  • CTF-PWN: WEB_and_PWN [第一届“吾杯”网络安全技能大赛 Calculator] 赛后学习(不会)
  • 【数据结构与算法】排序算法(上)——插入排序与选择排序
  • Linux操作系统性能优化
  • iOS与Windows间传文件
  • 在数据库设计中同步冗余字段的思考与实践
  • Qt 带数据库功能的项目部署之后,数据库无法打开问题解决方法
  • 汇编语言学习-二
  • 【嘟嘟早教卡】 小程序源码分享带后台管理