-
大小: 2KB文件類型: .m金幣: 1下載: 0 次發(fā)布日期: 2021-01-05
- 語言: Matlab
- 標簽:
資源簡介
此MATLAB程序采用矩陣表述的迭代算法求解離散單符號信道的信道容量?!缎畔⒄摗氛n程上機作業(yè)之一。
代碼片段和文件信息
%離散單符號信道容量的迭代算法(MATLAB實現(xiàn))
%程序編寫測試環(huán)境為MATLAB?R2014a
%程序運行涉及的四個參數(shù)現(xiàn)已調(diào)整合適,除這四個參數(shù)外其他部分不應修改
%為方便起見,程序僅輸入信道轉移概率矩陣P,通過P獲取rs
%鑒于MATLAB矩陣運算的優(yōu)勢,信道容量迭代算法改用矩陣形式表述
%程序輸出部分包括最佳信源分布及對應信道容量
%提供測試矩陣,[0.5?0.5?0?0;0?0?0.5?0.5],信源等概時信道容量1.00比特/符號
clc;
clear?all;
close?all;
%算法參數(shù)設置
err=1e-15;??????????????????????????%誤差門限參數(shù)設置
C_current=-1e30;????????????????????%初始信道容量設置
K=10000;????????????????????????????%最大迭代次數(shù)設置
fag=1e-50;??????????????????????????%設定的高次小量用于替換0
%輸入部分
%鍵盤輸入,輸入處理及輸入判斷
Pcc=input(‘請輸入信道轉移概率矩陣(輸入格式示例[0.5?0.5;0.4?0.6])\n‘);
M=size(Pcc);????????????????????????%讀取信道轉移概率矩陣的大小
r=M(:1);???????????????????????????%獲取信源符號個數(shù)
s=M(:2);???????????????????????????%獲取信宿符號個數(shù)
%判斷輸入矩陣是否滿足要求
tag0=sum(Pcc(:)>=0);????????????
tag1=sum((Pcc*ones(s1))==1);???
if?tag0~=r*s||tag1~=r
??
評論
共有 條評論