- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一般离散无记忆信道容量的迭代计算
信道容量的迭代算法
1信道容量的迭代算法的步骤
一、用了matlab实现DMC容量迭代的算法如下:
第一步:首先要初始化信源分布:
即选取一个精度,本次中我选deta=0.000001。
第二步:。
第三步:
第四步:
第五步:
若,则执行k=k+1,然后转第二步。直至转移条件不成立,接着执行下面的程序。
第六步:输出迭代次数k和和,程序终止。
2. Matlab实现
clear;
r=input(输入信源个数:);
s=input(输入信宿个数:);
deta=input(输入信道容量的精度: );
Q=rand(r,s); %形成r行s列随机矩阵Q
A=sum(Q,2); %把Q矩阵每一行相加和作为一个列矩阵A
B=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)0||P(i,j)1) %检测概率转移矩阵是否负值或大于1
error(概率转移矩阵输入有误!!)
return;
end
end
end
%将上面的用下面两句代替可自动生成信道转移矩阵
%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)
end
disp(最大信道容量时的信源分布:p=),disp(p)
disp(最大信道容量:C=),disp(C(k+1))
运行结果及分析
结果分析:这两组数据都是我随机选的,都是选的信源个数为2,信宿的个数为3,选用的精度为0.000001。然后输入信道转移矩阵P,执行,将得到的结果代入,得到后,再进行的判断,这个条件满足时继续求,再依次往下计算,直至这个条件不满足,然后输出k和和。总的来说这不过是将矩阵不断的代入公式,当最后的精度不大于0.000001.输出k和和。
第二组数据:
4.心得体会
? 在此次matlab编程实现一般离散无记忆信道容量的迭代算法的过程中,开始我觉得这十分的困难,经过网上查阅资料和请教同学,最后才对本次设计有了一定的理解,详细理解了信道容量的迭代算法过程。经过理解,发现这种编码其实挺简单的,最重要的是怎样用程序把它实现,这对我们的编程能力也是一次考验。
您可能关注的文档
- 【精选】潍水学校学雷锋志愿活动方案及安排表.doc
- 【经典】集电极开路-漏极开路-推挽-上拉电阻-弱上拉-三态门-准双向口.doc
- 【经营管理】新开便利店如何安排员工的排班.doc
- 【苏教版】【步步高】2014届高考数学一轮复习备考练习:3.4习题课].doc
- 【苏教版】【步步高】2014届高考数学一轮复习备考练习:习题课-命题及其关系].doc
- 【苏教版】【步步高】2014届高考数学一轮复习备考练习:第1章-章末检测].doc
- 【范本】分子公司员工奖惩管理制度范本.doc
- 【药师之友】左氧氟沙星与头孢西丁治疗成人非重症社区获得性肺炎的成本--效果分析.doc
- 【范本】分子公司新员工手册范本.doc
- 【英语】2010年高考试题——课标版全国I(黑龙江、吉林、宁夏、海南卷)(图片版).doc
原创力文档


文档评论(0)