本文记录下对信道容量的数学推导。

信道容量与互信息

假定读者已有了基本的信息论知识, 那么, 假设发送信号为 x x x (可以是一个长度为 N N N的向量), 接收信号为 y y y。 衡量 x x x信息量的度量就是 x x x的熵 H ( x ) H(x) H(x), 而条件熵 H ( x ∣ y ) H(x|y) H(xy) 就是在已知 y y y的情况下, x x x剩余的不确定度。

那么,要想达到可靠通信, H ( x ∣ y ) H(x|y) H(xy)要趋近于0。 既已知了 y y y就相当于已知了 x x x.
根据信息熵的公式,我们有:
H ( x ∣ y ) = H ( x ) − I ( x ; y ) (1) H(x \mid y)=H(x)-I\left(x;y\right) \tag{1} H(xy)=H(x)I(x;y)(1)
这里 I ( x ; y ) I\left(x;y\right) I(x;y) 就是 x x x y y y的互信息。 (1)揭示了条件熵就是 x x x的不确定度减去 通过观测到 y y y而减少的不确定度

现在假设 发送总空间大小(可取的值的数量)为 ∣ e ∣ |\mathcal{e}| e, 每个码字的长度为 N N N, 那么总共传输的比特数就是 log ⁡ ∣ e ∣ \log |\mathcal{e}| loge, 因此单位时间的码率则是 R = 1 N log ⁡ ∣ e ∣ R=\frac{1}{N}\log |\mathcal{e}| R=N1loge.

又注意到, 最大化信息量需要等概率地发送这 ∣ e ∣ |\mathcal{e}| e种信息, 也就是说, H ( x ) : = ∑ i ∈ I p x ( i ) log ⁡ ( 1 / p x ( i ) ) = log ⁡ ( ∣ e ∣ ) = N R H(x):=\sum_{i \in I} p_{x}(i) \log \left(1 / p_{x}(i)\right)=\log(|\mathcal{e}|)=NR H(x):=iIpx(i)log(1/px(i))=log(e)=NR

那么根据(1), 由于有 H ( x ∣ y ) ≈ 0 H(x|y)\approx 0 H(xy)0, 因此 I ( x ; y ) ≈ H ( x ) = N R I\left(x;y\right)\approx H(x) = NR I(x;y)H(x)=NR, 因此:

R ≈ I ( x ; y ) N R\approx \frac{I\left(x;y\right)}{N} RNI(x;y)

也就是说, 信道容量(速率) R R R 由互信息决定!

我们迅速推导一个 R R R的上界,也即互信息的上界, 有:
I ( x ; y ) = H ( y ) − H ( y ∣ x ) ⩽ ∑ m = 1 N H ( y [ m ] ) − H ( y ∣ x ) = ∑ i = 1 s H ( y [ m ] ) − ∑ m = 1 N H ( y [ m ] ∣ x [ m ] ) = ∑ m = 1 N I ( x [   m ] ; y [ m ] ) \begin{aligned} I(\boldsymbol{x} ; \boldsymbol{y}) &=H(\boldsymbol{y})-H(\boldsymbol{y} \mid \boldsymbol{x}) \\ & \leqslant \sum_{m=1}^{\mathrm{N}} H(y[m])-H(\boldsymbol{y} \mid \boldsymbol{x}) \\ &=\sum_{i=1}^{\mathrm{s}} H(y[{m}])-\sum_{\boldsymbol{m}=1}^{N} H(\boldsymbol{y}[{m}] \mid \boldsymbol{x}[\mathrm{m}]) \\ &=\sum_{m=1}^{N} I\left(x[\mathrm{~m}];y[{m}]\right) \end{aligned} I(x;y)=H(y)H(yx)m=1NH(y[m])H(yx)=i=1sH(y[m])m=1NH(y[m]x[m])=m=1NI(x[ m];y[m])

