久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7662|回復: 1
收起左側

MATLAB費諾編碼實驗報告與源碼

[復制鏈接]
ID:350917 發表于 2018-6-13 12:34 | 顯示全部樓層 |閱讀模式
實驗三 費諾編碼
一、實驗目的和任務
  • 理解信源編碼的意義;
  • 熟悉 MATLAB程序設計;
  • 掌握費諾編碼的方法及計算機實現;
  • 對給定信源進行費諾編碼,并計算編碼效率;
二、實驗原理介紹
給定某個信源符號的概率分布,通過以下的步驟進行費諾編碼
1、信源符號按概率從大到小排列;
2、將依次排列的信源符號按概率值分為兩大組,使兩個組的概率之和近似相同,并對各組賦予一個二進制碼元“0”和“1”。
3、將每一大組的信源符號再分為兩組,使劃分后的兩個組的概率之和近似相同,并對各組賦予一個二進制符號“0”和“1”。
4、如此重復,直至每個組只剩下一個信源符號為止。
5、信源符號所對應的碼字即為費諾碼。            
三、實驗設備介紹
1、計算機
2、編程軟件MATLAB6.5以上

四、實驗內容和步驟

編程如下;
  1. A=[0.4,0.3,0.1,0.09,0.07,0.04];
  2. A=fliplr(sort(A));%降序排列
  3. [m,n]=size(A);
  4. for i=1:n
  5. B(i,1)=A(i);%生成B的第1列
  6. end
  7. %生成B第2列的元素
  8. a=sum(B(:,1))/2;
  9. for k=1:n-1
  10. if abs(sum(B(1:k,1))-a)<=abs(sum(B(1:k+1,1))-a)
  11. break;
  12. end
  13. end
  14. for i=1:n%生成B第2列的元素
  15. if i<=k
  16. B(i,2)=0;
  17. else
  18. B(i,2)=1;
  19. end
  20. end
  21. %生成第一次編碼的結果
  22. END=B(:,2)';
  23. END=sym(END);
  24. %生成第3列及以后幾列的各元素
  25. j=3;
  26. while (j~=0)
  27. p=1;
  28. while(p<=n)
  29. x=B(p,j-1);
  30. for q=p:n
  31. if x==-1
  32. break;
  33. else
  34. if B(q,j-1)==x
  35. y=1;
  36. continue;
  37. else
  38. y=0;
  39. break;
  40. end
  41. end
  42. end
  43. if y==1
  44. q=q+1;
  45. end
  46. if q==p|q-p==1
  47. B(p,j)=-1;
  48. else
  49. if q-p==2
  50. B(p,j)=0;
  51. END(p)=[char(END(p)),'0'];
  52. B(q-1,j)=1;
  53. END(q-1)=[char(END(q-1)),'1'];
  54. else
  55. a=sum(B(p:q-1,1))/2;
  56. for k=p:q-2
  57. if abs(sum(B(p:k,1))-a)<=abs(sum(B(p:k+1,1))-a);
  58. break;
  59. end
  60. end
  61. for i=p:q-1
  62. if i<=k
  63. B(i,j)=0;
  64. END(i)=[char(END(i)),'0'];
  65. else
  66. B(i,j)=1;
  67. END(i)=[char(END(i)),'1'];
  68. end
  69. end
  70. end
  71. end
  72. p=q;
  73. end
  74. C=B(:,j);
  75. D=find(C==-1);
  76. [e,f]=size(D);
  77. if e==n
  78. j=0;
  79. else
  80. j=j+1;
  81. end
  82. end
  83. B
  84. A
  85. END
  86. for i=1:n
  87. [u,v]=size(char(END(i)));
  88. L(i)=v;
  89. end
  90. avlen=sum(L.*A)
  91. H=-sum(A.*log2(A))%輸出信息熵
  92. p=H/avlen %輸出編碼效率
復制代碼


結果如圖:
  • 實驗結論與心得
通過這次費諾碼編程的實驗,使我學到了不少實用的知識,實踐與課堂知識相結合使學習知識得以運用,知識點學的更透徹了。更重要的是,做實驗的過程,思考問題的方法,這與做其他的實驗是通用的,真正使我們受益匪淺。

完整的Word格式文檔51黑下載地址:
信息論編碼實驗5416546464184168418541(2).doc (55.54 KB, 下載次數: 14)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:151893 發表于 2019-5-15 17:48 | 顯示全部樓層
好像有bug,輸入序列為[0.2,0.2,0.2,0.2,0.2]或[ones(1,10)*0.1]這樣的序列時進入死循環。。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频一区二区三区四区国 | 亚洲欧洲综合av | 三级av网址| 中文字幕av在线 | 天天操精品视频 | 欧美日韩在线一区二区 | 日韩福利 | 日韩视频免费在线 | 神马福利| 久久久久久久国产 | 国产精品视频网 | 美女黄视频网站 | www.精品国产 | 一区二区三区免费 | 久久成人国产精品 | 五月激情综合 | 国产精品久久久久久影视 | 欧洲一区在线观看 | 女人av| a精品视频 | 亚洲高清在线观看 | 久久久久久av | 午夜爽爽男女免费观看hd | 久久精品亚洲成在人线av网址 | 亚洲啊v | 麻豆久久久久久 | 欧美黄色精品 | 91精品国产91久久久久久 | 亚洲黄色av网站 | 午夜精品视频在线观看 | a级在线免费观看 | 精品视频在线免费观看 | 日韩中文字幕 | 一区二区三区在线 | 夜夜精品浪潮av一区二区三区 | 黄色网页在线观看 | 午夜播放器在线观看 | 亚洲国产成人精 | 久久久久久亚洲国产精品 | 亚洲精品91| 久久精品一级 |