2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  信息論與編碼課程設(shè)計(jì)報(bào)告</p><p>  設(shè)計(jì)題目: 統(tǒng)計(jì)信源熵與香農(nóng)編碼 </p><p><b>  設(shè)計(jì)任務(wù)與要求</b></p><p><b>  1、 統(tǒng)計(jì)信源熵</b></p><p>  要求:統(tǒng)計(jì)任意文本文件中各字符(區(qū)分大小寫)數(shù)量,計(jì)算字符

2、概率,并計(jì)算信源熵。</p><p><b>  2、香農(nóng)編碼</b></p><p>  要求:任意輸入消息概率,利用香農(nóng)編碼方法進(jìn)行編碼,并計(jì)算信源熵和編碼效率。</p><p><b>  設(shè)計(jì)思路</b></p><p>  本次課程設(shè)計(jì)中主要運(yùn)用C語言編程以實(shí)現(xiàn)任務(wù)要求,分析所需要的統(tǒng)計(jì)量

3、以及相關(guān)變量,依據(jù)具體公式和計(jì)算步驟編寫語句,組成完整C語言程序。運(yùn)行環(huán)境為VC++6.0。 </p><p><b>  1、統(tǒng)計(jì)信源熵 </b></p><p>  定義:信源各個(gè)離散消息的自信息量的數(shù)學(xué)期望為信源的平均信息量,一般稱為信源的信息熵,也叫信源熵或香農(nóng)熵,有時(shí)稱為無條件熵或熵函數(shù),簡(jiǎn)稱熵,記為H(X)。 </p><p>&l

4、t;b>  計(jì)算公式:。</b></p><p>  統(tǒng)計(jì)信源熵就是對(duì)一篇英文文章,或者是輸入一段字符串,通過對(duì)其中的a,b,c,d/A,B,C,D.....(區(qū)分大小寫)和數(shù)字符號(hào)1,2,3,4…以及各個(gè)符號(hào)如:, 。 !等統(tǒng)計(jì)符號(hào)的個(gè)數(shù)N和每一個(gè)符號(hào)的數(shù)目n,有這個(gè)公式P=n/N可得每個(gè)字母的概率,最后又信源熵計(jì)算公式 ,可計(jì)算出信源熵H,所以整體步驟就是先統(tǒng)計(jì)出英文段落的總字符數(shù),或者是輸

5、入字符串的總個(gè)數(shù)。包括字母(區(qū)分大小寫)、數(shù)字、標(biāo)點(diǎn)等,然后再統(tǒng)計(jì)每個(gè)字符的個(gè)數(shù),即每遇到同一個(gè)字符就++1,直到算出每個(gè)字符的個(gè)數(shù),進(jìn)而算出每個(gè)字符的概率,再由信源熵計(jì)算公式計(jì)算出信源熵。</p><p><b>  2、香農(nóng)編碼: </b></p><p>  香農(nóng)編碼主要通過一系列步驟支出平均碼長(zhǎng)與信源之間的關(guān)系,同時(shí)使平均碼長(zhǎng)達(dá)到極限值,即選擇的每個(gè)碼字的長(zhǎng)度

6、滿足下式:</p><p><b>  具體步驟如下: </b></p><p>  將信源消息符號(hào)按其概率從大到小排列</p><p>  確定滿足下列不等式的整數(shù)碼長(zhǎng)Ki</p><p>  令P1=0,計(jì)算第i個(gè)消息的累加概率</p><p>  將累加概率Pi變換成二進(jìn)制數(shù),取小數(shù)點(diǎn)后Ki

7、位為該消息的碼字</p><p>  在香農(nóng)編碼中對(duì)于求解編碼效率主要是依靠這個(gè)公式:R=H(X)/K,其中</p><p><b>  ? </b></p><p>  對(duì)于求解信源熵主要依靠公式: </p><p><b>  設(shè)計(jì)流程圖</b></p><p><

8、b>  1、統(tǒng)計(jì)信息熵</b></p><p><b>  2、香農(nóng)編碼</b></p><p><b>  程序運(yùn)行及結(jié)果</b></p><p><b>  1、統(tǒng)計(jì)信息熵</b></p><p><b>  2、香農(nóng)編碼</b>&l

9、t;/p><p><b>  心得體會(huì)</b></p><p>  這真是一次有意義的學(xué)習(xí)旅程。在設(shè)計(jì)期間,我和我的團(tuán)隊(duì)一直沉浸于探索、探討之中,各種有意思的想法層出不窮。我們總是想盡可能的把課程設(shè)計(jì)做的足夠的完美,足夠的精彩,可是同時(shí)又不得不面臨一個(gè)又一個(gè)的技術(shù)難題。有些經(jīng)過我們的努力,通過不斷地修改不斷的翻閱資料得以解決,可是仍有好多的的問題是我們苦思冥想所參索不透的

