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