一些公式没法粘贴,以后再补上

一、用了matlab实现DMC容量迭代的算法如下:

设信道输入和输出符号集大小分别为r,s.

1.初始化信源分布:这里选deta=0.000001。

2.。

3.

4.

5.

若,则k=k+1,转第2步

6. 输出迭代次数k和和,终止。

二、了解了信道容量的定义和DMC信道容量迭代计算方法,我用了matlab来进行编程进行迭代计算得出信道容量。不足之处在于每迭代一次就输出一次迭代次数直到最后一次迭代。

1)输入:输入信源个数、信宿个数和信道容量的精度,输入信道转移矩阵。

2)输出:输出最佳信源分布和信道容量。

三、检验程序

之一:

输入信源个数:2

输入信宿个数:3

输入信道容量的精度:0.000001

输入信道转移矩阵P:[0.98 0.02; 0.05 0.95]

之二:P:[0.60.4;0.05 0.95]

之三:P:[0.8 0.150.05;0.05 0.15 0.8]

之四:P:[0.99 0.01 0;0.005 0.99 0.005;0 0.010.99]

四、程序源代码:

clear;

%r=input('输入信源个数:');

%s=input('输入信宿个数:');

%deta=input('输入信道容量的精度:');

deta=0.000001;

%判断信道转移概率矩阵输入是否正确

P=input('输入信道转移矩阵P:');

[r,s]=size(P);

for i=1:r

if(sum(P(i,:))~=1)

error('概率转移矩阵输入有误!!')

return;

end

for j=1:s

if(P(i,j)<0||P(i,j)>1)

error('概率转移矩阵输入有误!!')

return;

end

end

end

i=1:1:r;

p(i)=1/r;%p为列向量

disp('原始信源分布:'),disp(p)

