資源描述:
《信息論與編碼實(shí)驗(yàn)報(bào)告》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、目錄實(shí)驗(yàn)一信源熵值的計(jì)算1實(shí)驗(yàn)二Huffman信源編碼5實(shí)驗(yàn)三Shannon編碼9實(shí)驗(yàn)四信道容量的迭代算法12實(shí)驗(yàn)五率失真函數(shù)15實(shí)驗(yàn)六差錯(cuò)控制方法20實(shí)驗(yàn)七漢明編碼22實(shí)驗(yàn)一信源熵值的計(jì)算一、實(shí)驗(yàn)?zāi)康?進(jìn)一步熟悉信源熵值的計(jì)算2熟悉Matlab編程二、實(shí)驗(yàn)原理熵(平均自信息)的計(jì)算公式MATLAB實(shí)現(xiàn):;或者流程:第一步:打開(kāi)一個(gè)名為“nan311”的TXT文檔,讀入一篇英文文章存入一個(gè)數(shù)組temp,為了程序準(zhǔn)確性將所讀內(nèi)容轉(zhuǎn)存到另一個(gè)數(shù)組S,計(jì)算該數(shù)組中每個(gè)字母與空格的出現(xiàn)次數(shù)(遇到小寫字母都將其轉(zhuǎn)化為大寫字母進(jìn)行計(jì)數(shù)),每出現(xiàn)一次該字符的計(jì)數(shù)器+
2、1;第二步:計(jì)算信源總大小計(jì)算出每個(gè)字母和空格出現(xiàn)的概率;最后,通過(guò)統(tǒng)計(jì)數(shù)據(jù)和信息熵公式計(jì)算出所求信源熵值(本程序中單位為奈特nat)。程序流程圖:24三、實(shí)驗(yàn)內(nèi)容1、寫出計(jì)算自信息量的Matlab程序2、已知:信源符號(hào)為英文字母(不區(qū)分大小寫)和空格。輸入:一篇英文的信源文檔。輸出:給出該信源文檔的中各個(gè)字母與空格的概率分布,以及該信源的熵。四、實(shí)驗(yàn)環(huán)境MicrosoftWindows7Matlab6.5五、編碼程序#include"stdio.h"#include#include#defineN1000intma
3、in(void){chars[N];inti,n=0;floatnum[27]={0};doubleresult=0,p[27]={0};FILE*f;char*temp=newchar[485];f=fopen("nan311.txt","r");while(!feof(f)){fread(temp,1,486,f);}fclose(f);s[0]=*temp;for(i=0;i4、s[i]>='a'&&s[i]<='z')num[s[i]-97]++;elseif(s[i]>='A'&&s[i]<='Z')24num[s[i]-65]++;}printf("文檔中各個(gè)字母出現(xiàn)的頻率:");for(i=0;i<26;i++){p[i]=num[i]/strlen(s);printf("%3c:%ft",i+65,p[i]);n++;if(n==3){printf("");n=0;}}p[26]=num[26]/strlen(s);printf("空格:%ft",p[26]);printf("");for(i=0;i
5、<27;i++){if(p[i]!=0)result=result+p[i]*log(p[i]);}result=-result;printf("信息熵為:%f",result);printf("");return0;}六、求解結(jié)果其中nan311.txt中的文檔如下:Thereisnohatewithoutfear.Hateiscrystallizedfear,fear’sdividend,fearobjectivized.Wehatewhatwefearandsowherehateis,fearislurking.Thuswehate24wha
6、tthreatensourperson,ourvanityandourdreamsandplansforourselves.Ifwecanisolatethiselementinwhatwehatewemaybeabletoceasefromhating.七、實(shí)驗(yàn)總結(jié)通過(guò)這次實(shí)驗(yàn),我們懂得了不必運(yùn)行程序時(shí)重新輸入文檔就可以對(duì)文檔進(jìn)行統(tǒng)計(jì),既節(jié)省了時(shí)間而且也規(guī)避了一些輸入錯(cuò)誤。在實(shí)驗(yàn)中,我們進(jìn)一步了解到信源熵的計(jì)算,理論和實(shí)踐的結(jié)合讓我們對(duì)這個(gè)知識(shí)點(diǎn)了解的更加深刻了。24實(shí)驗(yàn)二Huffman信源編碼一、實(shí)驗(yàn)?zāi)康?.理解信源的最優(yōu)變長(zhǎng)編碼的基本思想。2.熟
7、練掌握Huffman信源編碼方法。二、設(shè)計(jì)原理設(shè)信源S={s1,s2,…..,sq},其對(duì)應(yīng)的概率分布為P(si)={p1,p2,p3,….,pq},則其編碼步驟如下:(1)將q個(gè)信源符號(hào)按遞減方式排列。(2)用0、1碼符分別表示概率最小的兩個(gè)信源符號(hào),并將這兩個(gè)符號(hào)合并成一個(gè)新的符號(hào),從而得到q-1個(gè)符號(hào)的新信源成為S信源的縮減信源S1。(3)將縮減信源S1中的符號(hào)仍按遞減順序排列,再將最小兩個(gè)概率相加,合并成一個(gè)符號(hào),并分別用0、1碼表示,這樣有形成了q-2個(gè)縮減信源S2。(4)依次繼續(xù)下去,直到縮減信源只剩下兩個(gè)符號(hào)為止,將最后兩個(gè)符號(hào)用0、1分
8、別表示。(5)從最后一次縮減信源開(kāi)始,向前返回,沿信源縮減過(guò)程的反方向取出所編的馬元。三、實(shí)驗(yàn)