費(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頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

3、進(jìn)展編程,編寫的函數(shù)要有通用性。1.3設(shè)計(jì)內(nèi)容 一個有8個符號的信源*,各個符號出現(xiàn)的概率分別為: 運(yùn)用MATLAB軟件,編寫適當(dāng)?shù)某绦?,對以?個信源符號進(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ù)壓縮來自于人們對概率的了解。當(dāng)對文字信息進(jìn)展編碼時,如果出現(xiàn)概率較高的字幕賦予較短的編碼,為出現(xiàn)概率較低的字母賦予較長的編碼,平均編碼長度就能縮短不少。著名的Morse電碼就是一個*例。信息論之父C.E.Shannon曾指出,任何信息都存在冗余,冗余大小與信息中每個符號出現(xiàn)概率不

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

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

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

7、用代碼來表示各組數(shù)據(jù)資料,使其成為可利用計(jì)算機(jī)進(jìn)展處理和分析的信息。代碼是用來表示事物的記號,它可以用數(shù)字、字母、特殊的符號或它們之間的組合來表示,將數(shù)據(jù)轉(zhuǎn)換為代碼或編碼字符,并能譯為原數(shù)據(jù)形式。是計(jì)算機(jī)書寫指令的過程,程序設(shè)計(jì)中的一局部。在地圖自動制圖中,按一定規(guī)則用數(shù)字與字母表示地圖內(nèi)容的過程,通過編碼,使計(jì)算機(jī)能識別地圖的各地理要素。編碼分為信源編碼和信道編碼,其*源編碼又分為無失真和限失真。由于這些定力都要求符號數(shù)很大,以便其值接近所規(guī)定的值,因而這些定力被稱為極限定理。一般稱無失真信源編碼定力為第一極限定理;信道編碼包括離散和連續(xù)信道稱為第二極限定理;限失真信源編碼定力稱為第三極限定

8、理。2.信源編碼原理 由于信源符號之間存在分布不均勻和相關(guān)性,是的信源存在冗余度,信源編碼的主要任務(wù)就是減少冗余,提高編碼效率。具體說,就是針對仙緣輸出符號序列的統(tǒng)計(jì)特性,尋找一定的方法把信源輸出符號序列變換為最短碼字序列的方法。信源編碼的根本途徑有兩個:使序列中的各個符號盡可能的相互獨(dú)立,及解除相關(guān)性;使編碼中各個符號出現(xiàn)的概率盡可能地相等,即概率均勻化。信源編碼的根底是信息論中的兩個編碼定理:無失真編碼定理和限失真編碼定理,前者是可逆編碼的根底??赡媸侵府?dāng)信源符號轉(zhuǎn)換成代碼后,可從代碼無失真的恢復(fù)原信源符號。當(dāng)信源符號的概率特性時,可計(jì)算它的 符號熵,這邊是每個信源符號所載有的信息量。編碼

9、定理不但證明了必定存在一種編碼方法,可使代碼的平均長度可任意接近但不低于符號熵,而且還說明到達(dá)這木匾的途徑,就是使概率與碼長匹配。無失真編碼或可逆編碼只適用與離散信源。對于連續(xù)信源,編成代碼后就無法無失真地恢復(fù)原來的連續(xù)值,因?yàn)楹笳叩娜≈悼捎袩o限多個。此時只能根據(jù)率失真編碼定理在失真受限制的情況下進(jìn)展限失真編碼。信源編碼定理出現(xiàn)后,編碼定理趨于合理化。關(guān)于離散信源編碼,從無失真編碼定理出發(fā)。假設(shè)要所編的碼是惟一可譯碼,不但要求編碼時不同的信源符號變換成不同的碼字,而且必須要求任意有限長的信源序列所對應(yīng)的碼符號序列各不一樣,即要求碼的任意有限長N次擴(kuò)展碼都是非奇異碼。因?yàn)橹挥腥我庥邢揲L的信源序列

10、所對應(yīng)的碼符號序列各不一樣,才能把該碼符號序列惟一地分割成一個個對應(yīng)的信源符號,從而實(shí)現(xiàn)惟一的譯碼。 3.費(fèi)諾編碼原理費(fèi)諾編碼就是通過使編碼中各個句號出現(xiàn)的概率大致相等,實(shí)現(xiàn)概率均勻化,從而減少冗余度,提高編碼效率。但凡能載荷一定的信息量,且碼字的平均長度最短,可別離的變長碼的碼字集合稱為最正確變長碼。在編N進(jìn)制碼時首先將信源消息符號按其出現(xiàn)的額概率一次又小到大排列開來,并將排列好的心愿符號按概率值分N大組,使N組的概率之和近似一樣,并對各組賦予一個N進(jìn)制碼元0、1.N-1。之后再針對每一個大組內(nèi)的心愿符號做如上處理,即再分為概率一樣的N組,賦予N進(jìn)制碼元。如此重復(fù),直到每組只剩下一個心愿符號

