費(fèi)諾編碼的分析與實(shí)現(xiàn)參考模板_第1頁
費(fèi)諾編碼的分析與實(shí)現(xiàn)參考模板_第2頁
費(fèi)諾編碼的分析與實(shí)現(xiàn)參考模板_第3頁
費(fèi)諾編碼的分析與實(shí)現(xiàn)參考模板_第4頁
費(fèi)諾編碼的分析與實(shí)現(xiàn)參考模板_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、吉林建筑大學(xué)電氣與電子信息工程學(xué)院設(shè)計(jì)題目: 費(fèi)諾編碼的分析與實(shí)現(xiàn) 專業(yè)班級(jí): 電子信息工程 111 學(xué)生姓名: 馬 超 學(xué) 號(hào): 10211115 指導(dǎo)教師: 呂卅 王超 設(shè)計(jì)時(shí)間: 2014.11.242014.12.5 教師評(píng)語:成績 評(píng)閱教師 日期 0 / 26第1章 概述1.1設(shè)計(jì)的作用、目的 信息論與編碼是一門理論與實(shí)踐密切結(jié)合的課程,通過理論課程學(xué)習(xí)如何計(jì)算信道容量,包括對(duì)信道的認(rèn)識(shí),以及傳輸速率的計(jì)算,計(jì)算最佳編碼,編碼效率等等。再通過課程設(shè)計(jì)加深對(duì)知識(shí)的認(rèn)識(shí),課程設(shè)計(jì)是其實(shí)踐性教學(xué)環(huán)節(jié)之一,同時(shí)也是對(duì)課堂所學(xué)理論知識(shí)的鞏固和補(bǔ)充。其主要目的是加深對(duì)理論知識(shí)的理解,掌握查閱有關(guān)

2、資料的技能,提高實(shí)踐技能,培養(yǎng)獨(dú)立分析問題、解決問題及實(shí)際應(yīng)用的能力。通過完成具體編碼算法的程序設(shè)計(jì)和調(diào)試工作,提高對(duì)MATLAB等類似軟件的認(rèn)識(shí)程度,掌握MATLAB等類似軟件的各種操作,提高編程能力,深刻理解信源編碼、信道編譯碼的基本思想和目的,掌握編碼的基本原理與編碼過程,增強(qiáng)邏輯思維能力,培養(yǎng)和提高自學(xué)能力以及綜合運(yùn)用所學(xué)理論知識(shí)去分析解決實(shí)際問題的能力,逐步熟悉開展科學(xué)實(shí)踐的程序和方法。1.2設(shè)計(jì)任務(wù)及要求 1. 理解無失真信源編碼的理論基礎(chǔ),掌握無失真信源編碼的基本方法; 2. 掌握費(fèi)諾編碼方法的基本步驟及優(yōu)缺點(diǎn); 3. 深刻理解信道編碼的基本思想與目的,理解線性分組碼的基本原理與

3、編碼 過程; 4. 能夠使用MATLAB或其他語言進(jìn)行編程,編寫的函數(shù)要有通用性。1.3設(shè)計(jì)內(nèi)容 一個(gè)有8個(gè)符號(hào)的信源X,各個(gè)符號(hào)出現(xiàn)的概率分別為: 運(yùn)用MATLAB軟件,編寫適當(dāng)?shù)某绦颍瑢?duì)以上8個(gè)信源符號(hào)進(jìn)行費(fèi)諾編碼, 得出二進(jìn)制碼字,計(jì)算平均碼長、編碼效率、冗余度,并總結(jié)費(fèi)諾編碼方法 的特點(diǎn)和應(yīng)用。 第2章 費(fèi)諾編碼的分析與實(shí)現(xiàn)2.1設(shè)計(jì)原理1.編碼原理 早期的數(shù)據(jù)壓縮來自于人們對(duì)概率的了解。當(dāng)對(duì)文字信息進(jìn)行編碼時(shí),如果出現(xiàn)概率較高的字幕賦予較短的編碼,為出現(xiàn)概率較低的字母賦予較長的編碼,平均編碼長度就能縮短不少。著名的Morse電碼就是一個(gè)范例。信息論之父C.E.Shannon曾指出,任

