Polar码快速入门

本科生在学习极化码时,并不是件简单的事情。网上极化码的资料很少,而且基本上都是较难的论文。这篇文章是用来帮你快速入门极化码。

Poalr码背景

2015 年,国际电信联盟无线通信部(International Telecommunication Union-Radio Communications Sector,ITU-R)明确了未来 5G三大典型应用场景,分别为:

  1. 增强型移动宽带(enhanced mobile broadband,eMBB)场景。要求支持更高的传输速率(峰值速率:上行链路达到 10 Gbit/s,下行链路达到 20 Gbit/s)、更高的频谱效率(峰值频谱效率:上行链路达到12 bit/(s·Hz),下行链路达到 30 bit/(s·Hz))等。

  2. 大规模机器类通信(massive machine type communication,mMTC)。要求支持更大连接数密度(\(1×10^6\)个连接\(/km^2\))、更低能耗(终端电池使用寿命达到 15 年);

  3. 场景和超高可靠性低时延通信(ultra-reliable and low latency communication,uRLLC)场景。要求支持更低的时延(上下行链路时延 0.5 ms,即端到端时延低于 1 ms)、更高的可靠度(达到 99.9999%,即 1 ms 内的误帧率低于\(10^{-6}\))、更低的错误平层等。

而4G 中采用的信道编码方案 Turbo 码因在可靠性(Turbo 码存在译码错误平层)、编译码复杂度、译码吞吐量和编码效率等方面难以有效满足 5G 场景下的各种性能要求。亟需为 5G 新空口(new radio,NR)设计更加先进高效的信道编码方案,以尽可能小的业务开销实现信息快速可靠传输。

目前,国内外研究机构已针对 5G 信道编码技术开展了大量研究,并已达成部分共识。Polar 码因其理论证明可达到香农极限,且具有可实用的线性复杂度编译码能力而受到业界重视,成为5G NR信道编码方案的强有力候选者。在 2016 年 11 月召开的 3GPP RAN1#87 次会议上确定eMBB场景的 5G 短码块信道编码方案采用 Polar 码作为控制信道编码方案。

Polar码概述

2008 年,土耳其毕尔肯大学 Arikan 教授在国际信息论(International Symposium on Information Theory,ISIT)会议上首次提出信道极化(channel polarization)的概念。Polar码的核心思想是信道极化,不同的信道对于极化方法也有区别。

2009 年,Arikan教授在中对信道极化进行更为详细的阐述,并基于信道极化思想提出一种新型信道编码方法,即 Polar 码。 Arikan 分析了 Polar 码的极化现象,并给出 Polar 码在二元删除信道(binary erasure channel,BEC)中的具体构造方法以及编译码过程。

考虑到 Arikan E 给出的 Polar 码构造方法仅适用于 BEC 信道,具有较大的局限性,Mori 和 Tanaka 等人借鉴低密度奇偶校验(low-density parity-check,LDPC)码的构造方法,提出采用密度进化(density evolution,DE)方式构造 Polar 码,以适用于任意二进制离散无记忆信道(binary discrete memoryless channel,B-DMC)。我们这节课主要研究对象就是B-DMC

我们这节课主要讲述:

  1. 信道极化:信道合并和分解
  2. Polar码的编码方式
  3. Polar码的译码方式(简略)

信道极化

信道极化:包括信道合并和信道分解。

当合并信道的数目趋于无穷大时,一部分信道将趋于无噪信道,另外一部分则趋于全噪信道,这种现象就是信道极化。

无噪信道的传输速率会达到信道容量\(I(W)\),而全噪信道的传输速率趋于0。Polar码的编码策略正是应用了这种现象的特性,利用无噪信道传输用户的有用信息,全噪信道传输约定的信息或者不传信息。

规定:

