收藏 分享(赏)

信道容量的matlab程序.doc

上传人:cjc2202537 文档编号:7760648 上传时间:2019-05-25 格式:DOC 页数:2 大小:83.50KB
下载 相关 举报
信道容量的matlab程序.doc_第1页
第1页 / 共2页
信道容量的matlab程序.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

1、代码:function main()clc; p=1/2 1/4 0 1/40 1 0 00 0 1 01/4 0 1/4 1/2;channel_cap(p,0.001)% Matlab实现离散信道容量的迭代算法% 功能:利用迭代算法计算离散信道的容量%参数解释%C:信道容量%P:转移概率矩阵%B:中间变量矩阵%e:信道容限%X:输入概率分布%n:迭代次数function channel_cap(P, e)n=0;C=0;C_0=0;C_1=0;r,s=size(P);for i=1:r if(sum(P(i,:)=1)%检测概率转移矩阵是否行和为 1. error(概率转移矩阵输入有误!)

2、 return; end for j=1:s if(P(i,j)1)%检测概率转移矩阵是否负值或大于1 error(概率转移矩阵输入有误!) return; end end endX=ones(1,r)/r;A=zeros(1,r);B=zeros(r,s);while(1) n=n+1; for i=1:r for j=1:s B(i,j)=log(P(i,j)/(X*P(:,j)+eps); end A(1,i)=exp(P(i,:)*B(i,:); end C_0=log2(X*A); C_1=log2(max(A); if (abs(C_0-C_1)e) %满足迭代终止条件停止迭代 C=C_0; fprintf(迭代次数: n=%dn,n) fprintf(信道容量: C=%f 比特/符号n,C) break; %满足后输出结果并退出 else X=(X.*A)/(X*A); continue; end end结果:迭代次数: n=6信道容量: C=1.321928 比特/符号

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

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

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


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

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

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