4、何信息都存在冗余,冗余大小與信息中每個(gè)符號(hào)出現(xiàn)概率(不確定性)有關(guān)。他所提出的無失真信源編碼定理奠定了數(shù)據(jù)壓縮的理論基礎(chǔ)。數(shù)據(jù)壓縮的目的就是要消除冗余,信息論是運(yùn)用概率論與數(shù)理統(tǒng)計(jì)的方法研究信息、信源熵、通信系統(tǒng)、數(shù)據(jù)傳輸、密碼學(xué)、數(shù)據(jù)壓縮等問題的應(yīng)用數(shù)學(xué)學(xué)科。從DVD到個(gè)人電腦,從衛(wèi)星通信到文件,在我們今天的生活中,信息幾乎在每個(gè)領(lǐng)域都扮演者重要角色。工程師克勞德·香農(nóng)于1948年奠定了信息論的基礎(chǔ),他指出了通信的極限?;谶@一理論產(chǎn)生了數(shù)據(jù)壓縮技術(shù)、糾錯(cuò)技術(shù)等各個(gè)應(yīng)用技術(shù),這些技術(shù)提高了數(shù)據(jù)傳輸和存儲(chǔ)的效率。信息論將信息的傳遞作為一種統(tǒng)計(jì)現(xiàn)象來考慮,給出了估算通信信道容量的方法。

5、信息傳輸和信息壓縮是信息論研究中的兩大領(lǐng)域。這兩個(gè)方面又由信息傳輸定理、信源信道隔離定理相互聯(lián)系。當(dāng)然,信息論的重大應(yīng)用遠(yuǎn)不止于此。DNA是一種信息存儲(chǔ)物質(zhì),正事信息論幫助人們解開了生物基因組密碼之謎。簡單地說信息論包含了生命、宇宙乃至一切。信息論對(duì)現(xiàn)代社會(huì)的影響是多方面的。首先,在理論研究方面,信息論所處的地位已遠(yuǎn)遠(yuǎn)超出了香農(nóng)當(dāng)年所界定的“通信的數(shù)學(xué)理論”的范疇,得到了不斷的擴(kuò)充和發(fā)展,出現(xiàn)了語義信息、語法信息與語用信息等研究與信息的意義有關(guān)的學(xué)科,以及面向智能研究的全信息理論。如今,信息已成為與物質(zhì)、能量并列的宇宙中的三個(gè)基本要素,世間萬物的發(fā)展變化可歸結(jié)為物質(zhì)、能量和信息的傳遞和轉(zhuǎn)化過程

6、。另一方面,在科學(xué)和技術(shù)高度發(fā)展的今天,信息的概念也被滲透到許多不同的學(xué)科和領(lǐng)域,深入到了社會(huì)生活的各個(gè)方面,成為可與相對(duì)論和量子力學(xué)并駕齊驅(qū)的新一代邊緣交叉學(xué)科的重要組成部分。特別是以信息論、控制論、和系統(tǒng)論為代表的“老三論”以及以普利高津的耗散結(jié)構(gòu)理論,哈肯的協(xié)同學(xué)和托姆的突變論或艾根的超循環(huán)理論為代表的“新三論”的出現(xiàn),標(biāo)志著一代新的邊緣交叉學(xué)科的興起。它們的形成和發(fā)展對(duì)現(xiàn)代科學(xué)的研究具有重要的方法論上的指導(dǎo)意義。編碼是信息從一種形式或格式轉(zhuǎn)換為另一種形式的過程也稱為計(jì)算機(jī)編程語言的代碼簡稱編碼。用預(yù)先規(guī)定的方法將文字、數(shù)字或其它對(duì)象編成數(shù)碼,或?qū)⑿畔?、?shù)據(jù)轉(zhuǎn)換成規(guī)定的電脈沖信號(hào)。編碼在

