SCMA基本原理介绍

news2024/11/14 14:37:14

SCMA: Sparse Code Multiple Access

SCMA基本原理

我们考虑一个同步(synchronous)的SCMA系统,

  • 含1个基站(Base Station, BS);
  • J J J个用户(so called layers);
  • K个OFDM子载波(so called REs)。

用户 j j j发送的码字 x j ∈ C K × 1 \boldsymbol x_j \in \mathbb C^{K \times 1} xjCK×1,其中 x j \boldsymbol x_j xj是从集合 C j \boldsymbol C_j Cj中选取的,集合 C j \boldsymbol C_j Cj一共有 M j M_j Mj个码字,因此用户 j j j发送一个码字可以传输 log ⁡ 2 M j \log_2{M_j} log2Mj个比特。注意到SCMA的码字是稀疏的,即仅有 N j ≪ K N_j \ll K NjK个RE上的符号是非零的,其它都为零,我们把 N j N_j Nj称为码字的稀疏度(codebook sparsity degree)。

SCMA的关键特征:给定用户 j j j对应的所有码字,这些码字非零元素对应的位置都是一致的,且相较于其他用户是唯一的。(The sparsity key of SCMA that all codewords corresponding to the j th j^{\text{th}} jth SCMA layer (user) have a unique location of nonzero entries at the same ( K − N j ) (K-N_j) (KNj) positions.)

Note:A regular SCMA system is defined by
N j = N ,    1 ≤ j ≤ J M j = M ,    1 ≤ j ≤ J N_j = N, \ \ 1 \leq j \leq J \\ M_j = M, \ \ 1 \leq j \leq J Nj=N,  1jJMj=M,  1jJ

一个regular SCMA系统如下图所示。其中,码字的维数 K = 4 K=4 K=4,码字空间大小 M j = 4 , ∀ j M_j=4, \forall j Mj=4,j,用2个RE来承载符号,即 N j = 2 , ∀ j N_j = 2, \forall j Nj=2,j

在这里插入图片描述

Define

  • The maximum degree of user superposition on a given RE: d f d_f df
  • Overloading factor is defined by the ratio of number of total users to number of REs: λ = J K \lambda = \frac{J}{K} λ=KJ

从上图可以看出, d f = 3 , λ = 150 % d_f =3, \lambda=150 \% df=3,λ=150%

我们使用数学语言来描述SCMA encoder。SCMA encoder可以被定义为映射: f : { 0 , 1 } log ⁡ 2 M → X f: \{0,1\}^{\log_2 M} \rightarrow \mathcal X f:{0,1}log2MX,即 x = f ( b ) \boldsymbol x = f(\boldsymbol b) x=f(b),其中 X ⊂ C K \mathcal X \subset \mathbb C^{K} XCK ∣ X ∣ = M \vert \mathcal X \vert=M X=M x ∈ X \boldsymbol x \in \mathcal X xX是一个稀疏向量,只有 K − N K-N KN个非零元素。指定 c \boldsymbol c c N N N维的复星座点(complex constellation point),对应的星座集合为 C ⊂ C N \mathcal C \subset \mathbb C^{N} CCN,那么从二进制向量到高维星座点的映射为 g : { 0 , 1 } log ⁡ 2 M → C g: \{0,1\}^{\log_2 M} \rightarrow \mathcal C g:{0,1}log2MC,即 c = g ( b ) \boldsymbol c = g(\boldsymbol b) c=g(b),那么SCMA encoder可以表示为
f : ≡ V c = V g ( b ) f : \equiv \boldsymbol V \boldsymbol c = \boldsymbol V g(\boldsymbol b) f:≡Vc=Vg(b)

其中 V \boldsymbol V V为映射矩阵,将在后面介绍。

BS上行接收信号可以表示为:
y = ∑ j = 1 J H j x j + n ∈ C K × 1 \boldsymbol y = \sum_{j=1}^J \boldsymbol H_j \boldsymbol x_j + \boldsymbol n \in \mathbb C^{K \times 1} y=j=1JHjxj+nCK×1