E=repmat(p',1,s);%把r个等概率元素组成一列,复制为s列

for k=1:1:1/deta

m=E.*P;

q=sum(m);%把得到的矩阵m每列内部相加之和构成一行,得到输出矩阵

su1=repmat(q,r,1);%把得到的行矩阵a复制r行,成一新矩阵su1

t=P./su1;

for i=1:r

for j = 1:s

if t(i,j)==0

t(i,j)=1

end

end

end

n=exp(sum(P.*log(t),2));%ln(t)在这里表示为log(t),列向量

u=p.*n';%信源分布的分子,行向量

su2=sum(u);%信源分布的分母

p=u/su2;

E=repmat(p',1,s);

su3=max(n);

C1=log2(su2);C2=log2(su3);

kk=C2-C1;

if(kk<=deta)

break;

end

end

disp('迭代次数:k='),disp(k)

disp('最大信道容量时的信源分布:p='),disp(p)

disp('最大信道容量:C='),disp(C1)

五、运行结果如下:

检验程序之一:

输入信道转移矩阵P:[0.98 0.02;0.05 0.95]

原始信源分布:

0.5000    0.5000

迭代次数:k=

7

最大信道容量时的信源分布:p=

0.5129    0.4871

最大信道容量:C=

0.7858

检验程序之二:

P:[0.6 0.4;0.05 0.95]

原始信源分布:

0.5000    0.5000

迭代次数:k=

26

最大信道容量时的信源分布:p=

0.4487    0.5513

最大信道容量:C=

0.2838

检验程序之三:

P:[0.8 0.15 0.05;0.05 0.15 0.8]

原始信源分布:

0.5000    0.5000

迭代次数:k=

1

最大信道容量时的信源分布:p=

0.5000    0.5000

最大信道容量:C=

0.5757

检验程序之四:

P:[0.99 0.01 0;0.005 0.99 0.005;0 0.01 0.99]

原始信源分布:

0.3333    0.3333   0.3333

迭代次数:k=

4

最大信道容量时的信源分布:p=

0.3358    0.3283    0.3358

最大信道容量:C=

1.5009

五、程序调试遇到的问题

检验第4个转移概率矩阵时,由于含有0元素,导致,从而使得。因此应该插入判断矩阵{}元素时候为0,为0就用1代替。即for i=1:r

for j = 1:s

if t(i,j)==0

t(i,j)=1

end

end

end

因此可以计算含有0元素的概率转移矩阵。

dmc matlab程序,DMC信道容量迭代算法(Matalab实现)相关推荐

  1. 含抽水蓄能电站系统的调峰经济调度研究matlab程序(粒子群算法)

    含抽水蓄能电站系统的调峰经济调度研究matlab程序(粒子群算法) 参考文献:抽水蓄能电站的最佳调度方案研究 调峰电源的优化调度是促进电力系统安全稳定运行,实现可靠供电的要措施.因为目前我国的调峰电源 ...

  2. 【老生谈算法】标准粒子群算法(PSO)及其Matlab程序和常见改进算法——粒子群算法

    1.算法详解: 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]标准粒子群算法(PSO)及其Matlab程序和常见改进算法.docx 2 ...

  3. 含分布式电源的配电网日前两阶段调度模型matlab程序(粒子群算法)

    含分布式电源的配电网日前两阶段调度模型matlab程序(粒子群算法) 参考文献:含分布式电源的配电网日前两阶段优化调度模型 摘要:在电力市场环境下,供电公司通过对接入配电网的分布式电源(distrib ...

  4. 【图像重建】基于matlab布雷格曼迭代算法集合ART算法CT图像重建【含Matlab源码 1905期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[图像重建]基于matlab布雷格曼迭代算法集合ART算法CT图像重建[含Matlab源码 1905期] 获取代码方式2: 通过订阅紫极神光 ...

  5. 混合储能系统容量优化MATLAB程序基于粒子群算法

    混合储能系统容量优化MATLAB程序基于粒子群算法 (1)该程序为基于粒子群算法的混合储能系统容量优化程序,中文核心期刊论文源程序,配有该论文,再给一篇类似的参考论文. (2)该程序中混合储能系统为蓄 ...

  6. MATLAB程序,多元宇宙算法优化极限学习机,MVO_ELM 。可用于数据分类回归预测

    MATLAB程序,多元宇宙算法优化极限学习机,MVO_ELM .可用于数据分类回归预测 5338.49627011222729乐天1997

  7. 电力系统无功优化MATLAB程序基于粒子群算法IEEE30配电网

    电力系统无功优化MATLAB程序基于粒子群算法IEEE30配电网 (1)该程序为基于粒子群算法的配电网无功优化程序,可达到有效降低网损的目的. (2)程序以IEEE-30节点为算例.以网损最小为目标函 ...

  8. [信息论]信道容量迭代算法程序设计(基于C++Matlab实现)

    算法分析 迭代法计算信道容量 CCC 的步骤如下: 首先,记 p(yj∣xi)=pijp(y_j|x_i) = p_{ij}p(yj​∣xi​)=pij​ , p(xi)=pip(x_i)=p_ip( ...

  9. 时间窗车辆路径问题matlab代码,【图片】蚁群算法求解有时间窗约束的车辆路径问题matlab程序_蚁群算法吧_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 蚁群算法求解有时间窗约束的车辆路径问题matlab程序 1 简介 带时间窗的车辆路径问题(VRPTW)一般描述为从某一物流配送中心出发,用多台车辆向多个顾 ...

最新文章

  1. hbase数据读取优化_从hbase读取数据优化策略和实验对照结果
  2. Hibernate学习笔记
  3. tomcat:there is no resources that can be added or removed from server
  4. esp32 烧录固件
  5. 黑客开始利用云计算暴力破解密码
  6. ABAP 740里的新语法 - LET表达式
  7. 又一个脑洞实现了!索尼将推出穿在身上的空调:夏日出门必备
  8. 编写的软件在运行时界面不能移动_常用软件开发工具介绍
  9. 一张表实现固定表头和锁定列
  10. App Store 上架审核指北【翻译】
  11. spring MVC 导出excel
  12. linux清理根目录下的垃圾,Linux 根目录满了解决方法
  13. 低价云 主机虚拟云服务器,低价云 主机虚拟云服务器
  14. Nodejs—即时通讯
  15. 七日之都账号服务器,永远的7日之都服务器数据互通吗_永远的7日之都iOS和安卓能一起玩吗_玩游戏网...
  16. 无声交流的读心术,正在剥夺我们的沟通能力
  17. OpenCV(3.4.1)错误 Assertion failed (chunk.m_size 0xFFFF)
  18. PostgreSQL报错 ERROR: function sum(character varying) does not exist
  19. 矢量在全球规则格网地形上的叠加绘制方法
  20. 放大镜 讲课_放大镜教案

热门文章

  1. 《思考,快与慢》学习总结
  2. MEM/MBA数学强化(06)数列
  3. 【计算机图形学】结课大作业——光照模型(3D场景)
  4. 计算机那些事——图形图像渲染原理
  5. 切削力matlab数据处理,基于MATLAB的切削力测量实验数据的处理及分析
  6. 操作excel文件爬取nvd.nist数据
  7. 一个屌丝程序猿的人生(二十三)
  8. 什么是 AES-GCM加密算法
  9. 苹果手机录音怎么转换成mp3
  10. php消息撤回,“撤回”功能的技术方案设计尝试