Advertisement

谈谈编码 | 信息论

阅读量:

编码的基本过程

假使我们现在需要发送一段英文文字以便于传输这些信息的话就需要对其进行相应的数据编码处理。这里的文本内容包括:"I love coding." 在开始编码工作之前我们需要先确定使用的码符号体系其中最常见的码符号系统由二进制数字组成即使用包含两个不同状态(如" ")的信息位来表示数据内容。这样一来通过将不同的二进制数字组合与英语语句中的每个字母、空格等元素一一对应我们就可以完成整个信息传递过程的基本要求。通常情况下,默认采用四位二进制数作为标准即每一位都是一个独立的数据单元比如" 个单位长度或者某种特定的时间间隔等等以此为基础我们可以建立一套完整的字符到代码之间的映射关系表。举个简单的例子在这个时候我们可以设定每四个连续的信息位作为一个完整的代码单元比如" 个零位就代表着大写字母"I"而一个零位后面跟着三个一就是空格以此类推这种方法能够有效地将复杂的语言文字转化为便于计算机处理的形式从而实现了从人类语言到机器指令的基本转换过程

写个表格吧,清晰一点:

英文字母 代码
I 0000
空格 0001
l 0010
o 0011
v 0100
e 0101
c 0110
d 0111
i 1000
n 1001
g 1010

okay, 每个字母与空格都有对应的代码,这就是编码的第一步.我们可以将需要编码的字母与空格统称为"符号".

把他们组合起来,英文语句"I love coding" 就变成了码长为4的代码:

复制代码
    0000000100100011010001010001011000110111100010011010

随后你可以向你的室友解释道:"我通过拍桌子表示为二进制中的0"接着"我通过击掌则表示为1"希望你能理解我的意思哦"接着你开心地开始频繁地进行拍打动作而室友则认真地将每次动作都记录下来按照编码表格将每组动作转换为4位二进制数字和一个特定符号最终成功解读出了其中隐藏的信息原来你在用这种方式进行简单的编程练习哈哈这种有趣又简单的方式真有趣味性哦

一些数学的表示方法

符号集

英文语句'I love coding''由字符构成。把字符组成的这个整体称为'符号组'(使用大写字母 S 表示):

这是一个实例,一般表示符号集的方法是:

q 说明集合里一共有 个元素。

码符号集

在之前的示例中,请问什么是码符号?它是由0和1构成的数值系统。为了便于讨论,在这里我们再定义一个binary symbol set:X = \{ 0, 1\}

同样它是一个实际的例子,一般表示码符号集的方法是:

我们的老师告诉我们,我们可以用变量r来表示码符号的数量.然而,在某些特定情况下(尽管偶尔会出现符号滥用的现象),这个概念在后续章节中将被详细阐述.

代码组

这些类似于 0001 的编码属于我们的代码库。其中 ... 表示字母 I ,而 ... 则表示空格。我们可以将所有这些编码整合到同一个集合中,并称这个集合为‘代码组’。

标准写法:

此处X代表代码的个数。能够发现这个X在上文中出现过。于是我们建立起联系:符号数量与代码数量一致,在逻辑上是正确的。编码时将每个符号分配一个独特的代码。因此它们必然对应。

每个代码 w_i 由若干个基本符号构成,在这种情况下,则是由两个基本符号0和1所构成;举例来说,则是以 w_1 为例。

标准写法:

你可以放大点看,最后一个元素的下标是 i_ll表示码长。

在上述例子中 l = 4. 当 i=1 的时候:

我们有 x_{1_1} = x_{1_2} = x_{1_3} = x_{1_4} = 0.

从翻译上看编码理论

信息传输既涉及编码也涉及解码。两者缺一不可。我们设计的这种编码方案的一个优势是确保每个码字长度一致,并且在传递过程中不会丢失任何信息。编码员对操作流程非常熟悉,并且能够快速识别出错点。每次传递四个数字时会自动进行一次解码运算,并将结果反馈给编排人员以便进一步处理。操作流程清晰直接明了可靠性极高而且错误率几乎可以忽略不计因此我们可以将其命名为'即时码'因为每个码字都是独一无二的只有它才能被解码成指定符号从而保证了整个系统的唯一可译性。

唯一可译码的条件

信源推出了 套符号系统,其码本包含 个码元(亦称作二进制位),每条代码具有相同的长度;在满足存在唯一的可译编码条件的情况下.

基于我们之前提到的'I love coding'的例子,在信息论中我们讨论了相关编码问题。具体而言,在该系统中共有m=5个符号需要通过二进制序列进行编码表示;其中每个字符对应的二进制序列由0和1组成(即码符号仅由0和1组成),因而生成了n=32种不同的二进制序列(即码符号集大小为n=32)。根据计算可知,在使用k位长度的编码时会有n=32种不同的组合结果;为了保证唯一可译性要求,则必须满足不等式关系:左边设为 q=5 ≤ 右边计算得出 r^k = 2^5 = 32;显然满足 q ≤ r^k 的条件关系因而该编码方案满足唯一可译性要求。

信源拓展后的编码

为了巩固所学知识,请回顾一下扩展的相关概念。最初情况下,在信息系统中使用的符号仅包含两个基本元素——0和1。当进行二次扩展时能够提供的符号数量是多少?具体来说就是四个不同的组合:00、01、10、11。类似地,在进行三次扩展时可获得的符号数量为八种:每个位置上的二进制位都有两种可能性(即两种选择),因此总共有 2^3 = 8 种不同的组合方式。经过N次扩展后所能提供的不同符号总数为 2^N 种(其中每个位置上的二进制位都有两种可能性)。如果最初的情况下信源能够发送q种不同的原始信息,则经过N次拓展后就可以发送出 q^N 种不同的信息量。

举个例子啊,我们有符号集 :

二次拓展以后就有了 4^2=16 个元素,新元素用 \alpha 来表示,于是有:

全部评论 (0)

还没有任何评论哟~