System model
如上图所示,本文考虑 Gaussian TWRN.
[Signal Flow]
假设 Node
i
=
{
1
,
2
}
i=\{1,2\}
i={1,2} 的 rate 是
R
i
R_i
Ri (bits/channel use), 那么使用了
n
n
n 次信道之后,他总共可以传
n
R
i
nR_i
nRi 个 bits. 那他的codebook的大小就可以为
2
n
R
i
2^{nR_i}
2nRi. 我们把 Node
i
i
i 使用
n
n
n 次信道想传输的 message 记作
W
i
∈
{
1
,
2
,
3
,
.
.
.
,
2
n
R
i
}
W_i \in \left\{1,2,3,..., 2^{nR_i}\right\}
Wi∈{1,2,3,...,2nRi}
且我们假设两个人的信息 W 1 W_1 W1 和 W 2 W_2 W2 是独立同均匀分布的
在每次使用信道时,node i 实际传输的信息记作
X
i
=
[
X
i
(
1
)
,
X
i
(
2
)
,
.
.
.
,
X
i
(
n
)
]
⊤
\bm{X_i}=\left[X^{(1)}_i,X^{(2)}_i,...,X^{(n)}_i\right]^\top
Xi=[Xi(1),Xi(2),...,Xi(n)]⊤
每个node
i
i
i 的信号在 relay 处叠加后,我们有
Y
R
=
[
Y
R
(
1
)
,
Y
R
(
2
)
,
.
.
.
,
Y
R
(
n
)
]
⊤
\bm{Y_R}=\left[Y^{(1)}_R,Y^{(2)}_R,...,Y^{(n)}_R\right]^\top
YR=[YR(1),YR(2),...,YR(n)]⊤
Relay 从接收到的
Y
R
Y_R
YR 中解出信息
X
R
X_R
XR 并把它广播出去
X
R
=
[
X
R
(
1
)
,
X
R
(
2
)
,
.
.
.
,
X
R
(
n
)
]
⊤
\bm{X_R}=\left[X^{(1)}_R,X^{(2)}_R,...,X^{(n)}_R\right]^\top
XR=[XR(1),XR(2),...,XR(n)]⊤
下行,
X
R
\bm{X_R}
XR 经过信道后,在各个node
i
i
i 接收的信号我们记作
Y
i
=
[
Y
i
(
1
)
,
Y
i
(
2
)
,
.
.
.
,
Y
i
(
n
)
]
⊤
\bm{Y_i}=\left[Y^{(1)}_i,Y^{(2)}_i,...,Y^{(n)}_i\right]^\top
Yi=[Yi(1),Yi(2),...,Yi(n)]⊤
经过 n 次传输,最终两个节点要把对方的信息恢复出来。记恢复的信息为
W
^
i
∈
{
1
,
2
,
3
,
.
.
.
,
2
n
R
i
}
\hat{W}_i \in \left\{1,2,3,..., 2^{nR_i}\right\}
W^i∈{1,2,3,...,2nRi}
[Channels]
上行信道是同时传输
- Y R ( t ) = X 1 ( t ) + X 2 ( t ) + Z R ( t ) Y^{(t)}_R=X^{(t)}_1+X^{(t)}_2+Z^{(t)}_R YR(t)=X1(t)+X2(t)+ZR(t), 其中 Z R ( t ) ∼ C N ( 0 , σ R 2 ) Z^{(t)}_R\sim\mathcal{CN}(0,\sigma^2_R) ZR(t)∼CN(0,σR2).
- X i ( t ) = f i ( t ) ( W i , Y i ( t − 1 ) ) X^{(t)}_i=f^{(t)}_i(W_i,\bm{Y}^{(t-1)}_i) Xi(t)=fi(t)(Wi,Yi(t−1)) 即每一时刻传输的信号 X i ( t ) X^{(t)}_i Xi(t) 不仅是整个待传信息 W i W_i Wi 的函数, 而且还是之前所有下行接收信号的函数 ( Y i ( t − 1 ) \bm{Y}^{(t-1)}_i Yi(t−1) 是vector)。
- 上行每个人都有功率限制 P i P_i Pi: 1 n ∑ t = 1 n ( X i ( t ) ) 2 ≤ P i \frac{1}{n}\sum_{t=1}^{n}\left(X^{(t)}_i \right)^2\leq P_i n1∑t=1n(Xi(t))2≤Pi.
下行信道是简单的广播信道
- Y i ( t ) = X R ( t ) + Z i ( t ) Y^{(t)}_i=X^{(t)}_R+Z^{(t)}_i Yi(t)=XR(t)+Zi(t), 其中 Z i ( t ) ∼ C N ( 0 , σ i 2 ) Z^{(t)}_i\sim\mathcal{CN}(0,\sigma^2_i) Zi(t)∼CN(0,σi2).
- X R ( t ) = f R ( t ) ( Y R ( t − 1 ) ) X^{(t)}_R=f^{(t)}_R\left(\bm{Y}^{(t-1)}_R\right) XR(t)=fR(t)(YR(t−1)), 即relay 没有自己想传输的信息, X R ( t ) X^{(t)}_R XR(t) 由它过去收到的所有信息决定。
- Relay的功率限制: 1 n ∑ t = 1 n ( X R ( t ) ) 2 ≤ P R \frac{1}{n}\sum_{t=1}^{n}\left(X^{(t)}_R \right)^2\leq P_R n1∑t=1n(XR(t))2≤PR.
[Decoding]
每个node用自己接收到的信息和自己的side information来解对方发送的信息,即
W
^
2
=
g
1
(
W
1
,
Y
1
)
\hat{W}_2=g_1(W_1,\bm{Y}_1)
W^2=g1(W1,Y1)
W ^ 1 = g 2 ( W 2 , Y 2 ) \hat{W}_1=g_2(W_2,\bm{Y}_2) W^1=g2(W2,Y2)
Average probability of error:
P
e
=
Pr
{
W
^
1
≠
W
1
or
W
^
2
≠
W
2
}
P_e=\text{Pr}\{\hat{W}_1\neq {W}_1~\text{or}~\hat{W}_2\neq {W}_2\}
Pe=Pr{W^1=W1 or W^2=W2}
A rate pair ( R 1 , R 2 ) (R_1,R_2) (R1,R2) is achievable if 存在一组编码解码函数 f f f and g g g 使得 n → ∞ n\to\infty n→∞ 时 P e → 0 P_e\to 0 Pe→0.
Capacity region 是所有可达的 rate pair 的闭集。
Cut-set Bound
我们关心的一个核心问题就是,TWRN的 capacity region 是怎样的。这个问题是 open problem。早期的研究给出一个简单的 cut-set upper bound.
Cut – 我们考虑一个有向图,其中有很多的 vertices 和 directed edges,而且每一条边都有一个数值,这个数值决定这条边能承载的流量。现在我们考虑从一个node A 流水到 node B,那么 A 的闸门一旦放开,水流就从所有有向边往 B 流。我们的问题是,我们慢慢增加A的水流量,这个图所能允许的最大水流量是多少?
直观上就能感觉到,这个水流量最大是受限于一些bottleneck边的。对于任意一条路径,只要某一条边把你的流量卡住,那不管其他边允许的水流量有多大都是于事无补的。由于这里我们考虑的不是一条路径,而是从所有路径一起流水,所以我们需要考虑的不是某一条边作为bottleneck,而是整个图的某一个cut作为一个bottleneck。而这个bottleneck cut也就是这张图的minimum cut。为了找这个cut,我们需要遍历图的所有cut,而每个cut都把图分成了两个set。
Capacity – 我们考虑这样一个场景,节点 A 把信息 X 传给 B。那么节点 B 对 X 肯定是有一些不确定性的,不然也就没有必要传输了, 而这种不确定性就是我们需要传输的东西。现在我们把 X 的不确定性用一个分布表示。shannon最早只考虑离散节点因此这个分布就是一个PMF
p
(
X
=
x
)
p(X=x)
p(X=x),那么我们知道它的不确定性就是这个分布的熵 entropy
H
(
X
)
=
H
(
p
(
x
)
)
H(X)=H(p(x))
H(X)=H(p(x)). 在没有传输之前,B 对 X 的不确定性是
H
(
X
)
H(X)
H(X), 而传输之后 B 收到了信息 Y,那它对 X 的不确定性变成了
H
(
X
∣
Y
)
H(X|Y)
H(X∣Y), 因此,这一次传输我们总共传递的信息也就是
H
(
X
)
−
H
(
X
∣
Y
)
H(X)-H(X|Y)
H(X)−H(X∣Y)
显然,如果我们画一个Venn图的话,
H
(
X
)
−
H
(
X
∣
Y
)
H(X)-H(X|Y)
H(X)−H(X∣Y) exactly就是 X 和 Y 之间的互信息。所以说,每次传输的最大信息量,也就是channel capacity, 定义为
C
=
max
p
(
x
)
I
(
X
;
Y
)
=
max
p
(
x
)
[
H
(
X
)
−
H
(
X
∣
Y
)
]
C=\max_{p(x)} I(X;Y)=\max_{p(x)} \left[H(X)-H(X|Y)\right]
C=p(x)maxI(X;Y)=p(x)max[H(X)−H(X∣Y)]
一般使得互信息最大的分布 p ( x ) p(x) p(x) 也是最像channel noise 的分布。比如,高斯信道的最优 p ( x ) p(x) p(x) 也就是Gaussian distribution.
Capacity of Gaussian channel – 比如我们来看一下高斯信道的capacity
Y
=
X
+
Z
Y=X+Z
Y=X+Z
取
p
(
x
)
∼
N
(
0
,
P
)
p(x)\sim\mathcal{N}(0,P)
p(x)∼N(0,P) ,那么capacity可以写为
C
=
I
(
X
;
Y
)
=
H
(
X
)
−
H
(
X
∣
Y
)
=
H
(
Y
)
−
H
(
Y
∣
X
)
C= I(X;Y)=H(X)-H(X|Y)=H(Y)-H(Y|X)
C=I(X;Y)=H(X)−H(X∣Y)=H(Y)−H(Y∣X)
= 1 2 log 2 ( 2 π e ( P + σ 2 ) ) − 1 2 log 2 ( 2 π e σ 2 ) = 1 2 log 2 ( 1 + P σ 2 ) =\frac{1}{2}\log_2 (2\pi e (P+\sigma^2))-\frac{1}{2}\log_2 (2\pi e \sigma^2) =\frac{1}{2}\log_2 \left(1+\frac{P}{\sigma^2}\right) =21log2(2πe(P+σ2))−21log2(2πeσ2)=21log2(1+σ2P)
这也就是我们常见的形式了。另外上式成立因为 Gaussian 的 differential entropy 是 1 2 log 2 [ ( 2 π e ) n det Σ ] \frac{1}{2}\log_2 [(2\pi e)^n \text{det} \Sigma] 21log2[(2πe)ndetΣ]。那么考虑一维的情况就是 1 2 log 2 ( 2 π e σ 2 ) \frac{1}{2}\log_2 (2\pi e \sigma^2) 21log2(2πeσ2).
Cut-set bound – 好,现在我们可以来看看 cut-set bound 到底是干啥的。根据之前对cut的定义,我们需要找到TWRN这张图中的minimum cut。因此,我们遍历图中所有cut,而这张图的capacity也就是所有cut所允许的最小流量。
我们先考虑从node 1 传给node 2. 由于图中只有三个节点,因此我们可以进行两次cut,如上图中虚线所示。
-
第一个cut把三个节点分成了两个set: {Node 1}, {Relay, Node 2}. 而这个cut所允许的流量定义为这两个set之间的互信息,也就是 {Node 1} 到 {Relay, Node 2} 的capacity:
I ( X 1 ; Y R , Y 2 ∣ X 2 , X R ) I(X_1;Y_R,Y_2|X_2,X_R) I(X1;YR,Y2∣X2,XR) -
第二个cut也把三个节点分成了两个set: {Node 1, Relay}, {Node 2}. 而这个cut所允许的流量
I ( X 1 , X R ; Y 2 ∣ X 2 ) I(X_1,X_R;Y_2|X_2) I(X1,XR;Y2∣X2) -
因此,cut-set bound 给出这张图的capacity是这两个cut的最小值
R 1 ≤ { I ( X 1 ; Y R , Y 2 ∣ X 2 , X R ) , I ( X 1 , X R ; Y 2 ∣ X 2 ) } R_1\leq \left\{I(X_1;Y_R,Y_2|X_2,X_R) ,I(X_1,X_R;Y_2|X_2) \right\} R1≤{I(X1;YR,Y2∣X2,XR),I(X1,XR;Y2∣X2)}
Remark 1 – cut-set bound 只是一个 upper bound。即原理上 capacity 不能再比 minimum cut 的capacity大,但是能不能一定 achieve minimum cut 的capacity 并不能保证。
Remark 2 – node 1使用了 n n n 次信道把 W 1 W_1 W1 传给 node 2,它的目的是在无误码的情况下找到最大的可达rate pair (也就是 codebook size 最大)。但是这里我们只分析一次使用信道各个信号之间的互信息。相当于我们关心的是平均每次使用信道传输的bits。如果把上式两边同乘n那就是n次使用信道总共传输的bits。
同理,如果我们看从 node 2 传给 node 1 的水流,两个cut也能给出一个关于
R
2
R_2
R2 的cut-set bound。最终把它们放在一起有
R
1
≤
{
I
(
X
1
;
Y
R
,
Y
2
∣
X
2
,
X
R
)
,
I
(
X
1
,
X
R
;
Y
2
∣
X
2
)
}
(
1
a
)
R_1\leq \left\{I(X_1;Y_R,Y_2|X_2,X_R) ,I(X_1,X_R;Y_2|X_2) \right\} (1a)
R1≤{I(X1;YR,Y2∣X2,XR),I(X1,XR;Y2∣X2)}(1a)
R 2 ≤ { I ( X 2 ; Y R , Y 1 ∣ X 1 , X R ) , I ( X 2 , X R ; Y 1 ∣ X 1 ) } ( 1 b ) R_2\leq \left\{I(X_2;Y_R,Y_1|X_1,X_R) ,I(X_2,X_R;Y_1|X_1) \right\} (1b) R2≤{I(X2;YR,Y1∣X1,XR),I(X2,XR;Y1∣X1)}(1b)
这两个公式里面的每一项互信息在
p
(
x
1
)
∼
N
(
0
,
P
1
)
p(x_1)\sim\mathcal{N}(0,P_1)
p(x1)∼N(0,P1),
p
(
x
2
)
∼
N
(
0
,
P
2
)
p(x_2)\sim\mathcal{N}(0,P_2)
p(x2)∼N(0,P2),
p
(
x
R
)
∼
N
(
0
,
P
R
)
p(x_R)\sim\mathcal{N}(0,P_R)
p(xR)∼N(0,PR), 且
p
(
x
1
,
x
2
,
x
R
)
=
p
(
x
1
)
p
(
x
2
)
p
(
x
R
)
p(x_1,x_2,x_R)=p(x_1)p(x_2)p(x_R)
p(x1,x2,xR)=p(x1)p(x2)p(xR)
时取到最大。注意, x R x_R xR 是和 x 1 x_1 x1, x 2 x_2 x2 独立的,也就是说从 Y R Y_R YR 到 X R X_R XR 的操作使得他们独立(这里不是很懂,因为一旦改变 x 1 x_1 x1, x 2 x_2 x2, x R x_R xR 不也是会跟着改么?).
Eq. (1a) (1b) 可以进一步被reduce to
R
1
≤
min
{
1
2
log
2
(
1
+
P
1
σ
R
2
)
,
1
2
log
2
(
1
+
P
R
σ
R
2
)
}
(
2
a
)
R_1\leq \min\left\{\frac{1}{2} \log_2\left(1+\frac{P_1}{\sigma^2_R}\right),\frac{1}{2} \log_2\left(1+\frac{P_R}{\sigma^2_R}\right) \right\} (2a)
R1≤min{21log2(1+σR2P1),21log2(1+σR2PR)}(2a)
R 2 ≤ min { 1 2 log 2 ( 1 + P 2 σ R 2 ) , 1 2 log 2 ( 1 + P R σ R 2 ) } ( 2 b ) R_2\leq \min\left\{\frac{1}{2} \log_2\left(1+\frac{P_2}{\sigma^2_R}\right), \frac{1}{2} \log_2\left(1+\frac{P_R}{\sigma^2_R}\right) \right\} (2b) R2≤min{21log2(1+σR2P2),21log2(1+σR2PR)}(2b)
Achievable rate region
好,现在终于进入了本文的重点,即,使用 lattice code achieve 的rate region. 注:要读懂以下内容得先了解 lattice code,推荐看一下本博客 math 专栏里面的lattice 基础 那一节。
本文有两个 users 和一个relay,因此选用了三个nested lattices Λ 1 ⊆ Λ 2 ⊆ Λ C \Lambda_1\subseteq\Lambda_2\subseteq\Lambda_C Λ1⊆Λ2⊆ΛC. 假设第一个用户的功率大一点 P 1 ≥ P 2 P_1\geq P_2 P1≥P2, 因此 Λ 1 \Lambda_1 Λ1 的 Voronoi region 要比 Λ 2 \Lambda_2 Λ2 大,也就能容纳更多的码字, rate 也就更大. 最终在reciever,我们也会把所有的码字都 mod 到 V ( Λ 1 ) \mathcal{V}(\Lambda_1) V(Λ1) 中处理。
我们拿第一个用户举例,把它 Voronoi region 中的所有码字叫做 C 1 \mathcal{C}_1 C1, 那么
- 它传输的信息与 C 1 \mathcal{C}_1 C1 中的码字 W 1 \bm{W}_1 W1 是 one-to-one mapping。
- 在传递
W
1
\bm{W}_1
W1 之前,用户先加扰,最后传输的码字
X 1 = ( W 1 + U 1 ) mod Λ 1 \bm{X}_1=(\bm{W}_1+\bm{U}_1)~\text{mod}~\Lambda_1 X1=(W1+U1) mod Λ1
其中 U 1 \bm{U}_1 U1 是在 V ( Λ 1 ) \mathcal{V}(\Lambda_1) V(Λ1) 内均匀分布的,因此 X 1 \bm{X}_1 X1 也在 V ( Λ 1 ) \mathcal{V}(\Lambda_1) V(Λ1) 内均匀分布,且与 W 1 \bm{W}_1 W1 独立。
紧接着在接收端,我们收到的是
Y
R
=
X
1
+
X
2
+
Z
R
\bm{Y}_R=\bm{X}_1+\bm{X}_2+\bm{Z}_R
YR=X1+X2+ZR
Given
Y
R
\bm{Y}_R
YR, relay 计算
Y
~
R
=
(
α
Y
R
−
U
1
−
U
2
)
mod
Λ
1
\tilde{\bm{Y}}_R=\left(\alpha\bm{Y}_R-\bm{U}_1-\bm{U}_2 \right)~\text{mod}~\Lambda_1
Y~R=(αYR−U1−U2) mod Λ1
mod Λ 1 \Lambda_1 Λ1 的原因是因为 Λ 1 \Lambda_1 Λ1 的 Voronoi region 最大,我们所有的接收码字都在 V ( Λ 1 ) \mathcal{V}(\Lambda_1) V(Λ1) 中处理。在 compute-and-forward 那篇paper中假设所有人的发送功率一致,因此固定了coarse lattice相当于所有人收发全在同样的 Voronoi region种处理。而这里就相当于把功率最大的第一个用户的lattice当做coarse lattice。我们可以进一步推导 Y ~ R \tilde{\bm{Y}}_R Y~R by