考完驾照,回来填坑 /doge/doge算法
前两节分别介绍了tal算法中的合并函数和信道操做两个部分,咱们将高斯信道的应用放在最后一节来介绍。框架
在以前的介绍中,咱们一直在一个前提下进行讨论——即输入字符集是有限的。函数
可是,对于一个具备连续输出字符集的信道,如经典的二元高斯信道,它也能够是对称信道,可是它的输出是连续的,因此不能直接使用tal算法。为了将tal算法应用于改信道,咱们就要对这个信道作一些近似。spa
整体思路相似微分思想,将连续输出分红若干个很是小的离散输出。设计
咱们假设W为一个具备连续输出的BMS信道,且W知足如下几点:3d
- 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),咱们能够绘制出函数图像。blog
图1 高斯曲线对比get
上图中,高斯曲线的方差均为1,均值分别为1和-1,能够看到,两个曲线关于x = 0是对称的,所以上面第三个假设成立。在x > 0 的区间显然有第四个假设成立。
it
接下来,咱们定义y的似然比为: 根据定义,W的信道容量能够表示为:
其中,在 λ ≥ 1 时,有;
上面这两个公式是从 tal 论文中直接截过来的,因为水平有限,其推导过程我不得而知。程序设计
做者提到,C[λ] 的一个重要的性质是,它随 λ 的增大呈严格递增。从下图中能够很容易看出这一点:
图2 C[λ] - λ
咱们前面已经说过,本节的思路在于经过微分思想,把连续输出近似成为离散输出,而上面的介绍提供了 C[λ] 这样一个参数,咱们能够用它来做为分割输出字符集的依据。在论文中,做者是这样进行区分的:
假设 μ=2*v 为指定弱化/强化信道输出字符集,i 取值范围为:1 ≤ i ≤ v-1,那么,能够对输出集 y 做以下分割:
其中,第二个不等号在 i 取 i=v 时变为 “≤”。
咱们看到,在上面这个集合中,y 和 C 之间经过两重映射关系联系到了一块儿,而 C 被限制在了某个区间之中,所以y也相应的被分割成了若干个小段。
下面以弱化操做为例进行讲解:
主要内容围绕着Lemma1五、Lemma16两个引理展开,在介绍两者以前,须要一些预约义。
咱们的BMS信道W知足本节最开始的四个假设,定义信道 ,其中,Z定义为:
根据定义,咱们能够很容易获得Q的信道转移几率表达式,以下,为积分运算:
Lemma15 (在上述定义下的)信道 Q 是一个BMS信道,并且它是 W 的弱化信道:
![]()
这个引理的证实比较容易理解,Q显然是一个BMS信道。只要咱们选择中间信道P定义为:
那么Q是W的弱化信道也是能够理解的。
Lemma16 Q 和 W 的信道容量之差能够限制在以下区间中:
对于 tal 算法在matlab下的实现,能够作以下的介绍。
与以前同样,咱们的程序设计仍是如下面的算法为主要框架: 在此基础上,对于高斯信道来讲,因为它具备连续的输出,所以它的转移几率须要使用上面介绍的积分公式来计算。
为了进行积分运算,咱们首先须要对 y 进行分区,而后才能在每个小分区内进行积分。
对 y 的分区依据就是上面提到的集合 Ai 。
其1、咱们能够令 C[λ(y)] = i/v,求出对应的 λ(y)。
设 f(x) = C[λ] - i/v,令 f(x) = 0,求得根x的值,因为表达式比较复杂,这一步能够借助“牛顿-拉夫逊方法”在matlab上完成,方法见超连接。
其2、获得 λ 后,能够根据 λ 与 y 的映射关系,求出 y 。
上面内容中, v 是输出单元长度,i 是一个循环下标。i 的循环范围为 1~v,经过 i 的循环和调用上面两个步骤,咱们能够获得若干的 y 值,实际上能够把这些 y 值写成向量形式。那么,对于获得的向量,相邻两个元素就是咱们求定积分所用到的上下限。
获得了高斯信道的近似转移几率,咱们就能够将其视为一个离散的BMS信道,接下来,按照前面的思路去进行弱化操做和合并操做,就可以在高斯信道下完成信息位的挑选任务了。