因为 x x x y y y都是长度为 N N N的码字, 因此我们可以这样把他展开。 第一个不等式处, 因为
H ( y ) = H ( y 1 ∣ y 2 , ⋯   , y N ) + ⋯ + H ( y N ∣ y 1 , ⋯   , y N − 1 ) ≤ H ( y 1 ) + ⋯ + H ( y N ) H(\mathbf{y})=H(y_1|y_2,\cdots,y_N)+\cdots +H(y_N|y_1,\cdots,y_{N-1})\le H(y_1) +\cdots + H(y_N) H(y)=H(y1y2,,yN)++H(yNy1,,yN1)H(y1)++H(yN)
当且仅当 y 1 , ⋯   , y N y_1,\cdots, y_N y1,,yN相互独立时, 等号成立。 后面将 H ( y ∣ x ) H(\boldsymbol{y} \mid \boldsymbol{x}) H(yx)拆分也是同样的道理, 因为这里考虑的是无记忆信道,即接收码字之和当前的发送码字相关,所以这里是等号。

通过推导, 发现最大化互信息, 其实就是最大化每个码字的互信息

AWGN信道容量的严格推导

根据上面的推导, 我们发现容量可以简化为一个码字,即一个标量的输入输出间的互信息。
需要注意的是, 加入发送的为 x x x, 接收到的信号为 y y y, (均为标量), 如果假设AWGN信道,那么:
y = x + w y = x +w y=x+w
其中 w w w 代表噪声, 服从高斯分布 w ∼ N ( 0 , σ 2 ) w\sim\mathcal{N}(0,\sigma^2) wN(0,σ2)。 注意到 x x x y y y都是连续值, 这时候如何计算一个连续随机变量的熵呢? 在信息论里,需要引出微分熵的概念:
h ( x ) = ∫ − ∞ ∞ f x ( u ) log ⁡ ( 1 / f x ( u ) ) d u (2) h(x) =\int_{-\infty}^{\infty} f_{x}(u) \log \left(1 / f_{x}(u)\right) \mathrm{d} u\tag{2} h(x)=fx(u)log(1/fx(u))du(2)
其中 f x f_x fx代表 x x x的概率密度函数。 显然形式和离散情况非常相似, 只是对于连续值,用概率密度函数代替了概率(对于连续随机变量, 每个值的概率趋近于0)。

接下来, 我们推导条件熵 h ( y ∣ x ) h(y|x) h(yx)。 对于发送信号 x x x (确定值), f y ∣ x f_{y|x} fyx 即条件概率密度可表示为:
f y ∣ x ( u ) = 1 2 π σ e − ( u − x ) 2 2 σ 2 f_{y|x}(u)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(u-x)^2}{2\sigma^2}} fyx(u)=2π σ1e2σ2(ux)2