其中 H j = diag ( h j ) \boldsymbol H_j =\text{diag}(\boldsymbol h_j) Hj=diag(hj),且 h j = ( h j , 1 , h j , 2 , ⋯   , h j , K ) T \boldsymbol h_j=(h_{j,1}, h_{j,2}, \cdots, h_{j,K})^T hj=(hj,1,hj,2,,hj,K)T是用户 k k k的信道向量, n ∼ C N ( 0 , N 0 I K ) \boldsymbol n \sim \mathcal {CN}(\boldsymbol 0, N_0 \boldsymbol I_K) nCN(0,N0IK)

我们可以用两种方式来描述SCMA系统:
(1)因子图矩阵(factor graph matrix)
SCMA系统可以被一个 K × J K \times J K×J的因子矩阵 F = ( f 1 , f 2 , ⋯   , f J ) ∈ { 0 , 1 } K × J \boldsymbol F=(\boldsymbol f_1, \boldsymbol f_2, \cdots, \boldsymbol f_J) \in \{0,1\}^{K \times J} F=(f1,f2,,fJ){0,1}K×J表征。 F \boldsymbol F F的每一列 f j \boldsymbol f_j fj定义了用户 j j j发送码字对应的非零位置。
F = [ 1 1 1 0 0 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 ] \boldsymbol{F}=\left[ \begin{matrix}{} 1& 1& 1& 0& \begin{matrix} 0& 0\\ \end{matrix}\\ 1& 0& 0& 1& \begin{matrix} 1& 0\\ \end{matrix}\\ 0& 1& 0& 1& \begin{matrix} 0& 1\\ \end{matrix}\\ 0& 0& 1& 0& \begin{matrix} 1& 1\\ \end{matrix}\\ \end{matrix} \right] F= 110010101001011000100111

(2)用户 j j j的映射矩阵
我们用 V = { V j , ∀ j } \mathcal V=\{\boldsymbol V_j, \forall j\} V={Vj,j}来表征SCMA系统,且 f j = diag ( V j V j T ) \boldsymbol f_j = \text{diag}(\boldsymbol V_j \boldsymbol V_j^T) fj=diag(VjVjT),其中 V j \boldsymbol V_j Vj是用户 j j j将发送符号映射到RE上的映射矩阵,例如图中第1个用户的映射矩阵为
V 1 = [ 1 0 0 1 0 0 0 0 ] \boldsymbol{V}_1=\left[ \begin{matrix}{} 1& 0\\ 0& 1\\ 0& 0\\ 0& 0\\ \end{matrix} \right] V1= 10000100

上图对应的因子图为

SCMA映射矩阵的构造

映射矩阵的构造准则如下:

  1. V j ∈ { 0 , 1 } K × N \boldsymbol V_j \in \{0,1\}^{K \times N} Vj{0,1}K×N;
  2. V j ≠ V i ,    ∀ i ≠ j \boldsymbol V_j \neq \boldsymbol V_i, \ \ \forall i \neq j Vj=Vi,  i=j
  3. V j [ ⊘ ] = I N \boldsymbol V_j^{[\oslash] } = \boldsymbol I_N Vj[]=IN, where V j [ ⊘ ] \boldsymbol V_j^{[\oslash] } Vj[] is V j \boldsymbol V_j Vj after removing its all-zero rows.

基于上述构造准则的解是唯一的,简单地可以解释为是一个排列组合问题,即往 I N \boldsymbol I_N IN中插入 N − K N-K NK个全0的行。不难看出,该解具有以下性质:

  1. J = ( K N ) J=\left( \begin{array}{c} K\\ N\\ \end{array} \right) J=(KN)
  2. d F = ( K − 1 N − 1 ) = J N K d_F = \left( \begin{array}{c} K-1 \\ N-1 \\ \end{array} \right) = \frac{JN}{K} dF=(K1N1)=KJN
  3. λ = J K = d f N \lambda = \frac{J}{K}=\frac{d_f}{N} λ=KJ=Ndf
  4. max ⁡ ( 0 , 2 N − K ) ≤ l ≤ N − 1 \max(0, 2N-K) \leq l \leq N-1 max(0,2NK)lN1 where l is the number of the overlapping elements of any two distinct f j \boldsymbol f_j fj vectors.