7、電子計(jì)算機(jī)、電視、遙控和通訊等方面廣泛使用。在計(jì)算機(jī)硬件中,編碼(coding)是指用代碼來表示各組數(shù)據(jù)資料,使其成為可利用計(jì)算機(jī)進(jìn)行處理和分析的信息。代碼是用來表示事物的記號(hào),它可以用數(shù)字、字母、特殊的符號(hào)或它們之間的組合來表示,將數(shù)據(jù)轉(zhuǎn)換為代碼或編碼字符,并能譯為原數(shù)據(jù)形式。是計(jì)算機(jī)書寫指令的過程,程序設(shè)計(jì)中的一部分。在地圖自動(dòng)制圖中,按一定規(guī)則用數(shù)字與字母表示地圖內(nèi)容的過程,通過編碼,使計(jì)算機(jī)能識(shí)別地圖的各地理要素。編碼分為信源編碼和信道編碼,其中信源編碼又分為無失真和限失真。由于這些定力都要求符號(hào)數(shù)很大,以便其值接近所規(guī)定的值,因而這些定力被稱為極限定理。一般稱無失真信源編碼定力為第一

8、極限定理;信道編碼(包括離散和連續(xù)信道)稱為第二極限定理;限失真信源編碼定力稱為第三極限定理。2.信源編碼原理 由于信源符號(hào)之間存在分布不均勻和相關(guān)性,是的信源存在冗余度,信源編碼的主要任務(wù)就是減少冗余,提高編碼效率。具體說,就是針對(duì)仙緣輸出符號(hào)序列的統(tǒng)計(jì)特性,尋找一定的方法把信源輸出符號(hào)序列變換為最短碼字序列的方法。信源編碼的基本途徑有兩個(gè):使序列中的各個(gè)符號(hào)盡可能的相互獨(dú)立,及解除相關(guān)性;使編碼中各個(gè)符號(hào)出現(xiàn)的概率盡可能地相等,即概率均勻化。信源編碼的基礎(chǔ)是信息論中的兩個(gè)編碼定理:無失真編碼定理和限失真編碼定理,前者是可逆編碼的基礎(chǔ)??赡媸侵府?dāng)信源符號(hào)轉(zhuǎn)換成代碼后,可從代碼無失真的恢復(fù)原信

9、源符號(hào)。當(dāng)已知信源符號(hào)的概率特性時(shí),可計(jì)算它的 符號(hào)熵,這邊是每個(gè)信源符號(hào)所載有的信息量。編碼定理不但證明了必定存在一種編碼方法,可使代碼的平均長度可任意接近但不低于符號(hào)熵,而且還闡明達(dá)到這木匾的途徑,就是使概率與碼長匹配。無失真編碼或可逆編碼只適用與離散信源。對(duì)于連續(xù)信源,編成代碼后就無法無失真地恢復(fù)原來的連續(xù)值,因?yàn)楹笳叩娜≈悼捎袩o限多個(gè)。此時(shí)只能根據(jù)率失真編碼定理在失真受限制的情況下進(jìn)行限失真編碼。信源編碼定理出現(xiàn)后,編碼定理趨于合理化。關(guān)于離散信源編碼,從無失真編碼定理出發(fā)。若要所編的碼是惟一可譯碼,不但要求編碼時(shí)不同的信源符號(hào)變換成不同的碼字,而且必須要求任意有限長的信源序列所對(duì)應(yīng)的

10、碼符號(hào)序列各不相同,即要求碼的任意有限長N次擴(kuò)展碼都是非奇異碼。因?yàn)橹挥腥我庥邢揲L的信源序列所對(duì)應(yīng)的碼符號(hào)序列各不相同,才能把該碼符號(hào)序列惟一地分割成一個(gè)個(gè)對(duì)應(yīng)的信源符號(hào),從而實(shí)現(xiàn)惟一的譯碼。 3.費(fèi)諾編碼原理費(fèi)諾編碼就是通過使編碼中各個(gè)句號(hào)出現(xiàn)的概率大致相等,實(shí)現(xiàn)概率均勻化,從而減少冗余度,提高編碼效率。凡是能載荷一定的信息量,且碼字的平均長度最短,可分離的變長碼的碼字集合稱為最佳變長碼。在編N進(jìn)制碼時(shí)首先將信源消息符號(hào)按其出現(xiàn)的額概率一次又小到大排列開來,并將排列好的心愿符號(hào)按概率值分N大組,使N組的概率之和近似相同,并對(duì)各組賦予一個(gè)N進(jìn)制碼元0、1.N-1。之后再針對(duì)每一個(gè)大組內(nèi)的心愿符

