其他分享
首页 > 其他分享> > 《信息论与编码》学习笔记

《信息论与编码》学习笔记

作者:互联网

信息论与信息编码

文章目录

1. 准备知识和教材

1.1. 学科关联

1.2. 准备知识

1.3. 教材

1.4. 理论体系的简要概述

信息论的核心问题是研究如何让数据从信源高效、可靠的传递到目的地。这里描述的这个过程不仅局限于通信,存储等系统也可以近似看作是一个广义信道。

信息论的相关内容从理论和实践的角度划分为两部分,理论部分称为信息论,实践部分称为信息编码;而从高效性、可靠性角度,信息论以及编码技术所要解决的问题也可以划分为两类,一类是信息压缩,一类是错误校验和纠正。

1.5. 编码技术的举例

1.5.1. 压缩编码

1.5.1.1. 霍夫曼编码

最佳符号编码,Zip文件压缩、PNG、JPEG以及MPEG(这个是视频)等图像文件、MP3、AAC等音频文件使用的压缩编码。当然,这些文件的压缩系统一般是有损和无损压缩一起使用的。比如图像压缩,一般是靠离散余弦变换和小波变换实现的有损压缩。

虽然霍夫曼是最佳的符号编码,但还存在其他编码形式,因为很多情况下并不适合使用符号编码,所以一些其他编码可能性能好的多。

1.5.1.2. 算术编码

据说这个技术比霍夫曼强大得多。目前这个技术面临的障碍是:计算复杂度相对高一些,且IBM持有大量专利。

上面提到的那些文件系统也可以使用算术编码,此外直播系统、电视会议、Flash等也使用的是算术编码。PPM、PAQ压缩文件使用的是算数编码。

1.5.1.3. Lempel-Ziv编码

可能是最流行的压缩编码,这种编码易于实现,且适合于几乎所有类型的输入数据,PNG(实际上是霍夫曼和LZ的结合体)、GIF、PDF使用这个。

1.5.2. 校验编码

1.5.2.1. 汉明码

这个并不是最好的,甚至没有太多优化设计,这个只是第一种出现的相对比较好的信道编码而已(在汉明码之前,主要用的还是重复编码)。

内存在读写过程中仍然在使用汉明码,因为DRAM芯片的读写并不是完全无错误的过程。独立磁盘冗余阵列-2(RAID-2)也使用的是汉明码,这种技术使用多个磁盘存储信息以防止数据损毁(RAID-2,七个硬盘,使用汉明七码,丢失任意一位,都可以无损的恢复原始数据)。

1.5.2.2. BCH编码

这个是一种编码体系和编码方法,这里面最常用的是Reed-Solomon Code,RS码;这个的提出时间是1960年,只比汉明码晚10年。这个码常和卷积码共同使用(RSV,V是Viterbi,卷积码的译码方式),这个RSV几乎是很多涉及校验的行业的黄金准则。这个编码对于突发错误的纠正性能比较好。

条形码,这个可能有许多标准,但至少有一种常用的标准使用了RS码;CD、DVD、蓝光碟也用的是RS编码。RAID-6,相比RAID-2安全性更好。NASA的太空计划也用的是RS码。

虽然这个码性能很好,但仍然没达到信道编码的理论上界(信道容量)。

1.5.2.3. Turbo码

这个是法国人发明的,1993年,可以逼近香农极限(确切来说是香农第二定理的极限)的信道编码(某些参数越高,越靠近香农限)。这个已经被用于3G和4G标准中。

Turbo的编码非常简单,但复杂地方在于解码。解码机中两条反馈线实现对码字的迭代运算处理是这个编码技术的和核心,由于数据在解码机中的流动形式类似与一个涡轮的运转,因此称为Turbo码。

新的NASA太空计划也使用了Turbo码。

1.5.2.4. Gallager码(LDPC,低密度奇偶校验码)

这个也是逼近香农限的编码。最早由Robert G. Gallager在1960年的博士学位论文中提出,但当时的计算机算力无法承受这个编码的要求。到1995年前后,两个人重新发现了这个编码,并发现这个编码的性能不亚于Turbo。

这个用在了10Gbps的以太网、WiFi(IEEE 802.11)、电力载波中。

1.6. 香农信息论的建立过程

1.7. 香农信息论存在的问题

用概率衡量信息是香农信息论的前提研究条件,但概率只是能作为测度函数的诸多测度中的一个。由于是基于概率做研究,一些不能获取概率和统计信息的事物就不能使用信息论研究。

此外,信息论不能衡量主观意义上的信息,也无法衡量智能领域的语义信息。因此后期还发展出了:

2. 信息的度量方法

2.1. 统计信息和语义信息

需要注意的是,信息论是在数字通信背景下产生的,它所处理的信息是information这个词的一个数学解释。由于通信系统、信号处理系统等这些系统更关注的是信息的传递,而不是信息的解读提取,所以信息论中的信息更关注的是information在传递过程中所表现出的性质。这种抽象的信息称为统计信息,核心是信息是减少的不确定度

但在信息的价值是使用,人类利用信息的流程是:产生(总结出来或者直接用传感器接收)、传递(发送、书写、存储)、使用。最关键的一步是使用,但在这一步,信息所表达出的性质和传递中的性质不一样。比如数字图像处理系统,在拥有高性能硬件的基础上,图像处理能获得远超人眼的细节、信噪比,按理来说应该比人眼观察到的信息更多,但数字图像处系统不能理解图像的真正含义,只能获取到一个二进制流。这个特性在通信系统中也有出现,通信系统把信息传递到了,实际上还是人去理解信息的。所以在AI研究中又出现了一个语义信息的定义,更侧重对信息的理解而不是传输。

全信息概念中,传递过程中关注的信息称为语法信息,信源端获取并尝试解释的信息称为语义信息,信宿接收信息并获取有效内容中的信息称为语用信息

2.2. 信源分类

按概率空间分类:

2.3. 信源的信息测度

2.3.1. 自信息

自信息是概率空间中的一列所包含的信息。自信息定义的是获得了一个随机事件的结果,它自身所包含的信息量,定义为:
I ( X = x ) = − log ⁡ 2 [ P ( X = x ) ] I(X=x) = -\log_2\Big[P(X=x)\Big] I(X=x)=−log2​[P(X=x)]
自信息总结起来有几个特性:

自信息是单位是比特,信息熵不是,信息熵是比特/符号。

2.3.2. 信息熵

对于随机信源来说,它的信息量也是随机的,其样本空间包含所有事件的自信息,概率分布就是事件的概率分布。所以要用确定性的数据衡量信源的信息量,需要用统计量或数字特征

2.3.2.1. 熵的起源

熵这种衡量标准起源于热力学物理现象中的不可逆现象。信息学中类比的熵是Boltzmann Entropic,玻尔兹曼熵公式如下:
S = k ln ⁡ Ω S = k \ln \Omega S=klnΩ
这里的 k k k是普朗克加上的,玻尔兹曼的版本中是正比关系;这个 k k k命名为玻尔兹曼常数。这里的 Ω \Omega Ω是系统的微观态数,这个状态数对数的形式和信息学里的熵是一致的。