对任意\(N=2^n(n \geqslant 0)\)个独立的B-DMC信道\(W\),使用递归的方式,合并成\(W_N\);然后再将\(W_N\)拆分为相关的信道\(\left \{ W_N^{(i)}: 1\leqslant i \leqslant N \right \}\),就是信道极化现象的具体实现过程。

我们总结一下:

原先有N个性质相同的B-DMC信道,现在通过信道合并--信道分解的形式,得到了\(W_N^{(1)} \rightarrow W_N^{(N)}\)新的N个信道,这N个信道中,就有无噪和全噪信道,然后我们就能利用这N个不同性质的信道进行信息传输。

信道合并

B-DMC信道: \(W: X \rightarrow Y\),其中,\(x=(x_1, x_2 \cdots)\)表示输入向量集合,\(y=(y_1, y_2 \cdots)\)表示输出向量集合。转移概率记为:\(W (y|x),x \in X,y \in Y\)。

信道合并:对N个互相独立的B-DMC信道\(W\)合并,生成信道\(W_N\),记作:\(W_N : X^N \rightarrow Y^N\)。其中,\(X^N=(x_1, x_2 \cdots x_N)\)表示输入序列,\(Y^N=(y_1, y_2 \cdots y_N)\)表示输出序列。信道的转移概率为\(W^N(y_1^N | x_1^N) = \prod_{i=1}^N W(y_i | x_i)\)。

下面,我们研究N值不同时,信道合并的具体过程。

(1)N = 1 时,\(W_1 = W\),不用进行信道合并;

(2)N = 2时,\(W_2: X^2 \rightarrow Y^2\)。两个信道\(W\)组合成了\(W_2\),也就是红筐所示的部分。具体组合方式如下:

这种由"\(\oplus\)"和走线构成的图成为长度为N的极化码的编码图,表示这张图的矩阵被称为生成矩阵\(G_N\),比如当N=2时,\(G_2=F=\begin{bmatrix} 1 & 0 \\ 1 & 1\end{bmatrix}\)。\(F\)也被称为核心矩阵。

\((u_1, u_2)\)为信源序列,也成为信源比特;\((x_1, x_2)\)为输入的编码序列,即码字比特;\((y_1, y_2)\)为输出序列。

从上图中,我们可以写出输入序列的表达式:\(x_1=u_1\oplus u_2, x_2 = u_2\)

我们也能看出,这个是个积信道。转移概率为:\(W_2(y_1, y_2 | u_1, u_2) = W(y_1|u_1 \oplus u_2) W(y_2 | u_2)\)

(3)N=4时,具体组合方式如下

如上图所示,\((W_2^{(1)}, W_2^{(1)}) \rightarrow (W_4^{(1)}, W_4^{(2)}), (W_2^{(2)}, W_2^{(2)}) \rightarrow (W_4^{(3)}, W_4^{(4)})\)

转移概率为\(W_4(y_1^4 | x_1^4) = W_2(y_1, y_2| u_1 \oplus u_2, u_3 \oplus u_4)W_2(y_3, y_4|u_2, u_4)\)。

信源比特和码字比特的关系:\(u_1^4 \rightarrow x_1^4\)的映射关系表达式为:\(x_1^4 = u_1^4G_4, G_4=\begin{bmatrix} 1 & 0 & 0 & 0 \\ 1 & 0 & 1 & 0 \\ 1 & 1 & 0 & 0 \\ 1 & 1 & 1 & 1 \end{bmatrix}\)。

这个生成矩阵是怎么来的?直观上来说,可以把上面的式子进行矩阵运算(加法为模2加法),可得\((x_1, x_2, x_3, x_4)=(u_1 \oplus u_2\oplus u_3\oplus u_4, u_3 \oplus u_4, u_2 \oplus u_4, u_4)\)这个结果就是图表反应的结果。如果从数学上来说,见下面一般情况的N的分析。

所以,组合信道\(W_4\)和原始信道\(W^4\)之间的转移概率可表示为:\(W_4(y_1^4 | x_1^4) = W^4(y_1^4|u_1^4G_4)\)

