二元霍夫曼編碼 - 信息論與編碼實(shí)驗(yàn)報(bào)告

二元霍夫曼編碼 - 信息論與編碼實(shí)驗(yàn)報(bào)告

ID:12149708

大小:154.50 KB

頁(yè)數(shù):22頁(yè)

時(shí)間:2018-07-15

二元霍夫曼編碼 - 信息論與編碼實(shí)驗(yàn)報(bào)告_第1頁(yè)
二元霍夫曼編碼 - 信息論與編碼實(shí)驗(yàn)報(bào)告_第2頁(yè)
二元霍夫曼編碼 - 信息論與編碼實(shí)驗(yàn)報(bào)告_第3頁(yè)
二元霍夫曼編碼 - 信息論與編碼實(shí)驗(yàn)報(bào)告_第4頁(yè)
二元霍夫曼編碼 - 信息論與編碼實(shí)驗(yàn)報(bào)告_第5頁(yè)
資源描述:

《二元霍夫曼編碼 - 信息論與編碼實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、計(jì)算機(jī)與信息工程學(xué)院綜合性實(shí)驗(yàn)報(bào)告專(zhuān)業(yè):通信工程年級(jí)/班級(jí):2011級(jí)2013—2014學(xué)年第一學(xué)期課程名稱(chēng)信息論與編碼指導(dǎo)教師劉艷芳本組成員學(xué)號(hào)姓名實(shí)驗(yàn)地點(diǎn)計(jì)科樓111實(shí)驗(yàn)時(shí)間周五5-6節(jié)項(xiàng)目名稱(chēng)二元霍夫曼編碼實(shí)驗(yàn)類(lèi)型綜合性一、實(shí)驗(yàn)?zāi)康母鶕?jù)霍夫曼編碼的原理,用MATLAB設(shè)計(jì)進(jìn)行霍夫曼編碼的程序,并得出正確的結(jié)果。二、實(shí)驗(yàn)儀器或設(shè)備1、一臺(tái)計(jì)算機(jī)。2、MATLABr2013a。三、二元霍夫曼編碼原理1、將信源消息符號(hào)按其出現(xiàn)的概率大小依次排列,p1>p2>…>pq2、取兩個(gè)概率最小的字母分別配以0和1兩個(gè)碼元,并將這兩個(gè)概率相加作為一個(gè)新字母的概率,從而得到只包含q-1個(gè)符號(hào)的新信源S1

2、。3、對(duì)重排后的縮減信源S1重新以遞減次序排序,兩個(gè)概率最小符號(hào)重復(fù)步驟(2)的過(guò)程。4、不斷繼續(xù)上述過(guò)程,直到最后兩個(gè)符號(hào)配以0和1為止。5、從最后一級(jí)開(kāi)始,向前返回得到各個(gè)信源符號(hào)所對(duì)應(yīng)的碼元序列,即相應(yīng)的碼字。四、霍夫曼編碼實(shí)現(xiàn)程序function[outnum]=lml_huffman(a)%主程序,輸入一組概率,輸出此組概率的霍夫曼編碼%a:一組概率值,如a=[0.20.30.10.4]等%outnum:輸出的霍夫曼碼,以cell中的字符數(shù)組表示ifsum(a)~=1warning('輸入概率之和不為“1”,但程序仍將繼續(xù)運(yùn)行')end[cho,sequ,i,l]=probali

3、ty(a);globallmlcode%用于輸出霍夫曼碼,定義為cell型globalcellnum%用于編碼的累加計(jì)算cellnum=1;lmlcode=cell(l,1);j=1;%第一部分add_num=char;[l_add]=addnum(add_num,i,j,l);[output,m]=disgress(sequ,i,j,l,l_add);dealnum(output,m);%在全局變量中輸出霍夫曼碼j=2;%第二部分[l_add]=addnum(add_num,i,j,l);[output,n]=disgress(sequ,i,j,l,l_add);dealnum(outp

4、ut,n);[outnum]=comset(lmlcode,cho(1,:));%將概率和編碼進(jìn)行關(guān)聯(lián)function[output]=addnum(input,i,j,l)%對(duì)概率矩陣中每一行最后兩個(gè)不為0的數(shù)進(jìn)行編碼,即在某個(gè)編碼后添加0,1或空%輸出:%input:輸入的某個(gè)未完成的編碼%(i,j):當(dāng)前檢索目標(biāo)在sequ矩陣中的位置%l:sequ矩陣的列數(shù)%PS:sequ矩陣在此函數(shù)中未用到%PS:此函數(shù)為編碼第一步ifj==(l-i)output=[input'0'];elseifj==(l-i+1)output=[input'1'];elseoutput=input;enden

5、dfunction[ecode]=comset(code,pro)%將概率和編碼進(jìn)行關(guān)聯(lián)%code:已編成的霍夫曼碼%pro:輸入的一組概率%ecode:最終完成的碼l=length(code);ecode=cell(l,2);fori=1:llang(i)=length(code{i});end[a,b]=sort(lang);fori=1:lecode{i,1}=code{b(i)};ecode{i,2}=pro(i);endfunction[final,a]=dealnum(imput,m)%整理并在全局變量中輸出已完成的霍夫曼碼%輸入:imput:程序運(yùn)算后的生成cell型矩陣%m

6、:標(biāo)識(shí)數(shù)%輸出:final:整理后的霍夫曼碼%a:標(biāo)識(shí)數(shù)globallmlcodeglobalcellnumifm==1lmlcode{cellnum}=imput;cellnum=cellnum+1;final='';a='';elseifm==2[final1,a1]=dealnum(imput{1,1},imput{1,2});[final2,a2]=dealnum(imput{2,1},imput{2,2});[final3,a3]=dealnum(final1,a1);[final4,a4]=dealnum(final2,a2);final=[final3final4];a=[a

7、3a4];elsefinal=imput;a=m;endendfunction[outnum,p]=findsumother(sequ,i,j,l,add_num)%當(dāng)前檢索目標(biāo)在sequ(i,j)處為非1時(shí)的處理程序,即跳轉(zhuǎn)到下一級(jí)進(jìn)行整理%輸入:sequ:概率轉(zhuǎn)移矩陣%(i,j):當(dāng)前檢索目標(biāo)在sequ矩陣中的位置%l:sequ矩陣的列數(shù)%add_num:當(dāng)前進(jìn)行的編碼%輸出:(與disgress類(lèi)同)%outnum

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

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

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