本文探究mASK调制在AWGN信道下的可达信息速率用Monte Carlo仿真计算的方法。参考我的上一篇博文《mASK 调制在AWGN信道下的可达信息速率的积分计算》,解决的方法相同,只是采用的方法不同。在计算公式(1)

                                      (1)

时采用Monte Carlo仿真的方法代替其中的积分,具体的公式可变换为

        (2)

通过仿真产生发送序列,加入高斯白噪声后在产生接收序列y,根据公式(2)即可进行计算mASK信号在AWGN信道下的可达信息速率。该方法的具体matlab代码如下:

capacity_mASK_simulation。m

%此程序为计算m-ASK调制格式在AWGN信道下的可达信息速率,即互信息I(X;Y)
%此程序采用的方法是Monte Carlo 仿真方法
%written by FJF,20180327,看风景的心情
clear
clcd = 2; % 星座点的距离
mod_order = 32; %ASK的阶数,2表示2ASK,4表示4ASK
ask = (1:mod_order)*d;
ask = ask - mean(ask);
pask=ones(1,length(ask)) * 1/ length(ask); % 等概率分布
snr_dB=[0:0.1:50];
itera=20; %总的迭代次数
times=100000; %每次迭代的仿真数目
signal_power=sum(pask.*ask.*ask); %发送信号功率for index_snr_dB=1:length(snr_dB)snr_dB(index_snr_dB)snr=10^(snr_dB(index_snr_dB)/10);yita_squ=signal_power/snr; %高斯噪声的方差yita=sqrt(yita_squ);c_temp=zeros(1,itera);for index_itera=1:iteraindex_iteraNoise=yita*randn(1,times); %产生的高斯噪声序列x_time=rand(1,times);pask_cum=cumsum(pask);x=zeros(1,times);  %x表示发送的信号电平x(x_time<=pask_cum(1))=ask(1);for index_ask=2:length(ask)x(x_time>pask_cum(index_ask-1)&x_time<=pask_cum(index_ask))=ask(index_ask);endy=x+Noise; %y表示接收的信号temp_p=zeros(length(ask),times);for index_ask=1:length(ask)temp_p(index_ask,:)=post_probality(y,ask(index_ask),yita_squ);endc_temp(index_itera)=mean(log2(post_probality(y,x,yita_squ)./(pask*temp_p)));endc(index_snr_dB)=mean(c_temp);
endplot(snr_dB,c);
grid on
legend(['Uniform ' num2str(mod_order) '-ASK']);

post_probality.m

function p=post_probality(y,ask,yita_squ)
p=(2*pi*yita_squ)^(-0.5)*exp(-(y-ask).^2/(2*yita_squ));

具体的运算结果如下:

可以发现此结果与上一篇博文中用积分法算的结果相同。

版权声明:本文为FJF本人原创,不作任何商业用途。欢迎转载,转载请标明出处。同时也欢迎大家与我讨论相关问题

