一种基于线性方程组的信道容量求解方法

本文介绍了一种利用拉格朗日乘子法解决信道容量问题的方法,通过构建多元函数并求解驻点,将信道容量转化为线性方程组形式,适用于输入输出状态相等的信道。通过矩阵运算,简化信道容量表达式,从而求得信源分布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一种基于线性方程组的信道容量求解方法

1. 信道容量的一般性结论

信道容量的定义为:
C=I(X;Y)max⁡ C = I(X;Y)_{\max} C=I(X;Y)max
求解信道容量,即在以输入分布为自变量的情况下,求解平均互信息的极大值。需要注意的是:输入分布是信源概率空间中的概率,需要满足概率空间完备性。而直接通过驻点求解出的结论未必满足这一完备性。因此:信道容量的求解问题本质上是多元函数求解约束极值的问题

1.1. 拉格朗日乘子法

多元函数的约束极值一般通过拉格朗日乘子法求解。拉格朗日乘子法的使用方法如下:

  1. 对于某多元函数y=f(x1,x2,⋯ ,xn)y=f(x_1,x_2,\cdots,x_n)y=f(x1,x2,,xn),需要求解其在Φ(x1,x2,⋯ ,xn)=0\Phi(x_1,x_2,\cdots,x_n)=0Φ(x1,x2,,xn)=0条件下的极值;
  2. 构建函数:(其中参数λ\lambdaλ称为拉格朗日乘子)
    g(x1,x2,⋯ ,xn,λ)=f(x1,x2,⋯ ,xn)−λΦ(x1,x2,⋯ ,xn) g(x_1,x_2,\cdots,x_n,\lambda) = f(x_1,x_2,\cdots,x_n)-\lambda\Phi(x_1,x_2,\cdots,x_n) g(x1,x2,,xn,λ)=f(x1,x2,,xn)λΦ(x1,x2,,xn)
  3. 求解函数g(x1,x2,⋯ ,xn,λ)g(x_1,x_2,\cdots,x_n,\lambda)g(x1,x2,,xn,λ)的极值,使该函数达到极值是函数f(x1,x2,⋯ ,xn)f(x_1,x_2,\cdots,x_n)f(x1,x2,,xn)达到极值的必要条件。

在本问题的求解中,待求极值的多元函数是信道的平均互信息,约束条件是输入分布概率之和为一。于是构造函数的形式为:
g(px⃗,λ)=I(X;Y)−λ(∑ip(xi)−1) g(\vec{p_x},\lambda) = I(X;Y) - \lambda\left(\sum_ip(x_i) - 1\right) g(px,λ)=I(X;Y)λ(ip(xi)1)

1.2. 求解驻点条件

