資源簡(jiǎn)介
用matlab來(lái)實(shí)現(xiàn)n元的霍夫曼編碼,元數(shù)n任意輸入,概率個(gè)數(shù)任意輸入?;舴蚵幋a(Huffman Coding)是一種編碼方式,是一種用于無(wú)損數(shù)據(jù)壓縮的熵編碼(權(quán)編碼)算法。
代碼片段和文件信息
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(‘輸入信源符號(hào)的個(gè)數(shù)?N?=?‘);
p?=?input(‘信源符號(hào)概率?P?=?‘);
s1?=?sum(p(1:N));
if?(s1<=0.99999999||s1>=1.00000001)
error
end
r?=?input(‘輸入元數(shù)?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???%編碼過(guò)程
????for?j=1:r
????????c(js+2-
評(píng)論
共有 條評(píng)論