《一般離散無(wú)記憶信道容量的迭代計(jì)算》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《一般離散無(wú)記憶信道容量的迭代計(jì)算(6頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、一般離散無(wú)記憶信道容量的迭代計(jì)算
信道容量的迭代算法
1信道容量的迭代算法的步驟
一、用了matlab實(shí)現(xiàn)DMC容量迭代的算法如下:
第一步:首先要初始化信源分布:
即選取一個(gè)精度,本次中我選deta=0.000001。
第二步:。
第三步:
第四步:
第五步:
假設(shè),那么執(zhí)行k=k+1,然后轉(zhuǎn)第二步。直至轉(zhuǎn)移條件不成立,接著執(zhí)行下面的程序。
第六步:輸出迭代次數(shù)k和和,程序終止。
2. Matlab實(shí)現(xiàn)
clear;
r=input('輸入信源個(gè)數(shù):');
s=input('輸入信宿個(gè)數(shù):');
deta=input('輸入信道容量的精
2、度: ');
Q=rand(r,s); %形成r行s列隨機(jī)矩陣Q
A=sum(Q,2); %把Q矩陣每一行相加和作為一個(gè)列矩陣A
B=repmat(A,1,s); %把矩陣A的那一列復(fù)制為S列的新矩陣
%判斷信道轉(zhuǎn)移概率矩陣輸入是否正確
P=input('輸入信道轉(zhuǎn)移矩陣P:')%從這句話(huà)開(kāi)始將用下面兩句代替可自動(dòng)生成信道轉(zhuǎn)移矩陣
[r,s]=size(P);
for i=1:r
if(sum(P(i,:))~=1) %檢測(cè)概率轉(zhuǎn)移矩陣是否行和為1.
error('概率轉(zhuǎn)移矩陣輸入有誤??!')
retur
3、n;
end
for j=1:s
if(P(i,j)<0||P(i,j)>1) %檢測(cè)概率轉(zhuǎn)移矩陣是否負(fù)值或大于1
error('概率轉(zhuǎn)移矩陣輸入有誤!!')
return;
end
end
end
%將上面的用下面兩句代替可自動(dòng)生成信道轉(zhuǎn)移矩陣
%disp('信道轉(zhuǎn)移概率矩陣:')
%P=Q./B 信道轉(zhuǎn)移概率矩陣〔每一個(gè)原矩陣的新數(shù)除以所在行的數(shù)總和〕
i=1:1:r; %設(shè)置循環(huán)首項(xiàng)為1,公差為1,末項(xiàng)為r〔Q的行數(shù)〕的循環(huán)
p(i)=1/r; %原始信源分布r個(gè)信源,等概率
4、分布
disp('原始信源分布:')
p(i)
E=repmat(p',1,s);%把r個(gè)等概率元素組成一列,復(fù)制為s列
for k=1:1:1/deta
m=E.*P; % m=p.*E; %后驗(yàn)概率的分子局部
a=sum(m); %把得到的矩陣m每列相加之和構(gòu)成一行
su1=repmat(a,r,1);%把得到的行矩陣a復(fù)制r行,成一新矩陣sul,后驗(yàn)概率的分母局部
t=m./su1; %后驗(yàn)概率矩陣
n=exp(sum(P.*log(t),2)); %信源分布的分子局部
s
5、u2=sum(n); %信源分布的分母局部
p=n/su2; %信源分布
E=repmat(p,1,s);
C(k+1)=log(sum(exp(sum(P.*log(t),2))))/log(2);
kk=abs(C(k+1)-C(k))/C(k+1);
if(kk<=deta)
break;
end
disp('迭代次數(shù):k='),disp(k)
end
disp('最大信道容量時(shí)的信源分布:p='),disp(p')
disp('最大信道容量:C='),disp(C
6、(k+1))
3. 運(yùn)行結(jié)果及分析
結(jié)果分析:這兩組數(shù)據(jù)都是我隨機(jī)選的,都是選的信源個(gè)數(shù)為2,信宿的個(gè)數(shù)為3,選用的精度為0.000001。然后輸入信道轉(zhuǎn)移矩陣P,執(zhí)行,將得到的結(jié)果代入,得到后,再進(jìn)行的判斷,這個(gè)條件滿(mǎn)足時(shí)繼續(xù)求,再依次往下計(jì)算,直至這個(gè)條件不滿(mǎn)足,然后輸出k和和??偟膩?lái)說(shuō)這不過(guò)是將矩陣不斷的代入公式,當(dāng)最后的精度不大于0.000001.輸出k和和。
第二組數(shù)據(jù):
4.心得體會(huì)
? 在此次matlab編程實(shí)現(xiàn)一般離散無(wú)記憶信道容量的迭代算法的過(guò)程中,開(kāi)始我覺(jué)得這十分的困難,經(jīng)過(guò)網(wǎng)上查閱資料和請(qǐng)教同學(xué),最后才對(duì)本次設(shè)計(jì)有了一定的理解,詳細(xì)理解了信道容量的迭代算法過(guò)程。經(jīng)過(guò)理解,發(fā)現(xiàn)這種編碼其實(shí)挺簡(jiǎn)單的,最重要的是怎樣用程序把它實(shí)現(xiàn),這對(duì)我們的編程能力也是一次考驗(yàn)。