什么是polar code极化码

  为了实现可靠的信号传输,编码学家在过去的半个多世纪提出多种纠错码技术如里所码(RS码)、卷积码,Turbo码等,并在各种通信系统中取得了广泛的应用。但是以往所有实用的编码方法都未能到香农于1948年所给出的信道传输的容量极限(也称为香农界)。2008年在国际信息论ISIT会议上,Arikan首次提出了信道极化的概念,基于该理论,他给出了人类已知的第一种能够被严格证明达到信道容量的信道编码方法,并命名为极化码(Polar Code)。Polar码具有明确而简单的编码及译码算法。通过信道编码学者的不断努力,当前Polar码所能达到的纠错性能超过目前广泛使用的Turbo码、LDPC码。

  极化码(polar code)是由土耳其毕尔肯大学(bilkent)Erdal Arikan教授于2008年首次提出,其论文从理论上第一次严格证明了在二进制输入对称离散无记忆信道下,极化码可以“达到”香农容量,并且有着低的编码和译码复杂度。从某种意义上说,极化码“理论上”解决了近60年来信息论和编码领域一直想要解决的问题。

  虽然极化码的理论很优美,但其实际性能从其刚出现时还不太理想(“理论上”是指当码长趋向于无穷时的性能;“实际”是指有限长度码长)。但近年来,极化码实际构造方法和列表连续消去译码算法(list successive cancellaTIon decoding)等技术的提出,极化码的整体性能在某些应用场景中取得了和当前最先进的信道编码技术Turbo码和低密度奇偶校验码(LDPC码)相同或更优的性能。

  在这里我们再谈谈arikan教授发明极化码时所提到的2*2矩阵为核的极化码的三大要点:(以下三点,或者是极化码在信道编码中最核心的创新。)

  1.上鞅收敛:构造了一个信道变换,如果不断递归这个变换并随机挑选变换结果的话,则变换结果的巴氏参数(Bhattacharya parameter)构成一个随机过程。arikan证明这个随机过程是一个上鞅,再利用上鞅中的随机变量序列a.s收敛和按期望收敛,证明收敛结果为一个二值随机变量。再证明这个二值随机变量为0的概率是二元离散对称无记忆信道容量I, 推断证明码长n无穷的时候可以挑出约nI个巴氏参数逼近0的无失真子信道,这就证明了信道极化是信道容量可达的。FoundaTIon and trends里面polar章节,有另外一种证明方法,初等一些。

  2.SC译码:有了好码还需要有好的译码算法。香农和Gallager都已经证明,大部分码都是好码,只缺好的,多项式复杂度的译码算法。arikan使用信道变换中的递归结构,先译“坏”信道的结果,甚至冻结“坏”信道的译码结果为0(降低码率),然后作为“好”信道译码的依据。复杂度是超线性的,非常Nice.

PolarCode的更多相关文章

  1. 小小知识点(二十六)关于5G发展的28个核心问题,来自华为内部的深度解读

    本文来自微信公众号“腾讯深网”(ID:qqshenwang),作者 马关夏.36氪经授权转载. 一.5G先进性与行业应用 1.5G到底是什么?和4G比有什么不一样? 从国际电信联盟(ITU)的定义来看 ...

  2. 5G时代,会有什么奇葩事儿?

    ​ 在3GPP RAN第187次会议关于5G短码方案的讨论中,中国华为推荐的PolarCode方案获得认可,成为5G控制信道eMBB场景编码的最终解决方案.坦白讲,笔者在读这个新闻的时候,手里备着一本 ...

随机推荐

  1. mysqldump与innobackupex备份过程你知多少

    mysqldump与innobackupex备份过程你知多少 测试库表创建(这里在同一个库下创建两个表,一个表为innodb引擎,一个为myisam引擎) root@localhost : (none ...

  2. sql 查询重复行数据

    1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select  peopleId  from  ...

  3. DAG 模型 stacking boxes 动态规划

    题目:UVA 103 stacking boxes 题目大意: 给你两个数,一个是盒子的个数,一个是每一个盒子的维数.将一个个盒子互相装起来,让你求最多可以装多少个,要求字典序最小. 解析:这个就是盒 ...

  4. CentOS 7下安装Python3.6.4

    CentOS 7下安装Python3.5 •安装python3.6可能使用的依赖 yum install openssl-devel bzip2-devel expat-devel gdbm-deve ...

  5. 初探boost之timer库学习笔记

    timer   使用方法     #include <boost/timer.hpp> #include <iostream> using namespace std; usi ...

  6. mysql如何修改开启允许远程连接 (windows)

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code 关于mysql远程连接的问题,大家在公司工作中,经常会遇到mysql数据库存储于某个人的电脑上 ...

  7. mysql 日期操作 增减天数、时间转换、时间戳(转)

    转自http://www.cnblogs.com/wenzichiqingwa/archive/2013/03/05/2944485.html http://hi.baidu.com/juntao_l ...

  8. [转]QDir类及其用法总结

    直接给出原文链接:QDir类及其用法总结

  9. [转]系统架构演变--集中式架构-垂直拆分-分布式服务-SOA(服务治理)-微服务

    一.系统架构演变 1.1. 集中式架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.此时,用于简化增删改查工作量的数据访问框架(ORM)是影响项目开发的关键. 存在的 ...

  10. 【Codeforces 152E】Garden

    Codeforces 152 E 题意:给你一个\(n\times m\)的格子,每个格子里面有一个值\(a_{i,j}\)表示如果要将这个格子变成路的话需要花费这么多代价.现在有\(k\)个特殊格子 ...