11、號(hào)做如上處理,即再分為概率相同的N組,賦予N進(jìn)制碼元。如此重復(fù),直到每組只剩下一個(gè)心愿符號(hào)為止。此時(shí)每個(gè)信源符號(hào)所對(duì)應(yīng)的碼字即為費(fèi)諾碼。針對(duì)同一個(gè)心愿,費(fèi)諾碼比香農(nóng)碼平均碼長小,消息出書速率大,編碼效率高。費(fèi)諾編碼是一種信源編碼,它編碼后的費(fèi)諾碼要比香農(nóng)碼的平均碼長小,消息傳輸速率大,編碼效率高。但它屬于概率匹配編碼它不是最佳的編碼方法。4.費(fèi)諾編碼特點(diǎn) 費(fèi)諾編碼是一種信源編碼,它編碼后的費(fèi)諾碼要比香農(nóng)碼的平均碼長小,消息傳輸速率大,編碼效率高。但它屬于概率匹配編碼它不是最佳的編碼方法。 費(fèi)諾編碼屬于概率匹配編碼,具有如下特點(diǎn): (1)概率大,則分解次數(shù)少;概率小則分解次數(shù)多,這符合最佳編碼原

12、則。 (2)碼字集合是唯一的。 (3)分解之后先得碼字后得碼長。2.2設(shè)計(jì)步驟1.費(fèi)諾碼編碼步驟 (1)將信源消息符號(hào)按其出現(xiàn)的概率大小依次排列:p1p2pn 。 (2)將依次排列的信源符號(hào)按概率值分為兩大組,使兩個(gè)組的概率之和近似 相同,并對(duì)各組賦予一個(gè)二進(jìn)制碼元“0”和“1”。 (3)將每一大組的信源符號(hào)再分成兩組,使劃分后的兩個(gè)組的概率之和近似 相同,并對(duì)各組賦予一個(gè)二進(jìn)制符號(hào)“0”和“1”。 (4)如此重復(fù),直至每個(gè)組只剩下一個(gè)信源符號(hào)為止。 (5)信源符號(hào)所對(duì)應(yīng)的碼子即為費(fèi)諾碼。 2.費(fèi)諾碼編碼過程如表1所示。 表1 費(fèi)諾碼編碼過程消息符號(hào)各個(gè)消息概率p(xi)第一次分組第二次分組第

13、三次分組第四次分組第五次分組二元碼字碼長x10.2500002x20.21012x30.21001003x40.111013x50.1101103x60.081011104x70.0510111105x80.0211111153.計(jì)算平均碼長、信源熵、編碼效率及冗余度。 平均碼長: 2.77 碼元/符號(hào)信源熵: 2.71 bit/符號(hào)編碼效率: 0.98冗余度: 1-0.980.02第3章 費(fèi)諾編碼的MATLAB實(shí)現(xiàn)3.1 MATLAB MATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB

14、和Simulink兩大部分。 MATLAB是matrix&laboratory兩個(gè)詞的組合,意為矩陣工廠(矩陣實(shí)驗(yàn)室)。是由美國mathworks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語言(如C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計(jì)算軟件的先進(jìn)水平。 MATLAB和Mathematica、Maple并稱為三大

15、數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。MATLAB的基本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個(gè)強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也加入了對(duì)C,F(xiàn)ORTRAN,C+,JAVA的支持。 MATLAB是一個(gè)高級(jí)的矩陣/陣列語言

16、,它包含控制語句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入和輸出和面向?qū)ο缶幊烫攸c(diǎn)。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個(gè)較大的復(fù)雜的應(yīng)用程序(M文件)后再一起運(yùn)行。新版本的MATLAB語言是基于最為流行的C+語言基礎(chǔ)上的,因此語法特征與C+語言極為相似,而且更加簡單,更加符合科技人員對(duì)數(shù)學(xué)表達(dá)式的書寫格式。使之更利于非計(jì)算機(jī)專業(yè)的科技人員使用。而且這種語言可移植性好、可拓展性極強(qiáng),這也是MATLAB能夠深入到科學(xué)研究及工程計(jì)算各個(gè)領(lǐng)域的重要原因。優(yōu)勢(shì)特點(diǎn):高效的數(shù)值計(jì)算及符號(hào)計(jì)算功能,使用戶從繁雜的數(shù)學(xué)運(yùn)算分析中解脫;具有完備的圖形處理功能,實(shí)現(xiàn)計(jì)算結(jié)果和編程的可視化;友好的用戶界面及