最先提出熵概念的并不是Boltzmann(1877年),而是Clausius(1854年)。克劳修斯的定义源自Carnot循环中的一个现象。

Carnot Cycle是这样一个热力学过程:

任意热力学循环都可以由若干个无限小的卡诺循环组成,

2.3.2.2. 信息熵定义

香农确实“借鉴”的是玻尔兹曼熵,而且只是单纯的借鉴,并没有意识到这个熵和物理意义上的熵是一个东西。起初香农想换个名字,但和冯诺依曼导论后,冯诺依曼建议就用熵命名,因为这个名词本身足够抽象,更有利于辩论自己的理论。(牛人也逃不开异化,做不到纯粹的科研)

熵是定义在离散型随机变量的概率测度上的,在信息论语境下,常用字母表(Alphabet)指代概率论中样本空间的概念。

熵的定义是:(即自信息的期望,所以单位和自信息是一致的,也是bit)
H ( X ) = − ∑ ∀ x ∈ X p ( x ) log ⁡ 2 p ( x ) H(X) = -\sum_{\forall x\in\mathcal{X}}p(x)\log_2p(x) H(X)=−∀x∈X∑​p(x)log2​p(x)
需要注意一些特殊的要点:

2.3.3. 联合熵

联合熵的定义是:在联合集 X ⋅ Y \mathcal{X}\cdot\mathcal{Y} X⋅Y上,联合自信息的均值,即:
H ( X Y ) = E [ ∀ x ∈ X , y ∈ Y I ( x y ) ] = ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p − 1 ( x , y ) \begin{aligned} H(XY) &= E\Big[\forall_{x\in\mathcal{X},y\in\mathcal{Y}}I(xy)\Big]\\ &= \sum_{x\in\mathcal{X},y\in\mathcal{Y}}p(x,y)\log_2p^{-1}(x,y) \end{aligned} H(XY)​=E[∀x∈X,y∈Y​I(xy)]=x∈X,y∈Y∑​p(x,y)log2​p−1(x,y)​

注意,这里的 X , Y X,Y X,Y都是随机变量,也可以说成集合,所以 X Y XY XY的实际含义是卡氏积。

典型应用场景:

研究扩展信源(注意,不仅可以研究无记忆扩展信源,有记忆的也可以研究,记忆性隐藏在联合概率中了):

假设有一个离散无记忆信源,一共能输出三个符号:
[ X p ( X ) ] = [ x 1 x 2 x 3 1 / 2 1 / 4 1 / 4 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} x_1 && x_2 && x_3\\ 1/2 && 1/4 && 1/4 \end{bmatrix} [Xp(X)​]=[x1​1/2​​x2​1/4​​x3​1/4​]
现在要表示7种状态,这个信源不够,解决办法就是让这个信源生成两次编码,把这两次编码当成一次事件,这样共能表示9种状态。这个二元扩展信源的信息熵就是联合熵。

  • 扩展信源:以一个基本信源为研究对象,生成多个符号,用多个符号的序列表示一条消息。

  • 无记忆扩展信源:扩展出来的多个符号相互独立。无记忆信源扩展出来的状态数一定是满的,如果两个三元信源扩展出的信源状态数不到9个,肯定是有记忆的(因为某些组合不能出现,这些组合的联合概率是0,条件概率也是0,而边界概率却不是0,所以不独立)。此外如果是时间连续信源,一定是有记忆的,不然就是随机噪声了。

    举一个例子,假设一个信源生成0-9数字,随机数就是无记忆扩展信源,电话号码、身份证号就是有记忆扩展信源。

联合熵的单位和熵类似,但它是自信息乘了联合概率,所以应该是比特/n个符号,或者比特/序列。

2.3.4. 条件熵

联合熵的定义是:在联合集 X ⋅ Y \mathcal{X}\cdot\mathcal{Y} X⋅Y上,条件自信息的均值,即:
H ( X ∣ Y ) = E [ I ( X ∣ Y ) ] = ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p − 1 ( x ∣ y ) \begin{aligned} H(X|Y) &= E\Big[I(X|Y)\Big]\\ &= \sum_{x\in\mathcal{X,y\in\mathcal{Y}}}p(x,y)\log_2p^{-1}(x|y) \end{aligned} H(X∣Y)​=E[I(X∣Y)]=x∈X,y∈Y∑​p(x,y)log2​p−1(x∣y)​
由于 p ( x , y ) p(x,y) p(x,y)也可以写成 p ( x ∣ y ) p ( y ) p(x|y)p(y) p(x∣y)p(y)或者 p ( y ∣ x ) p ( x ) p(y|x)p(x) p(y∣x)p(x),所以这个定义也可以改写成:
H ( X ∣ Y ) = E y [ H ( X ∣ y ) ] = ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p − 1 ( x ∣ y ) = ∑ x ∈ X , y ∈ Y p ( x ∣ y ) p ( y ) log ⁡ 2 p − 1 ( x ∣ y ) = ∑ x ∈ X , y ∈ Y p ( y ) [ p ( x ∣ y ) log ⁡ 2 p − 1 ( x ∣ y ) ] = ∑ y ∈ Y p ( y ) [ ∑ x ∈ X p ( x ∣ y ) log ⁡ 2 p − 1 ( x ∣ y ) ] \begin{aligned} H(X|Y) &= E_y\Big[H(X|y)\Big]\\ &= \sum_{x\in\mathcal{X,y\in\mathcal{Y}}}p(x,y)\log_2p^{-1}(x|y)\\ &= \sum_{x\in\mathcal{X,y\in\mathcal{Y}}}p(x|y)p(y)\log_2p^{-1}(x|y)\\ &= \sum_{x\in\mathcal{X,y\in\mathcal{Y}}} p(y)\Big[ p(x|y)\log_2p^{-1}(x|y) \Big]\\ &= \sum_{y\in\mathcal{Y}} p(y)\Big[\sum_{x\in\mathcal{X}}p(x|y)\log_2p^{-1}(x|y)\Big]\\ \end{aligned} H(X∣Y)​=Ey​[H(X∣y)]=x∈X,y∈Y∑​p(x,y)log2​p−1(x∣y)=x∈X,y∈Y∑​p(x∣y)p(y)log2​p−1(x∣y)=x∈X,y∈Y∑​p(y)[p(x∣y)log2​p−1(x∣y)]=y∈Y∑​p(y)[x∈X∑​p(x∣y)log2​p−1(x∣y)]​
或者用另一种方法拆分联合概率,但这样做没有意义:
H ( X ∣ Y ) = E [ I ( X ∣ Y ) ] = ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p − 1 ( x ∣ y ) = ∑ x ∈ X , y ∈ Y p ( y ∣ x ) p ( x ) log ⁡ 2 p − 1 ( x ∣ y ) = ∑ x ∈ X p ( x ) [ ∑ y ∈ Y p ( y ∣ x ) log ⁡ 2 p − 1 ( x ∣ y ) ] \begin{aligned} H(X|Y) &= E\Big[I(X|Y)\Big]\\ &= \sum_{x\in\mathcal{X,y\in\mathcal{Y}}}p(x,y)\log_2p^{-1}(x|y)\\ &= \sum_{x\in\mathcal{X,y\in\mathcal{Y}}}p(y|x)p(x)\log_2p^{-1}(x|y)\\ &= \sum_{x\in\mathcal{X}} p(x)\Big[\sum_{y\in\mathcal{Y}}p(y|x)\log_2p^{-1}(x|y)\Big] \end{aligned} H(X∣Y)​=E[I(X∣Y)]=x∈X,y∈Y∑​p(x,y)log2​p−1(x∣y)=x∈X,y∈Y∑​p(y∣x)p(x)log2​p−1(x∣y)=x∈X∑​p(x)[y∈Y∑​p(y∣x)log2​p−1(x∣y)]​
不论是条件熵还是联合熵,加权取平均的时候,信息量的权重都是一样,都是联合概率 p ( x , y ) p(x,y) p(x,y),因为都是对 ( X , Y ) (X,Y) (X,Y)向量进行的期望运算。