SCMA与LDS-CDMA的区别

LDS is a special simplified case of the SCMA structure with QAM symbol repetition over multiple tones/subcarriers.

引用

[1] L. Dai, B. Wang, Y. Yuan, S. Han, I. Chih-lin and Z. Wang, “Non-orthogonal multiple access for 5G: solutions, challenges, opportunities, and future research trends,” in IEEE Communications Magazine, vol. 53, no. 9, pp. 74-81, September 2015, doi: 10.1109/MCOM.2015.7263349.
[2] H. Nikopour and H. Baligh, “Sparse code multiple access,” 2013 IEEE 24th Annual International Symposium on Personal, Indoor, and Mobile Radio Communications (PIMRC), London, UK, 2013, pp. 332-336, doi: 10.1109/PIMRC.2013.6666156.
[3] M. Rebhi, K. Hassan, K. Raoof and P. Chargé, “Sparse Code Multiple Access: Potentials and Challenges,” in IEEE Open Journal of the Communications Society, vol. 2, pp. 1205-1238, 2021, doi: 10.1109/OJCOMS.2021.3081166.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/564755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法练习-2:送外卖

n 个小区排成一列,编号为从 0 到 n-1 。一开始,美团外卖员在第0号小区,目标为位于第 n-1 个小区的配送站。 给定两个整数数列 a[0]~a[n-1] 和 b[0]~b[n-1] ,在每个小区 i 里你有两种选择: 1) 选择a:向前 a[…

shiro环境搭建

源码部署 这种方法相对复杂,如果不需要分析源码直接用docker就行 前置条件:Maven Ideal Tomcat 下载方式1:https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4,然后将文件夹导入ideal下载方式2:将shiro…

装饰者模式-java实现

的简介 装饰模式又称为“包装(Wrapper)模式”,以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。动态地给对象添加一些额外地职责,就增加功能而言,装饰模式比生成子类更加灵活。 一般来说,一些特殊场景…

C++ new和delete详解

文章目录 1、 C C C内存分布2、 C C C内存管理方式3、 n e w new new 和 d e l e t e delete delete 底层实现4、定位 n e w new new表达式(了解)5、 m a l l o c 、 f r e e 和 n e w 、 d e l e t e malloc、free和new、delete malloc、free和new、de…

初识Linux:第六篇

初识Linux:第六篇 初识Linux:第六篇1.Linux 软件包管理器 yum2.Linux下的软件生态3.Linux中编辑器vim的使用3.1命令模式3.11控制光标移动3.12复制,粘贴,剪切,删除3.13替换,大小写转换3.14撤销与反撤销3.15查…

深度学习笔记之循环神经网络(六)长短期记忆神经网络(LSTM)

深度学习笔记之循环神经网络——长短期记忆神经网络[LSTM] 引言回顾: RNN \text{RNN} RNN的反向传播过程 RNN \text{RNN} RNN反向传播的梯度消失问题 长短期记忆神经网络遗忘门结构输入门结构遗忘门与输入门的特征融合操作输出门结构 个人感悟 引言 上一节介绍了循…

【C++】哈希——unordered系列容器哈希概念哈希冲突

文章目录 1. unordered系列的关联式容器1.1 引言1.2 unordered_map的使用说明1.3 unordered_set的使用说明1.4 unordered_set和unordered_map的应用1.5 性能比较 2. 哈希概念3. 哈希函数4. 哈希冲突5. 哈希冲突的解决——开散列和闭散列5.1 闭散列5.2 开散列 1. unordered系列的…

C++:征服C指针:关于指针

关于指针 1.看一个简单的程序,来接触下指针二级目录三级目录 本章节,我们重点分析C指针,首先我们从指针的概念谈起 💚💚💚 指针是一种保存变量地址的变量,并在C中频繁使用在C语言标准中&#xf…

数据结构与算法01:时间复杂度

目录 【复杂度分析】 【降低时间复杂度】 降低时间复杂度的必要性 【每日一练】 不管是使用什么编程语言或者哪种数据库,不管是解决项目中的什么问题,都离不开数据结构与算法。所谓数据结构就是指某一种数据的存储结构,所谓算法就是操作这…

【ClickHouse】

文章目录 一、表引擎1、表引擎的作用2、TinyLog3、Memory4、MergeTree二、数据库引擎1、作用--跨种类交换数据2、示例 三、MergeTree引擎1、简单使用2、分区partition by3、主键primary key4、order by(必填) 一、表引擎 1、表引擎的作用 CK表引擎决定…

U盘无法格式化?试试这几种快速有效的方法!

我们在通过Windows文件资源管理器、磁盘管理或Diskpart命令格式化U盘过程中,会遇到Windows无法格式化U盘。导致出现该问题的原因可能有以下几种: U盘被病毒和恶意软件感染; U盘有坏道; U盘已经物理损坏; 1.消除可能…

数据类型的陷进,从表象看本质!

哪些值转为布尔值为false 1、undefined(未定义,找不到值时出现) 2、null(代表空值) 3、false(布尔值的false,字符串"false"布尔值为true) 4、0(数字0&…

LeetCode每日一题之209长度最小的子数组

文章目录 问题描述方法一:暴力求解方法二:滑动窗口 问题描述 方法一:暴力求解 暴力求解法:时间复杂度O(n^2),空间复杂度O(1)。 暴力求解法的思想:每一次遍历数组,然后更新result的值&#xff0…

【Linux基本指令(3)】几十条指令快速入手Linux/到底什么是日志?/指令的运行原理到底是什么?

本文思维导图: 文章目录 13.head指令14.tail指令15.时间相关指令到底什么是日志?时间戳 16.cal指令17.find指令(非常重要)18.grep指令19.zip/unzip指令20.tar指令(非常重要)21.bc指令22.uname指令23.几个重…

香橙派4和树莓派4B构建K8S集群实践之六:虚拟主机

1. 说明 根据之前设置好的基础,我打算设置两种不同的虚拟主机运行在这个K8s集群上面,一个是LNMP体系的WebApp,一个是Java SpringBoot体系的WebApp。 1.1 设置表格 - wwwroot 是之前做pvc定义的文件目录,形如:/data0…

外包没有前途的,已经被替换了....

我25岁的时候,外包测试,薪资13.5k,人在深圳。 内卷什么的就不说了,而且人在外包那些高级精英年薪大几十的咱也接触不到,就说说外包吧。假设以我为界限,25岁一线城市13.5k,那22-24大部分情况下是…

花指令问题

前言 想起之前打题的时候经常会遇到一些关乎花指令的问题,但是没有系统地总结归纳花指令去除的姿势,浅浅开一个坑慢慢来写 题1:简单jmp 可以骗过dbg,但是放在ida中就很容易看出来,无效跳转 题目来源:[HD…

七牛云图床设置

文章目录 七牛云图床设置下面是用picgo配置图床SSL证书申请https网站显示http图片解决方案 原文链接图床设置,免费SSL证书申请,https网站显示http链接的图片 七牛云图床设置 登录七牛云官网并进行个人注册,然后找到对象存储 点击空间管理&a…

一种适用于大量租户大量角色权限系统设计

前言 权限管理是每个系统不可缺少的一部分,大部分开发者应该都设计过权限管理系统,很多开发者学习的第一个项目可能就是权限管理系统。但是常见的权限设计在租户量非常大、角色数量非常多时会存在角色权限表数据量指数增长的情况,本文介绍一…

c++代码手撕红黑树

企业里永远是技术驱动理论发展 比起理解红黑树的原理,更重要的是理解红黑树的应用场景,因为某些应用场景的需要,红黑树才会应运而生。 红黑树的特点: 插入,删除,查找都是O(logn)的复杂度。 红黑树的应用…