17、接近數(shù)學(xué)表達(dá)式的自然化語言,使學(xué)者易于學(xué)習(xí)和掌握;功能豐富的應(yīng)用工具箱,為用戶提供了大量方便實(shí)用的處理工具。 MATLAB是美一款商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級(jí)技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,代表了當(dāng)今國際科學(xué)計(jì)算軟件的先進(jìn)水平。MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用

18、戶界面、連  MATLAB開發(fā)工作界面接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。MATLAB具有用法簡單、靈活、程式結(jié)構(gòu)性強(qiáng)、延展性好等優(yōu)點(diǎn),已經(jīng)逐漸成為科技計(jì)算、視圖交互系統(tǒng)和程序中的首選語言工具。特別是它在線性代數(shù)、數(shù)理統(tǒng)計(jì)、自動(dòng)控制、數(shù)字信號(hào)處理、動(dòng)態(tài)系統(tǒng)仿真等方面表現(xiàn)突出,已經(jīng)成為科研工作人員和工程技術(shù)人員進(jìn)行科學(xué)研究和生產(chǎn)實(shí)踐的有利武器。 MATLAB具有以下六個(gè)特點(diǎn):(1)編程效率高   用MATLAB編寫程序猶如在演算紙上排列出公式與求解問題,MATLAB語

19、言也可通俗地稱為演算紙式的科學(xué)算法語言。由于它編寫簡單,所以編程效率高,易學(xué)易懂。  (2)用戶使用方便   MATLAB語言把編輯、編譯、連接和執(zhí)行融為一體,其調(diào)試程序手段豐富,調(diào)試速度快 ,需要學(xué)習(xí)時(shí)間少。它能在同一畫面上進(jìn)行靈活操作快速排除輸入程序中的書寫錯(cuò)誤、語法 錯(cuò)誤以至語意錯(cuò)誤,從而加快了用戶編寫、修改和調(diào)試程序的速度,可以說在編程和調(diào)試過程中它是一種比VB還要簡單的語言。 (3)擴(kuò)充能力強(qiáng)   高版本的MATLAB語言有豐富的庫函數(shù),在進(jìn)行復(fù)雜的數(shù)學(xué)運(yùn)算時(shí)可以直接調(diào)用,而且MATLAB的庫函

20、數(shù)同用戶文件在形成上一樣,所以用戶文件也可作為MATLAB的庫函數(shù)來調(diào)用。因而,用戶可以根據(jù)自己的需要方便地建立和擴(kuò)充新的庫函數(shù),以便提高M(jìn)ATLAB使用效率和擴(kuò)充它的功能。 (4)語句簡單,內(nèi)涵豐富    MATLAB語言中最基本最重要的成分是函數(shù),其一般形式為(a,6,c)= fun(d,e ,f,),即一個(gè)函數(shù)由函數(shù)名,輸入變量d,e,f,和輸出變量a,b,c .組成,同一函數(shù)名F,不同數(shù)目的輸入變量(包括無輸入變量)及不同數(shù)目的輸出變量,代表著不同的含義。這不僅使MATLAB的庫函數(shù)功能更豐富,而大大減少了需要的磁盤

21、空間,使MATLAB編寫的M文件簡單、短小而高效。  (5)高效方便的矩陣和數(shù)組運(yùn)算   MATLAB語言像Basic、Fortran和C語言一樣規(guī)定了矩陣的一系列運(yùn)算符,它不需定義數(shù)組的維數(shù),并給出矩陣函數(shù)、特殊矩陣專門的庫函數(shù),使之在求解諸如信號(hào)處理、建模、系統(tǒng)識(shí)別、控制、優(yōu)化等領(lǐng)域的問題時(shí),顯得大為簡捷、高效、方便,這是其它高級(jí)語言所不 能比擬的。 (6)方便的繪圖功能   MATLAB受到控制界廣泛接受的一個(gè)重要原因是因?yàn)樗峁┝朔奖愕睦L圖功能。MATLAB的繪圖是十分方便的,它有一系列繪圖函數(shù)(命令),使