与联合熵的区别是:

条件熵是在这样的情况下使用的:

假设存在这样一个概率空间:有100个球,其中红球60个,黑球40个,不放回抽取两个球,求第二次抽取事件所能获取的平均信息量。

抽取第二个球取决于第一次抽取的结果,对于每一种第一次抽取结果,第二次抽取都是一个完整的概率空间,对应了一个自信息熵;但由于第一次抽取的不确定性,导致第二次抽取的自信息熵也随机变量,因此应该再求一次均值,即:
H ( X 2 ∣ X 1 ) = ∑ x 1 ∈ X p ( x 1 ) [ ∑ x 2 ∈ X p ( x 2 ∣ x 1 ) log ⁡ 2 p − 1 ( x 2 ∣ x 1 ) ] = ∑ x 1 , x 2 ∈ X p ( x 1 ) p ( x 2 ∣ x 1 ) log ⁡ 2 p − 1 ( x 2 ∣ x 1 ) = ∑ x 1 , x 2 ∈ X p ( x 1 , x 2 ) log ⁡ 2 p − 1 ( x 2 ∣ x 2 ) \begin{aligned} H(X_2|X_1) &= \sum_{x_1\in\mathcal{X}}p(x_1)\Big[ \sum_{x_2\in\mathcal{X}}p(x_2|x_1)\log_2p^{-1}(x_2|x_1) \Big]\\ &= \sum_{x_1,x_2\in\mathcal{X}} p(x_1)p(x_2|x_1)\log_2p^{-1}(x_2|x_1)\\ &= \sum_{x_1,x_2\in\mathcal{X}}p(x_1,x_2)\log_2p^{-1}(x_2|x_2)\\ \end{aligned} H(X2​∣X1​)​=x1​∈X∑​p(x1​)[x2​∈X∑​p(x2​∣x1​)log2​p−1(x2​∣x1​)]=x1​,x2​∈X∑​p(x1​)p(x2​∣x1​)log2​p−1(x2​∣x1​)=x1​,x2​∈X∑​p(x1​,x2​)log2​p−1(x2​∣x2​)​

典型应用场景:

研究有记忆离散信源基于先前发送事件的新发送事件的平均信息量。

对于最简单的情况,二元平稳有记忆离散信源:

  • 只发送两个符号;
  • 有记忆:后一个符号的概率分布受前一个符号概率分布的影响;
  • 离散信源:发送时间离散,发送内容是符号;

已知先验概率 p ( a i − 1 ) p(a_{i-1}) p(ai−1​),以及后验概率 p ( a i ∣ a i − 1 ) p(a_{i}|a_{i-1}) p(ai​∣ai−1​),则后一个符号的平均信息量即为 H ( X i ∣ X i − 1 ) H(X_{i}|X_{i-1}) H(Xi​∣Xi−1​)。

2.3.5. 熵的性质

2.3.5.1. 非负性

H ( X ) ≥ 0 H(X) \geq 0 H(X)≥0

由于概率是 [ 0 , 1 ] [0,1] [0,1]上的函数,这个保证了熵的非负性,但要注意一个特殊情况:一个只包含不可能事件的概率空间的熵

由于只有一个事件,熵就是自信息。即:
H ( X ) = I ( x ) = 0 × lim ⁡ p → 0 log ⁡ ( 1 p ) = lim ⁡ p → 0 p log ⁡ p = lim ⁡ p → 0 log ⁡ p 1 p = lim ⁡ p → 0 1 p ln ⁡ 10 − 1 p 2 = lim ⁡ p → 0 − p 2 p ln ⁡ 10 = 0 \begin{aligned} H(X) &= I(x)\\ &= 0 \times \lim_{p\to 0} \log\Big(\frac{1}{p}\Big)\\ &= \lim_{p \to 0} p\log p\\ &= \lim_{p\to 0} \frac{\log p}{\frac{1}{p}}\\ &= \lim_{p\to 0} \frac{\frac{1}{p\ln 10}}{-\frac{1}{p^2}}\\ &= \lim_{p\to 0}-\frac{p^2}{p\ln 10}\\ &= 0 \end{aligned} H(X)​=I(x)=0×p→0lim​log(p1​)=p→0lim​plogp=p→0lim​p1​logp​=p→0lim​−p21​pln101​​=p→0lim​−pln10p2​=0​

2.3.5.2. 小概率扩展性

H ( p 1 , p 2 , ⋯   , p q ) = lim ⁡ ε → 0 H ( p 1 , p 2 , ⋯   , p q − ε , ε ) H(p_1,p_2,\cdots,p_q) = \lim_{\varepsilon \to 0} H(p_1,p_2,\cdots,p_q-\varepsilon,\varepsilon) H(p1​,p2​,⋯,pq​)=ε→0lim​H(p1​,p2​,⋯,pq​−ε,ε)

一个很小概率的事件尽管自信息很大,但对信源的整体特性是几乎没有影响的。这种概率影响大于自信息影响的特征在计算不可能信源的熵的时候就表现出来了。

这个性质据说可以这样用:出于某种目的,希望不同信源的符号相同,就加进去几个不可能出现的符号,被修改的信源特性不变。

2.3.5.3. 链式法则(强可加性)

