上一节我们了解了tal-vardy算法的大致原理,对所要研究的二元输入无记忆对称信道进行了介绍,并着重介绍了能够避免输出爆炸灾难的合并操作,这一节我们来关注信道弱化与强化操作。

  【1】《Channel polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels》Erdal Arıkan

  【2】《How to Construct Polar Codes》Ido Tal,  Alexander Vardy

Part1.信道弱化与信道强化

  信道弱化:

    我们给出一个信道。对于信道,如果存在一个中间信道使得对于所有的都有:

    那么我们记:,指代信道Q相对于信道W是弱化的。

    很容易证明下面这些性质:

    1) 这种“弱化”是具有传递性的,类似a≤b,b≤c,则a≤c。

    2) 我们定义“弱化”操作中的恒等性质,类似a≤b,b≤a,则a≡b。

    3) 这种恒等性质具有对称性,类似a≡b,则b≡a。

  对于信道的强化操作,这里就不再解释了。实际上,只需要把上式中的信道W和信道Q调换一下位置,就能够的得到信道强化的操作,以及类似的公式和下面的性质。

  通过弱化操作后得到的弱化信道Q,我们重点关注它的三个参数。不过,在那之前我们先来看一下原始信道W的参数情况。

  对于一个二元无记忆对称信道W:

  <1> 信道错误概率Pe:

    我们假设Pe(W)为最大似然判决下的错误概率,如果输入服从等概率分布(即传输0和1的概率都为1/2),那么我们可以得到:

  <2> 巴氏参数Z(W):

  <3> 信道容量I(W):

  由W得到的弱化信道的参数变化情况如下:

  论文中并没有直接给出后两个结论的导出,第二个结论在论文的参考文献中已经被严格证明,第三个结论在第二个结论的基础上可以被证明。这两个证明超出了我的能力范围,需要证明的可以从论文参考文献给出的引用目录里面去找。我们重点来关注第一个公式,以及它的证明。

  如上为证明过程,由第一步到第二步很好理解,直接把定义公式代入就行。从第二步到第三步需要稍稍解释一下。

  我们可以先忽略掉最外层的1/2倍乘和对z的求和,对比后面的内容。

  • 第二步的运算逻辑顺序为,先求和、再挑选最小值;
  • 第三步的运算逻辑顺序为,先挑选最小值、再求和。

  这两种操作造成差异的原因就在于运算的逻辑顺序问题。

  第二步的式子中,我们把W(y|0)和W(y|1)看做两个整体,忽略整体中每一个加数的细节,关注整体的大小,再取两个整体的最小值。

  第三步的式子中,我们将W(y|0)和W(y|1)拆开来看,我们逐项拿出数对进行对比,只留下较小的那一项,这样最后相加的加数项的每一项,都是它所对应的那一对数中的较小者,这样的一组加数相加得到的和一定是小于等于第二步的。

  当然,这只是一种定性的分析,我们也可以用数学语言去描述它,让它在形式上更加严谨。

  

  弱化操作

  在介绍信道弱化操作前,让我们先来回顾一下Arikan递推公式。tal-vardy算法每一步只操作两个信道,因此我们关注Arikan对单步信道转化的描述。

  【1】-I-E中明确指出,两个独立的二元输入信道副本W:X→Y能够通过单步信道转化,变成一对二元输入信道:。其中输出字符集的映射关系为:。信道转移概率之间的关系为:

  【2】中对这两种信道操作进行了重新定义。【2】提出了两种符号分别用来表征这两种信道转化操作。第一种操作记为:,第二种操作记为:。因此,我们得到:

  从【1】中的介绍,我们发现,原始信道副本的输入字符集为{0,1},长度为2;假设输出字符集长度为 “2L”,则通过第一种信道操作得到的信道 W' 的输出字符集长度为“2L×2L”,通过第二种信道操作得到的信道 W'' 的输出字符集长度为 “(2L)2×2”。这个结论很重要,与接下来的信道操作有关。

  这个现象很好说明,两个W信道副本都只有两个输出字符,分别为y1、y2和它们的共轭,2L=2。假设我们简记y→0,→1。则第一种信道操作的输出字符集有2L×2L=4,四种可能——{00,01,10,11};第二种信道有2×(2L)2=8,八种可能——{000,001,010,011,100,101,110,111}。可以看到,随着单步信道转化的进行,信道的输出字符集长度将随着转化次数的增加爆炸增长。在码长较大时,这将使得极化码的构造计算复杂度变得不可控制,我们之前介绍的合并函数就是为了解决这个问题而存在的。

  【2】中的引理5是信道弱化操作的核心理论。

