信息论——信道及其容量(二)

到目前为止,我们都只算出来了信道容量,没有讲过怎么编码能得到这些容量。接下来要做的就是说明,所有上面算出来的容量,都是可以实现的。

一个信道如下图:

信道编码

这里我们先回忆一下之前的混乱打字机。之前说过,世界上任何一个数字信道,都可以直接或者间接地看作是混乱打字机模型。

对于信道{X,q(y|x),Y}\{X,q(y|x),Y\}的信道编码包含以下要素:

  • 输入符号集合{1,2,,M}\{1,2,…,M\}
  • 编码函数XnX^n:{1,2,,M}Xn\{1,2,…,M\} \rightarrow X^n,该函数为每一个输入符号产生了相应的信道编码码字Xn(1),Xn(2),,Xn(M)X^n(1),X^n(2),…,X^n(M),这些码字构成的集合称为“码本”。
  • 解码函数gg:Yn{1,2,,M}Y^n \rightarrow \{1,2,…,M\},该函数为一个确定性判决函数,将每一个可能的接受向量映射到一个输入符号。

意思也就是,对于符号个数为MM的符号集,我们把它映射到一个长度为n的序列上,分n次传输。

信道编码的码率

(M,n)(M,n)码的码率R定义为: R=logMn, R = \frac{\log M}{n} , 单位为比特/传输。这是信道码的每个码字母所能携带的最大的信息量。

如何理解?对于输入集合如果取等概分布,则它的信息量为logM\log M,这时候呢,nn次传输才能传达这么多的信息量,所以每个传输的量就是logMn=R\frac{\log M}{n} = R,则M=2nRM = 2^{nR}。称这样的码为(2nR,n)(2^{nR},n)码。

Example

重复码,输入字母数M=2M = 2:{0,1}\{0,1\},重复n次,这个码率为1/n1/n

直观来说,如果字符个数为MM个,我们需要编码长度为logMlog M就够了,这时候就可以保证码率为1。那为什么要进行这么复杂的定义?因为我们需要知道信道的传输是有噪声的。因此往往码率是要小于1,也就是n个长度本可以表示更大的字符集,但是我们选择它,增加码的冗余度,来降低错误率。比如下面的例子。

二进制奇偶校验码,输入字母数M=2n1:x1,x2,,xn1M = 2^{n-1}:{x_1,x_2,…,x_ {n-1} },信道编码方案为C=x1,x2,,xn1xparityC = x_1,x_2,…,x_ {n-1}x_ {\text{parity} },其中xparityx_ {\text{parity} }用于辨识码字中11的个数为奇数还是偶数,这个码率为:n1n\frac{n-1}{n}

信道编码的错误概率

输入为符号ii时的条件错误概率为: λi=Pr{g(Yn)i|Xn=xn(i)}=ynq(yn|xn(i))I(g(yn)i) \begin{aligned} \lambda_i &= Pr\{g(Y^n) \ne i \vert X^n = x^n(i)\}\\ &= \sum_ {y^n} q(y^n\vert x^n(i))I(g(y^n) \ne i) \end{aligned} 其中I()I(\cdot)为指示函数。

(M,n)(M,n)码的最大错误概率为: λ(n)=maxi1,2,...Mλi \lambda^{(n)} = \max_ {i \in 1,2,...M} \lambda_i (M,n)(M,n)码的算术平均错误概率为: Pe(n)=1Mi=1Mλi P_e^{(n)} = \frac{1}{M} \sum_ {i=1}^M\lambda_i 我们称一个码率RR是可达的,若存在一个信道编码(2nR,n)(\lceil 2^{nR}\rceil,n ),其最大差错概率在nn\rightarrow \infty时趋于0。可以看出来可达要求无差错,而且是渐进的。

这时候我们得到信道容量的另外一个定义:一个信道的容量是该信道上所有可达码率的上确界,即C=sup RC = \text{sup }R,这意味着CC一定对应着一种信道编码方案。

经验主义式的设计

在信道传输中如何减少差错?由香农公式: CT(β)=WTlog(1+PSN0W) C_T(\beta) = WT \log(1+\frac{P_S}{N_0W}) 可以得到,提高抗干扰能力的方法如下:

  1. 增加功率(提高信噪比)
  2. 加大带宽(信号变化剧烈)
  3. 延长时间(降低速率)

C=maxp(x),{I(X;Y)}C = max_ {p(x),功率约束}\{I(X;Y)\}

