我们在上一讲说道码字长度相等的情况下称为等长编码,而我们根据信源符号出现的概率大小可以对其进行不等长编码。
最常见的不等长编码的例子就是摩尔斯电码,莫尔斯电码都是用点和划组成。我们规定点用“1”表示,划用“111”表示,相邻的点或者划之间用“0”隔开,每个字母的结束用“000”标识。
例如对于字母“E”,在莫尔斯电码中是“点”,那么根据上述的编码规则,“E”对应的是1000;对于字母“J”,在莫尔斯电码中是“点划划划”,“J”对应的是1011101110111000。观察E和J的编码可以发现,其编码长度不同,这就是所谓的不等长编码,为什么会出现E短J长的结果呢?其实在英文中E要比J出现的概率更大,经常出现的字母就变换为较短的数字序列,不经常出现的字母就变换为较长的数字序列。
一、平均码长
我们使用平均码长来衡量编码的效率,我们希望平均码长尽可能得小。概率大的事件用短字码就可以实现。
二、不等长码的唯一可译性
1、条件
对于等长码而言,如果接收端收到一串序列,每个码字的长度相等,将受到的序列按照此长度进行划分,再根据译码表进行译码即可、
但是对于不等长码而言,要想保证唯一可译性,首先要保证每个消息都至少有一个码字与之对应,且不同的消息对应不同的码字;其次因为不能根据长度划分,要想知道在一串序列中一个消息对应的码的起始位置必须要保证码字的分点唯一确定,不能