收藏 分享(赏)

DMC信道容量迭代计算的matlab实现.doc

上传人:精品资料 文档编号:10353721 上传时间:2019-11-03 格式:DOC 页数:7 大小:115.50KB
下载 相关 举报
DMC信道容量迭代计算的matlab实现.doc_第1页
第1页 / 共7页
DMC信道容量迭代计算的matlab实现.doc_第2页
第2页 / 共7页
DMC信道容量迭代计算的matlab实现.doc_第3页
第3页 / 共7页
DMC信道容量迭代计算的matlab实现.doc_第4页
第4页 / 共7页
DMC信道容量迭代计算的matlab实现.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、DMC 信道容量迭代计算的 matlab 实现-通信与信息系统一、用了 matlab 实现 DMC 容量迭代的算法如下:1.初始化信源分布: 一般我选.0deta10,1,0)( , 选置, krirPkideta=0.000001。2. 。, )()()( kijijikikij tpt得 反 向 转 移 概 率 矩 阵由 式 3. 111 logexp kikijijkijijkiki pPt计 算由 式。4. CtptPIC krisjkijjikk 10011 logexlog, 计 算由 式5.若 ,则 k=k+1,转第 2 步akdet)1(6.输出迭代次数 k 和 和 ,终止。1

2、kCkP二、了解了信道容量的定义和 DMC 信道容量迭代计算方法,我用了 matlab 来进行编程进行迭代计算得出信道容量。不足之处在于每迭代一次就输出一次迭代次数直到最后一次迭代。1)输入:输入信源个数、信宿个数和信道容量的精度,程序能任意生成随机的信道转移概率矩阵,也可以自己输入信道转移矩阵。2)输出:输出最佳信源分布和信道容量。将附件里的 dmc.m 文件直接 run 运行可以自主输入信道转移概率矩阵,按照程序中提示将那两句代替判断输入矩阵是否正确的那部分,dmc1.m 运行可以随机生成信道转移概率矩阵。3、检验程序之一:输入信源个数:2输入信宿个数:3输入信道容量的精度: 0.0000

3、01输入信道转移矩阵 P:0.5000 0.3000 0.2000;0.3000 0.5000 0.2000之二:P:0.4000 0.3000 0.2000;0.3000 0.5000 0.2000之三:P:1.1000 -0.3000 0.2000;0.3000 0.5000 0.2000之四:P:0.6 0.4;0.01 0.99之五:自动生成信道转移矩阵四、程序源代码:clear;r=input(输入信源个数:);s=input(输入信宿个数:);deta=input(输入信道容量的精度: );Q=rand(r,s); %形成 r 行 s 列随机矩阵 QA=sum(Q,2); %把 Q

4、 矩阵每一行相加和作为一个列矩阵 AB=repmat(A,1,s); %把矩阵 A 的那一列复制为 S 列的新矩阵%判断信道转移概率矩阵输入是否正确P=input(输入信道转移矩阵 P:)%从这句话开始将用下面两句代替可自动生成信道转移矩阵r,s=size(P); for i=1:rif(sum(P(i,:)=1) %检测概率转移矩阵是否行和为 1. error(概率转移矩阵输入有误!) return;endfor j=1:sif(P(i,j)1) %检测概率转移矩阵是否负值或大于 1error(概率转移矩阵输入有误!) return;endendend%将上面的用下面两句代替可自动生成信道转

5、移矩阵%disp(信道转移概率矩阵:)%P=Q./B 信道转移概率矩阵(每一个原矩阵的新数除以所在行的数总和)i=1:1:r; %设置循环首项为 1,公差为 1,末项为 r(Q 的行数)的循环p(i)=1/r; %原始信源分布 r 个信源,等概率分布disp(原始信源分布:)p(i)E=repmat(p,1,s);%把 r 个等概率元素组成一列,复制为 s 列for k=1:1:1/detam=E.*P; % m=p.*E; %后验概率的分子部分a=sum(m); %把得到的矩阵 m 每列相加之和构成一行su1=repmat(a,r,1);%把得到的行矩阵 a 复制 r 行,成一新矩阵 sul

6、,后验概率的分母部分t=m./su1; %后验概率矩阵n=exp(sum(P.*log(t),2); %信源分布的分子部分su2=sum(n); %信源分布的分母部分p=n/su2; %信源分布E=repmat(p,1,s);C(k+1)=log(sum(exp(sum(P.*log(t),2)/log(2);kk=abs(C(k+1)-C(k)/C(k+1);if(kk=deta)break; end disp(迭代次数:k=),disp(k) enddisp(最大信道容量时的信源分布:p=),disp(p)disp(最大信道容量:C=),disp(C(k+1)五、运行结果如下:检验程序之一

7、:输入信源个数:2输入信宿个数:3输入信道容量的精度: 0.000001输入信道转移矩阵 P:0.5000 0.3000 0.2000;0.3000 0.5000 0.2000P =0.5000 0.3000 0.20000.3000 0.5000 0.2000原始信源分布:ans =0.5000 0.5000迭代次数:k=1最大信道容量时的信源分布:p=0.5000 0.5000最大信道容量:C=0.0365检验程序之二:P:0.4000 0.3000 0.2000;0.3000 0.5000 0.2000检验程序之三:P:1.1000 -0.3000 0.2000;0.3000 0.500

8、0 0.2000检验程序之四:P:0.6 0.4;0.01 0.99输入信源个数:2输入信宿个数:2输入信道容量的精度: 0.000001输入信道转移矩阵 P:0.6 0.4;0.01 0.99P =0.6000 0.40000.0100 0.9900原始信源分布:ans =0.5000 0.5000迭代次数:k=1迭代次数:k=2迭代次数:k=3迭代次数:k=4迭代次数:k=5迭代次数:k=6迭代次数:k=7迭代次数:k=8迭代次数:k=9最大信道容量时的信源分布:p=0.4240 0.5760最大信道容量:C=0.3688检验程序之五:自动生成信道转移矩阵变为 dmc1.m 文件改程序如下:结果运行如下:输入信源个数:2输入信宿个数:2输入信道容量的精度: 0.000001信道转移概率矩阵:P =0.6102 0.38980.3223 0.6777原始信源分布:ans =0.5000 0.5000迭代次数:k=1迭代次数:k=2迭代次数:k=3迭代次数:k=4迭代次数:k=5迭代次数:k=6迭代次数:k=7迭代次数:k=8迭代次数:k=9迭代次数:k=10迭代次数:k=11迭代次数:k=12最大信道容量时的信源分布:p=0.4977 0.5023最大信道容量:C=0.0610YS20112508 夏笑笑 通信与信息系统

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报