那么,我们根据(2)来计算 h ( y ∣ x ) h(y|x) h(yx), 即(注意 log ⁡ \log log指的是 log ⁡ 2 \log_2 log2):
h ( y ∣ x ) = − ∫ − ∞ ∞ f y ∣ x ( u ) log ⁡ ( f y ∣ x ( u ) ) d u = − 1 ln ⁡ ( 2 ) ∫ − ∞ ∞ f y ∣ x ( u ) ln ⁡ ( f y ∣ x ( u ) ) d u h(y|x)=-\int_{-\infty}^{\infty}f_{y|x}(u) \log(f_{y|x}(u))du=-\frac{1}{\ln(2)}\int_{-\infty}^{\infty}f_{y|x}(u) \ln(f_{y|x}(u)) du h(yx)=fyx(u)log(fyx(u))du=ln(2)1fyx(u)ln(fyx(u))du
这里利用了换底公式为后续简化计算:
log ⁡ a b = log ⁡ c b log ⁡ c a \log _{a} b=\frac{\log _{c} b}{\log _{c} a} logab=logcalogcb
t = u − x 2 σ t= \frac{u-x}{\sqrt{2}\sigma} t=2 σux, 即 u = 2 σ t + x u=\sqrt{2}\sigma t +x u=2 σt+x d u = 2 σ d t du=\sqrt{2}\sigma dt du=2 σdt,上式可化简为:
∫ − ∞ ∞ f y ∣ x ( u ) ln ⁡ ( f y ∣ x ( u ) ) d u = 1 2 π σ ∫ − ∞ ∞ e − t 2 ln ⁡ ( 1 2 π σ e − t 2 ) 2 σ d t = 1 π ∫ − ∞ ∞ e − t 2 ( ln ⁡ ( 1 2 π σ ) − t 2 ) d t = ln ⁡ ( 1 2 π σ ) π ∫ − ∞ ∞ e − t 2 d t − 1 π ∫ − ∞ ∞ t 2 e − t 2 d t (3) \int_{-\infty}^{\infty}f_{y|x}(u) \ln(f_{y|x}(u)) du=\frac{1}{\sqrt{2\pi}\sigma}\int_{-\infty}^{\infty}e^{-t^2} \ln(\frac{1}{\sqrt{2\pi}\sigma}e^{-t^2}) \sqrt{2}\sigma dt\\=\frac{1}{\sqrt{\pi}}\int_{-\infty}^{\infty}e^{-t^2}(\ln(\frac{1}{\sqrt{2\pi}\sigma})-t^2)dt=\frac{\ln(\frac{1}{\sqrt{2\pi}\sigma})}{\sqrt{\pi}}\int_{-\infty}^{\infty}e^{-t^2}dt-\frac{1}{\sqrt{\pi}}\int_{-\infty}^{\infty}t^2e^{-t^2}dt\tag{3} fyx(u)ln(fyx(u))du=2π σ1et2ln(2π σ1et2)2 σdt=π 1et2(ln(2π σ1)t2)dt=π ln(2π σ1)et2dtπ 1t2et2dt(3)

接下来, 分别求取这两部分的积分, 注意,
∫ − ∞ ∞ e − x 2 d x = π \int_{-\infty}^{\infty}e^{-x^2}dx=\sqrt{\pi} ex2dx=π ,
这个的具体推导会另写一篇。 出于篇幅考虑, 现在默认本式成立。而对于第二部分,其实就是求取:
∫ − ∞ ∞ x 2 e − x 2 d x = ∫ − ∞ ∞ − x 2 d ( e − x 2 ) = − x 2 e − x 2 ∣ − ∞ ∞ − ∫ − ∞ ∞ e − x 2 d ( − x 2 ) \int_{-\infty}^{\infty}x^2e^{-x^2}dx=\int_{-\infty}^{\infty}-\frac{x}{2}d(e^{-x^2})=-\frac{x}{2}e^{-x^2}|_{-\infty}^{\infty}-\int_{-\infty}^{\infty}e^{-x^2}d(-\frac{x}{2}) x2ex2dx=2xd(ex2)=2xex2ex2d(2x)
这一步是用了分部积分法。 注意到,前一项等于0, 可以由洛必达法则得到。 而后一项为:
− ∫ − ∞ ∞ e − x 2 d ( − x 2 ) = 1 2 ∫ − ∞ ∞ e − x 2 d x = π 2 -\int_{-\infty}^{\infty}e^{-x^2}d(-\frac{x}{2})=\frac{1}{2}\int_{-\infty}^{\infty}e^{-x^2}dx=\frac{\sqrt{\pi}}{2} ex2d(2x)=21ex2dx=2π
因此,
∫ − ∞ ∞ x 2 e − x 2 d x = π 2 \int_{-\infty}^{\infty}x^2e^{-x^2}dx = \frac{\sqrt{\pi}}{2} x2ex2dx=2π
有了这几个结论, (3)就可以求取了,为: ln ⁡ ( 1 2 π σ ) − 1 2 = 1 2 ln ⁡ ( 1 2 π σ 2 e ) \ln(\frac{1}{\sqrt{2\pi}\sigma})-\frac{1}{2}=\frac{1}{2}\ln(\frac{1}{2\pi\sigma^2 e}) ln(2π σ1)21=21ln(2πσ2e1),最后再考虑前面的常数项, 于是有:
h ( y ∣ x ) = 1 2 ln ⁡ ( 2 π σ 2 e ) ln ⁡ 2 = 1 2 log ⁡ ( 2 π σ 2 e ) h(y|x)=\frac{1}{2}\frac{\ln(2\pi\sigma^2 e)}{\ln 2}=\frac{1}{2}\log(2\pi\sigma^2 e) h(yx)=21ln2ln(2πσ2e)=21log(2πσ2e).
求解完成。最后的结果非常简单, 可以看到, 条件熵(事实上是一个高斯分布的信息熵)只和方差 σ 2 \sigma^2 σ2有关, 和均值 x x x无关!

