复习终于进入了编码的学习,笔者同时学习通信原理和信息论的时候觉得理论很完备,但是在复习的时候才发现信息论和通信原理十分割裂,前四章着重讲解了信源信道数学模型的严格性,但是在隔壁的通信原理当中我们早已用着香农公式把信道容量、误码率算的明明白白,再回头来看信息论的内容,不免觉得过于底层。后四章为编码理论建立了严格的数学模型,但殊不知在通信原理里当中我们已经学习了非常多非常实用的编码,信源编码、加密编码、信道编码,层层递进,此时再来讨论在无失真条件下、在噪声条件下,到底能不能编码,就显得有些颠倒。
所以,信息论确实更像一门数学课,只是为了证明存在而来,通信原理更像站在巨人的肩膀上,指明了我们现在应该用何种办法进行编码。
第五章-无失真编码定理
第五章和第八章十分相似,它们都是信源编码,没错信息论前八章只研究了信源编码,而且我们耳熟能详的HDB3码,m序列都是通信系统中的其他编码,它甚至都没讲到线性分组码,显得内容极其单薄。
第五章主要是在讲一个事情:香农第一定理,数学证明十分复杂,不会,也不考,大白话就是在无失真的条件下,我们总能找到一种编码方式,以最少的字符传输信息。那这种编码方式就叫最佳码,也称之为紧致码。那我们后面也知道了,霍夫曼码就是一种非常高效和简单的紧致码。
同时还有等长码、变长码、奇异码、非奇异码等等概念,一个非常重要的概念是唯一可译码,大白话就是这种码怎么发失去同步了也能唯一译出。
等长编码定理
一个熵为H(S)无记忆信源,对它发出的N长度序列进行编码,使用一个个符号的码符号集,编成一个长度为l的新序列,对于任意小的有:
即可实现无失真编码,
这个公式那叫一个难理解啊,特别是书上说从个符号中选取个码元组成,看到这里我心里一想,哦有冗余度有最小码距可以检错纠错是吧,再一看,不对啊我这章是无失真编码啊。细品之下才知道,这是选取次,组成一个长度为序列,把这个公式变形就会很直观:
编码后的信息量要大于编码前的,才能实现无失真编码,你看这多好理解。
唯一可译码和即时码
这里开始讨论的都是变长码了,唯一可译码的严格判断方法有很多,比较实用的就是尾随后缀法,把所有码字当作前缀,用其他码字减去看看有没有后缀,把后缀放入一个新的尾随后缀集,再从尾随后缀集中选取序列,再与码字比较,将尾随后缀的尾随后缀放入集中,以此类推直到全部遍历。如果尾随后缀集中有的序列是许用码字,那就不是唯一可译码,反之就是。
唯一可译码又叫在异前置码/异字头码。
即时码的充要条件是没有任何完整的码字是其他码字的前缀。那么可以通过画树图进行证明,许用码字都是叶节点就是即时码。

书上这个图我觉得非常清晰。
变长编码定理
和等长编码基本没啥区别(从数学角度上区别还是很大的),平均码长代替上述
紧致码的平均码长不一定就等于信息熵,紧致码的定义是它的平均码长小于其他所有编码,有时候信息冗余度是不可避免的。