SCMA基本原理介绍

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.mfbz.cn/a/24541.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue2介绍(入门)

目录 声明式渲染 v-bind v-if条件与循环 name命名 学会log打印 一些js方法 双向绑定v-model和v-bind 那么请实现一个复选框吧 自定义标签模板 声明式渲染 我感觉这里文档的意思是双向绑定, 或许需要清理一下js缓存机制 ,嗯...不懂,响应式&…

深入解析Linux C/C++ 编程中的内存泄漏问题

深入解析Linux C/C 编程中的内存泄漏问题 I. 前言 (Introduction)1.1 文章目的与内容概述 (Purpose and Overview of the Content)1.2 重要性和实用性的说明 (Significance and Practicality Explanation)1.3 数据结构与内存泄漏的基本概念 (Basic Concepts of Data Structure …

PDF文件数字证书签名指南

一、安装PDF证书的环境 1.1 PDF证书安装环境 Windows pc 机一台 安装Adobe Acrobat 软件 PDF文档签名证书一张(备注:本指南使用沃通内部文档加密证书进行操作,通用其它版本证书) 1.2 网络环境要求 请确保您签名的电脑可以正常访问外网。 二、PDF证书安装 2.…

数据结构之二叉树的基本实现

在我们之前已经了解的堆这样的完全二叉树的实现,也对树型结构有了一些了解,那么今天我们来看看二叉树的一些性质。 因为二叉树是一种每个节点至多只有两个子树(即二叉树的每个节点的度不大于2),并且二叉树的子树有左右…

Shell脚本攻略:shell函数应用

目录 一、理论 1.shell函数 2.函数传参 3.函数变量的作用范围 4.递归 5.函数位置变量与脚本位置变量区别 6.创建库 二、实验 1.实验一 一、理论 1.shell函数 (1)概念 将命令序列按格式写在一起,可方便重复使用命令序列。 ① 避免…

Docker容器与虚拟机(VM)大对比

Docker是一个开源应用容器引擎。Docker可以将应用程序与基本架构分开,从而快速交付软件。 传统虚拟机的运行需要占用较高的资源,包括磁盘空间、内存和处理器性能。每个虚拟机都需要完整的操作系统和应用程序副本,这在资源利用和启动时间上存…

js实现PDF 预览和文件下载

在开发过程中要求对 PDF 类型的发票提供 预览 和 下载 功能,PDF 类型文件的来源又包括 H5 移动端 和 PC 端,而针对这两个不同端的处理会有些许不同,下文会有所提及。 针对 PDF 预览 的文章不在少数,但似乎都没有提及可能遇到的问…

Markdown可以在线编辑吗?这个办法很好用

Markdown是一种轻量级标记语言,它使用简单的语法来创建文本,非常易于学习。它最初被设计为一种用于写作的格式,但现在已经成为了一种非常受欢迎的文本编辑工具。 作为一个较为方便的在线文本编辑器,它可以用代码代替文字&#xf…

27事务管理AOP

一、MySQL事务回顾 二、Spring事务管理 Spring框架的第一大核心:IOC控制反转 在DeptServiceImpl下删除部门方法下新加一个删除员工信息的操作,注意:此时的id是部门id。 1、问题分析 2、Transactional-Spring事务管理 一般是在Service实现类的…

Visual Studio内引用Lua解释器,编译Lua源码,执行Lua脚本

前言 本篇在讲什么 在Visual Studio中引入lua的解释器 使用C调用Lua文件 本篇适合什么 适合初学Lua的小白 适合需要C/C和lua结合开发的人 本篇需要什么 对Lua语法有简单认知 对C/C语法有简单认知 依赖Lua5.1的环境 依赖VS 2017编辑器 本篇的特色 具有全流程的图文…

springboot中将logback切换为log4j2

前言 springboot默认使用logback作为日志记录框架,常见的日志记录框架有log4j、logback、log4j2。这篇文章我们来学习怎样将logbak替换为log4j2。 一、为什么使用log4j2? 我们在项目中经常使用一个叫SLF4J的依赖,它是做什么的呢? …

Activity的预览窗口StartingWindow添加

Activity的预览窗口StartingWindow添加 1、Activity组件启动2、ActivityStarter.java#startActivityInner() > 主要查看Task.java#startActivityLocked3、ActivityRecord.java#addStartingWindow到WindowManagerService.java#addWindow3.1 ActivityRecord.java#addStartingW…

C/C++开发,libiec61850库学习及运用

目录 一、libiec61850库下载编译 1.1 下载 1.2 linux编译: 1.3 win编译 二、案例编译测试 2.1 CMakeLists.txt调整(server_example_goose) 2.2 模型static_model.h/static_model.cpp生成 2.3 案例编译(server_goose) 2.4 客户端编译 2.5 运行测试 一、libiec61850…

【Python开发】FastAPI 03:请求参数—请求体

除了路径参数和查询参数,还有请求体,其用于传递 JSON、XML 或其他格式的数据,以便服务器能够读取并做出相应的处理,可以说请求体的作用更为强大。试想一下,如果存在七八个参数,路径参数和查询是不是就招架不…

Android播放器拖动进度条的小图预览

Android播放器拖动进度条的小图预览 背景效果图关键代码1. 获取指定位置的视频帧2. 预览图的显示和隐藏 完整代码1. xml布局文件activity_video.xml2. Activity文件VideoActivity.java 背景 我们在使用一些播放器时,拖动进度条会有一个预览框,上一篇博客…

Docker容器 和 Kubernetes容器集群管理系统

一、快速了解Docker 1. 什么是Docker的定义 Docker 是一个开源的应用容器引擎,基于Go语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以…

javaScript 给图片加水印

背景 在很多地方,我们都可以看到,上传图片的时候,图片都会被加上默认的水印,水印的作用主要体现在以下几个方面: 1.版权保护:在商业用途的照片中添加水印可以帮助保护作者的版权,防止他人未经…

IOS复杂震动AHAP文件编辑指南

简介 目前部分游戏会在播放一些特定的音乐音效时,令设备产生贴合音效的复杂震动,给玩家一个更好的游戏体验。这种复杂震动就是通过苹果的CoreHaptics库实现的。 下面是关于CoreHaptics的官方文档 ​​​​​​​Core Haptics | Apple Developer Docum…

C++ Qt项目实战:构建高效的代码管理器

C Qt项目实战:构建高效的代码管理器 一、项目概述(Introduction)1.1 项目背景(Project Background)1.2 项目目标(Project Goals)1.3 项目应用场景(Project Application Scenarios&am…

《操作系统》期末主观题梳理

操作系统简答题 文章目录 操作系统简答题第一章第二章第三章第四章第五章第六章第七章第八章第九章 第一章 在计算机系统上配置OS(operating system, 操作系统)的目标是什么?作用主要表现在哪几个方面? 在计算机系统上配置OS, 主要目标是实现:方便性、有效性、可…
最新文章