因此, AWGN信道的容量, 也就是互信息, 可以对应地写为:
I ( x ; y ) = h ( y ) − h ( y ∣ x ) = h ( y ) − 1 2 log ⁡ ( 2 π e σ 2 ) I(x ; y)=h(y)-h(y \mid x)=h(y)-\frac{1}{2} \log \left(2 \pi e \sigma^{2}\right) I(x;y)=h(y)h(yx)=h(y)21log(2πeσ2)
也就是说, 最大化 R R R就是最大化 I I I,而最大化 I I I就是最大化 h ( y ) h(y) h(y), 也就是输出 y y y的熵!

最大微分熵

接下来, 我们寻找使得熵最大的 y y y的分布。 注意到, y y y有一个限制条件。 对于发送信号 x x x,一般其功率限制表示为 E { x 2 } ≤ P E\{x^2\}\le P E{x2}P, 考虑到噪声, 显然有:
E { y 2 } = E { ( x + w ) ( x + w ) } = E { x 2 } + E { w 2 } ≤ P + σ 2 E\{y^2\}=E\{(x+w)(x+w)\}=E\{x^2\}+E\{w^2\}\le P +\sigma^2 E{y2}=E{(x+w)(x+w)}=E{x2}+E{w2}P+σ2
这一条件也被称为二阶矩约束

而我们目标的函数为:
h ( y ) = ∫ − ∞ ∞ g ( y ) log ⁡ ( 1 / g ( y ) ) d y h(y) =\int_{-\infty}^{\infty} g(y) \log \left(1 / g(y)\right) \mathrm{d} y h(y)=g(y)log(1/g(y))dy
由于最大化 ∫ − ∞ ∞ g ( y ) ln ⁡ ( 1 / g ( y ) ) d y \int_{-\infty}^{\infty} g(y) \ln \left(1 / g(y)\right) \mathrm{d} y g(y)ln(1/g(y))dy和最大化 h ( y ) h(y) h(y)是完全一样的, 为了推导方便, 我们后面用 ln ⁡ \ln ln
其中 g ( y ) g(y) g(y)就是我们需要求取的概率密度函数。 也就是说, 我们希望求得 使 h ( y ) h(y) h(y)最大化的 g ( y ) g(y) g(y)
使用拉格朗日乘数法, 将限制条件写入到损失函数中。 注意到, 有两个限制条件:

  • 总概率必须为1, 因此 ∫ − ∞ ∞ g ( y ) d y = 1 \int_{-\infty}^{\infty} g(y) \mathrm{d} y=1 g(y)dy=1
  • 二阶矩约束: ∫ − ∞ ∞ g ( y ) y 2 d y ≤ P + σ 2 \int_{-\infty}^{\infty} g(y)y^2\mathrm{d} y\le P+\sigma^2 g(y)y2dyP+σ2

