信道容量的matlab程序

上传人:M****1 文档编号:507754789 上传时间:2022-09-06 格式:DOC 页数:2 大小:34KB
返回 下载 相关 举报
信道容量的matlab程序_第1页
第1页 / 共2页
信道容量的matlab程序_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《信道容量的matlab程序》由会员分享,可在线阅读,更多相关《信道容量的matlab程序(2页珍藏版)》请在金锄头文库上搜索。

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

2、(i,j)l)%检测概率转移矩阵是否负值或大于1error(概率转移矩阵输入有误!)return;endendendX=ones(1,r)/r;A=zeros(1,r);B=zeros(r,s);while(1)n=n+1;fori=1:rforj=1:sB(i,j)=log(P(i,j)/(X*P(:,j)+eps);endA(1,i)=exp(P(i,:)*B(i,:);endC_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;%满足后输出结果并退出elseX=(X.*A)/(X*A);continue;endend结果:迭代次数:n=6信道容量:C=1.321928比特/符号

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号