- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
xxxx学院综合性实验报告
专业:xxxx 年级/班级:xxxx级xxxx—xxxx学年第-一学期
课程名称
信息论与编码
指导教师
本组成员
学号姓名
实验地点
实验时间
项目名称
二元哈夫曼编码
实验类型
综合性
一、实验口的
用Matlab语言编程实现霍夫曼(Huffman)编码。
二、 实验仪器或设备
一台计算机。
MATLAB 软件。
三、 总体设计
将信源消息符号按其出现的概率大小依次排列,pl$p22…2pq
取两个概率最小的字母分别配以0和1两个码元,并将这两个概率相加 作为一个新字母的概率,从而得到只包含q-1个符号的新信源SU
对重排后的缩减信源S1重新以递减次序排序,两个概率最小符号重复步 骤(2)的过程。
不断继续上述过程,直到最后两个符号配以0和1为止。
从最后一级开始,向前返冋得到各个信源符号所对应的码元序列,即相 应的码字。
先生成的编码表
0.4
0.4
0.4
0.4
0.2
0.2
0.4
0.6
0.2
0.2
0.2
0
0. 1
0.2
0
0
0. 1
2
2
2
编码表每列为缩减信源概率
第一列为输入n个信源概率;
第二列为第一次缩减后t=n-l个概率;第(n, 2)元素放置合并元素在 木列中位置;
???
如果输入n个概率,则需要缩减n-l次后,剩下t=2两个概率;
所以编码表可以定义为n行n-l列。
编码表生成后,从最后一列开始编码。
首先最后一列两个元素分别编码为0和1;
对其中某j列,其前t-2个元素编码为j+1列非合并概率移植过來。(问 题,如何知道j二1列中非合并元素的位置?)
第t-1元素和第t个元素为j+1列合并概率编码分别加0和加1。(合并 概率的位置已经在木列最后一个元素中标出)
四、实验步骤
%输入一个概率矩阵p,判断其合理性,如果合理则通过函数调用对其进行哈弗曼编码 function huffman(p)
if sum(p) ~二1 %判断所输入概率矩阵p的元素的和是否为1
display (please input the right numbers!)
return
end
%如果所输入概率矩阵介理,则进行哈弗曼编码
m=size(p, 2);
%b=sort(p, descend,);
b=f1iplr(sort(p));
for i=l:m-1
%p=sort (p, descend); p=fliplr (sort (p)); n=size(p, 2);
a(:, i)二p;
p(n-i)=p(n-i + l)+p(n-i); for j=n-i+l:m
p(j)=o;
end
end
%p中元索个数
%用于般后的输岀
%对输入概率矩阵P进行编码前的准备,用矩阵a记录哈弗曼编码的过程
n=m;
for i=l:m~2
x=a(n-i+l, i)+a(n-i, i); r=find(a(:, i+l)==x); a(n, i+l)=r (end);
end
%矩阵a从第二列开始,每一列的最后一个元索用于保存前次求和后元索所处位置
a
%-
%输出编码衣
%根据a対所输入概率矩阵p进行哈州曼编码
codcl二sym( [0 1]); %给最后一列的元素编码
h二codel;
t 二3;
d二 1;
for j二n-2:-1:1
for i=l:t-2
%控制编码个数,初始为3
%从倒数第二列开始依次对各列元素编码
if il a(i, j)=a(i-l, j) d=d+l;
else
d=l;
end
a (a (n, j+1), j+1)二T ; %对已经编码的赋值为T
temp=a(:,j+1);
x二find(temp==a(i, j));
h(i)=codel (x(d));
end
y=a (n, j+1);
h(t-l) = [char (codel(y)), O]; h(t) = [char(codel (y)), 1];
t=t+l;
codel二h;
end
%排序后的原概率序列
h %编码结果
结果:
? P二[0. 2 0. 19 0. 18 0. 17 0. 15 0. 1 0. 01];
huffman(p)
a
=0. 2000
0. 2000
0. 2600
0. 3500
0. 3900
0.6100
0. 1900
0. 1900
0. 2000
0. 2600
0. 3500
0. 3900
0. 1800
0. 1800
0. 1900
0. 2000
0. 2600
0
0. 1700
0. 1700
0. 1800
0. 1900
0
0
0. 1500
0. 1500
0. 1700
0
0
0
0. 1000
0. 1100
0
0
0
0
0.0100
6. 0000
1.0000
1.0000
1.
您可能关注的文档
最近下载
- 2025年江苏省公务员省考《行测》联考-部分真题(A类).pdf VIP
- 校园消防安全台账范本.docx
- 2024版加油站安全生产管理台账样本.doc VIP
- 精品解析:江苏省南京市玄武外国语学校、科利华中学2022-2023学年八年级下学期期中语文试题(解析版).docx VIP
- PC工法桩专项施工方案 .doc
- foreign language classroom anxiety.pdf VIP
- JT_T 410-2022CN交通运输行政执法标识.pdf
- 标准图集-22TJ310装配式钢筋桁架楼承板系列产品-下册.pdf VIP
- 汽车基础知识在线试题答案2.pdf VIP
- 地质勘查坑探规范.pdf VIP
文档评论(0)