资源简介

用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-

评论

共有 条评论