• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-01-05
  • 语言: Matlab
  • 标签:

资源简介

此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
  

评论

共有 条评论

相关资源