一种基于线性方程组的信道容量求解方法
1. 信道容量的一般性结论
信道容量的定义为:
C
=
I
(
X
;
Y
)
max
C = I(X;Y)_{\max}
C=I(X;Y)max
求解信道容量,即在以输入分布为自变量的情况下,求解平均互信息的极大值。需要注意的是:输入分布是信源概率空间中的概率,需要满足概率空间完备性。而直接通过驻点求解出的结论未必满足这一完备性。因此:信道容量的求解问题本质上是多元函数求解约束极值的问题。
1.1. 拉格朗日乘子法
多元函数的约束极值一般通过拉格朗日乘子法求解。拉格朗日乘子法的使用方法如下:
- 对于某多元函数 y = f ( x 1 , x 2 , ⋯ , x n ) y=f(x_1,x_2,\cdots,x_n) y=f(x1,x2,⋯,xn),需要求解其在 Φ ( x 1 , x 2 , ⋯ , x n ) = 0 \Phi(x_1,x_2,\cdots,x_n)=0 Φ(x1,x2,⋯,xn)=0条件下的极值;
- 构建函数:(其中参数
λ
\lambda
λ称为拉格朗日乘子)
g ( x 1 , x 2 , ⋯ , x n , λ ) = f ( x 1 , x 2 , ⋯ , x n ) − λ Φ ( x 1 , x 2 , ⋯ , x n ) 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) - 求解函数 g ( x 1 , x 2 , ⋯ , x n , λ ) g(x_1,x_2,\cdots,x_n,\lambda) g(x1,x2,⋯,xn,λ)的极值,使该函数达到极值是函数 f ( x 1 , x 2 , ⋯ , x n ) f(x_1,x_2,\cdots,x_n) f(x1,x2,⋯,xn)达到极值的必要条件。
在本问题的求解中,待求极值的多元函数是信道的平均互信息,约束条件是输入分布概率之和为一。于是构造函数的形式为:
g
(
p
x
⃗
,
λ
)
=
I
(
X
;
Y
)
−
λ
(
∑
i
p
(
x
i
)
−
1
)
g(\vec{p_x},\lambda) = I(X;Y) - \lambda\left(\sum_ip(x_i) - 1\right)
g(px,λ)=I(X;Y)−λ(i∑p(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(Y∣X)
信宿熵的求解基于信宿的概率分布特性。需要注意的是:信宿符号之所以表现出随机性,是因为信源符号分布和信道转移特性表现出了随机性,信宿的所有随机性来源于信源和信道,因此:
p
(
y
)
=
∑
i
p
(
x
i
,
y
)
=
∑
i
p
(
y
∣
x
i
)
p
(
x
i
)
p(y) = \sum_ip(x_i,y) = \sum_ip(y|x_i)p(x_i)
p(y)=i∑p(xi,y)=i∑p(y∣xi)p(xi)
由此可以得到信宿熵的表达式:
H
(
Y
)
=
−
∑
j
p
(
y
i
)
log
2
p
(
y
i
)
=
−
∑
j
{
∑
i
p
(
y
j
∣
x
i
)
p
(
x
i
)
×
log
2
[
∑
i
p
(
y
j
∣
x
i
)
p
(
x
i
)
]
}
\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)=−j∑p(yi)log2p(yi)=−j∑{i∑p(yj∣xi)p(xi)×log2[i∑p(yj∣xi)p(xi)]}
噪声熵可以通过信道转移概率和信源分布表示:
H
(
Y
∣
X
)
=
−
∑
i
,
j
p
(
x
i
,
y
j
)
log
2
p
(
y
j
∣
x
i
)
=
∑
i
p
(
x
i
)
[
−
∑
j
p
(
y
j
∣
x
i
)
log
2
p
(
y
j
∣
x
i
)
]
\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(Y∣X)=−i,j∑p(xi,yj)log2p(yj∣xi)=i∑p(xi)[−j∑p(yj∣xi)log2p(yj∣xi)]
要求解函数
g
(
p
x
⃗
,
λ
)
=
I
(
X
;
Y
)
−
λ
(
∑
i
p
(
x
i
)
−
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)的极值,需要求解使得该函数达到驻点的自变量。这里将偏导求解按三项分别进行:
- 求解
−
λ
(
∑
i
p
(
x
i
)
−
1
)
- \lambda\left(\sum_ip(x_i) - 1\right)
−λ(∑ip(xi)−1)关于
p
(
x
t
)
p(x_t)
p(xt)的偏导:
该项是若干 p ( x i ) p(x_i) p(xi)的累加,对 p ( x t ) p(x_t) p(xt)求偏导时,只有包含 p ( x t ) p(x_t) p(xt)的项才对导函数有作用,因此:
∂ ∂ p ( x t ) [ − λ ( ∑ i p ( x i ) − 1 ) ] = − λ \frac{\partial}{\partial p(x_t)}\left[- \lambda\left(\sum_ip(x_i) - 1\right)\right] = -\lambda ∂p(xt)∂[−λ(i∑p(xi)−1)]=−λ - 求解
I
(
X
;
Y
)
I(X;Y)
I(X;Y)中噪声熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)关于
p
(
x
t
)
p(x_t)
p(xt)的偏导:
该偏导的求解与上一项的求解过程类似, H ( Y ∣ X ) H(Y|X) H(Y∣X)也是一个关于 p ( x i ) p(x_i) p(xi)各项的和式:
∂ ∂ p ( x t ) H ( Y ∣ X ) = ∂ ∂ p ( x t ) { ∑ i p ( x i ) [ − ∑ j p ( y j ∣ x i ) log 2 p ( y j ∣ x i ) ] } = − ∑ j p ( y j ∣ x t ) log 2 p ( y j ∣ x t ) \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(Y∣X)=∂p(xt)∂{i∑p(xi)[−j∑p(yj∣xi)log2p(yj∣xi)]}=−j∑p(yj∣xt)log2p(yj∣xt) - 求解
I
(
X
;
Y
)
I(X;Y)
I(X;Y)中信宿熵
H
(
Y
)
H(Y)
H(Y)关于
p
(
x
i
)
p(x_i)
p(xi)的偏导:
∂ ∂ p ( x t ) H ( Y ) = ∂ ∂ p ( x t ) { − ∑ j { ∑ i p ( y j ∣ x i ) p ( x i ) × log 2 [ ∑ i p ( y j ∣ x i ) p ( x i ) ] } } = − ∑ j [ p ( y j ∣ x t ) log 2 p ( y j ) + p ( y j ∣ x t ) p ( y j ) ln 2 × p ( y j ) ] = − ∑ j [ p ( y j ∣ x t ) log 2 p ( y j ) + p ( y j ∣ x t ) 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∑{i∑p(yj∣xi)p(xi)×log2[i∑p(yj∣xi)p(xi)]}}=−j∑[p(yj∣xt)log2p(yj)+p(yj)ln2p(yj∣xt)×p(yj)]=−j∑[p(yj∣xt)log2p(yj)+ln2p(yj∣xt)]
由此,得到对于
x
t
∈
X
x_t\in X
xt∈X,函数
g
[
p
(
x
t
)
⃗
,
λ
]
g\left[\vec{p(x_t)},\lambda\right]
g[p(xt),λ]的导函数:
∂
g
[
p
(
x
t
)
⃗
,
λ
]
∂
p
(
x
t
)
=
−
∑
j
[
p
(
y
j
∣
x
t
)
log
2
p
(
y
j
)
+
p
(
y
j
∣
x
t
)
ln
2
]
+
∑
j
p
(
y
j
∣
x
t
)
log
2
p
(
y
j
∣
x
t
)
−
λ
=
∑
j
{
p
(
y
j
∣
x
t
)
[
log
2
p
(
y
j
∣
x
t
)
−
log
2
p
(
y
j
)
]
}
−
1
ln
2
∑
j
p
(
y
j
∣
x
t
)
−
λ
=
−
∑
j
[
p
(
y
j
∣
x
t
)
log
2
p
(
y
j
)
p
(
y
j
∣
x
t
)
]
−
(
log
2
e
+
λ
)
\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(yj∣xt)log2p(yj)+ln2p(yj∣xt)]+j∑p(yj∣xt)log2p(yj∣xt)−λ=j∑{p(yj∣xt)[log2p(yj∣xt)−log2p(yj)]}−ln21j∑p(yj∣xt)−λ=−j∑[p(yj∣xt)log2p(yj∣xt)p(yj)]−(log2e+λ)
在函数达到驻点时,导函数为零,于是有:
{
∑
i
p
(
x
i
)
=
0
−
∑
j
p
(
y
j
∣
x
t
)
log
2
p
(
y
j
)
p
(
y
j
∣
x
t
)
=
(
log
2
e
+
λ
)
\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.
⎩⎪⎪⎪⎨⎪⎪⎪⎧i∑p(xi)−j∑p(yj∣xt)log2p(yj∣xt)p(yj)=0=(log2e+λ)
1.3. 平均互信息达到信道容量时的性质
理论上,(1.2.)中得到的结论已经足以求解达到信道容量状态下的信源分布,但该表达式形式复杂,且并不是线性方程组,难以保证具有解析解。因此,在本文介绍的求解方法中,不使用该结论直接求解信源分布,而是通过该结论考察平均互信息达到信道容量时的性质,进而试图通过其他方法求解。
通过列写平均互信息的表达式:
I
(
X
;
Y
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
=
−
∑
j
{
∑
i
[
p
(
y
j
∣
x
i
)
p
(
x
i
)
]
×
log
2
p
(
y
j
)
}
+
∑
i
p
(
x
i
)
[
∑
j
p
(
y
j
∣
x
i
)
log
2
p
(
y
j
∣
x
i
)
]
=
−
∑
i
{
∑
j
[
p
(
y
j
∣
x
i
)
p
(
x
i
)
]
×
log
2
p
(
y
j
)
}
+
∑
i
p
(
x
i
)
[
∑
j
p
(
y
j
∣
x
i
)
log
2
p
(
y
j
∣
x
i
)
]
=
−
∑
i
p
(
x
i
)
[
∑
j
p
(
y
j
∣
x
i
)
×
log
2
p
(
y
j
)
]
+
∑
i
p
(
x
i
)
[
∑
j
p
(
y
j
∣
x
i
)
log
2
p
(
y
j
∣
x
i
)
]
=
−
∑
i
p
(
x
i
)
[
∑
j
p
(
y
j
∣
x
i
)
log
2
p
(
y
j
)
p
(
y
j
∣
x
i
)
]
\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(Y∣X)=−j∑{i∑[p(yj∣xi)p(xi)]×log2p(yj)}+i∑p(xi)[j∑p(yj∣xi)log2p(yj∣xi)]=−i∑{j∑[p(yj∣xi)p(xi)]×log2p(yj)}+i∑p(xi)[j∑p(yj∣xi)log2p(yj∣xi)]=−i∑p(xi)[j∑p(yj∣xi)×log2p(yj)]+i∑p(xi)[j∑p(yj∣xi)log2p(yj∣xi)]=−i∑p(xi)[j∑p(yj∣xi)log2p(yj∣xi)p(yj)]
当平均互信息达到信道容量时,有
−
∑
j
p
(
y
j
∣
x
t
)
log
2
p
(
y
j
)
p
(
y
j
∣
x
t
)
=
(
log
2
e
+
λ
)
-\sum_jp(y_j|x_t)\log_2\frac{p(y_j)}{p(y_j|x_t)} = \left( \log_2e + \lambda \right)
−∑jp(yj∣xt)log2p(yj∣xt)p(yj)=(log2e+λ),于是:
C
=
log
2
e
+
λ
C = \log_2e+\lambda
C=log2e+λ
或者写成没有待定系数的形式:
C
=
−
∑
j
p
(
y
j
∣
x
t
)
log
2
p
(
y
j
)
p
(
y
j
∣
x
t
)
C = -\sum_jp(y_j|x_t)\log_2\frac{p(y_j)}{p(y_j|x_t)}
C=−j∑p(yj∣xt)log2p(yj∣xt)p(yj)
2. 通过线性方程组求解信道容量
根据(1.3.)得出的结论:
C
=
−
∑
j
p
(
y
j
∣
x
t
)
log
2
p
(
y
j
)
p
(
y
j
∣
x
t
)
C = -\sum_jp(y_j|x_t)\log_2\frac{p(y_j)}{p(y_j|x_t)}
C=−j∑p(yj∣xt)log2p(yj∣xt)p(yj)
这个表达式中,只有
C
C
C、
p
(
x
t
)
p(x_t)
p(xt)是未知数。需要注意的是,该表达式并不是一个方程,而是
∀
x
t
∈
X
\forall x_t \in X
∀xt∈X,该方程都成立,即
s
s
s个方程(
s
s
s是信源符号的数量)。
根据对数函数的性质,可以将对数运算下的除法转换成对数运算外的减法,以便尽可能使用线性运算表达方程:
C
=
∑
j
p
(
y
i
∣
x
t
)
log
2
p
(
y
i
∣
x
t
)
−
∑
j
p
(
y
j
∣
x
t
)
log
2
p
(
y
i
)
C = \sum_jp(y_i|x_t)\log_2p(y_i|x_t) - \sum_jp(y_j|x_t)\log_2p(y_i)
C=j∑p(yi∣xt)log2p(yi∣xt)−j∑p(yj∣xt)log2p(yi)
由于转移概率对于特定输入具有完备性,因此将信道容量也转换为乘以转移概率因子并求和的形式:
∑
j
p
(
y
j
∣
x
t
)
C
=
∑
j
p
(
y
i
∣
x
t
)
log
2
p
(
y
i
∣
x
t
)
−
∑
j
p
(
y
j
∣
x
t
)
log
2
p
(
y
i
)
\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)
j∑p(yj∣xt)C=j∑p(yi∣xt)log2p(yi∣xt)−j∑p(yj∣xt)log2p(yi)
至此,方程转变为:
∑
j
p
(
y
j
∣
x
t
)
[
C
+
log
2
p
(
y
j
)
]
=
∑
j
p
(
y
j
∣
x
t
)
log
2
p
(
y
j
∣
x
t
)
\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)
j∑p(yj∣xt)[C+log2p(yj)]=j∑p(yj∣xt)log2p(yj∣xt)
对于输入和输出状态相等的信道,
n
=
s
=
r
n = s = r
n=s=r。定义未知数向量:
β
⃗
=
[
C
+
log
2
p
(
y
1
)
C
+
log
2
p
(
y
2
)
⋯
C
+
log
2
p
(
y
n
)
]
\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
⃗
=
[
∑
j
p
(
y
j
∣
x
1
)
log
2
p
(
y
j
∣
x
1
)
∑
j
p
(
y
j
∣
x
2
)
log
2
p
(
y
j
∣
x
2
)
⋯
∑
j
p
(
y
j
∣
x
n
)
log
2
p
(
y
j
∣
x
n
)
]
\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(yj∣x1)log2p(yj∣x1)∑jp(yj∣x2)log2p(yj∣x2)⋯∑jp(yj∣xn)log2p(yj∣xn)⎦⎥⎥⎤
当
P
\mathbf{P}
P是可逆矩阵时,可以通过矩阵运算求解出未知数向量:
β
⃗
=
P
−
1
H
⃗
\vec{\beta} = \mathbf{P}^{-1}\vec{H}
β=P−1H
根据信宿熵的完备性,可以通过
β
⃗
\vec{\beta}
β向量求解信道容量
C
C
C:
∑
j
2
C
+
log
2
p
(
y
j
)
=
∑
j
2
c
p
(
y
j
)
=
2
c
\sum_j2^{C+\log_2p(y_j)} = \sum_j2^cp(y_j) = 2^c
j∑2C+log2p(yj)=j∑2cp(yj)=2c
于是解得信道容量为:
C
=
log
2
(
∑
j
2
β
j
)
C = \log_2\left(\sum_j2^{\beta_j}\right)
C=log2(j∑2βj)