互信息可以通过信源熵和信道疑义度,或者信宿熵与噪声熵表示。由于信道转移概率一般定义为以输入符号为条件关于输出符号的条件概率,因此使用信宿熵与噪声熵的表达式更方便:
I(X;Y)=H(Y)−H(Y∣X) I(X;Y) = H(Y) - H(Y|X) I(X;Y)=H(Y)H(YX)
信宿熵的求解基于信宿的概率分布特性。需要注意的是:信宿符号之所以表现出随机性,是因为信源符号分布和信道转移特性表现出了随机性,信宿的所有随机性来源于信源和信道,因此:
p(y)=∑ip(xi,y)=∑ip(y∣xi)p(xi) p(y) = \sum_ip(x_i,y) = \sum_ip(y|x_i)p(x_i) p(y)=ip(xi,y)=ip(yxi)p(xi)
由此可以得到信宿熵的表达式:
H(Y)=−∑jp(yi)log⁡2p(yi)=−∑j{∑ip(yj∣xi)p(xi)×log⁡2[∑ip(yj∣xi)p(xi)]} \begin{aligned} H(Y) &= -\sum_{j}p(y_i)\log_2p(y_i)\\ &= -\sum_j\left\{ \sum_ip(y_j|x_i)p(x_i) \times \log_2\left[\sum_ip(y_j|x_i)p(x_i)\right] \right\} \end{aligned} H(Y)=jp(yi)log2p(yi)=j{ip(yjxi)p(xi)×log2[ip(yjxi)p(xi)]}
噪声熵可以通过信道转移概率和信源分布表示:
H(Y∣X)=−∑i,jp(xi,yj)log⁡2p(yj∣xi)=∑ip(xi)[−∑jp(yj∣xi)log⁡2p(yj∣xi)] \begin{aligned} H(Y|X) &= -\sum_{i,j}p(x_i,y_j)\log_2p(y_j|x_i)\\ &= \sum_ip(x_i)\left[ -\sum_jp(y_j|x_i)\log_2p(y_j|x_i) \right] \end{aligned} H(YX)=i,jp(xi,yj)log2p(yjxi)=ip(xi)[jp(yjxi)log2p(yjxi)]
要求解函数g(px⃗,λ)=I(X;Y)−λ(∑ip(xi)−1)g(\vec{p_x},\lambda)= I(X;Y) - \lambda\left(\sum_ip(x_i) - 1\right)g(px,λ)=I(X;Y)λ(ip(xi)1)的极值,需要求解使得该函数达到驻点的自变量。这里将偏导求解按三项分别进行:

  • 求解−λ(∑ip(xi)−1)- \lambda\left(\sum_ip(x_i) - 1\right)λ(ip(xi)1)关于p(xt)p(x_t)p(xt)的偏导:
    该项是若干p(xi)p(x_i)p(xi)的累加,对p(xt)p(x_t)p(xt)求偏导时,只有包含p(xt)p(x_t)p(xt)的项才对导函数有作用,因此:
    ∂∂p(xt)[−λ(∑ip(xi)−1)]=−λ \frac{\partial}{\partial p(x_t)}\left[- \lambda\left(\sum_ip(x_i) - 1\right)\right] = -\lambda p(xt)[λ(ip(xi)1)]=λ
  • 求解I(X;Y)I(X;Y)I(X;Y)中噪声熵H(Y∣X)H(Y|X)H(YX)关于p(xt)p(x_t)p(xt)的偏导:
    该偏导的求解与上一项的求解过程类似,H(Y∣X)H(Y|X)H(YX)也是一个关于p(xi)p(x_i)p(xi)各项的和式:
    ∂∂p(xt)H(Y∣X)=∂∂p(xt){∑ip(xi)[−∑jp(yj∣xi)log⁡2p(yj∣xi)]}=−∑jp(yj∣xt)log⁡2p(yj∣xt) \begin{aligned} \frac{\partial}{\partial p(x_t)}H(Y|X) &= \frac{\partial}{\partial p(x_t)}\left\{ \sum_ip(x_i)\left[ -\sum_jp(y_j|x_i)\log_2p(y_j|x_i) \right] \right\}\\ &= -\sum_jp(y_j|x_t)\log_2p(y_j|x_t) \end{aligned} p(xt)H(YX)=p(xt){ip(xi)[jp(yjxi)log2p(yjxi)]}=jp(yjxt)log2p(yjxt)
  • 求解I(X;Y)I(X;Y)I(X;Y)中信宿熵H(Y)H(Y)H(Y)关于p(xi)p(x_i)p(xi)的偏导:
    ∂∂p(xt)H(Y)=∂∂p(xt){−∑j{∑ip(yj∣xi)p(xi)×log⁡2[∑ip(yj∣xi)p(xi)]}}=−∑j[p(yj∣xt)log⁡2p(yj)+p(yj∣xt)p(yj)ln⁡2×p(yj)]=−∑j[p(yj∣xt)log⁡2p(yj)+p(yj∣xt)ln⁡2] \begin{aligned} \frac{\partial}{\partial p(x_t)}H(Y) &= \frac{\partial}{\partial p(x_t)} \left\{ -\sum_j\left\{ \sum_ip(y_j|x_i)p(x_i) \times \log_2\left[\sum_ip(y_j|x_i)p(x_i)\right] \right\} \right\}\\ &= -\sum_j\left[ p(y_j|x_t)\log_2p(y_j) + \frac{p(y_j|x_t)}{p(y_j)\ln2}\times p(y_j) \right]\\ &= -\sum_j\left[ p(y_j|x_t)\log_2p(y_j) + \frac{p(y_j|x_t)}{\ln2} \right] \end{aligned} p(xt)H(Y)=p(xt){j{ip(yjxi)p(xi)×log2[ip(yjxi)p(xi)]}}=j[p(yjxt)log2p(yj)+p(yj)ln2p(yjxt)×p(yj)]=j[p(yjxt)log2p(yj)+ln2p(yjxt)]