而降低重复速率,实际上就是重复,增加冗余。

重复码

最直观的纠错方法就是:重复,增加冗余。

  • 编码1:将每个输入元重复三次
    • 纠正任一位上的错误
    • 设码字记为(c8,c7,,c0)(c_8,c_7,…,c_0)
    • 由编码方法可知,信道无误时:$$ c_8 = c_7 = c_6\\ c_5 = c_4 = c_3\\ c_2 = c_1 = c_0$$
    • 解码时,若c8=c6c7c_8 = c_6 \ne c_7,则判定c7c_7位出错,采用简单多数法进行判定
    • 依据是:连续出现两个错误的概率远远小于出现一个错误的概率

如下图,如果我们将上述编码放进二进制对称信道,则想要得到无差错编码。误码率的大小是重复2n+12n+1次,而至少出现了n+1n+1次错误。为了让误码率取0,n0n \rightarrow 0,此时码率也趋近于0,这不是一个好消息。

但是,是否对于信息的无差错传输,就意味着码率为0呢?答案是否定的。

现在我们考虑BSC信道,W={1,2,,2k}W= \{1,2,…,2^k\},如下: W={1,2,...,2k}EncoderXnBSC(p)YnDecoderW W=\{1,2,...,2^k\} \rightarrow \text{Encoder} \rightarrow X^n \rightarrow\text{BSC(p)} \rightarrow Y^n \rightarrow \text{Decoder} \rightarrow W 我们可以得到: nCnI(X;Y)I(Xn;Yn)I(W,Ŵ)=H(W)H(W|Ŵ)kkH(Pe) \begin{aligned} nC &\ge nI(X;Y)\\ &\ge I(X^n;Y^n)\\ &\ge I(W,\hat W)\\ &=H(W) - H(W\vert \hat W)\\ &\ge k - k H(P_e) \end{aligned} 上式中最后一步是由Fano不等式得到的(不知道怎么得到,实际上我只能得到的是:k(H(Pe)+kPe)\ge k - (H(P_e)+kP_e))。

则:knC1H(Pe)k \leq \frac{nC}{1 - H(P_e)}

而由于BSC信道的容量可以得到:C=1H(P)C = 1 - H(P),所以我们得到一个R的上界: R=kn1H(P)1H(Pe) R = \frac{k}{n} \ge \frac{1 - H(P)}{1 - H(P_e)} 通过变形,我们可以得到: H(Pe)1CRPeH1(1CR) H(P_e) \ge 1 - \frac C R \rightarrow P_e \ge H^{-1}\left(1 - \frac C R\right) 这意味着,如果想要让Pe0P_e\leq 0,则RCR \leq C,如果R>CR > C,则H(Pe)>0H(P_e)>0,所以我们一定可以得到Pe>0P_e>0,不可能进行可靠通信。

那么无差错传输的情况下,码率最大能有多少?先给你看一个preview,很直白的内容,不过它被证明确实是正确的:

想象信道将信源映射到一个球体里,而对每个输入符号也对应一个球。而这个球的体积就意味着噪声带来的体积,而大球中能容纳多少小球,正是这个信道编码在无错的情况下可以映射的符号数M。因为这个球的维度是n维的,我们可以得到: M=[PS+PN]n[PN]n=(1+PSPN)n2 M = \frac{\left[\sqrt{P_S +P_N}\right]^n}{\left[\sqrt{P_N}\right]^n} = (1 + \frac{P_S}{P_N})^{\frac n 2} 由上式,可以计算得出: R=12log(1+PSPN) R = \frac 1 2 \log (1 + \frac{P_S}{P_N}) 而这个值,正好与连续无记忆加性高斯噪声信道的容量一致。

当然,这个只是preview,不是严格的证明过程。下面对这个证明进行稍微严谨地推导,说明大多数噪声信道都有这样地特性。

为了证明这个东西,我们需要介绍一些别的定义。之前证明信源无失真压缩定理地时候,用到了典型序列,而这次我们在典型序列地基础上,重新介绍一个新的内容。

证明香农第二定理

联合典型序列

(Xn,Yn)(X^n,Y^n)是长为nn的随机序列对,其概率分布满足

p(xn,yn) = _ {i=1}^n p(x_i,y_i)

