哈夫曼编码及Matlab实现.pptxVIP

  • 8
  • 0
  • 约小于1千字
  • 约 3页
  • 2020-09-11 发布于广东
  • 举报
哈夫曼编码及 Matlab 实现;哈夫曼编码 Matlab 代码: p=[0.2,0.19,0.18,0.17,0.15,0.1,0.01]; p=sort(p,descend);%降序排列 H=sum(-p.*log2(p));%求得信息熵 n=length(p);%离散信源长度 q=p; m=zeros(n-1,n); for i=1:n-1%对第一行进行编码 [q,l]=sort(q); m(i,:)=[l(1:n-i+1),zeros(1,i-1)]; q=[q(1)+q(2),q(3:n),1]; end for i=1:n-1 c(i,:)=blanks(n*n); end c(n-1,n)=1; c(n-1,2*n)=0; for i=2:n-1 c(n-i,1:n-1)=c(n-i+1,n*(find(m(n-i+1,:)==1))... -(n-2):n*(find(m(n-i+1,:)==1))); c(n-i,n)=1;%在支路的第一个元素最后补 1 c(n-i,n+1:2*n-1)=c(n-i,1:n-1); c(n-i,2*n)=0;%在支路的第一个元素最后补 0 for j=1:i-1 c(n-i,(j+1)*n+1:(j+2)*n)=c(n-i+1,... n*(find(m(n-i+1,:)==j+1)-1)+1:n*find(m(n-i+1,

文档评论(0)

1亿VIP精品文档

相关文档