22、用時(shí)只需調(diào)用不同的 繪圖函數(shù)(命令),在圖上標(biāo)出圖題、XY軸標(biāo)注,格繪制也只需調(diào)用相應(yīng)的命令,簡單易行。另外,在調(diào)用繪圖函數(shù)時(shí)調(diào)整自變量可繪出不變顏色的點(diǎn)、線、復(fù)線或多重線。例圖如圖1所示。圖1 matlab畫圖實(shí)例3.2 MATLAB編程1.M文件的建立用MATLAB語言編寫的程序,稱為M文件。M文件可以根據(jù)調(diào)用方式的不同分為兩類:命令文件(Script File)和函數(shù)文件(Function File)。MATLAB編程時(shí)首先建立兩個(gè)M文件,M文件存放于MATLAB默認(rèn)文件夾中,供主函數(shù)調(diào)用,特別注意的是,M文件必須存放在軟件默認(rèn)文件夾,否則主程序會(huì)無法調(diào)用,而導(dǎo)致程序運(yùn)行不成功

23、。M文件f1、f2的建立界面分別如圖2、3所示。圖2 f1.m文件圖3 f2.m文件2.主程序建立M函數(shù)文件是一個(gè)特殊的M文件,其常見格式如下:funcdon 返問變量列表包括函數(shù)名(輸入變量列表)注釋說明語句段函數(shù)體語。需要說明的是,這里輸入變量的個(gè)數(shù)以及輸出變量的個(gè)數(shù)是由MATLAB本身提供的兩個(gè)保留變量nargin和nargout來給出的,它們分別是Number of function input arguments和Number of function output arguments的縮寫形式。

24、輸入變量要用逗號(hào)隔開,輸出變量多于1個(gè)時(shí),要用方括號(hào)括起來。用戶可以借助于help命令顯示其中的注釋說明語句段。通過這樣的方法就可以建立函數(shù)文件或者稱M函數(shù),其調(diào)用方法與一放的MATLAB函數(shù)的調(diào)用方法相同。 函數(shù)文件相當(dāng)于對(duì)MATLAB進(jìn)行了二次開發(fā)。其作用與其他高級(jí)語言子函數(shù)的作用基 本相同,都是為了實(shí)現(xiàn)特定目的而由用戶自己編寫的子函數(shù)。需要說明的是,調(diào)用函數(shù)時(shí)所用的輸入輸出變量名并不要求與編寫函數(shù)文件時(shí)所用的輸入輸出變量名相同。打開Command Window并在其中輸入主程序,主程序輸入過程如圖4所示。圖4 程序輸入界面3.3 運(yùn)行結(jié)果及分析1.程序運(yùn)行界面如圖5、

25、圖6所示。圖5 程序運(yùn)行界面圖6 符號(hào)個(gè)數(shù)輸入界面2.符號(hào)概率的輸入 需要說明的是,輸入8個(gè)符號(hào)概率的時(shí)候要按從大到小的順序輸入,否則程序無法運(yùn)行,符號(hào)概率輸入界面如圖7所示。圖7 符號(hào)概率輸入界面3.程序計(jì)算所得的碼字如圖8所示。 圖8 程序計(jì)算所得的碼字4.程序計(jì)算的平均碼長、信源熵、編碼效率及冗余度如圖9所示。 圖9 程序計(jì)算結(jié)果第4章 總結(jié)通過這次課程設(shè)計(jì),我更深入的了解了費(fèi)諾編碼的構(gòu)造原理。費(fèi)諾編碼的重點(diǎn)在于分組,然后在分組的基礎(chǔ)上編碼,由編碼的原理可以看出,費(fèi)諾編碼應(yīng)該用遞歸的辦法,遞歸是比較難的知識(shí)點(diǎn),但是是比較實(shí)用的知識(shí)。費(fèi)諾編碼首先是把消息符號(hào)按概率從大到小的順序進(jìn)行排序,然

