资源简介
此MATLAB程序采用矩阵表述的迭代算法求解离散单符号信道的信道容量。《信息论》课程上机作业之一。
代码片段和文件信息
%离散单符号信道容量的迭代算法(MATLAB实现)
%程序编写测试环境为MATLAB R2014a
%程序运行涉及的四个参数现已调整合适,除这四个参数外其他部分不应修改
%为方便起见,程序仅输入信道转移概率矩阵P,通过P获取rs
%鉴于MATLAB矩阵运算的优势,信道容量迭代算法改用矩阵形式表述
%程序输出部分包括最佳信源分布及对应信道容量
%提供测试矩阵,[0.5 0.5 0 0;0 0 0.5 0.5],信源等概时信道容量1.00比特/符号
clc;
clear all;
close all;
%算法参数设置
err=1e-15; %误差门限参数设置
C_current=-1e30; %初始信道容量设置
K=10000; %最大迭代次数设置
fag=1e-50; %设定的高次小量用于替换0
%输入部分
%键盘输入,输入处理及输入判断
Pcc=input(‘请输入信道转移概率矩阵(输入格式示例[0.5 0.5;0.4 0.6])\n‘);
M=size(Pcc); %读取信道转移概率矩阵的大小
r=M(:1); %获取信源符号个数
s=M(:2); %获取信宿符号个数
%判断输入矩阵是否满足要求
tag0=sum(Pcc(:)>=0);
tag1=sum((Pcc*ones(s1))==1);
if tag0~=r*s||tag1~=r
- 上一篇:连续投影法降维spa代码
- 下一篇:trendMK 秩和检验MATLAB实现
评论
共有 条评论