11、為止。此時每個信源符號所對應(yīng)的碼字即為費(fèi)諾碼。針對同一個心愿,費(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ù)多,這符合最正確編碼原則。 2碼字集合是唯一的。 3分解之后先得碼字后得碼長。2.2設(shè)計(jì)步驟1.費(fèi)諾碼編碼步驟

12、1將信源消息符號按其出現(xiàn)的概率大小依次排列:p1p2pn 。2將依次排列的信源符號按概率值分為兩大組,使兩個組的概率之和近似 一樣,并對各組賦予一個二進(jìn)制碼元0和1。3將每一大組的信源符號再分成兩組,使劃分后的兩個組的概率之和近似 一樣,并對各組賦予一個二進(jìn)制符號0和1。4如此重復(fù),直至每個組只剩下一個信源符號為止。5信源符號所對應(yīng)的碼子即為費(fèi)諾碼。 2.費(fèi)諾碼編碼過程如表1所示。表1 費(fèi)諾碼編碼過程消息符號各個消息概率p(*i)第一次分組第二次分組第三次分組第四次分組第五次分組二元碼字碼長*10.2500002*20.21012*30.21001003*40.111013*50.110110

13、3*60.081011104*70.0510111105*80.0211111153.計(jì)算平均碼長、信源熵、編碼效率及冗余度。平均碼長: 2.77 碼元/符號信源熵:2.71 bit/符號編碼效率: 0.98冗余度:1-0.980.02費(fèi)諾編碼的MATLAB實(shí)現(xiàn)3.1 MATLABMATLAB是美國MathWorks公司出品的商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大局部。MATLAB是matri*&laboratory兩個詞的組合,意為矩陣工廠矩陣實(shí)驗(yàn)室。是由美國mathworks公司發(fā)布的主要面對科

14、學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個易于使用的視窗環(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并稱為三大數(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è)

15、計(jì)、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計(jì)與分析等領(lǐng)域。MATLAB的根本數(shù)據(jù)單位是矩陣,它的指令表達(dá)式與數(shù)學(xué)、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,F(xiàn)ORTRAN等語言完成一樣的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點(diǎn),使MATLAB成為一個強(qiáng)大的數(shù)學(xué)軟件。在新的版本中也參加了對C,F(xiàn)ORTRAN,C+,JAVA的支持。MATLAB是一個高級的矩陣/陣列語言,它包含控制語句、函數(shù)、數(shù)據(jù)構(gòu)造、輸入和輸出和面向?qū)ο缶幊烫攸c(diǎn)。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個較大的復(fù)雜的應(yīng)用程序M文件后再一起運(yùn)行。新版本的MAT

16、LAB語言是基于最為流行的C+語言根底上的,因此語法特征與C+語言極為相似,而且更加簡單,更加符合科技人員對數(shù)學(xué)表達(dá)式的書寫格式。使之更利于非計(jì)算機(jī)專業(yè)的科技人員使用。而且這種語言可移植性好、可拓展性極強(qiáng),這也是MATLAB能夠深入到科學(xué)研究及工程計(jì)算各個領(lǐng)域的重要原因。優(yōu)勢特點(diǎn):高效的數(shù)值計(jì)算及符號計(jì)算功能,使用戶從繁雜的數(shù)學(xué)運(yùn)算分析中解脫;具有完備的圖形處理功能,實(shí)現(xiàn)計(jì)算結(jié)果和編程的可視化;友好的用戶界面及接近數(shù)學(xué)表達(dá)式的自然化語言,使學(xué)者易于學(xué)習(xí)和掌握;功能豐富的應(yīng)用工具箱,為用戶提供了大量方便實(shí)用的處理工具。 MATLAB是美一款商業(yè)數(shù)學(xué)軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值

17、計(jì)算的高級技術(shù)計(jì)算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大局部。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個易于使用的視窗環(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)立用戶界面、連MATLAB開發(fā)工作界面接其他編程語言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號處理與通訊、圖像處理、信號檢測、金融建模設(shè)計(jì)與分析等領(lǐng)域。MATLAB具有用法簡單、靈活、程式

