目录
第四篇博客感言
“伟大的发现总是罕见的。”
——Erdal Arikan
极化码最早在2009年由土耳其教授Erdal Arikan在其论文《Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels》中提出,被证明达到了香农极限,在3GPP会议上被规定和LDPC码共同作为5G编码技术的标准,这或许是21世纪信息论最大的发展之一。此前逼近香农极限的两个编码分别是LDPC码和Turbo码,有关Turbo码已经在上一篇博客中做了介绍,点击这里查看。
这篇大作的原文链接如下,值得拜读。
但是这篇论文比较理论,证明过程也较多。为了深入浅出地理解极化码原理,我参考了B站UP老奇好好奇的硬核科普视频。简单来说,极化码构造的核心是通过信道极化(channel polarization)处理,在编码侧采用方法使各个子信道呈现出不同的可靠性,当码长持续增加时,部分信道将趋向于容量近于1的完美信道(无误码),另一部分信道趋向于容量接近于0的纯噪声信道,选择在容量接近于1的信道上直接传输信息以逼近信道容量。在解码端,极化后的信道可用简单的逐次干扰抵消解码的方法,以较低的复杂度获得与最大似然解码相近的性能。
极化码编译码原理
Arikan教授研究的信道是binary-input discrete memoryless channel(B-DMC),即二进制离散无记忆信道,为了便于理解极化码的原理,我们考虑B-DMC的特殊情况BEC,即二进制删除信道,其信道模型如下图所示。发送端发送0或1,有的概率被删除,即接收端什么也收不到,这里我们假定
为0.5。
可以证明其信道容量等于互信息的最大值,就等于信息正确接收的概率, 等于1 - ,用公式表示为:
那么如何才能使得信道容量C尽可能大呢?如下图所示,Arikan提出,将信息序列作为u2,u1为已知确定序列,将u1和u2异或作为x1输入一BEC信道得到y1,u2直接作为x2输入同一BEC信道
得到y2,根据异或规则,我们有以下几个式子:
则我们可以得到:
这里假设u1未知,实际已知。
那么对于u1来说,显然我们可以第一个式子得到u1。那么有多大概率正确得到u1呢? 对于删除概率为的二进制删除信道,正确还原u1的概率等于y1和y2均未被删除的概率,即为:
我们假设u1经过了一个新的信道,定义为,那么
这一二进制删除信道的删除概率为:
代入=0.5,则
的删除概率为0.75。
而对于u2来说,由于u1事先已知,则当且仅当y1与y2都被删除时无法正确还原u2。同样假设u2经过了一个新信道,那么其删除概率为:
代入=0.5,则
的删除概率为0.25。
可以看到,最开始的的一个信道被分成了两个信道
和
,并且一个信道较好一个信道较差,这是牺牲了一个信道的性能而提升了另一个信道,这就是信道极化。那么不断增加被牺牲的信道数目,如下图所示,可以证明,信道
的删除概率最终会达到0,在N=8时,对于
=0.5删除概率已经达到0.0039。
Arikan教授证明了,当信道足够多时,使用这种方式传输信息,可以将信道分为完全没有噪声的好信道和完全丢失的差信道,前者传输成功率为1,后者为0,如下图所示,并且好信道容量占总信道容量的比例为,即香农极限。那么将有效信息全部通过好信道传输,差信道不传输(即好信道以速率1发送差信道以速率0发送),信息就能100%无差错传输,整个通信的信道容量就能达到香农极限。以上这个过程,就是极化码。
Matlab源码和运行结果
源码
https://withbreeze.lanzouv.com/icAdl22t2bre
密码:1ot5
结果
代码实现总共分为两个部分:
第一部分
detailed部分是对极化码的具体实现方法。
仿真结果如下图所示:
第二部分
channel_polarization部分仿真了信道极化现象,如下图所示:
待解决的问题
大部分仿真代码由组员从github上获取,极化码的具体编译码算法我还搞得不是很懂,继续学习中......
欢迎交流讨论。