(4)将上述结论类比到任意N,两个独立信道 \(W_{\frac {N}{2}}\) 可以通过信道组合转换成原道\(W_{N}\)。

可以参考下图理解一下这个规律:长度为N的极化码编码图的最左列是竖着排列的\(N/2\)个长度为2的极化码的编码图,所以这\(N/2\)个长度为2的极化码的第一个码字比特\((u_1 \oplus u_2, u_3 \oplus u_4 \cdots u_{N-1} \oplus u_N)\)被置换到上一半(红框表示部分),而第二个码字比特被置换到下一半(绿框表示部分)。

\(u_1^N \rightarrow x_1^N\)可表示为\(x_1^N=u_1^NG_N\)。

\(G_N = B_NF^{\otimes n}\)为N阶生成矩阵。

其中,\(B_N\)为N阶比特反转矩阵,实现倒位功能。\(B_N=R_N(I_2 \otimes B_{N/2})\),\(I_2 = F^2\),\(R_N\)是个排列运算矩阵。

核心矩阵\(F=\begin{bmatrix} 1 & 0 \\ 1 & 1 \end{bmatrix}\),\(F^{\otimes n}\)为矩阵F的n阶克罗内克积。

  1. 排列运算矩阵\(R_N\)。举例来说:\((a_1, a_2, \cdots, a_N)R_N = (a_1, a_3,a_5,\cdots,a_{N-1},a_2,a_4,\cdots,a_N)\)。

    比如N=4时,\(R_N=\begin{bmatrix} 1 & 0 &0&0 \\ 0&0&1&0 \\ 0&1&0&0 \\ 0&0&0&1\end{bmatrix}\)。也就是在每列的1,3,……,2,4……对应位置为1,其余为0
  1. 克罗内克积。比如\(A=\begin{bmatrix} 1 & 2 \\ 3&4 \end{bmatrix}, A \otimes F=\begin{bmatrix} 1F & 2F \\ 3F&4F\end{bmatrix}\),然后在对应位置展开即可。

如果感兴趣,用上面这些公式可以验证一下N=4时的生成矩阵。

组合信道和原始信道的转移概率为:\(W_N(y_1^N|u_1^N) = W^N(y_1^N | u_1^N G_N)\)

信道分解

信道分解过程是将组合信道\(W_N\)分裂成N个二进制输入比特信道\(W_N^{(i)}\)的过程。

我们先以N=2时为例。组合信道\(W_2\)分裂为\(W_2^{(1)}, W_2^{(2)}\),即极化过程:\((W,W) \rightarrow (W_2^{(1)}, W_2^{(2)})\)。

(1)传输信源序列\(u_1\)的极化信道\(W_2^{(1)}(y_1, y_2 | u_1)\)的转移概率为:

\(W_2^{(1)}(y_1, y_2 | u_1) = P(y_1, y_2, u_1)/P(u_1)=\cdots = \frac {1} {2} \Sigma_{u_2}W(y_1|u_1 \oplus u_2)W(y_1 | u_2)\)

(2)传输信源序列\(u_2\)的极化信道\(W_2^{(2)}(y_1, y_2, u_1 | u_2)\)的转移概率为:

\(W_2^{(1)}(y_1, y_2 | u_1) = P(y_1, y_2, u_1, u_2)/P(u_2) = \cdots = \frac {1} {2} W(y_1|u_1 \oplus u_2)W(y_1 | u_2)\)

上面的推导中省略了很多步骤。我们只需要了解结论,有兴趣的同学课下可以来找我要具体的过程。

那么,我们分解出的两个信道能满足极化信道的要求吗?接下来我们可以验证一下极化信道的特性。

