Coded Slotted ALOHA
上一篇论文介绍了CRDSA和IRSA两个ALOHA的改进版本。他们都是利用SIC过程,通过迭代消除干扰,将冲突的包变废为宝。其中,CRDSA规定每个burst(物理层上的包)只能发送两个replica,而IRSA则是由每个用户独立决定发送多少个replica,具体数量根据对应的概率函数决定。但是这两个对于burst进行简单的重复。
论文[1]中给出了另一种方法Coded Slotted ALOHA,发送不是burst的replica,而是先对其进行编码,然后发送编码好的数据。
发送和接收过程
发送端
发送前,用户将要发送的burst分成k 段segment,每个segment的长度相同
k 段数据通过线性分组码(linear block code)编码成n h 段,编码后的段长不变
一个MAC帧中的slot相应地分成k 段,称为slice,对应传输一个segment
用户随机选择n h 个slice,传输n h 个segment,每个segment包含其他segment的位置信息
图1 发送方式示意图
接收端
利用收到的干净的segment(即所在slice只有一个segment,没有冲突和干扰),利用maximum-aposteriori (MAP) erasure decoding 尽可能解码出其他segment,再利用SIC消除干扰,还原其他用户的segment。
编码
CSA中维护一个共享的码池
C = { ζ 1 , ζ 2 , … , ζ θ } ,对于
h ∈ { 1 , 2 , … , θ } ,码
ζ h 长度为
n h ,维度为
k ,即
( n h , k ) 码。这里采用的的是LDPC码,具体原理不予赘述。
从码池中选择码字
( n h , k ) ,所有用户都依据概率函
Λ = { Λ h } θ h = 1 。
定义比率:
R = k n ¯ ¯
其中,
n ¯ ¯ = ∑ h = 1 θ Λ h n h
CSA可以实现
0 < R < 1 ,然而IRSA只能
R < 1 2 。其实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,笔者也在学习中,因此并没有作解释。如果有哪位同学比较了解的,欢迎做出说明。