那么, 我们写出的拉格朗日函数为(这里我们将 h ( y ) h(y) h(y)改为以 − h ( y ) -h(y) h(y)为目标,这样就变成了了最小化问题):
L = ∫ − ∞ ∞ g ( y ) ln ⁡ ( g ( y ) ) d y + λ 0 ( ∫ − ∞ ∞ g ( y ) d y − 1 ) + λ ( ∫ − ∞ ∞ g ( y ) y 2 d y − ( P + σ 2 ) ) L =\int_{-\infty}^{\infty} g(y) \ln \left(g(y)\right) \mathrm{d} y + \lambda_0(\int_{-\infty}^{\infty} g(y) \mathrm{d} y-1)+\lambda(\int_{-\infty}^{\infty} g(y)y^2\mathrm{d} y - (P+\sigma^2)) L=g(y)ln(g(y))dy+λ0(g(y)dy1)+λ(g(y)y2dy(P+σ2))
其中 λ \lambda λ λ 0 \lambda_0 λ0就是引入的拉格朗日乘子。
类似于KKT条件的梯度为0, 虽然我们现在的优化目标是一个函数 g g g,而不是一个变量, 但对于函数也有变分的概念。 即, 当 g g g最优时,对 g g g的微小改变带来的 L L L的变化应该趋于0。 即:
δ L = ∫ − ∞ ∞ ( δ g ( y ) ln ⁡ ( g ( y ) ) + δ g ( y ) ) d y + λ 0 ( ∫ − ∞ ∞ δ g ( y ) d y − 1 ) + λ ( ∫ − ∞ ∞ δ g ( y ) y 2 d y − ( P + σ 2 ) ) = ∫ − ∞ ∞ δ g ( y ) ( ln ⁡ ( g ( y ) ) + 1 + λ 0 + λ y 2 ) d y \delta L =\int_{-\infty}^{\infty} (\delta g(y) \ln \left(g(y)\right) + \delta g(y))\mathrm{d} y + \lambda_0(\int_{-\infty}^{\infty} \delta g(y) \mathrm{d} y-1)+\lambda(\int_{-\infty}^{\infty}\delta g(y)y^2\mathrm{d} y - (P+\sigma^2)) \\=\int_{-\infty}^{\infty}\delta g(y)(\ln \left(g(y)\right) +1+\lambda_0+\lambda y^2)\mathrm{d} y δL=(δg(y)ln(g(y))+δg(y))dy+λ0(δg(y)dy1)+λ(δg(y)y2dy(P+σ2))=δg(y)(ln(g(y))+1+λ0+λy2)dy
因此, 要使得 δ L = 0 \delta L =0 δL=0, 也就是要有 ( ln ⁡ ( g ( y ) ) + 1 + λ 0 + λ y 2 ) = 0 (\ln \left(g(y)\right) +1+\lambda_0+\lambda y^2)=0 (ln(g(y))+1+λ0+λy2)=0, 因此有:
g ( y ) = e − ( 1 + λ 0 + λ y 2 ) g(y)=e^{-(1+\lambda_0+\lambda y^2)} g(y)=e(1+λ0+λy2).
那么只需要求解 λ 0 \lambda_0 λ0 λ \lambda λ就能得到确切的 g ( y ) g(y) g(y)表达式了。 将 g ( y ) g(y) g(y)代回两个限制条件中, 有:
∫ − ∞ ∞ g ( y ) d y = ∫ − ∞ ∞ e − ( 1 + λ 0 + λ y 2 ) d y = 1 ∫ − ∞ ∞ g ( y ) y 2 d y = ∫ − ∞ ∞ e − ( 1 + λ 0 + λ y 2 ) y 2 d y = P + σ 2 \int_{-\infty}^{\infty} g(y) \mathrm{d} y=\int_{-\infty}^{\infty} e^{-(1+\lambda_0+\lambda y^2)} \mathrm{d} y=1\\ \int_{-\infty}^{\infty} g(y)y^2\mathrm{d} y=\int_{-\infty}^{\infty} e^{-(1+\lambda_0+\lambda y^2)}y^2\mathrm{d} y=P+\sigma^2 g(y)dy=e(1+λ0+λy2)dy=1g(y)y2dy=e(1+λ0+λy2)y2dy=P+σ2
具体的求解不再详细描述了, 和刚刚推导高斯分布的微熵是一样的。 最终可以得到:
g ( y ) = 1 2 π ( P + σ 2 ) e − y 2 2 ( P + σ 2 ) g(y)=\frac{1}{\sqrt{2\pi(P+\sigma^2)}}e^{-\frac{y^2}{2(P+\sigma^2)}} g(y)=2π(P+σ2) 1e2(P+σ2)y2
也就是说, 当 y y y服从高斯分布 y ∼ ( 0 , P + σ 2 ) y\sim(0, P+\sigma^2) y(0,P+σ2)时, h ( y ) h(y) h(y)最大。 同样可以得到:
h ( y ) = 1 2 log ⁡ ( 2 π e ( P + σ 2 ) ) h(y) = \frac{1}{2}\log(2\pi e(P+\sigma^2)) h(y)=21log(2πe(P+σ2))
至此, 可以计算高斯信道的容量:
C = I = h ( y ) − h ( y ∣ x ) = 1 2 log ⁡ ( 2 π e ( P + σ 2 ) ) − 1 2 log ⁡ ( 2 π e ( σ 2 ) ) = 1 2 log ⁡ ( 1 + P σ 2 ) C = I = h(y) - h(y|x) = \frac{1}{2}\log(2\pi e(P+\sigma^2)) - \frac{1}{2}\log(2\pi e(\sigma^2))=\frac{1}{2}\log(1+\frac{P}{\sigma^2}) C=I=h(y)h(yx)=21log(2πe(P+σ2))21log(2πe(σ2))=21log(1+σ2P)
也就是我们所熟知的: 香农公式。