有两个信源:
X = [ x 1 x 2 ⋯ x m p ( x 1 ) p ( x 2 ) ⋯ p ( x m ) ] Y = [ y 1 y 2 ⋯ y n p ( y 1 ) p ( y 2 ) ⋯ p ( y n ) ] \mathcal{X} = \begin{bmatrix} x_1 && x_2 && \cdots && x_m\\ p(x_1) && p(x_2) && \cdots && p(x_m) \end{bmatrix} \\ \mathcal{Y} = \begin{bmatrix} y_1 && y_2 && \cdots && y_n\\ p(y_1) && p(y_2) && \cdots && p(y_n) \end{bmatrix} X=[x1​p(x1​)​​x2​p(x2​)​​⋯⋯​​xm​p(xm​)​]Y=[y1​p(y1​)​​y2​p(y2​)​​⋯⋯​​yn​p(yn​)​]
再组成一个信源,这个信源是前面两个空间的卡氏积:
X Y = [ x 1 y 1 x 2 y 1 ⋯ x m y n p ( x 1 , y 1 ) p ( x 2 , y 1 ) ⋯ p ( x m , y n ) ] \mathcal{XY} = \begin{bmatrix} x_1y_1 && x_2y_1 && \cdots && x_my_n\\ p(x_1,y_1) && p(x_2,y_1) && \cdots && p(x_m,y_n) \end{bmatrix} XY=[x1​y1​p(x1​,y1​)​​x2​y1​p(x2​,y1​)​​⋯⋯​​xm​yn​p(xm​,yn​)​]
这三个信源的熵具有这样的关系:
H ( X Y ) = H ( X ) + H ( Y ∣ X ) H(XY) = H(X) + H(Y|X) H(XY)=H(X)+H(Y∣X)
证明过程就是把联合概率按条件概率拆了:
H ( X Y ) = ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p − 1 ( x , y ) = − ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 [ p ( x ) p ( y ∣ x ) ] = − ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p ( x ) − ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p ( y ∣ x ) = − ∑ x ∈ X [ ∑ y ∈ Y p ( x , y ) ] log ⁡ 2 p ( x ) − ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p ( y ∣ x ) = H ( X ) + H ( Y ∣ X ) \begin{aligned} H(XY) &= \sum_{x\in\mathcal{X}, y\in\mathcal{Y}}p(x,y)\log_2p^{-1}(x,y)\\ &= -\sum_{x\in\mathcal{X}, y\in\mathcal{Y}} p(x,y)\log_2\Big[p(x)p(y|x)\Big]\\ &= -\sum_{x\in\mathcal{X}, y\in\mathcal{Y}} p(x,y)\log_2p(x) - \sum_{x\in\mathcal{X}, y\in\mathcal{Y}} p(x,y)\log_2p(y|x)\\ &= -\sum_{x\in\mathcal{X}}\Big[\sum_{y\in\mathcal{Y}}p(x,y)\Big]\log_2p(x) - \sum_{x\in\mathcal{X}, y\in\mathcal{Y}} p(x,y)\log_2p(y|x)\\ &= H(X)+H(Y|X) \end{aligned} H(XY)​=x∈X,y∈Y∑​p(x,y)log2​p−1(x,y)=−x∈X,y∈Y∑​p(x,y)log2​[p(x)p(y∣x)]=−x∈X,y∈Y∑​p(x,y)log2​p(x)−x∈X,y∈Y∑​p(x,y)log2​p(y∣x)=−x∈X∑​[y∈Y∑​p(x,y)]log2​p(x)−x∈X,y∈Y∑​p(x,y)log2​p(y∣x)=H(X)+H(Y∣X)​
同样的,这个也可以写成:
H ( X Y ) = H ( Y ) + H ( X ∣ Y ) H(XY) = H(Y) + H(X|Y) H(XY)=H(Y)+H(X∣Y)
总而言之,这个所描述的意义是:考虑两个符号空间的不确定性,即先考虑一个符号空间的不确定性,然后再考虑另一个的。

当 X , Y \mathcal{X,Y} X,Y统计独立的时候,这个表达式退化为熵的可加性(弱可加性)。
H ( X ) = H ( X ) + H ( Y ) H(X) = H(X) + H(Y) H(X)=H(X)+H(Y)
这个推广到高维联合熵,就是:
H ( X 1 , X 2 , ⋯   , X n ) = ∑ i = 1 n H ( X i ∣ X i − 1 , ⋯   , X 1 ) H(X_1,X_2,\cdots,X_n) = \sum_{i = 1}^{n}H(X_i|X_{i-1},\cdots,X_1) H(X1​,X2​,⋯,Xn​)=i=1∑n​H(Xi​∣Xi−1​,⋯,X1​)
这个公式这样解释:

2.3.5.4. 最大离散熵定理

H ( p 1 , p 2 , ⋯   , p q ) ≤ log ⁡ 2 q H(p_1,p_2,\cdots,p_q) \leq \log_2q H(p1​,p2​,⋯,pq​)≤log2​q

均匀分布的概率空间具有最大的熵,这在通信中给出了一个提高信息速率的方法:尽可能设计一个使各符号等概出现的符号空间,这样每个符号提供的信息是最大的,这个是做信源压缩编码的一个重要途径。

有一个引理在信息学等证明过程中很实用:(詹森不等式的一种退化形式)

x > 0 ⇒ ln ⁡ x ≤ x − 1 x>0 \Rightarrow \ln x\leq x-1 x>0⇒lnx≤x−1

当且仅当 x = 1 x=1 x=1时等号成立。

2.3.5.5. 条件作用使熵减小

H ( X ∣ Y ) ≤ H ( X ) H(X|Y) \leq H(X) H(X∣Y)≤H(X)

证明:(核心是退化詹森不等式)
H ( X ∣ Y ) = ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p − 1 ( x ∣ y ) \begin{aligned} H(X|Y) &= \sum_{x\in\mathcal{X},y\in\mathcal{Y}} p(x,y)\log_2p^{-1}(x|y)\\ \end{aligned} H(X∣Y)​=x∈X,y∈Y∑​p(x,y)log2​p−1(x∣y)​

2.3.5.6. 联合熵的独立上界

H ( X 1 , X 2 , ⋯   , X n ) ≤ ∑ i = 1 n H ( X i ) H(X_1,X_2,\cdots,X_n)\leq \sum_{i = 1}^nH(X_i) H(X1​,X2​,⋯,Xn​)≤i=1∑n​H(Xi​)

当且仅当所有符号彼此独立时取等号。

2.4. 信源剩余度

2.4.1. 信源效率的分析

熵的几种形式描述了不同信源所产生的平均自信息:

上面描述的这一堆熵满足这样的不等式:(条件作用使熵减少)
H ∞ ≤ ⋯ ≤ H ( X n ∣ X 1 X 2 ⋯ X n − 1 ) ≤ H ( X 2 ∣ X 1 ) ≤ H ( X 1 ) ≤ H 0 H_\infin \leq \cdots \leq H(X_n|X_1X_2\cdots X_{n-1}) \leq H(X_2|X_1) \leq H(X_1) \leq H_0 H∞​≤⋯≤H(Xn​∣X1​X2​⋯Xn−1​)≤H(X2​∣X1​)≤H(X1​)≤H0​
这表明实际信源的效率并不够高,影响信源的符号效率的因素是:

2.4.2. 信源冗余度定义

信源剩余度(冗余度,Redundancy)用来衡量信源的信息承载能力:
r = 1 − H ∞ H 0 = 1 − H ∞ log ⁡ 2 q r = 1 - \frac{H_\infin}{H_0} = 1 - \frac{H_\infin}{\log_2 q} r=1−H0​H∞​​=1−log2​qH∞​​

