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

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

ID:45097067

大小:115.51 KB

页数:7页

时间:2019-11-09

DMC信道容量迭代计算的matlab实现_第1页
DMC信道容量迭代计算的matlab实现_第2页
DMC信道容量迭代计算的matlab实现_第3页
DMC信道容量迭代计算的matlab实现_第4页
DMC信道容量迭代计算的matlab实现_第5页
资源描述:

《DMC信道容量迭代计算的matlab实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、DMC信道容量迭代计算的matlab实现--通信与信息系统一、用了matlab实现DMC容量迭代的算法如下:1.初始化信源分布:一般我选deta=0.000001。2.。3.。4.5.若,则k=k+1,转第2步6.输出迭代次数k和和,终止。二、了解了信道容量的定义和DMC信道容量迭代计算方法,我用了matlab来进行编程进行迭代计算得出信道容量。不足之处在于每迭代一次就输出一次迭代次数直到最后一次迭代。1)输入:输入信源个数、信宿个数和信道容量的精度,程序能任意生成随机的信道转移概率矩阵,也可以自己输入信道转移矩阵。2)输出:输出

2、最佳信源分布和信道容量。将附件里的dmc.m文件直接run运行可以自主输入信道转移概率矩阵,按照程序中提示将那两句代替判断输入矩阵是否正确的那部分,dmc1.m运行可以随机生成信道转移概率矩阵。三、检验程序之一:输入信源个数:2输入信宿个数:3输入信道容量的精度:0.000001输入信道转移矩阵P:[0.50000.30000.2000;0.30000.50000.2000]之二:P:[0.40000.30000.2000;0.30000.50000.2000]之三:P:[1.1000-0.30000.2000;0.30000.5

3、0000.2000]之四:P:[0.60.4;0.010.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:')%从这句话开始将用下面两句代替可自动生成

4、信道转移矩阵[r,s]=size(P);fori=1:rif(sum(P(i,:))~=1)%检测概率转移矩阵是否行和为1.error('概率转移矩阵输入有误!!')return;endforj=1:sif(P(i,j)<0

5、

6、P(i,j)>1)%检测概率转移矩阵是否负值或大于1error('概率转移矩阵输入有误!!')return;endendend%将上面的用下面两句代替可自动生成信道转移矩阵%disp('信道转移概率矩阵:')%P=Q./B信道转移概率矩阵(每一个原矩阵的新数除以所在行的数总和)i=1:1:r;%设置循环首项

7、为1,公差为1,末项为r(Q的行数)的循环p(i)=1/r;%原始信源分布r个信源,等概率分布disp('原始信源分布:')p(i)E=repmat(p',1,s);%把r个等概率元素组成一列,复制为s列fork=1:1:1/detam=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));%信源分布的分子部

8、分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;enddisp('迭代次数:k='),disp(k)enddisp('最大信道容量时的信源分布:p='),disp(p')disp('最大信道容量:C='),disp(C(k+1))五、运行结果如下:检验程序之一:输入信源个数:2输入信宿个数:3输入信

9、道容量的精度:0.000001输入信道转移矩阵P:[0.50000.30000.2000;0.30000.50000.2000]P=0.50000.30000.20000.30000.50000.2000原始信源分布:ans=0.50000.5000迭代次数:k=1最大信道容量时的信源分布:p=0.50000.5000最大信道容量:C=0.0365检验程序之二:P:[0.40000.30000.2000;0.30000.50000.2000]检验程序之三:P:[1.1000-0.30000.2000;0.30000.50000.2

10、000]检验程序之四:P:[0.60.4;0.010.99]输入信源个数:2输入信宿个数:2输入信道容量的精度:0.000001输入信道转移矩阵P:[0.60.4;0.010.99]P=0.60000.40000.01000.9900原始信源分布:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。