欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: MATLAB費(fèi)諾編碼實(shí)驗(yàn)報(bào)告與源碼 [打印本頁]

作者: April112    時(shí)間: 2018-6-13 12:34
標(biāo)題: MATLAB費(fèi)諾編碼實(shí)驗(yàn)報(bào)告與源碼
實(shí)驗(yàn)三 費(fèi)諾編碼
一、實(shí)驗(yàn)?zāi)康暮腿蝿?wù)
二、實(shí)驗(yàn)原理介紹
給定某個(gè)信源符號(hào)的概率分布,通過以下的步驟進(jìn)行費(fèi)諾編碼
1、信源符號(hào)按概率從大到小排列;
2、將依次排列的信源符號(hào)按概率值分為兩大組,使兩個(gè)組的概率之和近似相同,并對(duì)各組賦予一個(gè)二進(jìn)制碼元“0”和“1”。
3、將每一大組的信源符號(hào)再分為兩組,使劃分后的兩個(gè)組的概率之和近似相同,并對(duì)各組賦予一個(gè)二進(jìn)制符號(hào)“0”和“1”。
4、如此重復(fù),直至每個(gè)組只剩下一個(gè)信源符號(hào)為止。
5、信源符號(hào)所對(duì)應(yīng)的碼字即為費(fèi)諾碼。            
三、實(shí)驗(yàn)設(shè)備介紹
1、計(jì)算機(jī)
2、編程軟件MATLAB6.5以上

四、實(shí)驗(yàn)內(nèi)容和步驟

編程如下;
  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. %生成第一次編碼的結(jié)果
  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 %輸出編碼效率
復(fù)制代碼


結(jié)果如圖:
通過這次費(fèi)諾碼編程的實(shí)驗(yàn),使我學(xué)到了不少實(shí)用的知識(shí),實(shí)踐與課堂知識(shí)相結(jié)合使學(xué)習(xí)知識(shí)得以運(yùn)用,知識(shí)點(diǎn)學(xué)的更透徹了。更重要的是,做實(shí)驗(yàn)的過程,思考問題的方法,這與做其他的實(shí)驗(yàn)是通用的,真正使我們受益匪淺。

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



作者: 一毛零logo    時(shí)間: 2019-5-15 17:48
好像有bug,輸入序列為[0.2,0.2,0.2,0.2,0.2]或[ones(1,10)*0.1]這樣的序列時(shí)進(jìn)入死循環(huán)。。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1