2.4.3. 实际信源冗余度

2.4.4. 如何降低冗余度

由于剩余度的来源是记忆性和非等概分布,所有有两种手段能降低信源的冗余度,即信源编码的技术:

2.5. 信道的信息测度

需要注意的是:信息论研究过程在研究的信道是广义信道,输入和输出都是符号,信道中包含了脉冲成型、调制、传输媒介、解调、判决。这样的广义信道和无线通信研究是物理信道并不是一个概念。

2.5.1. 信道建模

对信道的信息维度的研究,目的是得知信道的信息传输能力,以及这个能力的上界(信道容量),达到这个上界的方法。

信道是个抽象系统,可以包含任何东西;一个复杂的通信网络或者一个简单的模拟前端器件都可以看作一个信道;甚至一个存储媒介也可以看作是一个信道。所以对信道的建模必须具有足够高的抽象性和概括性,即只研究输入和输出。

信道两侧,输入和输出都各种构成一个概率空间:
[ X P ( X ) ] → [ Y P ( Y ) ] \begin{bmatrix} X\\P(X) \end{bmatrix} \to \begin{bmatrix} Y\\P(Y) \end{bmatrix} [XP(X)​]→[YP(Y)​]
信道的全部特性就是这两个概率空间中元素的对应关系,称为信道转移概率(transition probability),即:
P ( y ∣ x ) y ∈ Y , x ∈ X P(y|x) \quad y\in Y,x\in X P(y∣x)y∈Y,x∈X
需要注意的是:信道的建模是在输入侧正向建模的,即把输入当作条件,把输出当作随机事件。这只是建模时的思维习惯,可以用贝叶斯公式把这个因果关系反过来,由此表示在信宿端推测信源端符号时的概率分布:
P ( x ∣ y ) = P ( x , y ) P ( y ) = P ( y ∣ x ) P ( x ) ∑ x p ( x , y ) = P ( y ∣ x ) p ( x ) ∑ x P ( y ∣ x ) P ( x ) P(x|y) = \frac{P(x,y)}{P(y)} = \frac{P(y|x)P(x)}{\sum_x p(x,y)} = \frac{P(y|x)p(x)}{\sum_xP(y|x)P(x)} P(x∣y)=P(y)P(x,y)​=∑x​p(x,y)P(y∣x)P(x)​=∑x​P(y∣x)P(x)P(y∣x)p(x)​
==这些转移概率表示了信道的全部性质。==所以信道的表示方法只需要包含所有输入和输出组的转移概率,就能构成完备的信息。常用表示方法有:

信道转移概率矩阵和Markov矩阵拥有相同的性质,每行概率之和是1(直接给出证明)
∑ i = 1 n p ( y i ∣ x ) = ∑ i = 1 n p ( x , y i ) p ( x ) = ∑ i p ( x , y i ) p ( x ) = 1 \sum_{i = 1}^np(y_i|x) = \sum_{i = 1}^n\frac{p(x,y_i)}{p(x)} = \frac{\sum_ip(x,y_i)}{p(x)} = 1 i=1∑n​p(yi​∣x)=i=1∑n​p(x)p(x,yi​)​=p(x)∑i​p(x,yi​)​=1

2.5.2. 信道疑义度

先考虑信道的输入,信道的输入是一个信源,即一个概率空间。这个信源的信息测度指标是信源熵 H ( X ) H(X) H(X)。

假设信道是无损的,即对于任意的输入 x i x_i xi​,都有唯一**确定性(概率为1)**的 y i y_i yi​与之对应,即 ∀ x i ∈ X , ∃ y i ∈ Y s . t . P ( y i ∣ x i ) = 1 \forall x_i \in X,\quad \exist y_i\in Y\quad s.t. P(y_i|x_i) = 1 ∀xi​∈X,∃yi​∈Ys.t.P(yi​∣xi​)=1,则对于任意的 y i ∈ Y y_i\in Y yi​∈Y,都有:
P ( y i ) = ∑ x ∈ X P ( x , y i ) = ∑ x ∈ X P ( y i ∣ x ) P ( x ) = P ( y i ∣ x i ) P ( x i ) = P ( x i ) P(y_i) = \sum_{x\in X}P(x,y_i) = \sum_{x\in X}P(y_i|x)P(x) = P(y_i|x_i)P(x_i) = P(x_i) P(yi​)=x∈X∑​P(x,yi​)=x∈X∑​P(yi​∣x)P(x)=P(yi​∣xi​)P(xi​)=P(xi​)
那么输出和输入获得了完全相同的概率分布,输出后信源熵和输入完全一致。

只有在无失真信道的条件下,才可能实现无失真传输。对于绝大部分有失真的情况,需要研究信道究竟丢了多少信息。这个指标就是信道疑义度,即信道的条件熵:
H ( Y ∣ X ) = − ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p ( y ∣ x ) = − ∑ x ∈ X p ( x ) ∑ y ∈ Y p ( y ∣ x ) log ⁡ 2 p ( y ∣ x ) \begin{aligned} H(Y|X) &= -\sum_{x\in X,y\in Y}p(x,y)\log_2p(y|x)\\ &= -\sum_{x\in X}p(x)\sum_{y\in Y}p(y|x)\log_2p(y|x) \end{aligned} H(Y∣X)​=−x∈X,y∈Y∑​p(x,y)log2​p(y∣x)=−x∈X∑​p(x)y∈Y∑​p(y∣x)log2​p(y∣x)​
这个指标应该这样理解:

2.5.3. 平均互信息

平均互信息概念中有三个常用的定义(或含义):

I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) = H ( Y ) − H ( Y ∣ X ) \begin{aligned} I(X;Y) &= H(X) - H(X|Y)\\ &= H(Y) - H(Y|X) \end{aligned} I(X;Y)​=H(X)−H(X∣Y)=H(Y)−H(Y∣X)​

