


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、河南理工大學(xué)課程設(shè)計報告書電氣工程與自動化學(xué)院School of Electrical EBgineering and Automation信息論與編碼課程設(shè)計報告設(shè)計題目:統(tǒng)計信源*商、香農(nóng)編碼與費諾編碼專業(yè)班級:XXXXXXXXXXXX姓名:XXXXXXXXXXXX學(xué)號:XXXXXXXXXXXX指導(dǎo)老師:XXXXXXXXXXXX成績:時間:2015年3月31日word.目錄一、設(shè)計任務(wù)與要求2二、設(shè)計思路2三、設(shè)計流程圖5四、程序及結(jié)果7五、4得體會11六、參考文獻12附錄13一、設(shè)計任務(wù)與要求1. 統(tǒng)計信源爛要求:統(tǒng)計任意文本文件中各字符(不區(qū)分大小寫)數(shù)量,計算字 符槪率,并計算信源嫡
2、。2. 香農(nóng)編碼要求:任意輸入消息概率,利用香農(nóng)編碼方法進行編碼,并計算信 源嫡和編碼效率。3. 費諾編碼要求:任意輸入消息概率,利用費諾編碼方法進行編碼,并計算信 源嫡和編碼效率。二、設(shè)計思路1、統(tǒng)計信源爛:統(tǒng)計信源爛就是對一篇英文文章中的r種字符(包括標點符號及 空格,英文字母不區(qū)分大小寫)統(tǒng)計其出現(xiàn)的次數(shù)COlg,然后計 算其出現(xiàn)的概率”,最后由信源嬌計算公式:H (x) = 一£ p(x.) log p(xi)/r-1算出信源爛H(x) o所以整體步驟就是先統(tǒng)計出文章中總的字符數(shù), 然后統(tǒng)計每種字符的數(shù)目,直到算出所有種類的字符的個數(shù),進而 算出每種字符的槪率,再由信源*商計
3、算公式計算出信源爛。在這里 我選擇用Mat lab來計算信源爛,因為Mat lab中系統(tǒng)自帶了許多文 件操作和字符串操作函數(shù),其計算功能強大,所以計算信源爛很是 簡單。2、香農(nóng)編碼信源編碼模型: 信源編碼就是從信源符號到碼符號的一種映射/,它把信源輸出的 符號©變換成碼元序列兀。/: g T= 2、q'信源編碼器碼元S :s e 仆4信源X:"Xp“£碼符號N次擴展信源無失真編碼器凡是能載荷一定的信息量,且碼字的平均長度最短,可分離的 變長碼的碼字集合都可以稱為最佳碼。為此必須將概率犬的信息符 號編以短的碼字,概率小的符號編以長的碼字,使得平均碼字長度 最
4、短。能獲得最佳碼的編碼方法主要有:香農(nóng)(Shannon).費諾(Fano)哈夫曼(Huffman)編碼等。香農(nóng)第一定理:離散無記憶信源為 $2SqP/心J心).P0嫡H(S),其N次擴展為SN'a、 .叮p.p(叫)爛為H(S“),碼符號集為X=(xpx2,.,xr)o先對信源計進行編碼,總可 以找到一種編碼方法,構(gòu)成唯一可譯碼,使S中每個信源符號所需 的平均碼長滿足H(S) 1£ H(S)!> logr N N log r且當Ns時有UmbL = l = Hr(S)乙是平均碼長Z = V/7() ,人是 ex N log r,組匕對應(yīng)的碼字長度。香農(nóng)編碼方法:(1)
5、將信源消息符號按其出現(xiàn)的概率大小依次排列:Pl>p2>.pll(2) 確定滿足下列不等式整數(shù)碼長&為(3) 為了編成唯一可譯碼,計算第j個消息的累加概率為1-1(4) 將累加概率匕變成二進制數(shù)。(5) 取匕二進制數(shù)小數(shù)點后K.位即為該消息符號的二進制碼字。3、費諾編碼方法(D將信源消息符號按其出現(xiàn)的概率大小依次排列:pm(2)將依次排列的信源符號按概率值分為兩大組,使兩個組的概率 之和近似相同,并對各組賦予一個二進制碼元“0”和“1”。(3)將 每一大組的信源符號再分為兩組,使劃分后的兩個組的概率之和近 似相同,并對各組賦予一個二進制符號“0”和“1”。(4) 如此重復(fù),直
6、至每個組只剩下一個信源符號為止。(5) 信源符號所對應(yīng)的碼字即為費諾碼。三、設(shè)計流程圖1、統(tǒng)計信源爛<j«atlab讀入一段參計算這段文字的字符總數(shù)unm :統(tǒng)計每種字符的個數(shù)n(i)算出每種字符的概率p(i) ©&由信源爛計算公式H (x) = p(兀)log (兀)計算出信源爛n-12、香農(nóng)編碼將槪率由大到小排剤計算累加概率和概率的個數(shù)根據(jù)公式調(diào)用函數(shù)計算碼長用循環(huán)程序編碼并調(diào)整輸出格計算信源爛和編碼效率3、費諾編碼開£>輸入概率矩芹將槪率由大到小排列計算累加概率和概率的個數(shù)在兩組概率之和近似相等的條件下將概率分為兩組,各賦予0, 1兩個碼
7、元將每一大組的的槪率重復(fù)上一步操作,直到每組只剩一個概率用循環(huán)程序編碼并調(diào)整輸出格式計算信源爛和編碼效率輸出信源煩、編碼效率和碼字四、程序及結(jié)果1、統(tǒng)計信源爛的Mat lab程序function h二entropy(p)clcf id=fopen(, shuju. txt*, * r *)打開 txt 丈件ex,num=fscanf(fid, 取二進制丈件的數(shù)據(jù),并將數(shù)據(jù)存入矩陣str1 = lower (ex)%將字符串中的犬寫字母轉(zhuǎn)換成小寫字母sort_str1=sort (str1)珊按照字符的ASCI I值對字符串排序j=1;for i=1: Iength(sort_str 1)-1畀
8、出字符串的種類if strcmp(sort_str1 (i), sort_str1 (i+D) "=1%比校兩個字符串是否完全相等,相等是1,否則 0j=j+1;str2 (j)=sort_str1 (i);endstr2(j+1)=sort_str1 (i+1);endfor i = 1: Iength(str2)%length函數(shù)獲取字符串長度str_num =strf ind (sort_str1, str2(i) ;%strf ind (S1, S2):尋找 S2 是否匹配 S1,并返回 S2 的 位莊countl (i) = length(str_num);endstr2c
9、ount二coun(3:end)p二count/sum(count)sum (-p. * I og2 (p) %計算信源躺待讀取的英文:The Pressure of Graduate StudentsNow I am a post graduate student, I will graduate n ext year, so I start to find jobs recently,I fee I so much pressure, though I have good educati on, I still get reject i on from the compan i es Th
10、e pressure of graduate students are so heavy, the competit ion is so fierce that many students can' t get the ideal jobs They shouId ad just their strategiesThe pressure of graduate students i s so heav y. On the one hand, they don' t have experience, so they don' t know how to get the j
11、ob interview and miss many chances On the other hand, there are more and more students have high education, some have received higher education, some have studies abroad which make their resumes stand out Those average students don' t have advantages over the above mentioned ones.Average student
12、s need to make thei r resumes specially, so they can have the chance They can describe thei r character i st ic to fit the job, the employers wi I I see this and give you the chance Students can also make their irrternship experience stand out, because the employers pay special attention to it.The j
13、ob pressure is heavy for every graduate student, if the students take the wise strategy, they can have more chances to get the job程序運行結(jié)果:總共出現(xiàn)的字符種類:八 abcdefghi jkImnoprstuvwxy?每種字符對應(yīng)出現(xiàn)的次數(shù):20616117810334216110 20655385162158641655801133620 83204每種字符出現(xiàn)的概率:0. 16720.01300. 00890. 06330. 00810. 02680. 034
14、10. 13070. 00810.01620.05280.04300. 00650. 00410.01300.01700. 04710.05190.01300. 04460.06490.09170.02920.01620.00650. 00240.01620.0032信源爛:H(x)=4. 12502、香農(nóng)編碼程序function c=shannon(p)% p二0. 25 0. 25 0. 20 0.15 0. 10 0. 05;% shannon(p);p, index=sort (p);p=f I ipI r (p) ;%從大到小n二length(p);pa二0;%累加杈率for i=2
15、:npa (i)=pa (i-1)+p(i-1);endk=cei I (-1og2 (p) ;%碼長卄算c=cell(1,n);%生成元:碼字,是cell,跟上一行不一樣for i=1:nc(i=tmp=pa(i);for j=1:k(i)tmp=tmp * 2;if tmp>=1tmp二tmp - 1;ci) (j)= T;elseci (j)= ©endend end%p%pa%交換回原來的順序c=f I i p I r (c);c (index)=c;fpr i ntf ('信源信息蠣:n');H二sum(-p. *1 og2 (p) %計算信源躺 fp
16、rintfC 平均碼長:n*);K二sum (p. *k) 5計算平均碼長fprintfC 碼效率:n);w二H. /K$計算綢碼效率fpr intf (f 碼字:n*);c程序運行結(jié)果:p=0.25 0.25 0. 20 0. 15 0. 10 0. 05;shannon (p);信源信息嬌:H = 2.4232平均碼長:K = 2.7000編碼效率:w = 0. 8975nno1碼字:c = 'or 00 'wo' *ioi* *nor3、費諾編碼程序主程序function c二fan" (p)% p二0. 25 0. 25 0. 20 0.15 0. 1
17、0 0. 05% c=fano1(p)n=size (p, 2);if n=1c二cel I (1,1);c1 = ,;returnendp, index二sort (p) ;%按槪率排序p=f I i p I r (p);total二sum(p);喘總概率acc=0;%累積槪率flag二0;5是否到達尾部的標志for i=1:n-1newacc二acc+p(i);if abs (total-2 * newacc)>=abs(totaI - 2*acc)flag=1;break;endacc二newacc;endif "flagi=n;endspl it=i從分界點對兩邊的碼遞
18、歸做fanoc1 =fano1 (p(1 :spl it-1);c2=fano1 (p(split:n);c=cel I (1, n);%添加前綴0, 1for i=1:split-1ci=strcat CO*, c1 i);endfor i = split:nci=strcat (* 11, c2i-spl it+1);end%將順序調(diào)整回去c=f I i p I r (c);c(index)=c;子程序function =fano2(c, p)for i=1: Iength(c)%求平均碼長count (i) = length (ceI 12mat (c (i);endfpr intf (
19、*信源信息鏑:rf );H二sum(-p. * I og2 (p) %計算信源煙fprintfC 平均碼長:n")K=sum (count. *p)%H 算平均碼長fprintfC 碼效率:n*)w二H/K%計算編碼效率fprintfC* 碼字:n*)c程序運行結(jié)果:p=0.25 0.25 0. 20 0. 15 0. 10 0.05c二fano1 (p)f ano2 (c, p)0. 0500p =0.25000.25000.20000.15000. 1000WORD格式可編輯專業(yè)資料c W *0T MO* *110'*1110*1111*信源信息爛:H = 2. 4232
20、平均碼長:K = 2. 4500編碼效率:W = 0. 9891碼字:c = *00* *or mo* mio1 ,mo, 'mr五、心得體會做這次課程設(shè)計前前后后花了三天時間,之前并沒有用心想, 只是看了看網(wǎng)上的資料,看人家都是用什么方法解決的。我看的有 用C (包括C+和C#)語言的,有用Mat lab的,還有用別的什么軟 件的。由于我對Mat lab編程還比較熟悉一點,最后我還是選擇用 Mat lab來做。一開始編程,我甚至連一些常用的Mat lab函數(shù)都忘 了,沒什么想法后我在網(wǎng)上看了一些人用Mat lab編的程序,拿來仔 細研究后也慢慢著編出了自己的程序。在編程過程中,遇到了
21、各種 問題問題,有時由于一個小問題不通,我要反復(fù)琢磨半天,最后發(fā) 現(xiàn)是在一個小地方上出錯了,真是備受煎熬,但這也是編程的樂趣 所在,在這個過程中自己也學(xué)到了許多編程知識和技巧。在編程過程中,我體會到了 Mat lab功能的強大,我需要好好學(xué) 習(xí)一下,這對我以后在信號處理與仿真計算上有很犬幫助。通過這次課程設(shè)計,我對信息論與編碼技術(shù)中的一些基礎(chǔ)知識, 如信源嫡、通信系統(tǒng)模型、信道與信源編碼等知識又重新學(xué)習(xí)了一 下,感覺雖是學(xué)過的知識,但隔一段時間不看合上書自己竟然什么 也想不起來。學(xué)過的知識,覺得自己早就已經(jīng)理解了的,在實際用 來解決問題時又是無從下手,需多看人家的例子,在此基礎(chǔ)上才能-完整版學(xué)
22、習(xí)資料分享-用來解決自己的問題。我之所以自己一組,是想真學(xué)到點東西,這 過程中很累人,但這是因為自己當初沒有提早準備,還有就是自己 知識也學(xué)的不扎實造成的,于是感悟到做什么事情都要有計劃地提 早準備,不然會坐失良機,最后只能悔不當初。六、參考文獻1 曹雪虹,張宗橙.信息論與編碼(第二版)北京:清華大學(xué)出 版社,2009. 22 王薇,姚鑫鋒.從零開始學(xué)MATLAB .北京: 電子工業(yè)出版社, 2012.9附錄1、統(tǒng)計信源爛的Mat lab程序function h=entropy(p)clcf id=fopen(* shuju. txt*, * r *)打開 txt 丈件3x,mjin=fsca
23、nf(fidJ%cS inf)%讀取二進制丈件的數(shù)據(jù).并將數(shù)據(jù)存入矩陣str1 = lower(ex)%將字符串中的大寫字母轉(zhuǎn)換成小寫字母sort_str1=sort (str1)俺按照字符的ASCI I值對字符串排序j=1;for i=1: length(sort_str1)算出字符串的種類if strcmp(sort_str1 (i), sort_str1 (i+D) "=1%比較兩個字符串是否完全相等,相等是1,否則0j=j+1;str2 (j)=sort_str1 (i);endstr2(j+1)=sort_str1 (i+1);endfor i = 1: length (s
24、tr 2) $ length函數(shù)獲取字符串長度str_num =strf ind (sort_str1, str2(i) ;%strf ind (S1, S2):尋找 S2 是否匹配 S1,并返回 S2 的 位迅countl (i) = length(str_num);endstr2count二coun(3:end)p二count/sum (count)sum (-p. * I og2 (p) %計算信源炳2、香農(nóng)編碼程序function c=shannon (p)% p二0. 25 0. 25 0. 20 0.15 0. 10 0. 05;% shannon(p);p, index二sort
25、(p);p二f I i p I r (p) ; %從大到小n=length(p);pa=0;%累加槪率for i=2:npa (i)=pa (i-1)+p(i-1);endk=cei I (-1og2 (p) ;%碼長計算c=cell(1fn);%生成元胞數(shù)組,存碼字,是cell,跟上一行不一樣 for i=1:nci=tmp=pa (i);for j=1:k(i)tmp=tmp * 2;if tmp>=1tmp=tmp 一 1;clil(j)= -r;elseci (j)= O;endendend%p%pa%交換回原采的順序c=f I i p I r (c);c(in dex) =c;fpr i ntf ('信源信息爛:rf );H二sum (-p. *1 og2 (p)驚計算信源躺fprintfC 平均碼長:n*);K=sum(p. *k)%H算平均碼長fprintf('編碼效率:n9);w二H. /KN計算綢碼效率fpr intf C碼字:n'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025開學(xué)第一課專題觀后感
- 彭水2025年上半年公招擬錄用公務(wù)員人民警察公示
- 肩關(guān)節(jié)鏡圍手術(shù)期護理
- 小班健康:小嘴巴咬人行為解析與引導(dǎo)
- 電飯鍋產(chǎn)品培訓(xùn)
- 有限空間作業(yè)安全管理
- 胸外科術(shù)后并發(fā)疼痛護理
- 學(xué)生營養(yǎng)健康日
- 劉天鵬健康講座
- 小班健康活動《心情娃娃》教案設(shè)計
- 打架傷人和解協(xié)議書范本
- 2025至2030全球及中國浮式液化天然氣行業(yè)產(chǎn)業(yè)運行態(tài)勢及投資規(guī)劃深度研究報告
- 2025年湖北省中考生物、地理合卷試卷真題(含答案)
- 藥品陳列養(yǎng)護管理制度
- 智慧校園建設(shè)“十五五”發(fā)展規(guī)劃
- 招商人員筆試題目及答案
- 2025至2030年中國智能炒菜機(炒菜機器人)行業(yè)市場現(xiàn)狀調(diào)查及前景戰(zhàn)略研判報告
- 路面銑刨工入場安全教育試卷(含答案)
- 物理●湖北卷丨2024年湖北省普通高中學(xué)業(yè)水平選擇性考試物理試卷及答案
- 2024大華網(wǎng)絡(luò)攝像機使用說明書全集
- T/CNFAGS 15-2024綠色合成氨分級標準(試行)
評論
0/150
提交評論