信息论Mtalab仿真——信道容量

本文详细探讨了信息论中的信道容量计算,包括无噪声信道的一一对应关系、扩展性能信道和归并性能信道的示例,以及强对称和对称离散信道的容量计算。通过实例解析和一般信道容量求解过程,展示了如何使用迭代方法找到最大信道容量及其对应的信源分布。
摘要由CSDN通过智能技术生成

《信息论与编码》第三章——信道容量的计算

%@author Zhang
%@copyright Zhang
%@release 2021.06.16

%特殊离散信道
%具有一一对应关系的无噪信道
% P = [1,0,0;0,1,0;0,0,1];
% C = log2(size(P,1));

%具有扩展性能的无噪信道/有噪无损信道,当PX=1/n时
% P = [1/2 1/4 1/4 0   0   0   0   0   0;
%      0   0   0   1/2 1/4 1/4 0   0   0;
%      0   0   0   0   0   0   1/2 1/4 1/4];
% C = log2(size(P,1)); 

%具有归并性能的无噪信道,当PY=1/m时
% PYx = [1 0 0;
%        1 0 0;
%        0 1 0;
%        0 1 0;
%        0 0 1];
% C = log2(size(PYx,2));

%强对称离散信道的信道容量
% syms p n;
% p = 1/4;
% n = 5;
% P = [(1-p),(p/(n-1))*ones(1,n-1)];
% P_toeplitz = toeplitz(P);
% C = log2(n) + P*log2(P');

%对称离散信道的信道容量
%行可排列:每一行都有同一集合中诸元素的不同排列
%列可排列:每一列都有同一集合中诸元素的不同排列

%一般信道的信道容量求解
PBA = [1,eps;1/4,3/4];%题目已知信道转移矩阵
[n,m] = size(PBA);
deta = 0.000001;%误差门限
pa = ones(n,1)/n;%初始化信源分布,一般设为均匀分布
E = repmat(pa,1,m);
C(1) = 0.000001;
for k = 1:1:1/deta
    L = E .* PBA;
    a = sum(L);
    su1 = repmat(a,n,1);
    t = L./su1;%反向信道转移概率的第k次迭代值
    H = exp(sum(PBA.*log(t),2));
    su2 = sum(H);
    pa = H/su2;%信源分布的第k次迭代值
    E = repmat(pa,1,m);
    C(k+1) = log2(su2);%信道容量的第k+1次迭代值
    kk = abs(C(k+1)-C(k))/C(k+1);
    if(kk <= deta)
        break;
    end
end
disp('迭代次数:k='),disp(k);
disp('最大信道容量时的信源分布:pa=');disp(pa');
disp('最大信道容量:C=');disp(C(k+1));

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值