这几个都能统一成第一个的形式,第二个定义写开是这样的:
I ( X ; Y ) = H ( X ) − H ( X ∣ Y ) = − ∑ x ∈ X p ( x ) log ⁡ 2 p ( x ) + ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 p ( x ∣ y ) = ∑ x ∈ X , y ∈ Y p ( x , y ) [ log ⁡ 2 p ( x ∣ y ) − log ⁡ 2 p ( x ) ] = E { log ⁡ 2 [ p ( x , y ) p ( x ) p ( y ) ] } \begin{aligned} I(X;Y) &= H(X) - H(X|Y)\\ &= -\sum_{x\in X}p(x)\log_2p(x) + \sum_{x\in X,y\in Y}p(x,y)\log_2p(x|y)\\ &= \sum_{x\in X,y\in Y}p(x,y)[\log_2p(x|y)-\log_2p(x)]\\ &= E\Bigg\{\log_2\Big[\frac{p(x,y)}{p(x)p(y)}\Big]\Bigg\} \end{aligned} I(X;Y)​=H(X)−H(X∣Y)=−x∈X∑​p(x)log2​p(x)+x∈X,y∈Y∑​p(x,y)log2​p(x∣y)=x∈X,y∈Y∑​p(x,y)[log2​p(x∣y)−log2​p(x)]=E{log2​[p(x)p(y)p(x,y)​]}​
第三个定义写开是这样的:
I ( X ; Y ) = H ( X ) + H ( Y ) − H ( X Y ) = − ∑ x ∈ X , y ∈ Y p ( x , y ) log ⁡ 2 [ p ( x ) p ( y ) ] + ∑ x ∈ X . y ∈ Y p ( x , y ) log ⁡ 2 p ( x , y ) = E { log ⁡ 2 [ p ( x , y ) p ( x ) p ( y ) ] } \begin{aligned} I(X;Y) &= H(X) + H(Y) - H(XY)\\ &= -\sum_{x\in X,y\in Y} p(x,y)\log_2[p(x)p(y)] + \sum_{x\in X.y\in Y}p(x,y)\log_2p(x,y)\\ &= E\Bigg\{\log_2\Big[\frac{p(x,y)}{p(x)p(y)}\Big]\Bigg\} \end{aligned} I(X;Y)​=H(X)+H(Y)−H(XY)=−x∈X,y∈Y∑​p(x,y)log2​[p(x)p(y)]+x∈X.y∈Y∑​p(x,y)log2​p(x,y)=E{log2​[p(x)p(y)p(x,y)​]}​

不带平均互信息的加权平均,也可以定义一个互信息:
I ( x ; y ) = I ( x ) − I ( x ∣ y ) = − log ⁡ 2 [ p ( x ) p ( x ∣ y ) ] \begin{aligned} I(x;y) &= I(x) - I(x|y)\\ &= -\log_2\Big[\frac{p(x)}{p(x|y)}\Big] \end{aligned} I(x;y)​=I(x)−I(x∣y)=−log2​[p(x∣y)p(x)​]​
熵是提供的信息量,平均互信息是获得的信息量。

平均互信息有几个性质:

2.5.4. 信道容量

之前介绍的指标的含义归纳如下:

但这些指标都不能单纯描述信道的性质,不论是两个条件熵还是传输率,都和信源相关

由于信息传输率具有凸性,当给定信道条件后,总有唯一的一种信源分布,能使在这个工作点的信息传输率大于任何其他工作点的信息传输率,因此这个最大值能表示信道的潜力特性。即信道具备实现这样传输率的能力,具体能不能达到要看信源了。这个就好比容器,它有个容量,但使用者未必能装满。

2.5.4.1. 对称信道的信道容量

对称信道的定义是:

要注意输入对称和输出对称未必能同时满足,比如这个信道,只有输入对称,没有输出对称:
P = [ 1 / 3 1 / 3 1 / 6 1 / 6 1 / 6 1 / 3 1 / 6 1 / 3 ] P=\begin{bmatrix} 1/3 & 1/3 & 1/6 & 1/6\\ 1/6 & 1/3 & 1/6 & 1/3 \end{bmatrix} P=[1/31/6​1/31/3​1/61/6​1/61/3​]
有些信道具有更强的对称性,即不仅输入和输出都满足对称性,还保证输入符号数量和输出符号数量相等。这种信道称为强对称信道均匀信道。强对称信道的信道矩阵只可能是这种形式(只有两类概率,主对角线上是正确传输概率,所有错误概率相同):
P = [ 1 − p p r − 1 ⋯ p r − 1 p r − 1 1 − p ⋯ p r − 1 ⋮ ⋮ ⋱ ⋮ p r − 1 p r − 1 ⋯ 1 − p ] P = \begin{bmatrix} 1-p & \frac{p}{r-1} & \cdots & \frac{p}{r-1}\\ \frac{p}{r-1} & 1-p & \cdots & \frac{p}{r-1}\\ \vdots & \vdots & \ddots & \vdots\\ \frac{p}{r-1} & \frac{p}{r-1} & \cdots & 1-p\\ \end{bmatrix} P=⎣⎢⎢⎢⎡​1−pr−1p​⋮r−1p​​r−1p​1−p⋮r−1p​​⋯⋯⋱⋯​r−1p​r−1p​⋮1−p​⎦⎥⎥⎥⎤​
对称信道具有以下性质:

上面的两个性质能简化对称信道平均互信息的求解,由于噪声熵具有性质,所以更适合用 I ( X ; Y ) = H ( Y ) − H ( Y ∣ X ) I(X;Y)=H(Y)-H(Y|X) I(X;Y)=H(Y)−H(Y∣X)计算。由于 H ( Y ∣ X ) H(Y|X) H(Y∣X)只和信道转移矩阵有关,所以对于任意信源,后面那一项都完全相同;像针对不同信源分布求取最大值,只能让前面那一项(信宿熵)取得最大值。已知信宿熵肯定是在均匀分布情况下取得最大值,根据对称信道性质,当输入为均匀分布的情况下,输出才会是均匀分布。所以信道容量和最佳输入分布就都算出来了。

有一个尚未给出证明的定理:任意信道达到信道容量时,信道的输入分布是不唯一的,但输出分布是唯一的。

2.5.4.2. 一般信道的信道容量

对于一般性信道,信道容量的求解并不是很简单的事情。一般信道的信道容量求解是一个多元函数求约束极值的问题,这个多元函数就是 I ( X ; Y ) I(X;Y) I(X;Y),自变量是 p ( x 1 ) , p ( x 2 ) p(x_1),p(x_2) p(x1​),p(x2​)等这些输入分布,约束是 ∑ i p ( x i ) = 1 \sum_ip(x_i)=1 ∑i​p(xi​)=1。