10、!真是知識(shí)用時(shí)方恨少??!</p><p>  課程設(shè)計(jì)很是考察個(gè)人能力和團(tuán)隊(duì)合作協(xié)調(diào)能力,在面對(duì)自己所不熟悉甚至不了解的問題時(shí),是怎樣一步步的設(shè)計(jì)完成給定的任務(wù),及時(shí)有成效的解決面臨的問題的。從整體的分析設(shè)計(jì)到后面語句變量的敲定最終完成課題是對(duì)自己極其有益的鍛煉,從中收獲的不僅是知識(shí)上的,也是學(xué)習(xí)經(jīng)驗(yàn)的積累和思維能力的提升,雖然一次課程設(shè)計(jì)任務(wù)不是那么繁重,可是認(rèn)真去完成其中的一個(gè)個(gè)細(xì)節(jié)也是一種難得的體驗(yàn)。還有就

11、是在此過程中,經(jīng)常遇到自己不能解決的問題,就會(huì)請(qǐng)教其他組員,一起共同討論,直到解決,這是的我們充分認(rèn)識(shí)到了團(tuán)隊(duì)協(xié)作的重要性,也體驗(yàn)到了在問題得到解決的時(shí)候所獨(dú)有的那份喜悅。也體會(huì)到了與隊(duì)友的合作更是一件快樂的事情,只有彼此都付出,彼此都努力維護(hù)才能將作品做的更加完美。</p><p>  在此次課程設(shè)計(jì)中,我們主要是做了統(tǒng)計(jì)信源熵與香農(nóng)編碼這兩個(gè)題目,初一看題目感覺應(yīng)該很簡(jiǎn)單,但真正的去做的時(shí)候才發(fā)現(xiàn)并不是想象的

12、那么簡(jiǎn)單,本次課設(shè)的困難主要集中在程序的編寫上。我們團(tuán)隊(duì)是基于C語言編寫的程序。C語言雖然一直都在用,可每次都感覺非常難。雖然我們的思路是正確的、明確的,可是由于變量的定義,語法的不規(guī)范,以及指針的指向錯(cuò)誤等等一系列問題阻礙了我們走向勝利。不過我們是不會(huì)輕易放棄的。我們起早貪黑,熬夜到半夜一點(diǎn),翻書翻了好幾本。</p><p>  我認(rèn)為本次課程設(shè)計(jì)是成功的,在這學(xué)期的課程設(shè)計(jì)中,在收獲知識(shí)的同時(shí),還收獲了閱歷,

13、收獲了成熟,在此過程中,我們通過查找大量資料,請(qǐng)教學(xué)長(zhǎng),以及不懈的努力,不僅培養(yǎng)了獨(dú)立思考,在各種其它能力上也都有了提高。更重要的是,在課程設(shè)計(jì)上,我們學(xué)會(huì)了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對(duì)社會(huì)的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]曹雪虹,張宗橙.信息論與編碼.北

14、京:清華大學(xué)出版社,2009.</p><p>  [2]楊永國(guó),張冬明.Visual C++6.0實(shí)用教程.北京:清華大學(xué)出版社,2007.</p><p>  [3]賈宗璞,許合利.《C語言程序設(shè)計(jì)》人民郵電出版社.2014.</p><p><b>  附錄</b></p><p><b>  1、統(tǒng)計(jì)信

15、息熵</b></p><p>  #include <stdio.h></p><p>  #include <math.h></p><p>  #include <stdlib.h> </p><p>  #define N 1000</p><p>  int m

16、ain(void)</p><p><b>  { </b></p><p>  char s[N],M[N]; </p><p>  int i = 0,j=0,n=0,L=0; </p><p>  int len, num[95] = {0}; </p><p>  dou

17、ble result=0,p[95]= {0}; </p><p>  FILE *f; </p><p>  char temp[N]; </p><p><b>  char c;</b></p><p>  int sum=0;</p><p>  printf("p

18、lease input an essay:\n"); </p><p><b>  gets(s); </b></p><p>  sum=strlen(s);</p><p>  printf("%d",sum);</p><p>  for(i=0; i<sum; i++)<

19、;/p><p><b>  { </b></p><p>  if(s[i]>=' '&&s[i]<='~')</p><p>  num[s[i]-32]++;</p><p><b>  }</b></p><p>

20、;  printf("英文文本文件中各字符數(shù)量:\n");</p><p>  for(j=0; j<95; j++)</p><p><b>  { </b></p><p>  M[j]=num[j]; </p><p>  printf("%4c:%d\t",j+32,

21、M[j]);/*輸出格式,%4c在該字符前在空三個(gè)空格*/</p><p><b>  L++; </b></p><p>  if(L==15)/*輸出格式,每行十五個(gè)字符*/</p><p><b>  {</b></p><p>  printf("\n");

22、</p><p><b>  L=0;</b></p><p><b>  } </b></p><p><b>  } </b></p><p>  /*****計(jì)算各個(gè)字符出現(xiàn)概率****/ </p><p>  printf(&quo

23、t;\n文本文件中各個(gè)字符概率:\n");</p><p>  for(i=0; i<95; i++)</p><p><b>  { </b></p><p>  p[i]=(double)num[i]/sum; </p><p>  printf(" P(%c)=%f\t",i

24、+32,p[i]);</p><p><b>  n++;</b></p><p>  if(n==5)/*輸出格式,每行五個(gè)字符概率*/</p><p><b>  { </b></p><p>  printf("\n");</p><p>

25、;<b>  n=0;</b></p><p><b>  }</b></p><p><b>  } </b></p><p>  for(i=0; i<95; i++) /*計(jì)算信源熵*/</p><p><b>  { </b></p

26、><p>  if (p[i]!=0) </p><p>  result=result+p[i]*log(p[i])*1.433;/*信源熵,I(x)=-logp(x)*/</p><p><b>  } </b></p><p>  result=-result; </p><p>  print

27、f("信源熵為:%f",result); </p><p>  printf("\n");</p><p>  return 0; </p><p><b>  } </b></p><p><b>  2、香農(nóng)編碼</b></p><p

