ALOHA算法衍生系列:CSA
2016-09-08 15:27
211 查看
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)编码成nh段,编码后的段长不变
一个MAC帧中的slot相应地分成k段,称为slice,对应传输一个segment
用户随机选择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,笔者也在学习中,因此并没有作解释。如果有哪位同学比较了解的,欢迎做出说明。
相关文章推荐
- ALOHA算法衍生系列:Iterative Interference Cancellation在ALOHA算法中的应用总结
- >重点算法解疑系列文档·再快一点
- C++算法系列之日历生成的算法代码
- 数据结构与算法(C#实现)系列---演示篇(一)(外摘)
- C/C++面试之算法系列--菲波拉契数列的递归与非递归算法
- BBS 设计思路系列 ---- 网友提供的一个用户在CSDN的总分算法
- C/C++面试之算法系列--如何实现用更少的空间表示英文字母(a ~ z)构成char A[n]字符串
- Google外传系列--PageRank核心算法 ->谈Page Rank Google 的民主表决式
- C/C++面试之算法系列--以单词为最小单位翻转字符串
- C/C++面试之算法系列--约瑟夫环:每隔两个循环删除数组元素,求最后删除者的下标问题
- openssl之EVP系列之1---算法封装
- 20060427-汉字区位码查询与算法——microsoft visual studio 2005系列
- P2P普及系列之七:DHT算法的研究 zz
- 数据结构与算法(C#实现)系列---AVLTree(二)(外摘)
- 算法基础系列之三:螺旋形矩阵
- openssl之EVP系列之7---信息摘要算法结构概述
- >重点算法解疑系列文档·脚踏实地
- (codes)二叉树的系列算法,递归与非递归
- 算法为王--正本溯源系列之一
- java.util.concurrent系列文章--(4)非阻塞算法简介