- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
哈夫曼编码-信息论课程设计
信
息
论
课
程
设
计
实
验
报
告
专业班级:信计0802
姓名:刘建勋
学号:0808060217
目录:
1.课题描述-----------------------------------------------------------------------------------------3
2.信源编码的相关介绍---------------------------------------------------------------------3
3.哈夫曼编码-------------------------------------------------------------------------------------3
3.1 哈夫曼编码算法-----------------------------------------------------------------------3
3.2 哈弗曼编码的特点--------------------------------------------------------------------4
3.3 哈夫曼实验原理----------------------------------------------------------------------- 4
4.哈夫曼编码的C++实现-----------------------------------------------------------------5
4.1 程序设计-----------------------------------------------------------------------------------5
4.2 运行结果-----------------------------------------------------------------------------------8
总结-----------------------------------------------------------------------------------------------------8
参考文献-------------------------------------------------------------------------------------------------8
1.课题描述
实验类别:
设计性实验
实验目的:
掌握哈夫曼编码原理;
了解哈夫曼码的最佳性;
实验内容:
编程实现二元huffman编码;
2.信源编码的相关介绍:
信源编码的基础是信息论中的两个编码定理:无失真编码定理和限失真编码定理,前者是可逆编码定理的基础。可逆是指当信源符号转换成代码后,可从代码无失真的恢复信源符号。当已知信源符号的概率特性时,可计算它的符号熵,这表示每个信源符号所载的信息量。编码定理不仅证明了必定存在一种编码方法,可是代码的平均长度可任意接近但不低于符号熵,而且还阐明达到这目标的途径,这就是使概率和码长相匹配。无失真编码和可逆编码只适用于离散信源。对于连续信源,编程代码后就无法无失真的恢复原来的连续值,因为后者的取值可有无限多个。此时只能根据率失真编码定理在失真受限制的情况下进行限失真编码。信源编码定理出现以后,编码方法就趋于合理化。
3.哈夫曼编码:
3.1哈夫曼编码算法:
递归算法void HFMCoding(Tree HFMnode, HFMCode, int *m2, int n) {int i, j, m1, m2 ,x1, x2, Init;char *cd;unsigned int c, f;
if (n=1) return;m1 = 2 * n - 1;HFMnode = (Tree)malloc((m+1) * sizeof(HTNode));?
for (i=1; i=n; i++) { //初始化
HFMnode [i].probability=m2[i-1];
HFMnode [i].parent=0;HFMnode [i].lchild=0;
HFMnode [i].rchild=0;}for (i=n+1; i=m; i++) { //初始化HFMnode [i].probability=0;HFMnode [i].parent=-1;HFMnode [i].lchild=-1;HFMnode [i].rchild=-1;? }printf(\n哈
文档评论(0)