资源简介
用matlab来实现n元的霍夫曼编码,元数n任意输入,概率个数任意输入。霍夫曼编码(Huffman Coding)是一种编码方式,是一种用于无损数据压缩的熵编码(权编码)算法。
代码片段和文件信息
clc
clear all
% p=[0.14 0.36 0.13 0.12 0.10 0.09 0.04 0.02];
% % p=[0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]
% r=2;
N = input(‘输入信源符号的个数 N = ‘);
p = input(‘信源符号概率 P = ‘);
s1 = sum(p(1:N));
if (s1<=0.99999999||s1>=1.00000001)
error
end
r = input(‘输入元数 r = ‘);
p=fliplr(sort(p));
n1=length(p);
s=ceil((n1-r)/(r-1));
m=(r-1)*s+r-n1;
p=[pzeros(1m)];
n=length(p);
q=p;
for i = 1:s+2 %编码表
[ql]=sort(q);
a(:i)=l;
b1=find(a(:i)==1);
b(i)=b1;
q=[sum(q(1:r))q(r+1:n)ones(1r-1)];
end
c=cell(n);
for i = 1:s+1 %编码过程
for j=1:r
c(js+2-
评论
共有 条评论