26、后再按照每組概率和近似相等的辦法分成兩組,然后依次給組分配碼字,然后繼續(xù)對(duì)各個(gè)組進(jìn)行分組,直到不能再分為止。費(fèi)諾編碼方法得到的碼子不唯一,費(fèi)諾碼比較適合于對(duì)分組概率相等或相近的信源編碼,費(fèi)諾碼也可以編M進(jìn)制碼,但M越大,信源的符號(hào)數(shù)越多,可能的編碼方式就越多,編碼過程就越復(fù)雜,有時(shí)短碼未必能得到充分利用。一般情況下,當(dāng)信源符號(hào)個(gè)數(shù)越多,編碼效率就越低,信源符號(hào)相等或越接近,編碼效率也就越高。費(fèi)諾碼對(duì)信源的統(tǒng)計(jì)特性沒有特殊要求,編碼效率比較高,對(duì)編碼設(shè)備的要求也比較簡單,因此綜合性能優(yōu)于香農(nóng)碼和哈弗曼碼。費(fèi)諾編碼在具體實(shí)用時(shí),設(shè)備較復(fù)雜。在編碼器中需要增加緩沖寄存器,因?yàn)槊總€(gè)信源符號(hào)所對(duì)應(yīng)的碼符

27、號(hào)長度不一,負(fù)責(zé)會(huì)造成輸入和輸出不能保持平衡。 通過本次課程設(shè)計(jì),我進(jìn)一步的對(duì)費(fèi)諾編碼有了一個(gè)深刻的認(rèn)識(shí),對(duì)于信息論的認(rèn)識(shí)也進(jìn)入了一個(gè)新的臺(tái)階。課程設(shè)計(jì)過程中,通過編程,我的程序編寫能力有了一定的提高,尤其使我對(duì)字符串、排序、遞歸算法等有了更深的了解。同時(shí),編程的過程中也使我認(rèn)識(shí)到了許多自己編程中的不足,對(duì)函數(shù)的參數(shù)傳遞、數(shù)組指針、指針的傳遞等沒有很好的掌握。在學(xué)習(xí)如何將理論知識(shí)傳換成實(shí)際應(yīng)用的同時(shí)。我也對(duì)調(diào)試技巧有了更好的掌握,分析問題的能力也有很大提高。本次課程設(shè)計(jì)進(jìn)一步使用了MATLAB這個(gè)軟件工具,也讓我更加熟悉了在MATLAB中的編程的語法和結(jié)構(gòu)。認(rèn)識(shí)到了軟件工具在通信科研仿真方面的