18、構(gòu)造性強(qiáng)、延展性好等優(yōu)點(diǎn),已經(jīng)逐漸成為科技計(jì)算、視圖交互系統(tǒng)和程序中的首選語言工具。特別是它在線性代數(shù)、數(shù)理統(tǒng)計(jì)、自動控制、數(shù)字信號處理、動態(tài)系統(tǒng)仿真等方面表現(xiàn)突出,已經(jīng)成為科研工作人員和工程技術(shù)人員進(jìn)展科學(xué)研究和生產(chǎn)實(shí)踐的有利武器。MATLAB具有以下六個特點(diǎn):1編程效率高 用MATLAB編寫程序猶如在演算紙上排列出公式與求解問題,MATLAB語言也可通俗地稱為演算紙式的科學(xué)算法語言。由于它編寫簡單,所以編程效率高,易學(xué)易懂。2用戶使用方便 MATLAB語言把編輯、編譯、連接和執(zhí)行融為一體,其調(diào)試程序手段豐富,調(diào)試速度快,需要學(xué)習(xí)時間少。它能在同一畫面上進(jìn)展靈活操作快速排除輸入程序中的書寫錯

19、誤、語法錯誤以至語意錯誤,從而加快了用戶編寫、修改和調(diào)試程序的速度,可以說在編程和調(diào)試過程中它是一種比VB還要簡單的語言。3擴(kuò)大能力強(qiáng) 高版本的MATLAB語言有豐富的庫函數(shù),在進(jìn)展復(fù)雜的數(shù)學(xué)運(yùn)算時可以直接調(diào)用,而且MATLAB的庫函數(shù)同用戶文件在形成上一樣,所以用戶文件也可作為MATLAB的庫函數(shù)來調(diào)用。因而,用戶可以根據(jù)自己的需要方便地建立和擴(kuò)大新的庫函數(shù),以便提高M(jìn)ATLAB使用效率和擴(kuò)大它的功能。4語句簡單,內(nèi)涵豐富 MATLAB語言中最根本最重要的成分是函數(shù),其一般形式為(a,6,c)=fund,e,f,即一個函數(shù)由函數(shù)名,輸入變量d,e,f,和輸出變量a,b,c.組成,同一函數(shù)名F

20、,不同數(shù)目的輸入變量包括無輸入變量及不同數(shù)目的輸出變量,代表著不同的含義。這不僅使MATLAB的庫函數(shù)功能更豐富,而大大減少了需要的磁盤空間,使MATLAB編寫的M文件簡單、短小而高效。5高效方便的矩陣和數(shù)組運(yùn)算 MATLAB語言像Basic、Fortran和C語言一樣規(guī)定了矩陣的一系列運(yùn)算符,它不需定義數(shù)組的維數(shù),并給出矩陣函數(shù)、特殊矩陣專門的庫函數(shù),使之在求解諸如信號處理、建模、系統(tǒng)識別、控制、優(yōu)化等領(lǐng)域的問題時,顯得大為簡捷、高效、方便,這是其它高級語言所不能比較的。6方便的繪圖功能MATLAB受到控制界廣泛承受的一個重要原因是因?yàn)樗峁┝朔奖愕睦L圖功能。MATLAB的繪圖是十分方便的,