由此,得到对于xt∈Xx_t\in XxtX,函数g[p(xt)⃗,λ]g\left[\vec{p(x_t)},\lambda\right]g[p(xt),λ]的导函数:
∂g[p(xt)⃗,λ]∂p(xt)=−∑j[p(yj∣xt)log⁡2p(yj)+p(yj∣xt)ln⁡2]+∑jp(yj∣xt)log⁡2p(yj∣xt)−λ=∑j{p(yj∣xt)[log⁡2p(yj∣xt)−log⁡2p(yj)]}−1ln⁡2∑jp(yj∣xt)−λ=−∑j[p(yj∣xt)log⁡2p(yj)p(yj∣xt)]−(log⁡2e+λ) \begin{aligned} \frac{\partial g\left[\vec{p(x_t)},\lambda\right]}{\partial p(x_t)} &= -\sum_j\left[ p(y_j|x_t)\log_2p(y_j) + \frac{p(y_j|x_t)}{\ln2} \right] + \sum_jp(y_j|x_t)\log_2p(y_j|x_t) - \lambda\\ &= \sum_j\left\{p(y_j|x_t)\left[\log_2p(y_j|x_t) - \log_2p(y_j)\right]\right\} - \frac{1}{\ln 2}\sum_j p(y_j|x_t ) - \lambda\\ &= -\sum_j\left[p(y_j|x_t)\log_2\frac{p(y_j)}{p(y_j|x_t)}\right] - \left( \log_2e + \lambda \right)\\ \end{aligned} p(xt)g[p(xt),λ]=j[p(yjxt)log2p(yj)+ln2p(yjxt)]+jp(yjxt)log2p(yjxt)λ=j{p(yjxt)[log2p(yjxt)log2p(yj)]}ln21jp(yjxt)λ=j[p(yjxt)log2p(yjxt)p(yj)](log2e+λ)
在函数达到驻点时,导函数为零,于是有:
{∑ip(xi)=0−∑jp(yj∣xt)log⁡2p(yj)p(yj∣xt)=(log⁡2e+λ) \left\{ \begin{aligned} \sum_ip(x_i) &= 0\\ -\sum_jp(y_j|x_t)\log_2\frac{p(y_j)}{p(y_j|x_t)} &= \left( \log_2e + \lambda \right) \end{aligned} \right. ip(xi)jp(yjxt)log2p(yjxt)p(yj)=0=(log2e+λ)

1.3. 平均互信息达到信道容量时的性质

理论上,(1.2.)中得到的结论已经足以求解达到信道容量状态下的信源分布,但该表达式形式复杂,且并不是线性方程组,难以保证具有解析解。因此,在本文介绍的求解方法中,不使用该结论直接求解信源分布,而是通过该结论考察平均互信息达到信道容量时的性质,进而试图通过其他方法求解。
通过列写平均互信息的表达式:
I(X;Y)=H(Y)−H(Y∣X)=−∑j{∑i[p(yj∣xi)p(xi)]×log⁡2p(yj)}+∑ip(xi)[∑jp(yj∣xi)log⁡2p(yj∣xi)]=−∑i{∑j[p(yj∣xi)p(xi)]×log⁡2p(yj)}+∑ip(xi)[∑jp(yj∣xi)log⁡2p(yj∣xi)]=−∑ip(xi)[∑jp(yj∣xi)×log⁡2p(yj)]+∑ip(xi)[∑jp(yj∣xi)log⁡2p(yj∣xi)]=−∑ip(xi)[∑jp(yj∣xi)log⁡2p(yj)p(yj∣xi)] \begin{aligned} I(X;Y) &= H(Y) - H(Y|X)\\ &= -\sum_j\left\{ \sum_i\Big[p(y_j|x_i)p(x_i)\Big] \times \log_2p(y_j) \right\} + \sum_ip(x_i)\left[ \sum_jp(y_j|x_i)\log_2p(y_j|x_i) \right]\\ &= -\sum_i\left\{ \sum_j\Big[p(y_j|x_i)p(x_i)\Big] \times \log_2p(y_j) \right\} + \sum_ip(x_i)\left[ \sum_jp(y_j|x_i)\log_2p(y_j|x_i) \right]\\ &=-\sum_ip(x_i)\left[\sum_jp(y_j|x_i) \times \log_2p(y_j) \right] + \sum_ip(x_i)\left[ \sum_jp(y_j|x_i)\log_2p(y_j|x_i) \right]\\ &= -\sum_{i}p(x_i)\left[ \sum_j p(y_j|x_i)\log_2\frac{p(y_j)}{p(y_j|x_i)} \right] \end{aligned} I(X;Y)=H(Y)H(YX)=j{i[p(yjxi)p(xi)]×log2p(yj)}+ip(xi)[jp(yjxi)log2p(yjxi)]=i{j[p(yjxi)p(xi)]×log2p(yj)}+ip(xi)[jp(yjxi)log2p(yjxi)]=ip(xi)[jp(yjxi)×log2p(yj)]+ip(xi)[jp(yjxi)log2p(yjxi)]=ip(xi)[jp(yjxi)log2p(yjxi)p(yj)]
当平均互信息达到信道容量时,有−∑jp(yj∣xt)log⁡2p(yj)p(yj∣xt)=(log⁡2e+λ)-\sum_jp(y_j|x_t)\log_2\frac{p(y_j)}{p(y_j|x_t)} = \left( \log_2e + \lambda \right)jp(yjxt)log2p(yjxt)p(yj)=(log2e+λ),于是:
C=log⁡2e+λ C = \log_2e+\lambda C=log2e+λ
或者写成没有待定系数的形式:
C=−∑jp(yj∣xt)log⁡2p(yj)p(yj∣xt) C = -\sum_jp(y_j|x_t)\log_2\frac{p(y_j)}{p(y_j|x_t)} C=jp(yjxt)log2p(yjxt)p(yj)

2. 通过线性方程组求解信道容量

根据(1.3.)得出的结论:
C=−∑jp(yj∣xt)log⁡2p(yj)p(yj∣xt) C = -\sum_jp(y_j|x_t)\log_2\frac{p(y_j)}{p(y_j|x_t)} C=jp(yjxt)log2p(yjxt)p(yj)
这个表达式中,只有CCCp(xt)p(x_t)p(xt)是未知数。需要注意的是,该表达式并不是一个方程,而是∀xt∈X\forall x_t \in XxtX,该方程都成立,即sss个方程(sss是信源符号的数量)。
根据对数函数的性质,可以将对数运算下的除法转换成对数运算外的减法,以便尽可能使用线性运算表达方程:
C=∑jp(yi∣xt)log⁡2p(yi∣xt)−∑jp(yj∣xt)log⁡2p(yi) C = \sum_jp(y_i|x_t)\log_2p(y_i|x_t) - \sum_jp(y_j|x_t)\log_2p(y_i) C=jp(yixt)log2p(yixt)jp(yjxt)log2p(yi)
由于转移概率对于特定输入具有完备性,因此将信道容量也转换为乘以转移概率因子并求和的形式:
∑jp(yj∣xt)C=∑jp(yi∣xt)log⁡2p(yi∣xt)−∑jp(yj∣xt)log⁡2p(yi) \sum_jp(y_j|x_t)C = \sum_jp(y_i|x_t)\log_2p(y_i|x_t) - \sum_jp(y_j|x_t)\log_2p(y_i) jp(yjxt)C=jp(yixt)log2p(yixt)jp(yjxt)log2p(yi)
至此,方程转变为:
∑jp(yj∣xt)[C+log⁡2p(yj)]=∑jp(yj∣xt)log⁡2p(yj∣xt) \sum_jp(y_j|x_t)\Big[ C +\log_2p(y_j) \Big] = \sum_jp(y_j|x_t)\log_2p(y_j|x_t) jp(yjxt)[C+log2p(yj)]=jp(yjxt)log2p(yjxt)
对于输入和输出状态相等的信道,n=s=rn = s = rn=s=r。定义未知数向量:
β⃗=[C+log⁡2p(y1)C+log⁡2p(y2)⋯C+log⁡2p(yn)] \vec{\beta} = \begin{bmatrix} C+\log_2p(y_1)\\ C+\log_2p(y_2)\\ \cdots\\ C+\log_2p(y_n) \end{bmatrix} β=C+log2p(y1)C+log2p(y2)C+log2p(yn)
于是有:
Pβ⃗=H⃗ \mathbf{P}\vec{\beta} = \vec{H} Pβ=H
其中P\mathbf{P}P是信道转移矩阵,H⃗\vec{H}H是转移矩阵每行的转移概率组成的概率空间的熵,即:
H⃗=[∑jp(yj∣x1)log⁡2p(yj∣x1)∑jp(yj∣x2)log⁡2p(yj∣x2)⋯∑jp(yj∣xn)log⁡2p(yj∣xn)] \vec{H} = \begin{bmatrix} \sum_jp(y_j|x_1)\log_2p(y_j|x_1)\\ \sum_jp(y_j|x_2)\log_2p(y_j|x_2)\\ \cdots\\ \sum_jp(y_j|x_n)\log_2p(y_j|x_n) \end{bmatrix} H=jp(yjx1)log2p(yjx1)jp(yjx2)log2p(yjx2)jp(yjxn)log2p(yjxn)
P\mathbf{P}P是可逆矩阵时,可以通过矩阵运算求解出未知数向量:
β⃗=P−1H⃗ \vec{\beta} = \mathbf{P}^{-1}\vec{H} β=P1H
根据信宿熵的完备性,可以通过β⃗\vec{\beta}β向量求解信道容量CCC
∑j2C+log⁡2p(yj)=∑j2cp(yj)=2c \sum_j2^{C+\log_2p(y_j)} = \sum_j2^cp(y_j) = 2^c j2C+log2p(yj)=j2cp(yj)=2c
于是解得信道容量为:
C=log⁡2(∑j2βj) C = \log_2\left(\sum_j2^{\beta_j}\right) C=log2(j2βj)

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值