唯一可译码的判别程序实现.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
唯一可译码的判别程序实现

唯一可译码的判别 程序实现 姓名:周浩勇 学号:1023013455 专业:通信工程 一 引言 信源编码的设计准则是, 设计完成的编码必须是唯一可译码才能够被使用。根据唯一可译码的定义: 任意有限长的码元序列, 只能被唯一地分割成一个个的码字, 便被称为唯一可译码[ 2 ] , 希望在得到一组编码之后, 能够判断所设计出来的是否是唯一可译码。唯一可译码存在性的判别, 可以通过Kraft不等式给出唯一可译码存在的充分必要条件, 即: D进制码字集合C = {C1, C2,… ,Cn }, 码集中每一C i ( i =1, 2,…, n) 都是一个D 进制符号串, 设C1, C2,…,Cn 对应的码长分别是L1, L 2,… , Ln , 则存在唯一可译码的充要条件是i≤1 显然, 克劳夫特不等式只涉及唯一可译码的存在问题而不涉及具体的码。它强调的是存在, 但这并不是唯一可译码判断的充要条件。也就是说,唯一可译码一定满足克拉夫特不等式, 但是反之, 满足克拉夫特不等式的码不一定是唯一可译码。 二 算法的实现 目前, 常用的判别唯一可译码的方法有两种: 一种是根据异前缀码来进行判断的方法, 另一种是由A. A. Sardinas和G. W. patterson于1957年提出的算法。以下具体描述这两种算法。 方法一: 根据异前缀码是唯一可译码来进行判断。其步骤如下:首先, 观察是否为非奇异码。若是奇异码, 肯定不是唯一可译码;其次, 计算是否满足K raft不等式。若不满足一 定不是唯一可译码;最后, 将码画成一棵码树图, 观察是否满足异前缀码的码树图的构造, 若满足则是唯一可译码。这种方法的理论基础是异前缀码一定是唯一可译码, 通过经典的Kra ft不等式及码树图进行判别。但它的缺点也是显而易见的, 若不是异前缀码时, 则此方法无法判断是否是唯一可译码。 方法二: 使用A. A. Sardinas和G. W. Patterson设计的判断法。其判断准则为: 计算分组码C 中所有可能的尾随后缀集合F, 观察F 中有没有包含任一码字, 若无则为唯一可译码; 若有则一定不是唯一可译码。算法中的关键为尾随后缀集合F 的构造。步骤如下: (1) 考查C中所有的码字,若Wi是Wj的前缀,则将相应的后缀作为一个尾随后缀放入集合F0中; (2) 考查C和Fi两个集合,若Wj∈C是Wi∈Fi的前缀或Wi∈Fi 是Wj∈C的前缀,则将相应的后缀作为尾随后缀码放入集合Fi+1中; (3)F=∪Fi即为码C的尾随后缀集合; (4) 若F中出现了C中的元素,则算法终止,返回假(C不是唯一可译码);否则若F中没有出现新的元素,则返回真。 本文将以方法二来实现唯一可译码的判别。 一 算法流程: 输入码字集合X0 for 所有Wi,Wj∈X0 if 码字Wi 是码字Wj 的前缀, 即将相应的后缀作为一个尾随后缀放入新集合X1 end if end for for 所有Wi∈X0 for 所有Wj∈ Xn-1 if Wi 是Wj 的前缀, 即将相应的后缀作为一个尾随后缀放入新集合Xn中 else if Wj是Wi的前缀, 即将相应的后缀作为一个尾随后缀放入新集合Xn中 end if end for end for 构造尾随后缀集合X←Xi if 有码字Wi∈X0,Wi∈X,则非唯一可译码 二 流程框图 Y N Y N Y N N Y 三 数据结构: 本文需设计的程序中,码字可用如下结构(即条件限制)表示: char c[100][50] 尾随后缀用如下结构(即条件限制)表示: ch

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档