约束函数求极值的常用方法是拉格朗日乘数法。假设输入分布是 p ( x i ) p(x_i) p(xi​),信道矩阵是 p ( y j ∣ x i ) p(y_j|x_i) p(yj​∣xi​),则信宿熵可以表示为:
H ( Y ) = − ∑ y p ( y ) log ⁡ 2 p ( y ) = − ∑ y { ∑ x p ( x , y ) log ⁡ 2 [ ∑ x p ( x , y ) ] } = − ∑ y { ∑ x p ( x ) p ( y ∣ x ) log ⁡ 2 [ ∑ x p ( x ) p ( y ∣ x ) ] } \begin{aligned} H(Y) &= -\sum_yp(y)\log_2p(y)\\ &= -\sum_y\Bigg\{\sum_xp(x,y)\log_2\Big[\sum_xp(x,y)\Big]\Bigg\}\\ &= -\sum_y\Bigg\{\sum_xp(x)p(y|x)\log_2\Big[\sum_xp(x)p(y|x)\Big]\Bigg\} \end{aligned} H(Y)​=−y∑​p(y)log2​p(y)=−y∑​{x∑​p(x,y)log2​[x∑​p(x,y)]}=−y∑​{x∑​p(x)p(y∣x)log2​[x∑​p(x)p(y∣x)]}​
噪声熵可以表示为:
H ( Y ∣ X ) = − ∑ x p ( x ) [ ∑ y p ( y ∣ x ) log ⁡ 2 p ( y ∣ x ) ] \begin{aligned} H(Y|X) &= -\sum_xp(x)\Big[\sum_yp(y|x)\log_2p(y|x)\Big] \end{aligned} H(Y∣X)​=−x∑​p(x)[y∑​p(y∣x)log2​p(y∣x)]​
平均互信息表示为:
I ( X ; Y ) = H ( Y ) − H ( Y ∣ X ) = ∑ x p ( x ) [ ∑ y p ( y ∣ x ) log ⁡ 2 p ( y ∣ x ) ] − ∑ y { ∑ x p ( x , y ) log ⁡ 2 [ ∑ x p ( x , y ) ] } \begin{aligned} I(X;Y) &= H(Y) - H(Y|X)\\ &= \sum_xp(x)\Big[\sum_yp(y|x)\log_2p(y|x)\Big]\\ &- \sum_y\left\{\sum_xp(x,y)\log_2\Big[\sum_xp(x,y)\Big]\right\} \end{aligned} I(X;Y)​=H(Y)−H(Y∣X)=x∑​p(x)[y∑​p(y∣x)log2​p(y∣x)]−y∑​{x∑​p(x,y)log2​[x∑​p(x,y)]}​
构建拉格朗日函数:
Φ ( p x ⃗ , λ ) = I ( X ; Y ) − λ ∑ x p ( x ) = ∑ x p ( x ) [ ∑ y p ( y ∣ x ) log ⁡ 2 p ( y ∣ x ) ] − ∑ y { ∑ x p ( x , y ) log ⁡ 2 [ ∑ x p ( x , y ) ] } − [ λ ∑ x p ( x ) − 1 ] \begin{aligned} \Phi(\vec{p_x},\lambda) &= I(X;Y) - \lambda\sum_xp(x)\\ &= \sum_xp(x)\Big[\sum_yp(y|x)\log_2p(y|x)\Big]\\ &- \sum_y\left\{\sum_xp(x,y)\log_2\Big[\sum_xp(x,y)\Big]\right\}\\ &-\left[\lambda\sum_xp(x) - 1\right] \end{aligned} Φ(px​ ​,λ)​=I(X;Y)−λx∑​p(x)=x∑​p(x)[y∑​p(y∣x)log2​p(y∣x)]−y∑​{x∑​p(x,y)log2​[x∑​p(x,y)]}−[λx∑​p(x)−1]​
这一堆偏导的求解比较麻烦,这里一项一项的求,并且在求解过程中尽可能做一些形式上的整理,以便更清楚的看出一些性质。

最后一项(拉格朗日乘数子所在的那一项)的偏导最好求:
∀ x i ∈ X , ∂ ∂ x i [ λ ∑ i p ( x i ) ] = λ \forall x_i\in X, \quad \frac{\partial }{\partial x_i} \left[ \lambda\sum_ip(x_i) \right] = \lambda ∀xi​∈X,∂xi​∂​[λi∑​p(xi​)]=λ
噪声熵的表达式也比较简单:
∂ ∂ p ( x i ) H ( Y ∣ X ) = − ∂ ∂ p ( x i ) ∑ x p ( x ) [ ∑ y p ( y ∣ x ) log ⁡ 2 p ( y ∣ x ) ] = − ∑ y p ( y ∣ x i ) log ⁡ 2 p ( y ∣ x i ) = H ( Y ∣ x i ) \begin{aligned} \frac{\partial}{\partial p(x_i)}H(Y|X) &= - \frac{\partial}{\partial p(x_i)} \sum_xp(x)\Big[\sum_yp(y|x)\log_2p(y|x)\Big]\\ &= -\sum_yp(y|x_i)\log_2p(y|x_i)\\ &=H(Y|x_i) \end{aligned} ∂p(xi​)∂​H(Y∣X)​=−∂p(xi​)∂​x∑​p(x)[y∑​p(y∣x)log2​p(y∣x)]=−y∑​p(y∣xi​)log2​p(y∣xi​)=H(Y∣xi​)​
信宿熵的偏导表示为:
∂ ∂ p ( x i ) H ( Y ) = − ∂ ∂ p ( x i ) ∑ y { ∑ x p ( x ) p ( y ∣ x ) log ⁡ 2 [ ∑ x p ( x ) p ( y ∣ x ) ] } = − ∑ y \begin{aligned} \frac{\partial}{\partial p(x_i)} H(Y) &= -\frac{\partial}{\partial p(x_i)} \sum_y\Bigg\{\sum_xp(x)p(y|x)\log_2\Big[\sum_xp(x)p(y|x)\Big]\Bigg\}\\ &= -\sum_y \end{aligned} ∂p(xi​)∂​H(Y)​=−∂p(xi​)∂​y∑​{x∑​p(x)p(y∣x)log2​[x∑​p(x)p(y∣x)]}=−y∑​​

3. 信源编码

3.1. 目的和分类

暂且不提信源编码通常所说的信息压缩功能,信源编码最本源的应用是提供一个从消息到适用于信道传输的符号,比如ASCII码可以把英文信源转换成适用于数字通信信道传输的二进制信源。

此外,在解决了从消息到符号的映射之后,信源编码需要尽可能提升原始消息信源和编码器所组成的复合信源的信息熵,让新信源的冗余度尽可能减小。

这里面需要定义几个概念:

此外信源编码也可以分为:

即:把编码器也看作信道,这个信道的信道疑义度是0,即无失真编码,否则是有失真编码。

上面有关有损和无损是在信源端评估的,但在信宿端,在进行译码时,有时候无失真编码的消息也可能无法被位移译码,从而在译码过程中造成信息丢失,因此信源编码也可以分为:

此外,从码字的长度上还可以分类为:

3.2. 无失真可变长信源编码定理

3.2.1. 冗余分类

3.2.2. 评价信源效率的指标

3.2.3. 香农第一定理内容

3.3. 实际使用的信源编码

3.3.1. 单符号码

实际使用的信源编码需要具备的性质:

3.3.1.1. 香农码