mASK调制在AWGN信道下的可达信息速率的Monte Carlo仿真计算法相关推荐

  1. 最大玻尔兹曼分布的mASK信号在AWGN信道下的容量计算

    最大玻尔兹曼分布的mASK信号在AWGN信道下的容量计算_u011852612的博客-CSDN博客

  2. AWGN信道下的香农限

    香农限的概念 香农定义的信道容量为信道的输入信息X与信道的输出信息Y之间的最大互信息熵,即 对于信道带宽为B,信号功率为Ps ,噪声功率PN 的AWGN信道来说,其信道容量可做如下表示, 而香农限则是 ...

  3. AWGN信道下卷积编码、viterbe译码、分别采用软硬判决,进行误码率分析

    一.卷积编码 仿真 (硬判决译码 误码率和理论值比较) 已知卷积码生成函数: 可知码率为1/3,相应的抽头系数为(557 663 711)的卷积码.编写程序,采用卷积编码.维特比译码(硬判决),BPS ...

  4. C语言实现LDPC的校验矩阵,非正则LDPC码在AWGN信道中的性能研究

    0引言低密度奇偶校验码(LowDensityParityCheck,LDPC)是Gallager提出的基于稀疏校验矩阵的线性分组码[1].其构造特殊之处在于它的奇偶检验矩阵H是稀疏矩阵,即H矩阵中非零 ...

  5. 采用simulink构建AWGN信道中分组码的BPSK数字通信系统

    综合实验设计题5: 采用simulink构建AWGN信道中分组码的BPSK数字通信系统 1.实验要求: (1)构建在AWGN信道中,采用BPSK调制的分组差错控制编码方法的模型,并给出误码率性能. ( ...

  6. MATLAB仿真QPSK调制信号通过AWGN信道的误符号率和误比特率分析

    MATLAB仿真QPSK调制信号通过AWGN信道的误符号率和误比特率分析 形式:程序 程序实现功能: 仿真正交相移键控QPSK信号调制的基带数字通信系统通过AWGN信道的误符号率(SER)和误比特率( ...

  7. awgn信道中的噪声功率谱密度_从OFC2020看高级算法在光通信中的应用

    ​ 各种神经网络算法(XNN)在大数据机器学习和人工智能领域有着十分广泛的应用,这些高级算法在分类.优化.自学习这些方面的突出能力和其在互联网及自动控制领域的优异表现是毋庸置疑的,自然这些年也是火得一 ...

  8. 4PAM在高斯信道与瑞利信道下的基带仿真系统实验

    1.系统框图 2.代码 clear all close all clc N = 10000; %比特数 SNR=0:10; %SNR的范围 EbN0 = 10.^(SNR/10); err_num=z ...

  9. BPSK,QPSK,2FSK,16QAM,64QAM信号在高斯信道与瑞利信道下的误码率性能仿真

    BPSK,QPSK,2FSK,16QAM,64QAM信号在高斯信道与瑞利信道下的误码率性能仿真_南大小王-CSDN博客 16QAM调制解调仿真(matlab,详细介绍仿真方案的设计.结果及结论.完整代 ...

最新文章

  1. runaway深度递归函数测试及相关汇编指令
  2. Unicode 和 UTF-8 有何区别?
  3. 简单试用了一下 dynamips 7200路由模拟器
  4. 高仿真的类-页面交互
  5. led大屏按实际尺寸设计画面_年会活动要用LED大屏还是投影?专业行家都是看这些数据。...
  6. Unicode : RLO
  7. Hibernate学习笔记!
  8. 基础一:JS数据类型
  9. Mac OS X中AMPPS中MySQL的配置文件(my.cnf)的位置
  10. oracle erp 用户手册,oracleerp用户手册-mrp
  11. 中钰睿泓分享:设计LOGO的思路和流程
  12. 大数据圈儿微信公众号
  13. python处理excel——创建excel工作簿和工作表并录入信息(openpyxl库)
  14. 上传即可使用的在线缩短网址源码
  15. 实验二 matlab矩阵分析与处理
  16. ubantu系统从命令行进入桌面
  17. CUDA C/C++ 从入门到入土 第一步——让你的CUDA跑起来
  18. pcs 模块 , 信号编码技术
  19. 怎样查看java配置好了没_怎么配置JAVA环境变量,看完就明白了
  20. redis docker 集群搭建

热门文章

  1. Google Dremel 原理 – 如何能 3 秒分析 1PB
  2. 磁卡、ID卡、IC卡、M1卡、CPU卡的理解区分
  3. 在浏览器输入url回车后发生了什么
  4. C语言中常见的转义字符总结
  5. java软件国际化解决方案
  6. 使用自己训练的yolov3或yolov4模型自动标注成voc格式数据
  7. 【MetInfo任意文件读取】--任意文件读取漏洞
  8. 数据结构与算法—二叉排序(查找)树
  9. input输入的时候统计字数的代码
  10. 简单易懂的人工智能系列:关联规则