- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二元霍夫曼编码- 信息论与编码实验报告
计算机与信息工程学院综合性实验报告
专业:通信工程 年级/班级:2011级信息论与编码6节
根据霍夫曼编码的原理,用MATLAB设计进行霍夫曼编码的程序,并得出正确的结果。
实验仪器或设备
2、MATLAB r2013a。p1 p2 … pq
2、取两个概率最小的字母分别配以0和1两个码元,并将这两个概率相加作为一个新字母的概率,从而得到只包含q-1个符号的新信源S1。
3、对重排后的缩减信源S1重新以递减次序排序,两个概率最小符号重复步骤 2 的过程。
4、不断继续上述过程,直到最后两个符号配以0和1为止。
5、从最后一级开始,向前返回得到各个信源符号所对应的码元序列,即相应的码字。
霍夫曼编码实现程序
function [outnum] lml_huffman a
%主程序,输入一组概率,输出此组概率的霍夫曼编码
%a:一组概率值,如a [0.2 0.3 0.1 0.4]等
%outnum:输出的霍夫曼码,以cell中的字符数组表示
if sum a ~ 1 warning 输入概率之和不为“1”,但程序仍将继续运行
end
[cho,sequ,i,l] probality a ;
global lmlcode %用于输出霍夫曼码,定义为cell型
global cellnum %用于编码的累加计算
cellnum 1;
lmlcode cell l,1 ;
j 1; %第一部分
add_num char;
[l_add] addnum add_num,i,j,l ;
[output,m] disgress sequ,i,j,l,l_add ;
dealnum output,m ; %在全局变量中输出霍夫曼码
j 2; %第二部分
[l_add] addnum add_num,i,j,l ;
[output,n] disgress sequ,i,j,l,l_add ;
dealnum output,n ;
[outnum] comset lmlcode,cho 1,: ;%将概率和编码进行关联
function [output] addnum input,i,j,l
%对概率矩阵中每一行最后两个不为0的数进行编码,即在某个编码后添加0,1或空
%输出:
% input:输入的某个未完成的编码
% i,j :当前检索目标在sequ矩阵中的位置
% l:sequ矩阵的列数
%PS: sequ矩阵在此函数中未用到
%PS:此函数为编码第一步
if j l-i output [input 0];
else if j l-i+1 output [input 1]; else output input; end
end
function [ecode] comset code,pro
%将概率和编码进行关联
%code:已编成的霍夫曼码
%pro:输入的一组概率
%ecode:最终完成的码
l length code ;
ecode cell l,2 ;
for i 1:l lang i length code i ;
end
[a,b] sort lang ;
for i 1:l ecode i,1 code b i ; ecode i,2 pro i ;
end
function [final,a] dealnum imput,m
%整理并在全局变量中输出已完成的霍夫曼码
%输入: imput:程序运算后的生成cell型矩阵
% m:标识数
%输出: final:整理后的霍夫曼码
% a:标识数
global lmlcode
global cellnum
if m 1 lmlcode cellnum imput; cellnum cellnum+1; final ; a ;
else if m 2 [final1,a1] dealnum imput 1,1 ,imput 1,2 ; [final2,a2] dealnum imput 2,1 ,imput 2,2 ; [final3,a3] dealnum final1,a1 ; [final4,a4] dealnum final2,a2 ; final [final3 final4]; a [a3 a4]; else final imput; a m; end
end
function [outnum,p] findsumother sequ,i,j,l,add_num
%当前检索目标在sequ i,j 处为非1时的处理程序,即跳转到下一级进行整理
%输入: sequ:概率转移矩阵
% i,j :当前检索目标在sequ矩阵中的位置
% l:sequ矩阵的列数
% add_num:当前进行的编码
%输出:(与disgress类同)
% ou
您可能关注的文档
最近下载
- 沪教牛津版英语2024七年级上册全册知识清单(记忆版).pdf
- 第六单元+资本主义制度的初步确立+复习课件+2023--2024学年部编版九年级历史上学期.pptx VIP
- 学堂在线 人工智能原理 章节测试答案.docx VIP
- 三年级上册劳动人民版雏菊盆景迎重阳教学设计.docx VIP
- 39《更换造口袋评分标准》.pdf VIP
- 07SD101-8:电力电缆井设计与安装.docx VIP
- 《向阳成长》课件 主题6--10 提高情商--珍爱生命 .pptx
- ETF策略兵器谱系列之四:宏观量化方法下的ETF核心-卫星组合构建.docx VIP
- 公输讲解-课件.ppt VIP
- 2025至2030中国汽车检测行业发展趋势分析与未来投资战略咨询研究报告.docx
文档评论(0)