假设有这样一个信源,它的消息空间如下:
[ X p ( X ) ] = [ a b c d 0.25 0.4 0.2 0.15 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} a && b && c && d\\ 0.25 && 0.4 && 0.2 && 0.15 \end{bmatrix} [Xp(X)​]=[a0.25​​b0.4​​c0.2​​d0.15​]
首先对这个信源进行排序,按概率降序:
[ X p ( X ) ] = [ b a c d 0.4 0.25 0.2 0.15 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} b && a && c && d\\ 0.4 && 0.25 && 0.2 && 0.15 \end{bmatrix} [Xp(X)​]=[b0.4​​a0.25​​c0.2​​d0.15​]
然后计算各信源符号的自信息量:
[ X p ( X ) I ( x ) ] = [ b a c d 0.4 0.25 0.2 0.15 1.322 2.000 2.322 2.737 ] \begin{bmatrix} X\\p(X)\\I(x) \end{bmatrix} = \begin{bmatrix} b && a && c && d\\ 0.4 && 0.25 && 0.2 && 0.15\\ 1.322 && 2.000 && 2.322 && 2.737 \end{bmatrix} ⎣⎡​Xp(X)I(x)​⎦⎤​=⎣⎡​b0.41.322​​a0.252.000​​c0.22.322​​d0.152.737​⎦⎤​
香农把信息看作是非常物质化的东西,认为编码的位数(自信息)不应该比编码前的消息符号的信息量小。所以每个符号的编码长度就是自信息向上取整:
[ X p ( X ) I ( x ) L ] = [ b a c d 0.4 0.25 0.2 0.15 1.322 2.000 2.322 2.737 2 2 3 3 ] \begin{bmatrix} X\\p(X)\\I(x)\\L \end{bmatrix} = \begin{bmatrix} b && a && c && d\\ 0.4 && 0.25 && 0.2 && 0.15\\ 1.322 && 2.000 && 2.322 && 2.737\\ 2 && 2 && 3 && 3 \end{bmatrix} ⎣⎢⎢⎡​Xp(X)I(x)L​⎦⎥⎥⎤​=⎣⎢⎢⎡​b0.41.3222​​a0.252.0002​​c0.22.3223​​d0.152.7373​⎦⎥⎥⎤​
随后为了获取异字头码,把每个符号的累加概率的二进制低位作为符号:(事实上可以证明,为了确保异字头特性,只能取左端点,不能取任何其他点)
[ X p ( X ) I ( x ) L p i ] = [ b a c d 0.4 0.25 0.2 0.15 1.322 2.000 2.322 2.737 2 2 3 3 0 0.4 0.65 0.85 ] \begin{bmatrix} X\\p(X)\\I(x)\\L\\p_i \end{bmatrix} = \begin{bmatrix} b && a && c && d\\ 0.4 && 0.25 && 0.2 && 0.15\\ 1.322 && 2.000 && 2.322 && 2.737\\ 2 && 2 && 3 && 3\\ 0 && 0.4 && 0.65 && 0.85 \end{bmatrix} ⎣⎢⎢⎢⎢⎡​Xp(X)I(x)Lpi​​⎦⎥⎥⎥⎥⎤​=⎣⎢⎢⎢⎢⎡​b0.41.32220​​a0.252.00020.4​​c0.22.32230.65​​d0.152.73730.85​⎦⎥⎥⎥⎥⎤​

可以证明按香农的这种累积概率的编码方式可以得到唯一可译码:

首先,由于编码是增大的,所以只需要考虑相邻编码的异字头特性。

3.3.1.2. 费诺码

假设有这样一个信源,它的消息空间如下:
[ X p ( X ) ] = [ a b c d 0.25 0.4 0.2 0.15 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} a && b && c && d\\ 0.25 && 0.4 && 0.2 && 0.15 \end{bmatrix} [Xp(X)​]=[a0.25​​b0.4​​c0.2​​d0.15​]
首先对这个信源进行排序,按概率降序:(费诺码的这个排序实际上没啥大用,只是为了等概分割更方便一些,并且规定一种唯一的编码方式)
[ X p ( X ) ] = [ b a c d 0.4 0.25 0.2 0.15 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} b && a && c && d\\ 0.4 && 0.25 && 0.2 && 0.15 \end{bmatrix} [Xp(X)​]=[b0.4​​a0.25​​c0.2​​d0.15​]
将整个消息空间划分成两个集合,且要求这两个集合的概率尽可能。这个思想的源头是:如果有两个概率相等的事件,直接用等长码就是效率最高的。
[ X p ( X ) ] = [ b 0.4 ] + [ a c d 0.25 0.2 0.15 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} b\\ 0.4 \end{bmatrix} +\begin{bmatrix} a && c && d\\ 0.25 && 0.2 && 0.15 \end{bmatrix} [Xp(X)​]=[b0.4​]+[a0.25​​c0.2​​d0.15​]
第一个子集合标识符号0,第二个子集合标识符号1

继续递归,直到所有的子集合都只有一个消息。这种方法会构成一个树形结构,而如果所有的码字都是从叶节点产生的,就能天然解决异字头的问题。

3.3.1.3. 哈夫曼码

假设有这样一个信源,它的消息空间如下:
[ X p ( X ) ] = [ a b c d 0.25 0.4 0.2 0.15 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} a && b && c && d\\ 0.25 && 0.4 && 0.2 && 0.15 \end{bmatrix} [Xp(X)​]=[a0.25​​b0.4​​c0.2​​d0.15​]
首先对这个信源进行排序,按概率降序:
[ X p ( X ) ] = [ b a c d 0.4 0.25 0.2 0.15 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} b && a && c && d\\ 0.4 && 0.25 && 0.2 && 0.15 \end{bmatrix} [Xp(X)​]=[b0.4​​a0.25​​c0.2​​d0.15​]
把概率最小的两个信源合在一起,并给每一个分配一个0,1代码:

[ X p ( X ) ] = [ b a c d 0.4 0.25 0.35 ] [ X C ( X ) ] = [ c d 0 1 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} b && a && cd\\ 0.4 && 0.25 && 0.35 \end{bmatrix} \begin{bmatrix} X\\C(X) \end{bmatrix} = \begin{bmatrix} c && d\\ 0 && 1 \end{bmatrix} [Xp(X)​]=[b0.4​​a0.25​​cd0.35​][XC(X)​]=[c0​​d1​]
然后再排序:
[ X p ( X ) ] = [ b c d a 0.4 0.35 0.25 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} b && cd && a\\ 0.4 && 0.35 && 0.25 \end{bmatrix} [Xp(X)​]=[b0.4​​cd0.35​​a0.25​]
再缩减:
[ X p ( X ) ] = [ b c d a 0.4 0.6 ] [ X C ( X ) ] = [ c d a 00 01 1 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} b && cda\\ 0.4 && 0.6\\ \end{bmatrix} \begin{bmatrix} X\\ C(X) \end{bmatrix}= \begin{bmatrix} c && d && a\\ 00&& 01 && 1 \end{bmatrix} [Xp(X)​]=[b0.4​​cda0.6​][XC(X)​]=[c00​​d01​​a1​]
再排序,再合并(只剩两个了):
[ X p ( X ) ] = [ b c d a 1 ] [ X C ( X ) ] = [ b c d a 0 100 101 11 ] \begin{bmatrix} X\\p(X) \end{bmatrix} = \begin{bmatrix} bcda\\ 1\\ \end{bmatrix} \begin{bmatrix} X\\ C(X) \end{bmatrix}= \begin{bmatrix} b && c && d && a\\ 0 && 100 && 101 && 11 \end{bmatrix} [Xp(X)​]=[bcda1​][XC(X)​]=[b0​​c100​​d101​​a11​]

3.3.1.4. 规范码

4. 信道编码

标签:bmatrix,编码,log,sum,笔记,信源,信道,&&,信息论
来源: https://blog.csdn.net/DavidTesla/article/details/115496206