- 3
- 0
- 约4.69千字
- 约 6页
- 2016-11-29 发布于江西
- 举报
信息论 哈弗曼码程序new
clear all;
fprintf(单符号信源:\n a1 a2 a3 a4 a5 a6 a7\n);
fprintf(各字符概率:\n);
A=[0.20 0.19 0.18 0.17 0.15 0.10 0.01]
I=A*A;
BB=I(:);
Q=BB;
H=0;
T=Q;
[m,n]=size(Q);
B=zeros(n,n-1);%空的编码表(矩阵)
for i=1:n
B(i,1)=T(i);%生成编码表的第一列
end
r=B(i,1)+B(i-1,1);%最后两个元素相加
T(n-1)=r;
T(n)=0;
T=fliplr(sort(T));
t=n-1;
for j=2:n-1 %生成编码表的其他各列
for i=1:t
B(i,j)=T(i);
end
K=find(T==r);
B(n,j)=K(end);%从第二列开始,每列的最后一个元素记录特征元素在该列的位置
r=(B(t-1,j)+B(t,j));%最后两个元素相加
T(t-1)=r;
T(t)=0;
T=fliplr(sort(T));
t=t-1;
end
END1=sym([0,1]);%给最后一列的元素编码
END=END1;
t=3;
原创力文档

文档评论(0)