28、>  #include<stdio.h> </p><p>  #include<math.h> </p><p>  void main() </p><p><b>  { </b></p><p>  int i,n, j,k; </p><p>  fl

29、oat sum=0;</p><p>  float b[100]={0};</p><p>  float p[100]={0}; </p><p>  float m,H1=0,H2=0; </p><p>  float Pi[100]={0}; </p><p>  int L[100]; </p

30、><p>  char c[100][100]; </p><p>  printf("輸入X的個(gè)數(shù) \n"); </p><p>  scanf("%d",&n); </p><p>  printf("\n"); </p><p>  printf

31、("輸入P[i]的概率分布\n"); </p><p>  for(i=0;i<n;i++) </p><p>  scanf("%f",&p[i]); </p><p>  for(i=0;i<n;i++) </p><p>  sum=sum+p[i]; </p&g

32、t;<p>  if (fabs(sum-1) > 1e-6) </p><p><b>  { </b></p><p><b>  sum=0;</b></p><p>  printf("錯(cuò)誤輸入,請(qǐng)重新輸入\n"); </p><p>  

33、printf("輸入X的個(gè)數(shù)\n"); </p><p>  scanf("%d",&n); </p><p>  printf("\n"); </p><p>  printf("輸入P[i]的概率分布\n"); </p><p>  for

34、(i=0;i<n;i++) </p><p>  scanf("%f",&p[i]); </p><p>  for(i=0;i<=n;i++) </p><p>  sum=sum+p[i]; </p><p><b>  }</b></p><p

35、>  for(j=0;j<n-1;j++) </p><p><b>  { </b></p><p>  for(i=0;i<n-1-j;i++) </p><p>  if(p[i]<p[i+1]) </p><p><b>  { </b><

36、;/p><p><b>  m=p[i];</b></p><p>  p[i]=p[i+1];</p><p>  p[i+1]=m; </p><p><b>  }</b></p><p><b>  }</b></p><p>

37、;  Pi[0]=0; </p><p>  for(j=1;j<n+1;j++) </p><p><b>  { </b></p><p>  Pi[j]=Pi[j-1]+p[j-1];</p><p><b>  } </b></p><p>  for

38、(i=0;i<n;i++) </p><p><b>  { </b></p><p>  m=log(1/p[i])/log(2); </p><p><b>  b[i]=m;</b></p><p>  if(m==(int)m) </p><p>  

39、L[i]=(int)m; </p><p><b>  else </b></p><p>  L[i]=(int)(m+1); </p><p><b>  } </b></p><p>  for(i=0;i<n;i++) </p><p><b>  

40、{ </b></p><p><b>  m=Pi[i]; </b></p><p>  for(k=0;k<L[i];k++) </p><p><b>  { </b></p><p><b>  m=m*2.00;</b></p>

41、<p>  if(m>=1) </p><p><b>  { </b></p><p>  m=m-1.00; </p><p>  c[i][k]='1'; </p><p><b>  } </b></p><p

42、><b>  else </b></p><p>  c[i][k]='0'; </p><p><b>  } </b></p><p><b>  }</b></p><p>  printf("P[i]序列為 累加概率pi為 -logp(

43、x)為 碼長(zhǎng)L為\t");</p><p>  printf(" 碼字為\n"); </p><p>  for(i=0;i<n;i++) </p><p><b>  { </b></p><p>  printf("%5.2f\t %5.2f\t\t %5.2

44、f\t\t%d\t",p[i],Pi[i],b[i],L[i]); </p><p>  for(k=0;k<L[i];k++) </p><p>  printf(" %c",c[i][k]); </p><p>  printf("\n");</p><p><b>  }

45、 </b></p><p>  for(i=0;i<n;i++) </p><p><b>  { </b></p><p>  H1=H1-p[i]*log10(p[i])/log10(2); </p><p>  H2=H2+p[i]*L[i]; </p><p>&l

46、t;b>  }</b></p><p>  printf("信息熵為:%0.3f\n",H1);</p><p>  printf("平均碼長(zhǎng)為:%0.3f\n",H2);</p><p>  printf("編碼效率為:%0.3f\n",H1/H2); </p><p

溫馨提示

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

評(píng)論

0/150

提交評(píng)論