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. 动态规划_基础_最长公共子序列_多种方法_递归/dp

    D: 魔法少女资格面试 题目描述 众所周知,魔法少女是一个低危高薪职业.随着近年来报考魔法少女的孩子们越来越多,魔法少女行业已经出现饱和现象!为了缓和魔法少女界的就业压力,魔法少女考核员丁丁妹决定增加 ...

  2. JuiceSSH:安卓平台免费好用的 SSH 客户端

    为了解决上下班路上或者没带电脑时,查看 Linux 服务器日志或者紧急运维的需求,最终找到了 JuiceSSH 这款软件,强烈推荐给大家. 简介 JuiceSSH 是一个为 Android 打造的全功 ...

  3. Linux 提高操作效率之 tab 命令补全

    最近在使用阿里云 ECS 时,发现 Centos 无法进行 tab 补全,特别影响操作效率,本文简单记录下 Linux 下的 tab 命令补全功能,希望对 Linux 初学者有所帮助. 安装 Linu ...

  4. F - Minimum Sum LCM

    LCM (Least Common Multiple) of a set of integers is defined as the minimum number, which is a multip ...

  5. JDBC 中的事务和批处理 batch

    JDBC事务处理: 事务处理一般在事务开始前把事务提交设置为false 所有DML语句执行完成后提交事务 demo: package com.xzlf.jdbc; import java.sql.Co ...

  6. python信息收集(一)

        在渗透测试初期,需要进行大量的信息收集.一般情况下,信息收集可以分为两大类----被动信息收集和主动信息收集.     其中,被动信息收集主要是通过各种公开的渠道来获取目标系统的信息,例如:站 ...

  7. linux--配置开发环境 --Nginx篇

    安装: 安装好了话,我们的nginx的目录在:  /etc/nginx 启动: sudo service nginx start 然后访问我们的页面就可以看到了我们的界面 然后我们配置我们的域名: 我 ...

  8. Unity 游戏框架搭建 2019 (三十九、四十一) 第四章 简介&方法的结构重复问题&泛型:结构复用利器

    第四章 简介 方法的结构重复问题 我们在上一篇正式整理完毕,从这一篇开始,我们要再次进入学习收集示例阶段了. 那么我们学什么呢?当然是学习设计工具,也就是在上篇中提到的关键知识点.这些关键知识点,大部 ...

  9. 讲讲python中函数的参数

    python中函数的参数 形参:定义函数时代表函数的形式参数 实参:调用函数时传入的实际参数 列如: def f(x,y): # x,y形参 print(x, y) f(1, 2) # 1, 2 实参 ...

  10. 理解分布式一致性:Paxos协议之Multi-Paxos

    理解分布式一致性:Paxos协议之Multi-Paxos Multi-Paxos without failures Multi-Paxos when phase 1 can be skipped Mu ...