Lemma5  

  给定一个二元输入的信道 W:X→Y ,设:

  假设Q是W的弱化信道:,并记:

  则,我们可以得到:

                   且 

  这个引理对于强化操作,一样成立,只需要将上述的Q和W互相调换位置。

  引理5的证明位于【2】Page6。

  引理5告诉我们,一个弱化信道,即使对它进行信道转化操作后,它依然是一个弱化信道。

  【2】中对信道弱化操作部分做了与合并函数同样的描述方式,将信道弱化操作视为一个函数。函数的输入为原始BMS信道W,以及指定输出字符集长度μ;函数输出为一个弱化BMS信道Q,Q的输出字符集最大不超过μ。

  信道极化操作

  在信道极化过程中,对于信道转化方法的选择问题(即在每一个节点判断进行信道操作1,还是信道操作2),可以视为一个二进制树的生成。在【1】中Arikan为我们展示了这样一张图:

  我们暂且称其为“码树”。

  码树的根为原始的信道副本,在每一级code_level上都会产生两个分支,上分支使用第一个信道转化公式,下分支使用第二个信道转化公式。我们以上图为例,N=2^n=8,n=3。n即code_level,表示树的深度;N即code_length,表示树的广度。借助二进制数,我们可以很容易的找到从树根到树梢的路径。例如,当 i 取5时,我们将 i-1 转化为位数为 n=3 的二进制数:(5-1)10→(100)2。对应到码树中,从树根开始,三级分支分别取下、上、上分支,使用相应的信道操作,就能够得到这一极化信道。

  因此,在信道操作中,我们可以将信道指数(channel index)转化为二进制数,通过逐位读取并进行判断,使用相应的信道操作,就能够实现信道极化。【2】中给出了一个非常清晰的算法思路:

  算法复杂度

  在上面的算法中,我们假设每次执行合并函数的时间为,遵循上述算法A中的符号使用规则,对于n个信道来说,由于每个信道指数有m位,因此总共调用合并函数的次数为n·m次,用时。但是,由于许多中间信道的计算是在做重复性的工作,因此,实际计算不同信道的次数为(2n-1-1)次,因此总的时间复杂度应该为,也即

  

  实际上,我们能够利用对称信道的特点,进一步降低计算复杂度。

  还记得我们在上一节强调过的Arikan给出的定理13吗?

  由于我们的信道操作是单步进行的,每一次只进行两个信道的合并,在上图的(58)式中,取N=2,i=1,我们可以得到第一种信道操作的对应公式:  其中,G2=[1 0; 1 1]。不失一般性的,我们假设发送的比特为0,即u1=0,并且,我们令等式右端的发送端等于1(即令a1=1),可以得到:

  【我们为什么要这么做?】

  【回忆一下对称信道的定义之中,有这样一条:】  【显然,我们这样做的目的是为了得到字符对(y1,y2)的共轭对。】

  当a2分别取0、1时,有:

  也即,有两个共轭对,一个是,另一个是。对上式进一步的转化,我们可以发现,容易得到:

  以及:

  通俗来说,上面这一番计算的意义在于,在信道转化操作之后,我们没有必要计算输出字符集中每一个字符的转移概率。实际上,我们只需要对一半字符进行计算。

  类似的,我们可以对第二种信道操作进行类似的计算,令i=2,则输出字符集共有3个字符,可以组成8中不同的组合,最后实际上只需要计算4种组合。

  本节的内容就是这样,下一节我们将讨论如何对BAWGN信道使用tal-vardy算法。

