考完驾照,回来填坑 /doge/doge

前两节分别介绍了tal算法中的合并函数和信道操作两个部分,我们将高斯信道的应用放在最后一节来介绍。

  在之前的介绍中,我们一直在一个前提下进行讨论——即输入字符集是有限的。

  但是,对于一个具有连续输出字符集的信道,如经典的二元高斯信道,它也可以是对称信道,但是它的输出是连续的,所以不能直接使用tal算法。为了将tal算法应用于改信道,我们就要对这个信道做一些近似。

  总体思路类似微分思想,将连续输出分成若干个非常小的离散输出。

  我们假设W为一个具有连续输出的BMS信道,且W满足以下几点:

  • W的输出字符集为实数集;
  • f(y|0),f(y|1)为输出的概率分布函数,输入为{0,1};
  • W的对称性表现为:f(y|0)=f(-y|1),y∈R;
  • 同时,为了方便起见,我们假设:f(y|0)≥f(y|1),y≥0。

  正如我们所期望的那样,BAWGN信道满足上面所有的假设。前两个假设的成立是显然的,对于后两条假设,在BPSK调制下(0映射为1,1映射为-1),我们可以绘制出函数图像。

图1 高斯曲线对比

  上图中,高斯曲线的方差均为1,均值分别为1和-1,可以看到,两个曲线关于x = 0是对称的,因此上面第三个假设成立。在x > 0 的区间显然有第四个假设成立。

  接下来,我们定义y的似然比为:  根据定义,W的信道容量可以表示为:  其中,在 λ ≥ 1 时,有;  上面这两个公式是从 tal 论文中直接截过来的,由于水平有限,其推导过程我不得而知。

  作者提到,C[λ] 的一个重要的性质是,它随 λ 的增大呈严格递增。从下图中可以很容易看出这一点:

图2 C[λ] - λ

  我们前面已经说过,本节的思路在于通过微分思想,把连续输出近似成为离散输出,而上面的介绍提供了 C[λ] 这样一个参数,我们可以用它来作为分割输出字符集的依据。在论文中,作者是这样进行区分的:

假设 μ=2*v 为指定弱化/强化信道输出字符集,i 取值范围为:1 ≤ i ≤ v-1,那么,可以对输出集 y 作如下分割:其中,第二个不等号在 i 取 i=v 时变为 “≤”。

  我们看到,在上面这个集合中,y 和 C 之间通过两重映射关系联系到了一起,而 C 被限制在了某个区间之中,因此y也相应的被分割成了若干个小段。

  下面以弱化操作为例进行讲解:

  主要内容围绕着Lemma15、Lemma16两个引理展开,在介绍二者之前,需要一些预定义。

  我们的BMS信道W满足本节最开始的四个假设,定义信道 ,其中,Z定义为:

  根据定义,我们可以很容易得到Q的信道转移概率表达式,如下,为积分运算:

Lemma15 (在上述定义下的)信道 Q 是一个BMS信道,而且它是 W 的弱化信道:  

  这个引理的证明比较容易理解,Q显然是一个BMS信道。只要我们选择中间信道P定义为:  那么Q是W的弱化信道也是可以理解的。

 Lemma16 Q 和 W 的信道容量之差可以限制在如下区间中:

  对于 tal 算法在matlab下的实现,可以做如下的介绍。

  与之前一样,我们的程序设计还是以下面的算法为主要框架:  在此基础上,对于高斯信道来说,由于它具有连续的输出,因此它的转移概率需要使用上面介绍的积分公式来计算。

  为了进行积分运算,我们首先需要对 y 进行分区,然后才能在每一个小分区内进行积分。

  对 y 的分区依据就是上面提到的集合 Ai 。

  其一、我们可以令 C[λ(y)] = i/v,求出对应的 λ(y)。

  设 f(x) = C[λ] - i/v,令 f(x) = 0,求得根x的值,由于表达式比较复杂,这一步可以借助使用“牛顿-拉夫逊方法”在matlab上完成,方法见超链接。

  其二、得到 λ 后,可以根据 λ 与 y 的映射关系,求出 y 。

  上面内容中, v 是输出单元长度,i 是一个循环下标。i 的循环范围为 1~v,通过 i 的循环和调用上面两个步骤,我们可以得到若干的 y 值,实际上可以把这些 y 值写成向量形式。那么,对于得到的向量,相邻两个元素就是我们求定积分所用到的上下限。

  得到了高斯信道的近似转移概率,我们就可以将其视为一个离散的BMS信道,接下来,按照前面的思路去进行弱化操作和合并操作,就能够在高斯信道下完成信息位的挑选任务了。  

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 死磕以太坊源码分析之Kademlia算法

    死磕以太坊源码分析之Kademlia算法 KAD 算法概述 Kademlia是一种点对点分布式哈希表(DHT),它在容易出错的环境中也具有可证明的一致性和性能.使用一种基于异或指标的拓扑结构来路由查询 ...

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

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

随机推荐

  1. [2017BUAA软工助教]博客格式的详细说明

    一.为什么要强调博客格式 可以对比粗读一下这几篇博客然后自己感受一下博客格式对博客阅读体验的影响: MarkDown流:    [schaepher]2017春季 JMU 1414软工助教 链接汇总 ...

  2. 201521123040《Java程序设计》第7周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代 ...

  3. 201521123005 《java程序设计》 第六周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  4. 201521123071 《JAVA程序设计》第四周学习总结

    1. 本周学习总结 1.1 1.2 在本周的学习中,主要学习了以下几点: 注释的应用,并能在Eclipse中查看 继承的基本定义,关键字super的用法,覆盖与重载 多态与is-a,instanceo ...

  5. 201521123006 《Java程序设计》第1周学习总结

    1. 本章学习总结 (1)java在使用的过程中可以发现其本身有着许多为了节约资源而作的设计,而java根据其应用领域分为了三大平台:Java SE.Java ME与Java EE.在本周的学习中我们 ...

  6. 201521123067 《Java程序设计》第10周学习总结

    201521123067 <Java程序设计>第10周学习总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 Q1.final ...

  7. 201521123052 《Java程序设计》 第12周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String name,int age,doubl ...

  8. **********MySql查询方法重要**********

    分析问题要分步,查询每一步的结果,最后连起来 例如下面有四张表让你查询 查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录. 第一部,找到课程编号为3-105的记录中学号为109 ...

  9. Python-老男孩-03_socket

    Socket简介: 所谓Socket也称"套接字",用于描述IP和端口,是一个通信链的句柄,应用程序通过"套接字"向网络发出请求或应答网络请求. Socket起 ...

  10. Spring @RequestParam乱码问题

    在网上找了很多资料才找到解决的方法,通过URL传递命名参数,后台接收的却是乱码解决方法如下: 方法一:将接收的参数重新编码 @RequestMapping(value="/handle&qu ...