什么是信道极化:从直觉理解到形式化定义
上一篇我们已经把 Polar 编码真正算了一遍。给定极化输入向量 \underline{u}_0^{N-1},通过二阶核 \mathbf{F}_2 的递归耦合,可以得到二元码字 \underline{c}_0^{N-1}。
如果只看编码器,这件事像是一个普通的线性变换:
\underline{c}_0^{N-1}=\underline{u}_0^{N-1}\mathbf{G}_N但 Polar 码真正厉害的地方不只是“能编码”,而是这个变换会把原来一批相同的物理信道,重新组织成一批可靠性不同的子信道。
这就是信道极化。
本篇要解决一个核心问题:
为什么同样两个信道 W,经过 Polar 的二阶核以后,会分裂成一个更差的信道 W^- 和一个更好的信道 W^+?
为了把这件事讲透,本文只从最小情形 N=2 开始。我们会完整写出:
- 两个信道如何被组合成 W_2。
- W_2 如何被分裂成 W^- 和 W^+。
- 为什么 W^- 里要对未知比特求平均。
- 为什么 W^+ 可以把前一个比特当成边信息。
- 在 BEC(\epsilon) 上,为什么 W^- 的擦除概率是 2\epsilon-\epsilon^2,而 W^+ 的擦除概率是 \epsilon^2。
先固定一个基础信道 W
仍然沿用前几篇的约定。基础二元输入信道写作:
W:\mathcal{X}\to\mathcal{Y},\qquad \mathcal{X}=\{0,1\}这里 x\in\mathcal{X} 是输入比特,y\in\mathcal{Y} 是信道输出观测。信道转移概率写作:
W(y\mid x),\qquad x\in\{0,1\},\ y\in\mathcal{Y}直观地说,W(y\mid x) 表示:发送端送入 x,接收端看到 y 的概率。
如果信道很可靠,那么从 y 大概率能判断出 x。如果信道很差,那么 y 对 x 的提示就很弱。
接下来我们不只用一次 W,而是并行使用两次相同的 W。这两次物理信道彼此独立。
从两个独立信道开始
取 N=2。Polar 二阶核对应的编码关系是:
c_0=u_0\oplus u_1,\qquad c_1=u_1其中 u_0,u_1\in\{0,1\} 是极化变换输入,c_0,c_1\in\{0,1\} 是送入两个物理信道的码字比特。
两个码字比特分别经过两个独立的 W:
c_0\longrightarrow W\longrightarrow y_0,\qquad c_1\longrightarrow W\longrightarrow y_1所以接收端看到的是两个观测值 (y_0,y_1)。注意,这里的 \underline{y} 只表示信道输出观测,不表示 LLR。
把编码关系代入信道以后,整体链路就是:
(u_0,u_1) \longrightarrow (c_0,c_1)=(u_0\oplus u_1,u_1) \longrightarrow (y_0,y_1)这一小段链路就是后面一切极化现象的起点。
什么是 channel combining
channel combining 的意思是:把多个独立使用的基础信道 W,通过输入端的编码耦合,合成一个更大的向量信道。
在 N=2 的情形下,合成信道记作 W_2。它的输入是 (u_0,u_1),输出是 (y_0,y_1)。
因为两个物理信道彼此独立,所以联合概率可以相乘:
W_2(y_0,y_1\mid u_0,u_1) = W(y_0\mid u_0\oplus u_1)\,W(y_1\mid u_1)这就是 N=2 的 channel combining 公式。
这个公式非常重要。它说的不是“多了一个新物理信道”,而是:我们用两个原本相同的物理信道 W,再加上输入端的二阶核,把它们看成一个整体信道 W_2。
如果没有二阶核,两个信道只是并排放着:
W(y_0\mid u_0)W(y_1\mid u_1)有了二阶核以后,第一个物理信道看到的不是 u_0,而是 u_0\oplus u_1:
W(y_0\mid u_0\oplus u_1)W(y_1\mid u_1)这一步“耦合”是极化能发生的前提。如果只是复制两个互不相关的信道,可靠性不会自己分化。
什么是 channel splitting
现在我们已经有了合成信道 W_2。但 Polar 码真正关心的不是“一次性把 (u_0,u_1) 作为整体传输得怎么样”,而是每一个输入比特 u_i 各自对应一个怎样的子信道。
这一步叫 channel splitting。
对于 N=2,W_2 会分裂成两个子信道:
- 第一个子信道 W^-:用来描述 u_0 面对的信道。
- 第二个子信道 W^+:用来描述 u_1 面对的信道。
之所以用减号和加号,是因为这两个子信道的可靠性通常会向两个方向分化:W^- 变差,W^+ 变好。
下面我们从定义推出来。
第一个子信道 W^-:为什么要平均掉 u_1
先看 u_0。
当接收端要判断 u_0 时,它能看到 (y_0,y_1),但还不知道 u_1。因为在逐位理解子信道时,u_0 是第一个要判断的输入位,后面的 u_1 对它来说还是未知的。
既然 u_1 未知,就必须把所有可能的 u_1 都考虑进去。按照 Polar 码的标准设定,输入比特在分析时等概率取 0 或 1,所以 u_1 要以概率 1/2 被平均。
因此第一个子信道定义为:
W^-(y_0,y_1\mid u_0) = \frac{1}{2}\sum_{u_1\in\{0,1\}} W_2(y_0,y_1\mid u_0,u_1)把 W_2 的定义代进去,就是:
W^-(y_0,y_1\mid u_0) = \frac{1}{2}\sum_{u_1\in\{0,1\}} W(y_0\mid u_0\oplus u_1)\,W(y_1\mid u_1)这就是 W^- 的来源。
这里最容易卡住的是前面的 \frac{1}{2}\sum。它不是凭空来的,而是因为:
- 我们正在看 u_0 这个子信道。
- u_1 还没有被判定。
- 对 u_0 来说,u_1 是一个未知干扰项。
- 所以必须把 u_1=0 和 u_1=1 两种可能平均掉。
这也解释了为什么 W^- 往往会变差:判断 u_0 时,接收端被迫面对一个未知的 u_1。
第二个子信道 W^+:为什么可以知道 u_0
再看 u_1。
当接收端判断 u_1 时,Polar 的逐次理解方式是假设 u_0 已经被前一步正确判定。因此 u_0 可以作为边信息提供给接收端。
所以 W^+ 的输出不只是 (y_0,y_1),还包括已经知道的 u_0。也就是说,W^+ 的输出可以写成 (y_0,y_1,u_0)。
第二个子信道定义为:
W^+(y_0,y_1,u_0\mid u_1) = \frac{1}{2}W_2(y_0,y_1\mid u_0,u_1)把 W_2 展开:
W^+(y_0,y_1,u_0\mid u_1) = \frac{1}{2} W(y_0\mid u_0\oplus u_1)\,W(y_1\mid u_1)这里也有一个 \frac{1}{2},但含义和刚才略有不同。它来自 u_0 在分析时等概率取 0 或 1;同时 u_0 会作为输出边信息的一部分被提供给判断 u_1 的接收端。
这解释了为什么 W^+ 往往会变好:判断 u_1 时,接收端不仅有 (y_0,y_1),还知道 u_0。信息更多,判断自然更可靠。
把两者放在一起看:
| 子信道 | 要判断的比特 | 接收端拥有的信息 | 关键差别 |
|---|---|---|---|
| W^- | u_0 | (y_0,y_1) | u_1 未知,需要平均 |
| W^+ | u_1 | (y_0,y_1,u_0) | u_0 已知,是边信息 |
这张表就是 channel splitting 的核心。
用 BEC(\epsilon) 完整算一遍
现在只看公式还不够。我们用最容易手算的二元擦除信道 BEC(\epsilon) 把 W^- 和 W^+ 算出来。
BEC 的输出字母表是:
\mathcal{Y}=\{0,1,\mathsf{e}\}其中 \mathsf{e} 表示擦除。信道规则是:
- 发送 0 时,以概率 1-\epsilon 收到 0,以概率 \epsilon 收到 \mathsf{e}。
- 发送 1 时,以概率 1-\epsilon 收到 1,以概率 \epsilon 收到 \mathsf{e}。
- BEC 不会把 0 错成 1,也不会把 1 错成 0;它只会告诉你“这个比特没看清”。
写成转移概率就是:
W(y\mid x)= \begin{cases} 1-\epsilon, & y=x,\\ \epsilon, & y=\mathsf{e},\\ 0, & \text{otherwise}. \end{cases}现在看经过 Polar 二阶核以后,W^- 和 W^+ 的擦除概率分别是多少。
W^- 为什么更差
先判断 u_0。
由编码关系:
c_0=u_0\oplus u_1,\qquad c_1=u_1如果接收端同时知道 c_0 和 c_1,就能恢复:
u_0=c_0\oplus c_1但是在 BEC 中,接收端看到的是 y_0,y_1。只有当 y_0 没有擦除、y_1 也没有擦除时,接收端才知道 c_0,c_1,进而知道 u_0。
于是:
- 如果 y_0\neq\mathsf{e} 且 y_1\neq\mathsf{e},可以确定 u_0。
- 如果 y_0=\mathsf{e} 或 y_1=\mathsf{e},就无法确定 u_0。
所以 W^- 擦除的事件是:
\{y_0=\mathsf{e}\}\cup\{y_1=\mathsf{e}\}两个物理信道独立,每个擦除概率都是 \epsilon。因此不擦除的概率是:
\Pr(y_0\neq\mathsf{e},\,y_1\neq\mathsf{e}) =(1-\epsilon)^2所以擦除概率为:
\epsilon^-= 1-(1-\epsilon)^2 =2\epsilon-\epsilon^2这说明:
W^-=\mathrm{BEC}(2\epsilon-\epsilon^2)只要 0<\epsilon<1,就有:
2\epsilon-\epsilon^2>\epsilon因为:
2\epsilon-\epsilon^2-\epsilon =\epsilon(1-\epsilon)>0所以 W^- 的擦除概率比原来的 W 更大。擦除概率越大,信道越差。因此 W^- 变差了。
这一步是第一次真正看到“坏的更坏”。
W^+ 为什么更好
再判断 u_1。
这时 u_0 已经作为边信息给了接收端。接收端知道:
c_0=u_0\oplus u_1,\qquad c_1=u_1要恢复 u_1,有两条路:
第一条路:如果 y_1\neq\mathsf{e},接收端直接知道 c_1,而 c_1=u_1。所以 u_1 立刻确定。
第二条路:如果 y_1=\mathsf{e},但 y_0\neq\mathsf{e},接收端知道 c_0。又因为 u_0 已知,所以:
u_1=c_0\oplus u_0也就是说,只要 y_0 和 y_1 里面至少有一个没有被擦除,u_1 就能恢复。
只有一种情况会失败:两个观测都被擦除。
y_0=\mathsf{e},\qquad y_1=\mathsf{e}因此 W^+ 的擦除概率是:
\epsilon^+=\Pr(y_0=\mathsf{e},\,y_1=\mathsf{e})=\epsilon^2也就是说:
W^+=\mathrm{BEC}(\epsilon^2)只要 0<\epsilon<1,就有:
\epsilon^2<\epsilon所以 W^+ 的擦除概率比原来的 W 更小。擦除概率越小,信道越可靠。因此 W^+ 变好了。
这就是第一次真正看到“好的更好”。
用 \epsilon=0.5 看见第一次极化
取一个具体数值:
\epsilon=0.5原始信道是 BEC(0.5),也就是每个比特有一半概率被擦除。
经过一次 Polar 二阶核以后:
\epsilon^-=2\epsilon-\epsilon^2=2\times0.5-0.5^2=0.75 \epsilon^+=\epsilon^2=0.5^2=0.25所以:
W^-=\mathrm{BEC}(0.75),\qquad W^+=\mathrm{BEC}(0.25)同样两个原始信道,经过一次 combining 和 splitting 之后,变成了一个更差的子信道和一个更好的子信道:
| 信道 | 擦除概率 | 直观可靠性 |
|---|---|---|
| 原始 W | 0.5 | 中等 |
| W^- | 0.75 | 更差 |
| W^+ | 0.25 | 更好 |
这就是最小规模下的信道极化。
注意,这里没有凭直觉猜。我们是从 W_2、W^-、W^+ 的定义出发,把擦除概率一步一步算出来的。
信息量并没有凭空增加
看到一个信道变好,容易产生一个误解:是不是 Polar 变换凭空创造了可靠性?
不是。
对 BEC(\epsilon),对称容量是:
I(W)=1-\epsilon对 W^-:
I(W^-)=1-\epsilon^- =1-(2\epsilon-\epsilon^2) =(1-\epsilon)^2对 W^+:
I(W^+)=1-\epsilon^+ =1-\epsilon^2两者相加:
I(W^-)+I(W^+) =(1-\epsilon)^2+(1-\epsilon^2) =2-2\epsilon =2I(W)这说明两个子信道的总可靠性没有凭空增加。Polar 二阶核做的事情更像是“重新分配可靠性”:一个子信道牺牲掉,另一个子信道变得更可靠。
用 \epsilon=0.5 检查:
I(W)=0.5,\qquad I(W^-)=0.25,\qquad I(W^+)=0.75于是:
I(W^-)+I(W^+)=0.25+0.75=1=2I(W)这正好和两个原始信道的总信息量一致。
这一步很关键。极化不是把信道整体变强,而是把“中间可靠性”的信道分裂成更接近两端的子信道。
从 N=2 递归到 N=2^n
刚才只做了一次二阶变换:
W\quad\longrightarrow\quad (W^-,W^+)如果继续递归,每一个子信道还可以继续分裂。
例如 N=4 时,会得到四个子信道。可以把路径记成两个符号:
W^{--},\qquad W^{-+},\qquad W^{+-},\qquad W^{++}它们的含义是:
- W^{--}:先走减号分支,再走减号分支。
- W^{-+}:先走减号分支,再走加号分支。
- W^{+-}:先走加号分支,再走减号分支。
- W^{++}:先走加号分支,再走加号分支。
如果继续到 N=8,16,\dots,就会得到越来越多的子信道。一般地,当 N=2^n 时,会得到 N 个极化子信道:
W_N^{(0)},W_N^{(1)},\dots,W_N^{(N-1)}这里的 i 仍然使用 0-based 索引。第 i 个子信道表示:在前面 u_0,u_1,\dots,u_{i-1} 已经作为边信息给出的条件下,当前比特 u_i 面对的等效信道。
符号化地写,第 i 个子信道是:
W_N^{(i)}(\underline{y}_0^{N-1},\underline{u}_0^{i-1}\mid u_i) = \sum_{\underline{u}_{i+1}^{N-1}\in\mathcal{X}^{N-i-1}} \frac{1}{2^{N-1}} W_N(\underline{y}_0^{N-1}\mid\underline{u}_0^{N-1})这个公式看起来比 N=2 复杂,但思想完全一样:
- 当前要判断的是 u_i。
- 前面的 \underline{u}_0^{i-1} 已经作为边信息提供。
- 后面的 \underline{u}_{i+1}^{N-1} 还未知,所以要对它们求和平均。
- 所有物理观测 \underline{y}_0^{N-1} 都可以用来帮助判断当前位。
这就是从 W^-、W^+ 推广到 W_N^{(i)} 的本质。
形式化定义:极化到底在说什么
现在可以说什么是信道极化了。
直观版本:
递归使用 Polar 二阶核以后,原来可靠性相同的一批信道,会逐渐分化成两类:一类越来越可靠,另一类越来越不可靠。
形式化一点说,设 N=2^n,递归构造得到 N 个子信道 W_N^{(i)}。当 N 越来越大时,大多数子信道的可靠性会接近两个极端:
- 一部分子信道接近完美信道。
- 另一部分子信道接近完全无用的信道。
如果用对称容量 I(\cdot) 描述可靠性,那么极化现象可以粗略写成:
I(W_N^{(i)})\approx 1 \quad\text{or}\quad I(W_N^{(i)})\approx 0更完整的极化结论是:对任意固定的 0<\delta<1,当 N\to\infty 时,可靠子信道所占比例会趋近于原始信道容量 I(W):
\lim_{N\to\infty} \frac{1}{N} \left|\{i\in[0,N-1]:I(W_N^{(i)})>1-\delta\}\right| =I(W)而很差的子信道所占比例会趋近于 1-I(W):
\lim_{N\to\infty} \frac{1}{N} \left|\{i\in[0,N-1]:I(W_N^{(i)})<\delta\}\right| =1-I(W)这两条式子的意思不是说有限码长下每个子信道都已经等于 0 或 1,而是说随着码长增大,子信道可靠性会越来越向两端集中。
这就是 Polar 码名字里的 “polarization”。
这和冻结位、信息位有什么关系
现在终于可以解释为什么 Polar 编码前要选择信息位集合 \mathcal{A} 和冻结集合 \mathcal{A}^c 了。
因为极化以后,N 个位置不再等价:
- 可靠的子信道适合承载信息比特。
- 不可靠的子信道不适合承载信息比特,于是把这些位置冻结为公开已知值,通常设为 0。
所以构造 Polar 码的核心问题不是“矩阵第几行看起来复杂”,而是:
在给定信道 W、码长 N 和信息长度 K 时,哪些子信道 W_N^{(i)} 更可靠?
可靠性排序序列写作:
\boldsymbol{\pi}=(\pi_0,\pi_1,\dots,\pi_{N-1})若按照可靠性从高到低排列,就可以选择前 K 个索引形成信息集合:
\mathcal{A}=\{\pi_0,\pi_1,\dots,\pi_{K-1}\}这里必须注意:\mathcal{A} 本身是集合,不自带顺序。真正有顺序的是可靠性排序序列 \boldsymbol{\pi}。
这也解释了第 4 篇中那个看似突然出现的信息集合 \mathcal{A}。在那里我们为了演示编码过程直接指定了 \mathcal{A}。从这一篇开始,我们知道了:真正的 \mathcal{A} 应该来自子信道可靠性比较。
容易混淆的几个点
第一,极化不是编码矩阵本身的“形状好看”。编码矩阵 \mathbf{G}_N 只是实现递归耦合的代数形式。真正重要的是它诱导出的子信道 W_N^{(i)} 可靠性分化。
第二,W^- 和 W^+ 不是两个新的物理信道。它们是从两个原始物理信道 W 和二阶核组合以后,在逐位判断视角下得到的等效子信道。
第三,W^- 变差不是因为少用了一个观测。判断 u_0 时也能看到 (y_0,y_1)。它变差的根本原因是 u_1 对 u_0 来说未知,需要被平均掉。
第四,W^+ 变好不是因为信道噪声变小了。物理信道仍然是同样的 W。它变好是因为判断 u_1 时,前面的 u_0 已经作为边信息提供。
第五,极化不等于所有有限码长子信道都已经完美或完全无用。在短码长下,很多子信道仍然处在中间状态,所以后面才需要专门讨论如何衡量可靠性、如何排序、如何构造。
小结
这一篇我们从 N=2 的最小例子开始,把信道极化的第一步完整算了出来。
两个独立使用的基础信道 W,经过二阶核:
c_0=u_0\oplus u_1,\qquad c_1=u_1会先组合成:
W_2(y_0,y_1\mid u_0,u_1) = W(y_0\mid u_0\oplus u_1)W(y_1\mid u_1)再分裂成:
W^-(y_0,y_1\mid u_0) = \frac{1}{2}\sum_{u_1\in\{0,1\}} W_2(y_0,y_1\mid u_0,u_1) W^+(y_0,y_1,u_0\mid u_1) = \frac{1}{2}W_2(y_0,y_1\mid u_0,u_1)在 BEC(\epsilon) 上,它们分别变成:
W^-=\mathrm{BEC}(2\epsilon-\epsilon^2),\qquad W^+=\mathrm{BEC}(\epsilon^2)当 \epsilon=0.5 时:
W^-=\mathrm{BEC}(0.75),\qquad W^+=\mathrm{BEC}(0.25)这就是第一次极化:一个子信道更差,一个子信道更好。
下一篇我们要回答一个自然的问题:既然子信道会变好或变差,应该用什么量来衡量“好”和“差”?这会引出两个非常重要的指标:对称容量 I(W) 和 Bhattacharyya 参数 Z(W)。
参考
- E. Arikan, “Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels,” IEEE Transactions on Information Theory, vol. 55, no. 7, pp. 3051-3073, Jul. 2009, doi: 10.1109/TIT.2009.2021379.
优秀ヾ(≧∇≦*)ゝ