极化码之tal-vardy算法(2)的更多相关文章

  1. 极化码的matlab仿真(4)——SC译码(2)

    ================================================ 首先自作多情的说一句--"抱歉!" 古语"有志者.事竟成",是 ...

  2. 极化码之tal-vardy算法(1)

    继前两节我们分别探讨了极化码的编码,以及深入到高斯信道探讨高斯近似法之后,我们来关注一个非常重要的极化码构造算法.这个算法并没有一个明确的名词,因此我们以两位发明者的名字将其命名为“Tal-Vardy ...

  3. 极化码的matlab仿真(3)——SC译码(1)

    一个好码必须具备两个要素:可靠.高效. 高效的码要求码的编译方案都具有较低的复杂度.极化码出现后,Arikan本人提出使用SC译码方案来进行译码操作.SC全称successive cancellati ...

  4. Android开源项目 Universal imageloader 源码研究之Lru算法

    https://github.com/nostra13/Android-Universal-Image-Loader universal imageloader 源码研究之Lru算法 LRU - Le ...

  5. 极化码的matlab仿真(2)——编码

    第二篇我们来介绍一下极化码的编码. 首先为了方便进行编码,我们需要进行数组的定义 signal = randi([0,1],1,ST); %信息位比特,随机二进制数 frozen = zeros(1, ...

  6. 极化码的matlab仿真(1)——参数设置

    根据老师的安排,对于极化码的了解从仿真开始. 仿真的手段有很多种.可以利用C,C++,matlab等进行仿真的实现.其中matlab由于具有强大的函数库,和壮观的矩阵运算能力,被(我们老师课题组)看中 ...

  7. 极化码之tal-vardy算法(3)

    考完驾照,回来填坑 /doge/doge 前两节分别介绍了tal算法中的合并函数和信道操作两个部分,我们将高斯信道的应用放在最后一节来介绍. 在之前的介绍中,我们一直在一个前提下进行讨论--即输入字符 ...

  8. 【STL源码学习】STL算法学习之二

    第一章:前言 学习笔记,记录学习STL算法的一些个人所得,在以后想用的时候可以快速拾起. 第二章:明细 copy 函数原型: template <class InputIterator, cla ...

  9. [dev][ipsec][dpdk] strongswan/dpdk源码分析之ipsec算法配置过程

    1 简述 storngswan的配置里用一种固定格式的字符串设置了用于协商的预定义算法.在包协商过程中strongswan将字符串转换为固定的枚举值封在数据包里用于传输. 协商成功之后,这组被协商选中 ...

随机推荐

  1. 坐标系统与投影变换及在ArcGIS桌面产品中的应用

    坐标系统与投影变换及在ArcGIS桌面产品中的应用 1.地球椭球体(Ellipsoid) 2.大地基准面(Geodetic datum) 3.投影坐标系统(Projected Coordinate S ...

  2. HDU5805 NanoApe Loves Sequence (BestCoder Round #86 B)前后缀预处理

    分析:维护空隙的差,然后预处理前缀最大,后缀最大,扫一遍 #include <cstdio> #include <cstring> #include <cmath> ...

  3. HDU 2177 取(2堆)石子游戏 (威佐夫博弈)

    题目思路:威佐夫博弈: 当当前局面[a,b]为奇异局时直接输出0 否则: 1.若a==b,输出(0 0): 2.将a,b不停减一,看能否得到奇异局,若有则输出: 3.由于 ak=q*k(q为黄金分割数 ...

  4. VR全景智慧城市--2017年VR项目加盟将是一个机遇

    全景智慧城市项目是河南艺境空间文化传播有限公司自主开发的国内第一家商业全景平台, 旨在构建全景城市,实现智慧生活,让人们随时随地身临其境拥有全世界,享受快捷.真实.趣味.优质生活. 以VR虚拟现实技术 ...

  5. C++版- Leetcode 3. Longest Substring Without Repeating Characters解题报告

    Leetcode 3. Longest Substring Without Repeating Characters 提交网址: https://leetcode.com/problems/longe ...

  6. IPhone微信H5用Video标签播放不了视频

    H5用Video标签播放视频 视频在安卓上可以正常播放,在苹果上却不能播放. 因为用了文件服务站点,而且不支持断点下载 把文件服务改成支持断点下载即可 断点下载参考(C#)

  7. 多种方法实现div两列等高(收集整理)

    HTML骨架 <div id="header">头部</div> <div id ="container"> <div ...

  8. 漫谈ElasticSearch关于ES性能调优几件必须知道的事

    lasticSearch是现在技术前沿的大数据引擎,常见的组合有ES+Logstash+Kibana作为一套成熟的日志系统,其中Logstash是ETL工具,Kibana是数据分析展示平台.ES让人惊 ...

  9. IBM Worklight OutOfMemoryError: Java heap space 错误

    在启动  IBM Worklight 6.0 server 的时候,报了一个  OutOfMemory 的错误: [INFO    ] FWLSE4006I: Worklight Studio is ...

  10. ANN:DNN结构演进History—RNN

    前言: CNN在图像处理领域的极大成功源于CNN的二维递进映射结构,通过训练多层卷积核来进行特征提取函数训练,在二维图像的稀疏表达和语义关联分析方面有天生的结构优势.而涉及时序问题的逻辑序列分析-边长 ...