21、它有一系列繪圖函數(shù)命令,使用時只需調(diào)用不同的繪圖函數(shù)命令,在圖上標(biāo)出圖題、*Y軸標(biāo)注,格繪制也只需調(diào)用相應(yīng)的命令,簡單易行。另外,在調(diào)用繪圖函數(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編程時首先建立兩個M文件,M文件存放于MATLAB默認(rèn)文件夾中,供主函數(shù)調(diào)用,特別注意的是,M文件必須存放在軟件默認(rèn)文件夾,否則主程序會無法調(diào)用,而導(dǎo)致程序運(yùn)行不成

22、功。M文件f1、f2的建立界面分別如圖2、3所示。圖2 f1.m文件圖3 f2.m文件2.主程序建立M函數(shù)文件是一個特殊的M文件,其常見格式如下:funcdon返問變量列表包括函數(shù)名(輸入變量列表)注釋說明語句段函數(shù)體語。需要說明的是,這里輸入變量的個數(shù)以及輸出變量的個數(shù)是由MATLAB本身提供的兩個保存變量nargin和nargout來給出的,它們分別是Numberoffunctioninputarguments和Numberoffunctionoutputarguments的縮寫形式。輸入變量要用逗號隔開,輸出變量多于1個時,要用方括號括起來。用戶可以借助于help命令顯示其中的注釋說明語

23、句段。通過這樣的方法就可以建立函數(shù)文件或者稱M函數(shù),其調(diào)用方法與一放的MATLAB函數(shù)的調(diào)用方法一樣。函數(shù)文件相當(dāng)于對MATLAB進(jìn)展了二次開發(fā)。其作用與其他高級語言子函數(shù)的作用基本一樣,都是為了實(shí)現(xiàn)特定目的而由用戶自己編寫的子函數(shù)。需要說明的是,調(diào)用函數(shù)時所用的輸入輸出變量名并不要求與編寫函數(shù)文件時所用的輸入輸出變量名一樣。翻開mand Window并在其中輸入主程序,主程序輸入過程如圖4所示。圖4 程序輸入界面3.3 運(yùn)行結(jié)果及分析1.程序運(yùn)行界面如圖5、圖6所示。圖5 程序運(yùn)行界面圖6 符號個數(shù)輸入界面2.符號概率的輸入 需要說明的是,輸入8個符號概率的時候要按從大到小的順序輸入,否則程

24、序無法運(yùn)行,符號概率輸入界面如圖7所示。圖7 符號概率輸入界面3.程序計(jì)算所得的碼字如圖8所示。 圖8 程序計(jì)算所得的碼字4.程序計(jì)算的平均碼長、信源熵、編碼效率及冗余度如圖9所示。圖9 程序計(jì)算結(jié)果第4章 總結(jié)通過這次課程設(shè)計(jì),我更深入的了解了費(fèi)諾編碼的構(gòu)造原理。費(fèi)諾編碼的重點(diǎn)在于分組,然后在分組的根底上編碼,由編碼的原理可以看出,費(fèi)諾編碼應(yīng)該用遞歸的方法,遞歸是比較難的知識點(diǎn),但是是比較實(shí)用的知識。費(fèi)諾編碼首先是把消息符號按概率從大到小的順序進(jìn)展排序,然后再按照每組概率和近似相等的方法分成兩組,然后依次給組分配碼字,然后繼續(xù)對各個組進(jìn)展分組,直到不能再分為止。費(fèi)諾編碼方法得到的碼子不唯一,

25、費(fèi)諾碼比較適合于對分組概率相等或相近的信源編碼,費(fèi)諾碼也可以編M進(jìn)制碼,但M越大,信源的符號數(shù)越多,可能的編碼方式就越多,編碼過程就越復(fù)雜,有時短碼未必能得到充分利用。一般情況下,當(dāng)信源符號個數(shù)越多,編碼效率就越低,信源符號相等或越接近,編碼效率也就越高。費(fèi)諾碼對信源的統(tǒng)計(jì)特性沒有特殊要求,編碼效率比較高,對編碼設(shè)備的要求也比較簡單,因此綜合性能優(yōu)于香農(nóng)碼和哈弗曼碼。費(fèi)諾編碼在具體實(shí)用時,設(shè)備較復(fù)雜。在編碼器中需要增加緩沖存放器,因?yàn)槊總€信源符號所對應(yīng)的碼符號長度不一,負(fù)責(zé)會造成輸入和輸出不能保持平衡。 通過本次課程設(shè)計(jì),我進(jìn)一步的對費(fèi)諾編碼有了一個深刻的認(rèn)識,對于信息論的認(rèn)識也進(jìn)入了一個新的

26、臺階。課程設(shè)計(jì)過程中,通過編程,我的程序編寫能力有了一定的提高,尤其使我對字符串、排序、遞歸算法等有了更深的了解。同時,編程的過程中也使我認(rèn)識到了許多自己編程中的缺乏,對函數(shù)的參數(shù)傳遞、數(shù)組指針、指針的傳遞等沒有很好的掌握。在學(xué)習(xí)如何將理論知識傳換成實(shí)際應(yīng)用的同時。我也對調(diào)試技巧有了更好的掌握,分析問題的能力也有很大提高。本次課程設(shè)計(jì)進(jìn)一步使用了MATLAB這個軟件工具,也讓我更加熟悉了在MATLAB中的編程的語法和構(gòu)造。認(rèn)識到了軟件工具在通信科研仿真方面的重要作用和方便性。在設(shè)計(jì)的過程中,我也體會到學(xué)習(xí)任何知識,僅從理論上去求知,而不去實(shí)踐、探索是不夠的。經(jīng)過本次實(shí)驗(yàn),充分學(xué)習(xí)了費(fèi)諾編碼理論