由转移概率,我们可得\(I(Y_1Y_2;U_1)+I(Y_1Y_2U_1;U_2)=2I(X_1;Y_1)=2I(W)\),其中\(I(W)\)表示信道\(W\)的互信息。这个式子表达的意思是:信道\(W\)的两次复用所能传递的信息等于极化信道\(W_2^{(1)}\)和\(W_2^{(2)}\)所能传递的信息的和,极化信道不会损失信息传输的能力。

\(I(Y_1Y_2;U_1) \leqslant I(Y_1Y_2U_1;U_2)\),即\(W_2^{(2)}\)比\(W_2^{(1)}\)的传信能力大,也就是\(W_2^{(2)}\)比\(W_2^{(1)}\)有更大的容量,当码长趋于无穷时,计划信道的容量非0即1。这里具体的证明我们不再展开,通过两者的大小比较有个直观的认识即可。

推广到N,我们定义极化信道表达式为\(W_N^{(i)}(\mathbf{y_1^N, u_1^{i-1}} | u_i)\),表示输入为\(u_i\),输出是\(\mathbf{y_1^N, u_1^{i-1}}\),也就是极化信道\(W_N^{(i)}\)能观察到W的输出\(\mathbf{y_1^N}\)和比特值\((u_1, u_2,\cdots,u_{i-1})\)。这是因为极化码使用串行抵消译码,从\(u_1\)开始逐一估计信源比特,直到\(u_N\),所以在译码\(u_i\)时,\((u_1, u_2,\cdots,u_{i-1})\)的值都已经获得,被当作译码\(u_i\)所需要的反馈

(二)Polar编码

根据信道极化现象,可将原本相互独立的N 个原始信道转化为 N 个信道容量不等的比特信

道。当 N 趋于无穷大时,一部分信道的容量趋于0,而另一部分信道的容量趋于 1。

假设 K 个信道的容量趋于 1,N-K 个信道的容量趋于 0,可选择 K 个容量趋近于 1 的信道传输信息比特,选择 N-K 个容量趋近于 0 的信道传输冻结比特,即固定比特,从而实现由 K 个信息比特到 N 个编码比特的一一对应关系,也即实现码率为 K/N 的Polar 码的编码过程。

具体编码方式可表示为\(x_1^N=u_1^NG_N\)。生成矩阵如何计算等问题在上面已经说过了。

Polar 码可由参数\((N,K A,u_{A^c})\)的陪集\(G_N\) 码定义。

\(N=2^n\)为码长;

K为信息比特个数,也就是无噪信道数;

A 为信息比特位置集合,A 中元素个数等于 K;

\(A^c\)为补集,也就是全噪信道的集合;

\(u_{A^c}\)为冻结比特所对应的序列,在\(A^c\)上传输的序列。由于冻结比特所在的信道特性极差,在信息传输过程中一般固定设为 0。

由于上述编码中的生成矩阵\(G_N\)中存在比特反转矩阵\(B_N\),故该编码方式也称为比特反转编码

在 3GPP 中已确定 Polar 码采用无比特反转编码,并把采用该编码方式得到的 Polar 码称为“基本Polar 码”,其生成矩阵为\(G_N = F^{\otimes n}\)

(三)Polar译码

极化码的译码基本方法主要有:连续消除(Successive Cancellation, SC) 译 码 、 置 信 传 播 (Belief Propagation, BP) 译 码 、 线 性 规 划 (Linear Programming, LP) 译 码 、 基 于 SC 列 表 (Successive Cancellation List, SCL)译码、最大似然(Maximum Likelihood, ML)译码等。

参考文献:《极化码讲义》-于永润编写。下载链接

ch9-极化码。http://staff.ustc.edu.cn/~wyzhou/chapter9.pdf

《面向 5G 新空口技术的 Polar 码标准化研究进展》:谢德胜、柴蓉等;重庆邮电大学移动通信重点实验室;2018−08−10

