費諾編碼的分析與實現DOC_第1頁
費諾編碼的分析與實現DOC_第2頁
費諾編碼的分析與實現DOC_第3頁
費諾編碼的分析與實現DOC_第4頁
費諾編碼的分析與實現DOC_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、行編程,編寫的函數要有通用性。1.3設計內容 一個有8個符號的信源X,各個符號出現的概率分別為: 運用MATLAB軟件,編寫適當的程序,對以上8個信源符號進行費諾編碼, 得出二進制碼字,計算平均碼長、編碼效率、冗余度,并總結費諾編碼方法 的特點和應用。 第2章 費諾編碼的分析與實現2.1設計原理1.編碼原理 早期的數據壓縮來自于人們對概率的了解。當對文字信息進行編碼時,如果出現概率較高的字幕賦予較短的編碼,為出現概率較低的字母賦予較長的編碼,平均編碼長度就能縮短不少。著名的Morse電碼就是一個范例。信息論之父C.E.Shannon曾指出,任何信息都存在冗余,冗余大小與信息中每個符號出現概率(

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

5、面又由信息傳輸定理、信源信道隔離定理相互聯系。當然,信息論的重大應用遠不止于此。DNA是一種信息存儲物質,正事信息論幫助人們解開了生物基因組密碼之謎。簡單地說信息論包含了生命、宇宙乃至一切。信息論對現代社會的影響是多方面的。首先,在理論研究方面,信息論所處的地位已遠遠超出了香農當年所界定的“通信的數學理論”的范疇,得到了不斷的擴充和發(fā)展,出現了語義信息、語法信息與語用信息等研究與信息的意義有關的學科,以及面向智能研究的全信息理論。如今,信息已成為與物質、能量并列的宇宙中的三個基本要素,世間萬物的發(fā)展變化可歸結為物質、能量和信息的傳遞和轉化過程。另一方面,在科學和技術高度發(fā)展的今天,信息的概念也

6、被滲透到許多不同的學科和領域,深入到了社會生活的各個方面,成為可與相對論和量子力學并駕齊驅的新一代邊緣交叉學科的重要組成部分。特別是以信息論、控制論、和系統(tǒng)論為代表的“老三論”以及以普利高津的耗散結構理論,哈肯的協同學和托姆的突變論或艾根的超循環(huán)理論為代表的“新三論”的出現,標志著一代新的邊緣交叉學科的興起。它們的形成和發(fā)展對現代科學的研究具有重要的方法論上的指導意義。編碼是信息從一種形式或格式轉換為另一種形式的過程也稱為計算機編程語言的代碼簡稱編碼。用預先規(guī)定的方法將文字、數字或其它對象編成數碼,或將信息、數據轉換成規(guī)定的電脈沖信號。編碼在電子計算機、電視、遙控和通訊等方面廣泛使用。在計算機

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

8、定理;限失真信源編碼定力稱為第三極限定理。2.信源編碼原理 由于信源符號之間存在分布不均勻和相關性,是的信源存在冗余度,信源編碼的主要任務就是減少冗余,提高編碼效率。具體說,就是針對仙緣輸出符號序列的統(tǒng)計特性,尋找一定的方法把信源輸出符號序列變換為最短碼字序列的方法。信源編碼的基本途徑有兩個:使序列中的各個符號盡可能的相互獨立,及解除相關性;使編碼中各個符號出現的概率盡可能地相等,即概率均勻化。信源編碼的基礎是信息論中的兩個編碼定理:無失真編碼定理和限失真編碼定理,前者是可逆編碼的基礎??赡媸侵府斝旁捶栟D換成代碼后,可從代碼無失真的恢復原信源符號。當已知信源符號的概率特性時,可計算它的 符號

9、熵,這邊是每個信源符號所載有的信息量。編碼定理不但證明了必定存在一種編碼方法,可使代碼的平均長度可任意接近但不低于符號熵,而且還闡明達到這木匾的途徑,就是使概率與碼長匹配。無失真編碼或可逆編碼只適用與離散信源。對于連續(xù)信源,編成代碼后就無法無失真地恢復原來的連續(xù)值,因為后者的取值可有無限多個。此時只能根據率失真編碼定理在失真受限制的情況下進行限失真編碼。信源編碼定理出現后,編碼定理趨于合理化。關于離散信源編碼,從無失真編碼定理出發(fā)。若要所編的碼是惟一可譯碼,不但要求編碼時不同的信源符號變換成不同的碼字,而且必須要求任意有限長的信源序列所對應的碼符號序列各不相同,即要求碼的任意有限長N次擴展碼都

10、是非奇異碼。因為只有任意有限長的信源序列所對應的碼符號序列各不相同,才能把該碼符號序列惟一地分割成一個個對應的信源符號,從而實現惟一的譯碼。 3.費諾編碼原理費諾編碼就是通過使編碼中各個句號出現的概率大致相等,實現概率均勻化,從而減少冗余度,提高編碼效率。凡是能載荷一定的信息量,且碼字的平均長度最短,可分離的變長碼的碼字集合稱為最佳變長碼。在編N進制碼時首先將信源消息符號按其出現的額概率一次又小到大排列開來,并將排列好的心愿符號按概率值分N大組,使N組的概率之和近似相同,并對各組賦予一個N進制碼元0、1.N-1。之后再針對每一個大組內的心愿符號做如上處理,即再分為概率相同的N組,賦予N進制碼元

11、。如此重復,直到每組只剩下一個心愿符號為止。此時每個信源符號所對應的碼字即為費諾碼。針對同一個心愿,費諾碼比香農碼平均碼長小,消息出書速率大,編碼效率高。費諾編碼是一種信源編碼,它編碼后的費諾碼要比香農碼的平均碼長小,消息傳輸速率大,編碼效率高。但它屬于概率匹配編碼它不是最佳的編碼方法。4.費諾編碼特點 費諾編碼是一種信源編碼,它編碼后的費諾碼要比香農碼的平均碼長小,消息傳輸速率大,編碼效率高。但它屬于概率匹配編碼它不是最佳的編碼方法。 費諾編碼屬于概率匹配編碼,具有如下特點: (1)概率大,則分解次數少;概率小則分解次數多,這符合最佳編碼原則。 (2)碼字集合是唯一的。 (3)分解之后先得碼

12、字后得碼長。2.2設計步驟1.費諾碼編碼步驟 (1)將信源消息符號按其出現的概率大小依次排列:p1p2pn 。 (2)將依次排列的信源符號按概率值分為兩大組,使兩個組的概率之和近似 相同,并對各組賦予一個二進制碼元“0”和“1”。 (3)將每一大組的信源符號再分成兩組,使劃分后的兩個組的概率之和近似 相同,并對各組賦予一個二進制符號“0”和“1”。 (4)如此重復,直至每個組只剩下一個信源符號為止。 (5)信源符號所對應的碼子即為費諾碼。 2.費諾碼編碼過程如表1所示。 表1 費諾碼編碼過程消息符號各個消息概率p(xi)第一次分組第二次分組第三次分組第四次分組第五次分組二元碼字碼長x10.25

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

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

15、一指。MATLAB可以進行矩陣運算、繪制函數和數據、實現算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。MATLAB的基本數據單位是矩陣,它的指令表達式與數學、工程中常用的形式十分相似,故用MATLAB來解算問題要比用C,FORTRAN等語言完成相同的事情簡捷得多,并且MATLAB也吸收了像Maple等軟件的優(yōu)點,使MATLAB成為一個強大的數學軟件。在新的版本中也加入了對C,FORTRAN,C+,JAVA的支持。 MATLAB是一個高級的矩陣/陣列語言,它包含控制語句、函數、數據結構、輸入和輸出和面向對

16、象編程特點。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個較大的復雜的應用程序(M文件)后再一起運行。新版本的MATLAB語言是基于最為流行的C+語言基礎上的,因此語法特征與C+語言極為相似,而且更加簡單,更加符合科技人員對數學表達式的書寫格式。使之更利于非計算機專業(yè)的科技人員使用。而且這種語言可移植性好、可拓展性極強,這也是MATLAB能夠深入到科學研究及工程計算各個領域的重要原因。優(yōu)勢特點:高效的數值計算及符號計算功能,使用戶從繁雜的數學運算分析中解脫;具有完備的圖形處理功能,實現計算結果和編程的可視化;友好的用戶界面及接近數學表達式的自然化語言,使學者易于學習和掌握;功

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

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

19、單,所以編程效率高,易學易懂。  (2)用戶使用方便   MATLAB語言把編輯、編譯、連接和執(zhí)行融為一體,其調試程序手段豐富,調試速度快 ,需要學習時間少。它能在同一畫面上進行靈活操作快速排除輸入程序中的書寫錯誤、語法 錯誤以至語意錯誤,從而加快了用戶編寫、修改和調試程序的速度,可以說在編程和調試過程中它是一種比VB還要簡單的語言。 (3)擴充能力強   高版本的MATLAB語言有豐富的庫函數,在進行復雜的數學運算時可以直接調用,而且MATLAB的庫函數同用戶文件在形成上一樣,所以用戶文件也可作為MAT

20、LAB的庫函數來調用。因而,用戶可以根據自己的需要方便地建立和擴充新的庫函數,以便提高MATLAB使用效率和擴充它的功能。 (4)語句簡單,內涵豐富    MATLAB語言中最基本最重要的成分是函數,其一般形式為(a,6,c)= fun(d,e ,f,),即一個函數由函數名,輸入變量d,e,f,和輸出變量a,b,c .組成,同一函數名F,不同數目的輸入變量(包括無輸入變量)及不同數目的輸出變量,代表著不同的含義。這不僅使MATLAB的庫函數功能更豐富,而大大減少了需要的磁盤空間,使MATLAB編寫的M文件簡單、短小而高效。&

21、#160; (5)高效方便的矩陣和數組運算   MATLAB語言像Basic、Fortran和C語言一樣規(guī)定了矩陣的一系列運算符,它不需定義數組的維數,并給出矩陣函數、特殊矩陣專門的庫函數,使之在求解諸如信號處理、建模、系統(tǒng)識別、控制、優(yōu)化等領域的問題時,顯得大為簡捷、高效、方便,這是其它高級語言所不 能比擬的。 (6)方便的繪圖功能   MATLAB受到控制界廣泛接受的一個重要原因是因為它提供了方便的繪圖功能。MATLAB的繪圖是十分方便的,它有一系列繪圖函數(命令),使用時只需調用不同的 繪圖函數(命令),在圖

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

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

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

25、.符號概率的輸入 需要說明的是,輸入8個符號概率的時候要按從大到小的順序輸入,否則程序無法運行,符號概率輸入界面如圖7所示。圖7 符號概率輸入界面3.程序計算所得的碼字如圖8所示。 圖8 程序計算所得的碼字4.程序計算的平均碼長、信源熵、編碼效率及冗余度如圖9所示。 圖9 程序計算結果第4章 總結通過這次課程設計,我更深入的了解了費諾編碼的構造原理。費諾編碼的重點在于分組,然后在分組的基礎上編碼,由編碼的原理可以看出,費諾編碼應該用遞歸的辦法,遞歸是比較難的知識點,但是是比較實用的知識。費諾編碼首先是把消息符號按概率從大到小的順序進行排序,然后再按照每組概率和近似相等的辦法分成兩組,然后依次給

26、組分配碼字,然后繼續(xù)對各個組進行分組,直到不能再分為止。費諾編碼方法得到的碼子不唯一,費諾碼比較適合于對分組概率相等或相近的信源編碼,費諾碼也可以編M進制碼,但M越大,信源的符號數越多,可能的編碼方式就越多,編碼過程就越復雜,有時短碼未必能得到充分利用。一般情況下,當信源符號個數越多,編碼效率就越低,信源符號相等或越接近,編碼效率也就越高。費諾碼對信源的統(tǒng)計特性沒有特殊要求,編碼效率比較高,對編碼設備的要求也比較簡單,因此綜合性能優(yōu)于香農碼和哈弗曼碼。費諾編碼在具體實用時,設備較復雜。在編碼器中需要增加緩沖寄存器,因為每個信源符號所對應的碼符號長度不一,負責會造成輸入和輸出不能保持平衡。 通過

27、本次課程設計,我進一步的對費諾編碼有了一個深刻的認識,對于信息論的認識也進入了一個新的臺階。課程設計過程中,通過編程,我的程序編寫能力有了一定的提高,尤其使我對字符串、排序、遞歸算法等有了更深的了解。同時,編程的過程中也使我認識到了許多自己編程中的不足,對函數的參數傳遞、數組指針、指針的傳遞等沒有很好的掌握。在學習如何將理論知識傳換成實際應用的同時。我也對調試技巧有了更好的掌握,分析問題的能力也有很大提高。本次課程設計進一步使用了MATLAB這個軟件工具,也讓我更加熟悉了在MATLAB中的編程的語法和結構。認識到了軟件工具在通信科研仿真方面的重要作用和方便性。在設計的過程中,我也體會到學習任何

28、知識,僅從理論上去求知,而不去實踐、探索是不夠的。經過本次實驗,充分學習了費諾編碼理論及其重點內容,掌握了費諾編碼原理的同時也鍛煉了編程水平,為以后的學習中出現的可能問題做好了準備,鍛煉了自己的動手能力和設計能力,掌握了一種科技工具,豐富了自己的學習生活。通過課程設計我們可以學習到在書本上學不到的知識,可以了解在課堂上理解不了的概念,課程設計是一個學者從理論走向實踐必不可少的過程,所以我覺的各位老師應該多給我們這樣的機會,讓我們真正的可以從書本過渡到實踐,讓我們可以真正的成為一個可以為國家作出杰出貢獻的棟梁之才。通過對信息論的學習,我們發(fā)現信息論其實是門理論性很強的學科,它涉及到眾多學科。對于

29、整個信息論的理論體系的認識也有了一個清晰的思路:首先介紹到的是信息的定義及其本質,再而學習到了各類信源的熵,信道及信道容量,主要研究的是離散信源和連續(xù)信源。最后是無失真信源編碼,其中包含等長信源編碼和變長信源編碼;主要研究的變長信源編碼。這就差不多構成信息論的整個基本理論結構。在此我也要感謝萬老師的悉心教導,使 我更好的掌握了信息論的理論基礎,為以后在通信領域以及其他方面的研究都奠定了堅實的基礎。信息論發(fā)展到今天雖然已經做到比較全面,但仍舊存在一些不足,需要我們做更多的探討,所以我會更加努力的學習,培養(yǎng)敢于創(chuàng)新,敢于挑戰(zhàn),為以后的生活和工作做好準備!在整個設計過程中我懂得了許多東西,在查找的過

30、程中我們也知道了許多原來不知道的東西,對于源代碼的修改以及成功利用也樹立了對知識應用的信心,相信會對今后的學習工作和生活有非常大的幫助,并且提高了自己的動手實踐操作能力,使自己充分體會到了在實驗過程中的成功喜悅。在過程中所學到的東西是這次課程設計的最大收獲和財富,使我終身受益。 這次課程設計的成功離不開老師們的指導和幫助,有不懂得問題向老師請教 的時候老師總是很細心認真的給我講解,并介紹給我很多學習方法,給我介紹了很多學習資料,老師對我大力的支持,讓我堅定了做好設計的決心和信心。在課程設計的過程中,老師對我們的嚴格要求,也讓我感受到老師對知識的嚴謹態(tài)度,使我肅然起敬。在以后的日子里,我會學習老

31、師們的精神和做事方法,努力提高自己,積累知識,不枉費老師們的悉心教導。附錄 本次設計的完整程序%函數f1存放于f1.mfunction x=f1(i,j,p,r)global x;x=char(x);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ū)間總概率值減該累加概率值之差取絕對值存在一數組v(t)=abs(y(t)-(q-y(t); endfor t=i:jif(v(t)=min(v) %求該數組中最小的一個值來確定分界點位置for k=i

32、:t %賦值碼字x(k,r)='0'endfor k=(t+1):jx(k,r)='1'endd=t;f1(i,d,p,r+1); %遞歸調用及相互調用f2(d+1,j,p,r+1);f1(d+1,j,p,r+1);f2(i,d,p,r+1);elseendend endreturn;%函數f2存放于f2.mfunction x=f2(i,j,p,r)global x;x=char(x);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-

33、(i-1)%把所有自上而下的累加概率值與該區(qū)間總概率值減該累加概率值之差取絕對值存在一數組v(t)=abs(y(t)-(q-y(t); endfor t=1:j-(i-1)if(v(t)=min(v) %求該數組中最小的一個值來確定分界點位置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);%遞歸調用及相互調用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('費諾編碼程序n ');

溫馨提示

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

評論

0/150

提交評論