(Xn,Yn)(X^n,Y^n)满足以下条件,则称其为联合典型序列:

  • |1nlogp(xn)H(X)|<ϵ\lvert -\frac 1 n \log p(x^n) - H(X) \rvert < \epsilon
  • |1nlogp(yn)H(Y)|<ϵ\lvert -\frac 1 n \log p(y^n) - H(Y) \rvert < \epsilon
  • |1nlogp(xn,yn)H(X,Y)|<ϵ\lvert -\frac 1 n \log p(x^n,y^n) - H(X,Y)\rvert < \epsilon
    联合典型序列构成的集合为Aϵ(n)A_\epsilon^{(n)}

联合典型序列与之前典型序列定义是有很大地相似性:信息论——Lossless-Encoding。我们首先要看看联合典型序列的性质,才能用它来证明。

联合渐进等同分割定理(Joint AEP)

(Xn,Yn)(X^n,Y^n)是长度为nn的随机序列对,其分布满足: p(xn,yn)=i=1np(xi,yi) p(x^n,y^n) = \prod_ {i=1}^n p(x_i,y_i) 则以下性质成立:

  • nn \rightarrow \infty时,Pr((Xn,Yn)Aϵ(n))1Pr((X^n,Y^n) \in A_\epsilon ^{(n)}) \rightarrow 1
  • (1ϵ)2n(H(X,Y)ϵ)|Aϵ(n)|2n(H(X,Y)+ϵ)(1 - \epsilon)2^{n(H(X,Y) - \epsilon)} \leq \vert A_\epsilon ^{(n)} \vert\leq 2^{n(H(X,Y)+\epsilon)}
  • 设$(,)p(xn)p(yn) ,,即,统计独立,且具有与p(xn,yn)$一致的边缘分布,则: Pr((Xñ,Yñ)Aϵ(n))2n(I(X;Y)3ϵ)Pr\left((\tilde{X^n},\tilde{Y^n}) \in A_\epsilon ^{(n)}\right) \leq 2^{-n(I(X;Y) - 3\epsilon)}nn足够大,则: Pr((Xñ,Yñ)Aϵ(n))(1ϵ)2n(I(X;Y)+3ϵ)Pr\left((\tilde{X^n},\tilde{Y^n}) \in A_\epsilon ^{(n)}\right) \ge (1 - \epsilon)2^{-n(I(X;Y) + 3\epsilon)}

前两点都比较好理解,第三点中,(Xñ,Yñ)(\tilde{X^n},\tilde{Y^n})是由(Xn,Yn)(X^n,Y^n)的边缘分布依照Xn,YnX^n,Y^n独立形成的另一个联合分布,而这个分布属于典型序列的概率约等于2nI(X;Y)2^{-nI(X;Y)}

在这里我们证明以下第三条的前半部分: $$ \tilde{X^n},\tilde{Y^n}\text{ are independent. }\tilde{X^n}\sim P_X(x^n),\tilde{Y^n}\sim P_Y(y^n)\\ \begin{aligned} Pr\{(\tilde{X^n},\tilde{Y^n}) \in A_\epsilon^{(n)} \} &= \sum_ {(\tilde{x^n},\tilde{y^n}) \in A_\epsilon^{(n)} } P(x^n)P(y^n)\\ &\leq 2^{b(H(X,Y) + \epsilon)}\cdot 2^{-n(H(X) - \epsilon)} \cdot 2^{-n(H(Y) - \epsilon)}\\ &= 2^{-n(I(X;Y) - 3\epsilon)} \end{aligned} $$ 下图可以帮助我们更好地理解这些性质:

  • 联合分布中,大约有2nH(X)2^{nH(X)}个典型X序列和2nH(Y)2^{nH(Y)}个典型Y序列
  • 其组合共有2nH(X)+nH(Y)2^{nH(X) + nH(Y)}个,但是其中联合典型的只有2nH(X,Y)2^{nH(X,Y)}
  • 随机选择而出现联合典型序列的概率为2nI(X;Y)2^{-nI(X;Y)}

现在来看一下联合典型序列的另一个解释:

  • 对于典型输入序列xnx^n,存在大约2nH(Y|X)2^{nH(Y|X)}个可能的输出,且它们等概
  • 所有可能的典型输出序列大约有2nH(Y)2^{nH(Y)}个,这些序列被分成若干个不相交的子集
  • 子集个数为2n(H(Y)H(Y|X))=2nI(X;Y)2^{n(H(Y) - H(Y|X))} = 2^{nI(X;Y)},表示信道可以无错误传递的最大字母序列个数

对于定理的证明包含两部分,一是可达性,也就是这个容量是可达的,第二个就是证明不可能达到比这个容量更好的速率。