27、及其重點(diǎn)內(nèi)容,掌握了費(fèi)諾編碼原理的同時也鍛煉了編程水平,為以后的學(xué)習(xí)中出現(xiàn)的可能問題做好了準(zhǔn)備,鍛煉了自己的動手能力和設(shè)計(jì)能力,掌握了一種科技工具,豐富了自己的學(xué)習(xí)生活。通過課程設(shè)計(jì)我們可以學(xué)習(xí)到在書本上學(xué)不到的知識,可以了解在課堂上理解不了的概念,課程設(shè)計(jì)是一個學(xué)者從理論走向?qū)嵺`必不可少的過程,所以我覺的各位教師應(yīng)該多給我們這樣的時機(jī),讓我們真正的可以從書本過渡到實(shí)踐,讓我們可以真正的成為一個可以為國家作出出色奉獻(xiàn)的棟梁之才。通過對信息論的學(xué)習(xí),我們發(fā)現(xiàn)信息論其實(shí)是門理論性很強(qiáng)的學(xué)科,它涉及到眾多學(xué)科。對于整個信息論的理論體系的認(rèn)識也有了一個清晰的思路:首先介紹到的是信息的定義及其本質(zhì),再而

28、學(xué)習(xí)到了各類信源的熵,信道及信道容量,主要研究的是離散信源和連續(xù)信源。最后是無失真信源編碼,其中包含等長信源編碼和變長信源編碼;主要研究的變長信源編碼。這就差不多構(gòu)成信息論的整個根本理論構(gòu)造。在此我也要感謝萬教師的悉心教誨,使 我更好的掌握了信息論的理論根底,為以后在通信領(lǐng)域以及其他方面的研究都奠定了堅(jiān)實(shí)的根底。信息論開展到今天雖然已經(jīng)做到比較全面,但仍舊存在一些缺乏,需要我們做更多的探討,所以我會更加努力的學(xué)習(xí),培養(yǎng)敢于創(chuàng)新,敢于挑戰(zhàn),為以后的生活和工作做好準(zhǔn)備!在整個設(shè)計(jì)過程中我懂得了許多東西,在查找的過程中我們也知道了許多原來不知道的東西,對于源代碼的修改以及成功利用也樹立了對知識應(yīng)用的

29、信心,相信會對今后的學(xué)習(xí)工作和生活有非常大的幫助,并且提高了自己的動手實(shí)踐操作能力,使自己充分體會到了在實(shí)驗(yàn)過程中的成功喜悅。在過程中所學(xué)到的東西是這次課程設(shè)計(jì)的最大收獲和財(cái)富,使我終身受益。 這次課程設(shè)計(jì)的成功離不開教師們的指導(dǎo)和幫助,有不懂得問題向教師請教的時候教師總是很細(xì)心認(rèn)真的給我講解,并介紹給我很多學(xué)習(xí)方法,給我介紹了很多學(xué)習(xí)資料,教師對我大力的支持,讓我堅(jiān)決了做好設(shè)計(jì)的決心和信心。在課程設(shè)計(jì)的過程中,教師對我們的嚴(yán)格要求,也讓我感受到教師對知識的嚴(yán)謹(jǐn)態(tài)度,使我肅然起敬。在以后的日子里,我會學(xué)習(xí)教師們的精神和做事方法,努力提高自己,積累知識,不枉費(fèi)教師們的悉心教誨。附錄 本次設(shè)計(jì)的完

30、整程序%函數(shù)f1存放于f1.mfunction *=f1(i,j,p,r)global *;*=char(*);if(j=i)return;elseq=0;for t=i:j %對于區(qū)間i,j自上而下求累加概率值q=p(t)+q;y(t)=q; endfor t=i:j%把所有自上而下的累加概率值與該區(qū)間總概率值減該累加概率值之差取絕對值存在一數(shù)組v(t)=abs(y(t)-(q-y(t); endfor t=i:jif(v(t)=min(v) %求該數(shù)組中最小的一個值來確定分界點(diǎn)位置for k=i:t %賦值碼字*(k,r)=0;endfor k=(t+1):j*(k,r)=1;endd=t

31、;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 *=f2(i,j,p,r)global *;*=char(*);if(j=i)return;elseq=0;for t=i:j %對于區(qū)間i,j自上而下求累加概率值q=p(t)+q;y(t-i+1)=q; endfor t=1:j-(i-1)%把所有自上而下的累加概率值與該區(qū)間總概率值減該累加概率值之差取絕對值存在一數(shù)組v(t)=abs(y(t)-(q-y(t); endfor t=1:j-(i-1)if(v(t)=min(v) %求該數(shù)組中最小的一個值來確定分界點(diǎn)位置d=t+i-1;for k=i:d %賦值碼字*(k,r)=0;endfor k=

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論