DSP

ALOHA算法衍生系列:CSA

2019-07-13 20:30发布

Coded Slotted ALOHA

  上一篇论文介绍了CRDSA和IRSA两个ALOHA的改进版本。他们都是利用SIC过程,通过迭代消除干扰,将冲突的包变废为宝。其中,CRDSA规定每个burst(物理层上的包)只能发送两个replica,而IRSA则是由每个用户独立决定发送多少个replica,具体数量根据对应的概率函数决定。但是这两个对于burst进行简单的重复。
  论文[1]中给出了另一种方法Coded Slotted ALOHA,发送不是burst的replica,而是先对其进行编码,然后发送编码好的数据。

发送和接收过程

  • 发送端
    1. 发送前,用户将要发送的burst分成k段segment,每个segment的长度相同
    2. k段数据通过线性分组码(linear block code)编码成nh段,编码后的段长不变
    3. 一个MAC帧中的slot相应地分成k段,称为slice,对应传输一个segment
    4. 用户随机选择nh个slice,传输nh个segment,每个segment包含其他segment的位置信息
这里写图片描述
               图1 发送方式示意图
  • 接收端   利用收到的干净的segment(即所在slice只有一个segment,没有冲突和干扰),利用maximum-aposteriori (MAP) erasure decoding 尽可能解码出其他segment,再利用SIC消除干扰,还原其他用户的segment。

编码

  CSA中维护一个共享的码池C={ζ1,ζ2,,ζθ},对于h{1,2,,θ},码ζh长度为nh,维度为k,即(nh,k)码。这里采用的的是LDPC码,具体原理不予赘述。
  从码池中选择码字(nh,k),所有用户都依据概率函Λ={Λh}θh=1
  定义比率:R=kn¯¯
  其中,n¯¯=h=1θΛhnh
  CSA可以实现0<R<1,然而IRSA只能R<12。其实CRDSA和IRSA都可以看成CSA的特例,他们对burst只是进行了简单的重复编码。

总结

  CRDSA,IRSA,CSA这三种方法针对的负载情况都是包长较小,且突发性较强的情况。在这些框架中,实际上每一帧中,真正的数据包只有一个,发送的时候,怎样冗余的方式不同罢了。因此本质上都是处理同一个问题。后面的改进使得原有框架更加灵活,性能也进一步得到提升。
  在IRSA和CSA中,都引入了二分图作为概率分析的手段,分析SIC过程。在处理这一类问题上,有很好的参考意义。

Reference

[1]:Paolini, Enrico, Gianluigi Liva, and Marco Chiani. “Coded slotted ALOHA: A graph-based method for uncoordinated multiple access.” IEEE Transactions on Information Theory 61.12 (2015): 6815-6832.
  这里总结了一下CSA的方案思路,作为新的算法的启发。但是其中具体编码解码过程,比如MAP erasure decoding,笔者也在学习中,因此并没有作解释。如果有哪位同学比较了解的,欢迎做出说明。