DMC信道容量迭代计算的matlab实现.doc
《DMC信道容量迭代计算的matlab实现.doc》由会员分享,可在线阅读,更多相关《DMC信道容量迭代计算的matlab实现.doc(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、DMC信道容量迭代计算的matlab实现-通信与信息系统一、用了matlab实现DMC容量迭代的算法如下:1. 初始化信源分布:一般我选deta=0.000001。2. 。3.。 4.5.若,则k=k+1,转第2步6.输出迭代次数k和和,终止。二、了解了信道容量的定义和DMC信道容量迭代计算方法,我用了matlab来进行编程进行迭代计算得出信道容量。不足之处在于每迭代一次就输出一次迭代次数直到最后一次迭代。1) 输入:输入信源个数、信宿个数和信道容量的精度,程序能任意生成随机的信道转移概率矩阵,也可以自己输入信道转移矩阵。2) 输出:输出最佳信源分布和信道容量。将附件里的dmc.m文件直接ru
2、n运行可以自主输入信道转移概率矩阵,按照程序中提示将那两句代替判断输入矩阵是否正确的那部分,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之五:自动生成信道转移矩阵四、程序源代码
3、: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(概率转移矩阵输入有误!) retu
4、rn; 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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DMC 信道容量 计算 matlab 实现
限制150内