璀璨人生57
發(fā)布時(shí)間:2017-01-14 來源: 人生感悟 點(diǎn)擊:
璀璨人生57篇一:北郵信息論附加題
信息論附加題(2)
一、 實(shí)驗(yàn)?zāi)康募耙?/p>
選擇一定長度的英文文本,去除標(biāo)點(diǎn)符號,保留空格,不區(qū)分大小寫。 要求:
(1) 不考慮符號間的依賴關(guān)系,統(tǒng)計(jì)每個(gè)符號出現(xiàn)的頻率,計(jì)算獨(dú)立信源熵H(X)。
(2) 考慮每個(gè)符號與前一個(gè)符號的依賴關(guān)系,計(jì)算一階馬氏源熵H(X2|X1)。
(3) 比較H(X)和H(X2|X1),對結(jié)果進(jìn)行討論。
(4) 把仿真結(jié)果與《信息論基礎(chǔ)》57 頁的結(jié)果進(jìn)行比較,并進(jìn)行討論。
二、 實(shí)驗(yàn)步驟
1. 導(dǎo)入一段英文樣本文件(《我的璀璨人生》,文本見附件;
2. 統(tǒng)計(jì)這段文本中英文字母(不區(qū)分大小寫)和空格出現(xiàn)的個(gè)數(shù),以及所有字符的個(gè)數(shù),進(jìn)而得到各個(gè)字母出現(xiàn)的概率p(x);
3. 利用公式:H(X)=-Σp(x)log p(x) ,計(jì)算樣本的熵H(X);
4. 統(tǒng)計(jì)文本中相鄰兩個(gè)字符出現(xiàn)的概率p(xy),通過計(jì)算邊緣概率分布可得p(x),然后利用公式p(y|x)=p(xy)/p(x)條件分布概率p(y|x);
5. 利用公式:
計(jì)算得到樣本的一階馬氏源熵
三、 實(shí)驗(yàn)結(jié)果及討論
(一) 實(shí)驗(yàn)結(jié)果:
獨(dú)立信源熵:H1=4.0483比特/符號
一階馬氏源熵:H2=3.3348比特/符號
(二) 討論:
1.比較H(X)和H(X2|X1),對結(jié)果進(jìn)行討論
(1)考慮到英文不同字母和空格的實(shí)際出現(xiàn)概率后,英文信源的信息熵H1(X)要比把字母和空格視為等概率出現(xiàn)時(shí)的信息熵要小一些。也即在考慮到英文字母和空格的實(shí)際出現(xiàn)概率后,英文信源的平均不確定性,比把字母和空格視為等概率出現(xiàn)時(shí)英文信源的平均不確定性小一些。
(2)對比H(X)和H(X2|X1),可以看到,在考慮到前后兩個(gè)字符間的依賴關(guān)系即將英文信源視為一階馬氏源后,信源熵進(jìn)一步減小,即英文信源的平均不確定性進(jìn)一步減小了。
2.把仿真結(jié)果與《信息論基礎(chǔ)》57 頁的結(jié)果進(jìn)行比較,并進(jìn)行討論。
課本上的H1=4.03比特/符號,H2=3.32比特/
符號,此次實(shí)驗(yàn)進(jìn)行計(jì)
算的結(jié)果為H1=4.0483比特/符號,H2=3.3348比特/符號,均十分接近書本上的結(jié)果,只是稍微略大一些。原因是使用的樣本文件中文本字符個(gè)數(shù)有限,統(tǒng)計(jì)的概率并未達(dá)到理想的效果。此外,由于在實(shí)際處理中,我將各個(gè)標(biāo)點(diǎn)符號和回車符號都替換成了空格鍵,也對結(jié)果造成了一定的影響。
四、 MATLAB源代碼
fid=fopen('f:\text.txt','r');
text1=fscanf(fid,'%c');%讀出文件
text=strrep(text1,char(0),char(32));
% for i=0:31
% text=strrep(text,char(i),char(32));
% end
for i=33:64
text=strrep(text,char(i),char(32));
end
for i=91:96
text=strrep(text,char(i),char(32));
end
for i=123:127
text=strrep(text,char(i),char(32));
end
%%%%%%%%%%%%%%以上為對文本進(jìn)行優(yōu)化處理%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%計(jì)算獨(dú)立信源熵?%%%%%%%%%%%%%%
str=strrep(text1,b,c);
M=size(text);
row=M(1,1);
line=M(1,2);
N=zeros(1,27);%存儲每個(gè)符號出現(xiàn)的次數(shù)
for i=1:row
for j=1:line
if double(text(i,j))>96&&double(text(i,j))<=122
N(1,double(text(i,j))-96)=N(1,double(text(i,j))-96)+1; elseif double(text(i,j))>64&&double(text(i,j))<=90
N(1,double(text(i,j))-64)=N(1,double(text(i,j))-64)+1; elseif double(text(i,j))==32
N(1,27)=N(1,27)+1;
end
end
end
P=zeros(1,27);%存儲所有符號的概率
Log=zeros(1,27);
total=sum(N,2);%存儲、計(jì)算所有的有效字符
for i=1:27
P(1,i)=N(1,i)/total(1,1);%統(tǒng)計(jì)所有的字符的概率
Log(1,i)=P(1,i)*log2(1/P(1,i));
end
H=sum(Log,2)
%%%%%%%%%計(jì)算一階馬氏源熵%%%%%%%%%%%%%%%
J=zeros(27,27);%統(tǒng)計(jì)聯(lián)合個(gè)數(shù)
for i=1:row
for j=2:line
if double(text(i,j))>96&&double(text(i,j))<=122
if double(text(i,j-1))>96&&double(text(i,j-1))<=122
J(double(text(i,j-1))-96,double(text(i,j)-96))=J(double(text(i,j-1))-96,double(text(i,j)-96))+1;
elseif double(text(i,j-1))>64&&double(text(i,j-1))<=90
J(double(text(i,j-1))-64,double(text(i,j)-96))=J(double(text(i,j-1))-64,double(text(i,j)-96))+1;
elseif double(text(i,j-1))==32
J(27,double(text(i,j)-96))=J(27,double(text(i,j)-96))+1;
end
elseif double(text(i,j))>64&&double(text(i,j))<=90
if double(text(i,j-1))>96&&double(text(i,j-1))<=122
J(double(text(i,j-1))-96,double(text(i,j)-64))=J(double(text(i,j-1))-96,double(text(i,j)-64))+1;
elseif double(text(i,j-1))>64&&double(text(i,j-1))<=90
J(double(text(i,j-1))-64,double(text(i,j)-64))=J(double(text(i,j-1))-(轉(zhuǎn) 載 于:www.huhawan.com 蒲 公英文 摘:璀璨人生57)64,double(text(i,j)-64))+1;
elseif double(text(i,j-1))==32
J(27,double(text(i,j)-64))=J(27,double(text(i,j)-64))+1;
end
elseif double(text(i,j))==32||double(text(i,j))==13
if double(text(i,j-1))>96&&double(text(i,j-1))<=122
J(double(text(i,j-1))-96,27)=J(double(text(i,j-1))-96,27)+1; elseif double(text(i,j-1))>64&&double(text(i,j-1))<=90
J(double(text(i,j-1))-64,27)=J(double(text(i,j-1))-64,27)+1; elseif double(text(i,j-1))==32
J(27,27)=J(27,27)+1;
end
end
end
end
xsum=sum(J,2);
t=sum(xsum);
JP=zeros(27,27);%聯(lián)合概率密度
P2=zeros(27,27);%條件概率分布
for i=1:27
for j=1:27
JP(i,j)=J(i,j)/t;
P2(i,j)=JP(i,j)/P(1,i);
end
end
%計(jì)算H(Y|x)
H_Y_x=zeros(27,1);
for i=1:27
for j=1:27
if(P2(i,j)~=0)
H_Y_x(i,1)=H_Y_x(i,1)+P2(i,j)*log2(1/P2(i,j));
end
end
end
%計(jì)算H(X2|X1
H2=P*H_Y_x
五、 實(shí)驗(yàn)總結(jié)和心得體會
通過本次MATLAB仿真實(shí)驗(yàn),我學(xué)會了對一段文本信源進(jìn)行信源熵和一階馬氏源熵的計(jì)算,可見,當(dāng)考慮到文本字符的依賴性時(shí),可以大大縮小信源熵值,在實(shí)際應(yīng)用中即可通過這種方法,壓縮傳輸文字,很大地提高傳輸和存儲英文消息的效率。
由于之前并未使用過MATLAB進(jìn)行編程和仿真,對MATLAB中的一些函數(shù)不夠了解,所有在此次作業(yè)的代碼中,很大程度上借鑒了C++中的語言風(fēng)格和思想,使得代碼看上去有些臃腫繁復(fù)。若能熟悉使用一些矩陣運(yùn)算的函數(shù),代碼能夠變得更加簡練。
璀璨人生57篇二:年金險(xiǎn)比較
年金險(xiǎn)比較
1
2
3
4
5
璀璨人生57篇三:熱播電視連續(xù)劇系列匯編
相關(guān)熱詞搜索:璀璨 人生 璀璨人生57大結(jié)局預(yù)告 璀璨人生57全集
熱點(diǎn)文章閱讀