Polar码快速入门的更多相关文章

  1. Minio纠删码快速入门

    官方文档地址:http://docs.minio.org.cn/docs/master/minio-erasure-code-quickstart-guide Minio使用纠删码erasure co ...

  2. Shiro官方快速入门10min例子源码解析框架2-Session

    Shiro自身维护了一套session管理组件,它可以独立使用,并不单纯依赖WEB/Servlet/EJB容器等环境,使得它的session可以任何应用中使用. 2-Session)主要介绍在quic ...

  3. [Qt Creator 快速入门] 第2章 Qt程序编译和源码详解

    一.编写 Hello World Gui程序 Hello World程序就是让应用程序显示"Hello World"字符串.这是最简单的应用,但却包含了一个应用程序的基本要素,所以 ...

  4. vue 快速入门 系列 —— 侦测数据的变化 - [vue 源码分析]

    其他章节请看: vue 快速入门 系列 侦测数据的变化 - [vue 源码分析] 本文将 vue 中与数据侦测相关的源码摘了出来,配合上文(侦测数据的变化 - [基本实现]) 一起来分析一下 vue ...

  5. matlab快速入门

    matlab快速入门 1矩阵 生成矩阵 ​ % 直接法 a = [1,2,3;4,5,6;7,8,9]; % 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略 b = 1:1:10; % 1,2 ...

  6. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  7. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  8. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

  9. Swift语言快速入门

    Swift语言快速入门(首部同步新版官方API文档和语法的Swift图书,确保代码可编译,作者专家在线答疑,图书勘误实时跟进) 极客学院 编著   ISBN 978-7-121-24328-8 201 ...

随机推荐

  1. AJ学IOS(40)UI之核心动画_抖动效果_CAKeyframeAnimation

    AJ分享,必须精品 效果: 效果一: 效果二: 代码: // // NYViewController.m // 图片抖动 // // Created by apple on 15-5-8. // Co ...

  2. Nginx+uWSGI+Python+Django构建必应高清壁纸站

    写在前面 做这个网站的初衷是因为,每次打开必应搜索搜东西的时候都会被上面的背景图片吸引,我想必应的壁纸应该是经过专业人员精选出来的,我甚至会翻看以前的历史图片,唯一美中不足的是必应的首页只能查看最多7 ...

  3. 别人用钱,而我用python爬虫爬取了一年的4K高清壁纸

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取htt ...

  4. Python - Python的基础知识结构,学习方法、难点和重点

    [原创]转载请注明作者Johnthegreat和本文链接. 相信大家都知道,Python很容易学,有编程基础的人,最多两个星期就可以很愉快的撸Python的代码了,那么具体涉及的知识有哪些,下面为大家 ...

  5. centos7下端口映射

    firewall-cmd --zone=external --add-forward-port=port=:proto=tcp:toport=:toaddr=192.168.10.10 --perma ...

  6. 总结:js世界中的特殊符号

    常用符号:+ ++ - -- || / /' && 等 这些基本上每天都能用到,但是 js 世界中有些特殊符号是不常用的,我也是偶然在阅读大神代码的时候发现的,一番查找之后得出了以下结 ...

  7. CG-CTF(6)

    CG-CTF https://cgctf.nuptsast.com/challenges#Web 续上~ 第三十一题:综合题2 查看本CMS说明: 分析: ①数据库表名为admin:字段名为usern ...

  8. POJ1077 八数码问题

    题目:八数码 网址:http://poj.org/problem?id=1077 在一个3×3的网格中,1~8这8个数字和一个"X"恰好不重不漏地分布在这3×3的网格中. 例如: ...

  9. 【java基础】01 计算机基础知识

    一.计算机基础知识 1. 计算机 1. 什么是计算机? 计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代化智能电子设 ...

  10. 【Linux常见命令】cp命令

    cp - copy files and directories 拷贝文件或目标文件夹,默认不能直接拷贝目录,通过-r参数设置递归复制目录 copy 语法: cp [OPTION]... [-T] SO ...