MIMO

MIMO 下理应有类似的推导。 若:
y = H x + ω \mathbf{y} = \mathbf{H}\mathbf{x} + \mathbf{\omega} y=Hx+ω
有:
I ( x ; y ∣ H = H ) = h ( y ) − h ( y ∣ x ) = h ( y ) − h ( w ) = h ( y ) − n t log ⁡ ( π e N 0 ) \begin{aligned} I\left(\boldsymbol{x};\boldsymbol{y} \mid \boldsymbol{H}=\boldsymbol{H}\right) &=h(\boldsymbol{y})-h(\boldsymbol{y} \mid \boldsymbol{x}) \\ &=h(\boldsymbol{y})-h(\boldsymbol{w}) \\ &=h(\boldsymbol{y})-n_{t} \log \left(\pi \mathrm{e} N_{0}\right) \end{aligned} I(x;yH=H)=h(y)h(yx)=h(y)h(w)=h(y)ntlog(πeN0)
y \mathbf{y} y的协方差(二阶矩)显然为 N 0 I + H K H H N_0\mathbf{I} + HKH^H N0I+HKHH, 其中 K K K x \mathbf{x} x的协方差。 ( x \mathbf{x} x是零均值高斯)
因此 y \mathbf{y} y的最大熵为:
log ⁡ det ⁡ ( I n r + 1 N 0 H K x H H ) \log \operatorname{det}\left(\boldsymbol{I}_{n_{r}}+\frac{1}{N_{0}} \boldsymbol{H} \boldsymbol{K}_{x} \boldsymbol{H}^H\right) logdet(Inr+N01HKxHH)
注意到, 在这个式子里, 信道容量与接收端是无关的。
这也和经典的论文中提到的一样。当接收端最优时, 信道容量就是这个式子决定

我个人的理解, 信道容量由这个式子决定的原因是: h ( x ∣ y ) = 0 h(x|y) =0 h(xy)=0。 也就是说, 最后我们在接收端拿到的 y y y,确实是可以无差的恢复出 x x x。 但是,如何恢复出, 就是另一回事了。 很可能, 恢复的过程并不是线性的。因此许多论文里说, 最优接收机, 在我理解里就是当 h ( x ∣ y ) = 0 h(x|y) =0 h(xy)=0时可以由 y y y恢复出 x x x的接收机。

而如何设计 x x x的过程就是波束成形了。 那么 x x x很明显应该取 H H H HH^H HHH的最大几列特征向量了
然后才有了接收机取 H H H的奇异向量的这个结论

然后才是,为什么SVD得到的是MIMO的最优容量。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