資源簡介
此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實現
評論
共有 條評論