香农定理解读
前言
| 领域 |
定理 |
出处 |
| 通信工程界(工程实践导向) |
1. 源编码定理(无失真) 2. 信道编码定理(有噪声) 3. 信道容量定理 / 香农第三定理(无误码传输极限) |
通信工程、信号系统、光通信教材常用 |
| 信息论学术体系(数学原始定义) |
1. 无失真信源编码定理 2. 信道编码定理(有噪声信道) 3. 有失真信源编码定理(保失真度准则下的信源编码定理) |
源自香农1948年论文的严格定义体系 |
信息量 (Information Content)
单个符号的不确定性,用来衡量“惊讶程度”:
I(x)=−log2P(x)(1)
出现概率越低的信息,包含的信息量越大。
如何理解信息量这个抽象物理概念?
假定我要传达某种物理状态的信息,这种物理状态总共存在八种情况,每种情况需要与一种表示方法一一对应,在机器语言——二进制中需要 log2(8)=3bit 信息来表示。如果我不知道一共存在多少种状态,仅知道某种状态发生的概率为 P(x),可以推广上面的办法,认为该信息需要 −log2P(x) 的比特数表示
熵 (Entropy)
一个信源平均每个符号包含的信息量(即平均不确定度):
H(X)=−i∑P(xi)log2P(xi)(2)
它是信息源的“无序程度”。熵越大,信息越丰富,也越难压缩。
两个随机变量 X(输入)和 Y(输出)之间的共享信息量:
I(X;Y)=H(X)−H(X∣Y)(3)
代表接收端从输出 Y 中获得了多少关于输入 X 的确定性。它描述了“输入输出之间的关联强度”。
信道容量 (Channel Capacity)
信道能无误地传递信息的最大速率:
C=P(X)maxI(X;Y)(4)
它是信道的“极限速率”,由噪声与带宽共同决定。无论用什么编码,只要传输速率 R<C,就存在一种编码方式可以使误码率趋近于零。
香农理论的物理图像
| 量 |
含义 |
类比 |
| 信息熵 H(X) |
不确定性 |
热力学熵 |
| 互信息 I(X;Y) |
有效传递信息量 |
能量传递效率 |
| 信道容量 C |
最大可传速率 |
管道通量极限 |
它体现了“信息守恒”思想:通信的过程就是在有限带宽、有限功率下,抵抗噪声、提取确定性的过程。
信息论中的三大定理
第一定理:无失真信源编码定理
平均每个符号的信息量不能压缩到低于熵 H(X)。
即:
Rs≥H(X)=−log2(P(x))(5)
是数据压缩的下限。
第二定理:信道编码定理(有噪信道)
若传输速率 R<C,可使误码率趋近于零。若 R>C,误码不可避免。
Rc<C⇒Pe→0(6)
这是我们常说的“香农极限”,工程上通常称为“香农第二定理”。
第三定理:有失真信源编码定理(保失真度准则)
这是在“允许一定失真”的情况下(比如图像压缩、语音压缩):
对于允许最大失真 D 的编码,可以找到最小平均码率 R(D),它称为率失真函数(Rate–Distortion Function)。
R(D)=p(x^∣x):E[d(X,X^)]≤DminI(X;X^)(7)
也就是说:
- 若你允许图像稍微模糊(有失真),
- 那么可以进一步压缩,压缩比由 R(D) 决定。
这条定理从信息论角度定义了“压缩–失真之间的极限关系”,而不是通信系统的误码极限。
AWGN 信道下的香农信道容量定理
通信教材里的“香农第二定理/第三定理”其实指的是“容量定理”:
若传输速率 R<C,存在编码方式使误码率趋近于 0;若 R>C,任何编码都无法避免误码。
而容量的定义就是:
C=P(X)maxI(X;Y)(8)
这个定理不依赖于 AWGN,不依赖调制,不依赖“电平判决”任何工程细节。
教材中的香农信道容量公式
C=Blog2(1+SNR)(9)
实际上是定义式在 AWGN 信道模型下的一个特例求解结果
公式数学层面推导
高斯信道模型
AWGN 下香农信道容量就是对互信息求极值
互信息公式为:
I(X;Y)=h(Y)−h(Y∣X)(10)
这里 h(⋅) 是微分熵(连续随机变量的熵)。
香农研究的信道为 AWGN:
Y=X+N,N∼N(0,N0B)(11)
噪声是高斯的,并且独立于输入信号。
求 h(Y|X)
因为 AWGN 中:
{Y∣X=x}=x+N(12)
这是一个均值为 x、方差为 N0B 的高斯随机变量。
高斯变量的微分熵(后面附推导过程):
h(Z)=21log(2πeσ2)(13)
所以:
h(Y∣X)=21log(2πeN0B)(14)
这一项与输入分布无关(因为噪声固定)
最大化 h(Y)
注意:
I(X;Y)=h(Y)−h(Y∣X)(15)
既然第二项是常数,容量最大化问题变成:
找到一种输入分布 p(x),使输出 Y=X+N 的熵最大。
这就是香农推导的关键,香农最大熵定理:在给定方差的所有实函数中,高斯分布的熵最大(后面附推导过程)。
这给出了 AWGN 信道的最优输入分布:
X∼N(0,P)(16)
其中 P 是信号功率。
然后:
Y=X+N∼N(0,P+N0B)(17)
于是输出熵为:
h(Y)=21log(2πe(P+N0B))(18)
互信息计算
代入互信息公式:
I(X;Y)=h(Y)−h(Y∣X)=21log(2πe(P+N0B))−21log(2πeN0B)=21log(1+N0BP)(19)
单位为 bit / symbol(如果 log 底为 2)
每秒可传多少 symbol?
由于带宽为 B,每秒可传 2B 个独立实采样(奈奎斯特频率)。
但每两个实采样可组成一个复符号,因此有效独立符号率为:
symbol rate=B(20)
所以信道容量:
C=B⋅I(X;Y)=B⋅log2(1+N0BP)(21)
这就得到了著名的香农信道容量公式:
C=Blog2(1+SNR)(22)
物理工程层面推导
-
带宽限制:
根据奈奎斯特采样定理,为了避免混叠,若每秒最多 2B 个采样点,则基带带宽为 B,有效符号率约为 B。
-
信号分辨能力:
接收端在噪声方差 dn2 下,可分辨信号功率范围 ds2 被噪声“模糊”为 ds′2=ds2+dn2。
-
独立符号区分数:
电平数近似为功率比 ds′2/dn2=1+SNR,因为你必须以至少一个噪声功率为标准做归一化,否则电平间距低于噪声,无法分辨相邻的两个电平,必然造成误码且无法解决。
-
每符号信息量(单符号比特数):
以至少一个噪声功率为标准做归一化,那么就存在一个最大单符号信息量
每符号信息量≤log2(1+SNR)(23)
-
最大每秒信息量(信道容量):
最大每秒信息量 = 符号率 × 单符号比特数
C=Blog2(1+SNR)(24)
最大微分熵推导(推导高斯分布)
用拉格朗日乘子法最大化微分熵
我们想在以下约束下最大化熵:
-
PDF 积分为 1
∫f(x)dx=1(25)
-
均值固定
∫xf(x)dx=μ(26)
-
方差固定
∫(x−μ)2f(x)dx=σ2(27)
目标函数(要最大化)
h(f)=−∫f(x)lnf(x)dx(28)
构造拉格朗日函数
L=−∫flnfdx+λ1(∫fdx−1)+λ2(∫xfdx−μ)+λ3(∫(x−μ)2fdx−σ2)(29)
对 f(x) 求变分导数(functional derivative):
δfδL=−(lnf+1)+λ1+λ2x+λ3(x−μ)2=0(30)
整理:
lnf=−1+λ1+λ2x+λ3(x−μ)2(31)
对两边取指数:
f(x)=exp(a+bx+c(x−μ)2)(32)
这个形式只有在 c < 0 时才可积收敛。
可以看到,该概率密度函数为自然对数指数的二次型形式,该形式在 c < 0 时必然能够化为高斯分布的形式。
将指数里的二次型补成平方项,令 μ′=μ−2cb,(17)就能化为
f(x)K=K⋅exp[c⋅(x−μ′)2]=exp(μb−4cb2+a)=常数(33)
我们不必纠结常数 K 中的各个系数具体是多少,因为这个常数后面做归一化的时候能够直接计算出来。
根据前面最大熵优化的约束
⎩⎨⎧∫f(x)dx=K∫exp[c⋅(x−μ′)2]dx=1∫xf(x)dx=K∫xexp[c⋅(x−μ′)2]dx=μ∫(x−μ)2f(x)dx=K∫(x−μ)2exp[c⋅(x−μ′)2]dx=σ2(34)
现在要求解该积分方程组,得到 c,K 和 μ′ 的解。
先用归一化求 K 和 c 的关系
1=∫−∞∞f(x)dx=K∫−∞∞ec(x−μ′)2dx(35)
令 t=−c(x−μ′),则 dx=dt/−c,得到
∫−∞∞ec(x−μ′)2dx=−c1∫−∞∞e−t2dt=−cπ(36)
所以
1=K−cπ⇒K=π−c.(37)
再用均值约束得到 μ’= μ
μ=∫xf(x)dx=K∫xec(x−μ′)2dx.(38)
把 x 写成 μ′+(x−μ′):
μ=K∫[μ′+(x−μ′)]ec(x−μ′)2dx=Kμ′∫ec(x−μ′)2dx+K∫(x−μ′)ec(x−μ′)2dx.(39)
第二项是奇函数积分(关于 μ′ 对称):
∫−∞∞(x−μ′)ec(x−μ′)2dx=0.(40)
第一项用归一化结果 ∫ec(x−μ′)2dx=1/K:
μ=Kμ′⋅K1=μ′.(41)
所以直接得到
μ′=μ.(42)
这就把 μ 和 μ′ 的“冲突”解决了,配方出来的中心 μ′ 必须等于约束中的均值 μ,也就是(17)里的 b=0。
用方差约束求 c
现在已经知道 μ′=μ,第三个约束变成
σ2=∫(x−μ)2f(x)dx=K∫(x−μ)2ec(x−μ)2dx.(43)
同样令 t=−c(x−μ),dx=dt/−c:
σ2=K∫(−c)t2e−t2−cdt=K(−c)3/21∫−∞∞t2e−t2dt.(44)
标准高斯积分:
∫−∞∞t2e−t2dt=2π.(45)
代入得到
σ2=K(−c)3/21⋅2π.(46)
把(22)中 K=−c/π 代入(31):
σ2=π−c⋅(−c)3/21⋅2π=2(−c)1.(47)
所以
c=−2σ21.(48)
回代求 K
用 c=−1/(2σ2) 带回 (A):
K=π−c=2σ2π1=2πσ21.(49)
最终结果
三参数全解出来:
μ′=μ,c=−2σ21,K=2πσ21.(50)
因此
f(x)=2πσ21exp[−2σ2(x−μ)2].(51)
就是标准的高斯分布,也满足一开始设定的三个最大熵约束。
高斯分布微分熵推导
连续随机变量 Z 的微分熵定义是:
h(Z)=−∫−∞+∞fZ(z)logfZ(z)dz(52)
高斯随机变量:
Z∼N(μ,σ2)(53)
它的概率密度为:
fZ(z)=2πσ21exp(−2σ2(z−μ)2)(54)
先把 log f(z) 写出来
我们要算的是 logfZ(z),一般先用自然对数(底 e),后面再换成 log2:
lnfZ(z)=ln[2πσ21exp(−2σ2(z−μ)2)](55)
拆开:
lnfZ(z)=ln2πσ21+lnexp(−2σ2(z−μ)2)(56)
把熵写成“期望”的形式
熵的定义:
h(Z)=−∫fZ(z)lnfZ(z)dz=−E[lnfZ(Z)](57)
代入刚才算出来的 lnfZ(Z) 带入:
h(Z)=−E[−21ln(2πσ2)−2σ2(Z−μ)2]=E[21ln(2πσ2)+2σ2(Z−μ)2](58)
把常数从期望里拿出来
21ln(2πσ2) 是常数,不依赖 Z,所以:
h(Z)=21ln(2πσ2)+2σ21E[(Z−μ)2](59)
这里 E[(Z−μ)2] 就是方差:
E[(Z−μ)2]=σ2(60)
代入:
h(Z)=21ln(2πσ2)+2σ21⋅σ2=21ln(2πσ2)+21(61)
常数合并进对数
因为 lne=1,所以:
21=21lne(62)
于是:
h(Z)=21ln(2πσ2)+21lne=21ln(2πσ2⋅e)=21ln(2πeσ2)(63)
这就是常见的自然对数形式:
h(Z)=21ln(2πeσ2)(单位:nat)(64)
如果想要 bit 为单位,把 ln 换成 log2 即可:
h(Z)=21log2(2πeσ2)(65)