可达性的证明

可达性的证明也就是我们可以找到一个编码函数和解码函数,使得信道带到容量C,而且是无差错地传输。 W[1:2nR]XnPX(x)q(y|X)YnŴ W \in [1:2^{nR}] \rightarrow X^n \sim P_X(x) \rightarrow q(y|X)\rightarrow Y^n\rightarrow \hat W 很反直觉的是,香农给我们编码方法是随机编码。这个随机编码指的是生成码字的过程为随机的: $$ \text{Random Code:}\\ \ell =\begin{pmatrix} x^n(1)\\ x^n(2)\\ \vdots\\ x^n(2^{nR}) \end{pmatrix} $$ 其中xn(k)x^n(k)是独立同分布的生成的,分布为PX(xn(k))=i=1nPX(xi(k))P_X(x^n(k)) = \prod_ {i=1}^n P_X(x_i(k))

于是我们得到了码本,信源发送xn(k)x^n(k),而解码器收到yny^n,一个长度为n的序列。

解码过程:如果解码器端找到唯一的(xn(k̂),yn)Aϵ(n)(x^n(\hat k), y^n) \in A_ {\epsilon}^{(n)},则解码得到k̂\hat k。也就是yny^n和一个唯一的k̂\hat k对应的编码序列xn(k̂)x^n(\hat k)属于联合典型序列,则解码为k̂\hat k,否则解码出错。

现在我们分析一下出错概率。假设1为被传输的符号,而yny^n为对应的输出。那么xn(1)x^n(1)yny^n为联合典型序列的概率非常高。而另外一个i对应的xn(i)x^n(i)yny^n为联合典型序列的概率就没有那么高了。实际上这个概率和联合典型序列性质的第三条是一致的。xn(i),ynx^n(i),y^n有很大的概率是边缘典型序列,而随意两个边缘典型序列组合为联合典型序列的概率,正是 Pr((Xñ,Yñ)Aϵ(n))2nI(X;Y). Pr\left((\tilde{X^n},\tilde{Y^n}) \in A_\epsilon ^{(n)}\right) \approx 2^{-nI(X;Y)}. 出错的类型有两种。

  1. 传的是1,而没有联合典型,
  2. 传的是1,有多个和它是联合典型。 P(E)=P(E1E2)P(E1)+P(E2)ϵ+i=22nR2n(I(X;Y)3ϵ)ϵ+23nϵ2n(I(X;Y)R) \begin{aligned} P(E) &= P(E_1\cup E_2)\\ &\leq P(E_1)+P(E_2)\\ &\leq \epsilon + \sum_ {i=2}^{2nR}2^{-n(I(X;Y) - 3\epsilon)}\\ &\leq \epsilon + 2^{3n\epsilon}2^{-n(I(X;Y) - R)} \end{aligned} 我们希望P(E)0P(E) \rightarrow 0,而第一项是可以任意小的,我们真正在意的是想要I(X;Y)R>0I(X;Y)-R >0。如果我们把生出随机码本的PX(x)P_X(x)固定到PX*(x)P^*_X(x),则I(X;Y)=CI(X;Y) = C,于是只要R<CR<C即可。

这个证明并不严谨,但是给我们提供了一个很重要的思维脉络。我们证明了R<CR < C的情况下,可以实现无差错传输。

下面要说明的是定理的逆的证明。

converse证明

nR=H(W)=H(W|Ŵ)+I(W;Ŵ)=I(W;Ŵ)I(Xn(W);Yn)=H(Yn)H(Yn|Xn)iH(Yi)iH(Yi|Xi)=iI(Xi;Yi)nC \begin{aligned} nR &= H(W)\\ &= H(W|\hat W) + I(W;\hat W)\\ &= I(W;\hat W)\\ &\leq I(X^n(W);Y^n)\\ &= H(Y^n) - H(Y^n|X^n)\\ &\leq \sum_ {i} H(Y_i) - \sum_ {i}H(Y_i|X_i)\\ &= \sum_ {i} I(X_i;Y_i)\\ &\leq nC \end{aligned} 由此我们证明了,要想实现无差错的传输,那么RCR\leq C是一定成立的。由此香农第二定理的证明就结束了。和无差错编码一样,随机编码在现实中由于码本巨大也是难以实现的。不过在信息论提出的60年中,人类一次次提出新的编码,像香农界不断逼近。看着这些进步,感觉自己的信息论虽然没什么用到过,但是也没有白学。