28、重要作用和方便性。在設(shè)計(jì)的過程中,我也體會(huì)到學(xué)習(xí)任何知識(shí),僅從理論上去求知,而不去實(shí)踐、探索是不夠的。經(jīng)過本次實(shí)驗(yàn),充分學(xué)習(xí)了費(fèi)諾編碼理論及其重點(diǎn)內(nèi)容,掌握了費(fèi)諾編碼原理的同時(shí)也鍛煉了編程水平,為以后的學(xué)習(xí)中出現(xiàn)的可能問題做好了準(zhǔn)備,鍛煉了自己的動(dòng)手能力和設(shè)計(jì)能力,掌握了一種科技工具,豐富了自己的學(xué)習(xí)生活。通過課程設(shè)計(jì)我們可以學(xué)習(xí)到在書本上學(xué)不到的知識(shí),可以了解在課堂上理解不了的概念,課程設(shè)計(jì)是一個(gè)學(xué)者從理論走向?qū)嵺`必不可少的過程,所以我覺的各位老師應(yīng)該多給我們這樣的機(jī)會(huì),讓我們真正的可以從書本過渡到實(shí)踐,讓我們可以真正的成為一個(gè)可以為國家作出杰出貢獻(xiàn)的棟梁之才。通過對(duì)信息論的學(xué)習(xí),我們發(fā)現(xiàn)信

29、息論其實(shí)是門理論性很強(qiáng)的學(xué)科,它涉及到眾多學(xué)科。對(duì)于整個(gè)信息論的理論體系的認(rèn)識(shí)也有了一個(gè)清晰的思路:首先介紹到的是信息的定義及其本質(zhì),再而學(xué)習(xí)到了各類信源的熵,信道及信道容量,主要研究的是離散信源和連續(xù)信源。最后是無失真信源編碼,其中包含等長信源編碼和變長信源編碼;主要研究的變長信源編碼。這就差不多構(gòu)成信息論的整個(gè)基本理論結(jié)構(gòu)。在此我也要感謝萬老師的悉心教導(dǎo),使 我更好的掌握了信息論的理論基礎(chǔ),為以后在通信領(lǐng)域以及其他方面的研究都奠定了堅(jiān)實(shí)的基礎(chǔ)。信息論發(fā)展到今天雖然已經(jīng)做到比較全面,但仍舊存在一些不足,需要我們做更多的探討,所以我會(huì)更加努力的學(xué)習(xí),培養(yǎng)敢于創(chuàng)新,敢于挑戰(zhàn),為以后的生活和工作做

30、好準(zhǔn)備!在整個(gè)設(shè)計(jì)過程中我懂得了許多東西,在查找的過程中我們也知道了許多原來不知道的東西,對(duì)于源代碼的修改以及成功利用也樹立了對(duì)知識(shí)應(yīng)用的信心,相信會(huì)對(duì)今后的學(xué)習(xí)工作和生活有非常大的幫助,并且提高了自己的動(dòng)手實(shí)踐操作能力,使自己充分體會(huì)到了在實(shí)驗(yàn)過程中的成功喜悅。在過程中所學(xué)到的東西是這次課程設(shè)計(jì)的最大收獲和財(cái)富,使我終身受益。 這次課程設(shè)計(jì)的成功離不開老師們的指導(dǎo)和幫助,有不懂得問題向老師請(qǐng)教 的時(shí)候老師總是很細(xì)心認(rèn)真的給我講解,并介紹給我很多學(xué)習(xí)方法,給我介紹了很多學(xué)習(xí)資料,老師對(duì)我大力的支持,讓我堅(jiān)定了做好設(shè)計(jì)的決心和信心。在課程設(shè)計(jì)的過程中,老師對(duì)我們的嚴(yán)格要求,也讓我感受到老師對(duì)知識(shí)

31、的嚴(yán)謹(jǐn)態(tài)度,使我肅然起敬。在以后的日子里,我會(huì)學(xué)習(xí)老師們的精神和做事方法,努力提高自己,積累知識(shí),不枉費(fèi)老師們的悉心教導(dǎo)。附錄 本次設(shè)計(jì)的完整程序%函數(shù)f1存放于f1.mfunction x=f1(i,j,p,r)global x;x=char(x);if(j<=i)return;elseq=0;for t=i:j %對(duì)于區(qū)間i,j自上而下求累加概率值q=p(t)+q;y(t)=q; endfor t=i:j%把所有自上而下的累加概率值與該區(qū)間總概率值減該累加概率值之差取絕對(duì)值存在一數(shù)組v(t)=abs(y(t)-(q-y(t); endfor t=i:jif(v(t)=min(v) %

32、求該數(shù)組中最小的一個(gè)值來確定分界點(diǎn)位置for k=i:t %賦值碼字x(k,r)='0'endfor k=(t+1):jx(k,r)='1'endd=t;f1(i,d,p,r+1); %遞歸調(diào)用及相互調(diào)用f2(d+1,j,p,r+1);f1(d+1,j,p,r+1);f2(i,d,p,r+1);elseendend endreturn;%函數(shù)f2存放于f2.mfunction x=f2(i,j,p,r)global x;x=char(x);if(j<=i)return;elseq=0;for t=i:j %對(duì)于區(qū)間i,j自上而下求累加概率值q=p(t)+q

33、;y(t-i+1)=q; endfor t=1:j-(i-1)%把所有自上而下的累加概率值與該區(qū)間總概率值減該累加概率值之差取絕對(duì)值存在一數(shù)組v(t)=abs(y(t)-(q-y(t); endfor t=1:j-(i-1)if(v(t)=min(v) %求該數(shù)組中最小的一個(gè)值來確定分界點(diǎn)位置d=t+i-1;for k=i:d %賦值碼字x(k,r)='0'endfor k=(d+1):jx(k,r)='1'end f2(d+1,j,p,r+1);%遞歸調(diào)用及相互調(diào)用f1(i,d,p,r+1);f2(i,d,p,r+1);f1(d+1,j,p,r+1);elseendend endreturn;%主程序clc;clear all;fprintf('費(fèi)諾編碼程序n '

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論