霍夫曼編碼(含源程序)

霍夫曼編碼(含源程序)

ID:42146604

大小:325.27 KB

頁數(shù):13頁

時間:2019-09-09

霍夫曼編碼(含源程序)_第1頁
霍夫曼編碼(含源程序)_第2頁
霍夫曼編碼(含源程序)_第3頁
霍夫曼編碼(含源程序)_第4頁
霍夫曼編碼(含源程序)_第5頁
資源描述:

《霍夫曼編碼(含源程序)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、多媒體技術(shù)基礎(chǔ)實(shí)驗(yàn)報告——霍夫曼編碼學(xué)院:電子工程與光電技術(shù)學(xué)院專業(yè):電子信息工程姓名:學(xué)號:任課老師:康其桔實(shí)驗(yàn)時間:一、實(shí)驗(yàn)內(nèi)容及要求1、使用Matlab編程實(shí)現(xiàn)霍夫曼編碼2、通過鍵盤輸入字符串3、在屏幕上顯示編碼結(jié)果二、實(shí)驗(yàn)原理霍夫曼編碼是霍夫曼在1952年提出和描述的“從下到上”的爛編碼方法。根據(jù)給定數(shù)據(jù)集中各元索所出現(xiàn)的頻率來壓縮數(shù)據(jù)的一種統(tǒng)計壓縮編碼方法。這些元素(如字母)出現(xiàn)的次數(shù)越多,其編碼的位數(shù)就越少。其基本步驟為:(1)將壓縮的各字符的出現(xiàn)概率按減少(或增加)的順序進(jìn)行排列。(2)將兩個最小的概率進(jìn)行組合相加得到一個新概率將這一新概率與其它概率一起繼續(xù)執(zhí)行1和2的操作直至

2、最后概率為1.0。⑶對每對組合中的概率較大者指定為1,較小者指定為0。(4)畫出由每個信源符號概率到1.0處的路徑記下路徑的1和0。⑸對每個信源符號由從右到左寫出1/0序列,對概率較高的標(biāo)1,對概率較低的標(biāo)0(或?qū)Ω怕瘦^高的標(biāo)0,對概率較低的標(biāo)1),就得到了對應(yīng)的Huffman碼。下面舉個例子來說明霍夫曼編碼的具體過程。設(shè)需要編碼的信息為:BACDEBACDEBACDEBADEBAEBABABABB,統(tǒng)計各個字符出現(xiàn)的次數(shù)分別為B(10次)、A(8次)、C(3次)、D(4次)、E(5次)。各個字符出現(xiàn)的概率為B(10/30)、A(8/30)、E(5/30).D(4/30)>C(3/30)o霍

3、夫曼編碼的過程如下:B(10/30)A(8/30)E(5/30)D(4/30)C(3/30)18/30012/3030/30B:llA:10E:00D:011C:010霍夫曼編碼后平均碼長為2x(10/30+8/30+5/30)+3x(4/30+3/30)=2.23b。而信源爛H=2.19九由此,我們可以看出,霍夫曼編碼結(jié)果已經(jīng)很接近理想信源爛。三、設(shè)計方案設(shè)計的流程圖如下:讀入字符串并去除空格統(tǒng)計字符種類及概率霍夫曼編碼霍夫曼解碼>各模塊設(shè)計(一)讀入字符串并去除空格在Matalb中使用語句inputstrin薩input('請輸入需要編碼的字符:',‘s'),輸入的字符串存入char型數(shù)

4、組inputstring中。去除空格的思想為:輸出數(shù)組inputlettersi>length(inputletters)?inputletters(i-spacermmber)=inputstring(i);輸岀的inputletters數(shù)組存儲的是輸入字符串去除空格后的字符集的ASCII值,如果需要顯示字符需要用語句:disp(char(inputletters))。這一部分代碼如下:inputstring二input('請輸入需要編碼的字符:’,‘s');%輸入字符并存儲spacenumber=O;%存儲空格數(shù)目fori=l:length(inputstring)ifabs(input

5、string(i))==32spacenumber=spacenumber+l;continueelseinputletters(i-spacenumber)=inputstring(i);endenddisp([,去除空格后字符為:’,char(inputletters)])(-)統(tǒng)計字符種類及概率統(tǒng)計字符的種類,需要去除輸入字符屮的重復(fù)字符,并存入數(shù)組letters?P,其基本流程圖如下:letters(l)=inputieIters(1)輸出矩陣letters這一部分的程序如下:letters(l)二inputletters(1);form=2:length(inputletters)

6、repeatn=0;%定義一個數(shù)記錄是否冇重復(fù)forn二1:length(letters)ifletters(n)=二inputletters(m)repeatn=rcpeatn+l;endendifrepeatn==0letters(length(letters)+1)二inputletters(m);endend概率的統(tǒng)計即是統(tǒng)ipletters中每個元索在inputletters岀現(xiàn)的次數(shù),除以總次數(shù)即可得到每個字符出現(xiàn)的概率。概率統(tǒng)計的程序如2forp二l:length(letters)repeatn=0;%計算巫復(fù)次數(shù)forq=l:lcngth(inputletters)iflet

7、ters(p)==inputletters(q)repeatn=repeatn+l;endendletterp(p)=repcatn/length(inputlcttcrs);end對得到概率letterp進(jìn)行降序排序得到huffmanprob,并使字符集與概率相對應(yīng)生成字符集huffamnletterso這一過程主要是為了方便輸出字符集的輸出。這一部分的程序如下:[huffmanprob,sortindex

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。