信息论霍夫曼香农费诺编码Word文档格式.docx
- 文档编号:16319213
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:8
- 大小:25.38KB
信息论霍夫曼香农费诺编码Word文档格式.docx
《信息论霍夫曼香农费诺编码Word文档格式.docx》由会员分享,可在线阅读,更多相关《信息论霍夫曼香农费诺编码Word文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
(1)初始化,根据符号概率的大小按由大到小顺序对符号进行排序。
(2)把概率最小的两个符号组成一个新符号(节点),即新符号的概率等
于这两个符号概率之和。
(3)重复第2步,直到形成一个符号为止(树),其概率最后等于1。
(4)从编码树的根开始回溯到原始的符号,并将每一下分枝赋值为1,上
分枝赋值为0。
三、实验环境
matlab7.1
四、实验内容
1、对于给定的信源的概率分布,用香农-费诺编码实现图像压缩
2、对于给定的信源的概率分布,用霍夫曼编码实现图像压缩
五、实验过程
1.香农-费诺编码
编码1
functionc=shannon(p)
%p=[0.20.150.150.10.10.10.10.1]
%shannon(p)
[p,index]=sort(p)
p=fliplr(p)
n=length(p)
pa=0
fori=2:
n
pa(i)=pa(i-1)+p(i-1)
end
k=ceil(-log2(p))
c=cell(1,n)
fori=1:
c{i}=”
tmp=pa(i)
forj=1:
k(i)
tmp=tmp*2
iftmp>
=1
tmp=tmp-1
c{i(j)='
1'
else
c{i}(j)='
0'
end
c=fliplr(c)
c(index)=c
编码2
clc;
clear;
A=[0.4,0.3,0.1,0.09,0.07,0.04];
A=fliplr(sort(A));
%降序排列
[m,n]=size(A);
n
B(i,1)=A(i);
%生成B的第1列
end
%生成B第2列的元素
a=sum(B(:
1))/2;
fork=1:
n-1
ifabs(sum(B(1:
k,1))-a)<
=abs(sum(B(1:
k+1,1))-a)
break;
n%生成B第2列的元素
ifi<
=k
B(i,2)=0;
else
B(i,2)=1;
%生成第一次编码的结果
END=B(:
2)'
;
END=sym(END);
%生成第3列及以后几列的各元素
j=3;
while(j~=0)
p=1;
while(p<
=n)
x=B(p,j-1);
forq=p:
ifx==-1
ifB(q,j-1)==x
y=1;
continue;
y=0;
ify==1
q=q+1;
ifq==p|q-p==1
B(p,j)=-1;
ifq-p==2
B(p,j)=0;
END(p)=[char(END(p)),'
];
B(q-1,j)=1;
END(q-1)=[char(END(q-1)),'
a=sum(B(p:
q-1,1))/2;
fork=p:
q-2
ifabs(sum(B(p:
=abs(sum(B(p:
k+1,1))-a);
fori=p:
q-1
B(i,j)=0;
END(i)=[char(END(i)),'
B(i,j)=1;
p=q;
C=B(:
j);
D=find(C==-1);
[e,f]=size(D);
ife==n
j=0;
j=j+1;
B
A
END
[u,v]=size(char(END(i)));
L(i)=v;
avlen=sum(L.*A)
2.
霍夫曼编码
function
c=huffman(p)
n=size(p,2)
ifn==1
c=cell(1,1)
c{1}='
'
return
end
[p1,i1]=min(p)
index=[(1:
i1-1),(i1+1:
n)]
p=p(index)
n=n-1
[p2,i2]=min(p)
index2=[(1:
i2-1),(i2+1:
p=p(index2);
i2=index(i2)
index=index(index2)
p(n)=p1+p2
c{n+1}=strcat(c{n},'
)
c{n}=strcat(c{n},'
index=[index,i1,i2]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息论 霍夫曼 香农 编码
![提示](https://static.bdocx.com/images/bang_tan.gif)