DMC信道容量迭代计算的matlab实现_第1页
DMC信道容量迭代计算的matlab实现_第2页
DMC信道容量迭代计算的matlab实现_第3页
DMC信道容量迭代计算的matlab实现_第4页
DMC信道容量迭代计算的matlab实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DMC信道容量迭代计算的matlab实现-通信与信息系统一、用了matlab实现DMC容量迭代的算法如下:1. 初始化信源分布:一般我选deta=0.000001。2. 。3.。 4.5.若,则k=k+1,转第2步6.输出迭代次数k和和,终止。二、了解了信道容量的定义和DMC信道容量迭代计算方法,我用了matlab来进行编程进行迭代计算得出信道容量。不足之处在于每迭代一次就输出一次迭代次数直到最后一次迭代。1) 输入:输入信源个数、信宿个数和信道容量的精度,程序能任意生成随机的信道转移概率矩阵,也可以自己输入信道转移矩阵。2) 输出:输出最佳信源分布和信道容量。将附件里的dmc.m文件直接run运行可以自主输入信道转移概率矩阵,按照程序中提示将那两句代替判断输入矩阵是否正确的那部分,dmc1.m运行可以随机生成信道转移概率矩阵。3、 检验程序之一:输入信源个数:2输入信宿个数:3输入信道容量的精度: 0.000001输入信道转移矩阵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矩阵每一行相加和作为一个列矩阵AB=repmat(A,1,s); %把矩阵A的那一列复制为S列的新矩阵 %判断信道转移概率矩阵输入是否正确P=input(输入信道转移矩阵P:)%从这句话开始将用下面两句代替可自动生成信道转移矩阵 r,s=size(P); for i=1:r if(sum(P(i,:)=1) %检测概率转移矩阵是否行和为1. error(概率转移矩阵输入有误!) return; end for j=1:s if(P(i,j)1) %检测概率转移矩阵是否负值或大于1 error(概率转移矩阵输入有误!) return; end endend%将上面的用下面两句代替可自动生成信道转移矩阵%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/deta m=E.*P; % m=p.*E; %后验概率的分子部分 a=sum(m); %把得到的矩阵m每列相加之和构成一行 su1=repmat(a,r,1);%把得到的行矩阵a复制r行,成一新矩阵sul,后验概率的分母部分 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)五、运行结果如下:检验程序之一:输入信源个数:2输入信宿个数:3输入信道容量的精度: 0.000001输入信道转移矩阵P:0.5000 0.3000 0.2000;0.3000 0.5000 0.2000P = 0.5000 0.3000 0.2000 0.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.5000 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.4000 0.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.3898 0.3223 0.6777原始信源分布:ans = 0.5000 0.5000迭代次数:k= 1迭代次数:k= 2迭代次数:k= 3迭代次数:k= 4迭代次数:k= 5迭代次数:k=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论