NOMA学习

news2024/12/25 23:57:14

NOMA(非正交多址接入技术)

  • NOMA基本概念
  • 上行NOMA与下行NOMA
    • 上行NOMA(MAC信道)
    • 下行NOMA(BC广播信道)
  • SIC解码顺序
  • 叠加编码(SC)与串行干扰消除(SIC)
    • 叠加编码(superposition code,SC)
    • 串行干扰消除(SIC)

NOMA基本概念

NOMA,全称是Non-Orthgonal Multiple Access,对应中文是非正交多址接入。
基本思想是在发送端采用非正交发送,主动引入干扰信息,在接收端通过串行干扰消除(SIC)接收机实现正确解调。
NOMA是非正交多址,而并非非正交频分,即NOMA的子信道传输仍然采用OFDM,子信道之间是正交的。但是一个子信道上不再只分配给一个用户,而是多个用户共享,同一子信道上不同用户之间是非正交传输。
在发送端,对同一子信道上的不同用户采用功率复用技术进行发送,不同用户的信号功率按照相关的算法进行分配,这样到达接受端每个用户的信号功率都不一样,SIC接收机再根据不同用户信号功率大小按照一定的顺序进行干扰消除,实现正确解调,同时也达到了区分用户的目的。

上行NOMA与下行NOMA

上行NOMA(MAC信道)

特点:多点发送、单点接收,单用户功率受限,同时发送的用户数越多则总功率越高,发送端难以联合处理而接收端可以联合处理。

下行NOMA(BC广播信道)

特点:单点发送、多点接收,总发送功率受限,发送端可以联合处理而接收端难以联合处理。
对于信道质量差即信道增益低的用户,给之分配更高的功率,反之,分配更低的功率。这便引出了功率分配问题。
可行的优化目标:

  • 总功率受限,最大化下行速率

SIC解码顺序

下行NOMA中,基站将不同用户的信号叠加在一起,UE来实现连续干扰消除技术;而在上行中,基站来实现多用户检测和连续干扰消除技术。
NOMA下行场景中,基站侧将用户1和2的信号叠加在一起,即

对于User1,接收信号y1=h1x+n1,对于User2,接收信号y2=h2x+n2。
弱用户User1直接解出自己的信号即可,此时将User2的信号当做干扰。
强用户User2先解出User1的信号,然后User2从其接收信号中减去User1的信号,再解自己的信号。
由于基站进行功率分配时,需要用到下行信道状态信息h1和h2,那基站是怎么知道下行CSI的?可以利用信道互易性或者UE利用上行信道进行反馈。

NOMA上行场景中,基站侧解码顺序:
基站先解码出强用户User2的信号,然后从接收信号减去恢复出来的强用户的信号,之后再解弱用户User1的信号。
UE侧的处理能力有限,且缺少中心处理单元,因此上行链路相较于下行链路中更容易实现。

叠加编码(SC)与串行干扰消除(SIC)

叠加编码(superposition code,SC)

基站侧将不同用户信号进行叠加:
手机侧进行解码:
对于User1来说,收到叠加信号时,先进行均衡(即通过信道估计出h1,并对接收信号乘以h1的逆),然后直接解调出自己信号即可。
对于User2来说,收到叠加信号时,先进行均衡(即通过信道估计出h2,并对接收信号乘以h2的逆),先解调出User1的信号,随后重构出User1的信号,再从接收信号减去重构的User1信号,然后解调出User2的信号。

下面这段代码,是下行NOMA中,User1和User2在总功率约束的情况下,进行功率分配的过程。

  % Calculate Power coefficients for each pair
    txParams.powerCoeffs = zeros(txParams.numUsers, 1);
    
    if (txParams.pwrAllocMthd == 1)
        for iter_pairs = 1: txParams.numUsers / 2
            txParams.powerCoeffs(txParams.userPairs(iter_pairs, 1), 1) = (sqrt(1 + txParams.sysPower * abs(txParams.est_CSI(txParams.userPairs(iter_pairs, 2), 1)) .^ 2) - 1) / (txParams.sysPower * abs(txParams.est_CSI(txParams.userPairs(iter_pairs, 2), 1)));
            txParams.powerCoeffs(txParams.userPairs(iter_pairs, 2), 1) = txParams.sysPower - txParams.powerCoeffs(txParams.userPairs(iter_pairs, 1), 1);
        end
    elseif (txParams.pwrAllocMthd == 2)
        for iter_pairs = 1: txParams.numUsers / 2
            txParams.powerCoeffs(txParams.userPairs(iter_pairs, 1), 1) = (sqrt(1 + txParams.sysPower * abs(txParams.est_CSI(txParams.userPairs(iter_pairs, 2), 1)) .^ 2) - 1) / (txParams.sysPower * abs(txParams.est_CSI(txParams.userPairs(iter_pairs, 2), 1)));
            txParams.powerCoeffs(txParams.userPairs(iter_pairs, 2), 1) = txParams.sysPower - txParams.powerCoeffs(txParams.userPairs(iter_pairs, 1), 1);
        end        
    end

接下来是叠加编码:

   %%%%%%叠加编码 superposition code
    for iter_pairs = 1: txParams.numUsers / 2
        modDataMat(iter_pairs, :) = sqrt(txParams.powerCoeffs(txParams.userPairs(iter_pairs, 1), 1)) * modData(:, txParams.userPairs(iter_pairs, 1));
        modDataMat(iter_pairs, :) = modDataMat(iter_pairs, :) + sqrt(txParams.powerCoeffs(txParams.userPairs(iter_pairs, 2), 1)) * modData(:, txParams.userPairs(iter_pairs, 2))';
    end

对于接受端:

 % SIC
    for iter_pairs = 1: txParams.numUsers / 2
        pair_data = modDataMat(iter_pairs, :)';
        for iter_user = 1: 2
            H = txParams.CSI(txParams.userPairs(iter_pairs, iter_user));
            H_hat = txParams.est_CSI(txParams.userPairs(iter_pairs, iter_user));
            
            pair_data = H * pair_data; % Adding Channel effect
            pair_data = pair_data / H_hat; % Equalising Channel effect
            for iter_sic = 1: iter_user
                P = txParams.powerCoeffs(txParams.userPairs(iter_pairs, iter_sic), 1);
                %%%%解调、信道译码 -> 信道质量好的强用户
                demodData = qamdemod(pair_data ./ sqrt(P), txParams.QAM, 'UnitAveragePower', 1, 'OutputType', 'approxllr');
                usr_data = channelDecoding(demodData, txParams);
                
                %%%%信道编码、调制 -> 重构强用户的信号
                enc_data = channelEncoding(usr_data, txParams);
                modData = qammod(enc_data, txParams.QAM, 'UnitAveragePower', 1, 'InputType', 'bit');
                
                %%%%接收信号-强用户信号 == 弱用户信号,准备解调
                pair_data = pair_data - H_hat * sqrt(P) * modData;
            end
            data(:, txParams.userPairs(iter_pairs, iter_user)) = usr_data;
        end
    end

串行干扰消除(SIC)

待补充

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

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

相关文章

TypeScript类型守卫

概念 在语句的块级作用域【if语句内或条目运算符表达式内】缩小变量类型的一种类型推断的行为。 类型守卫可以帮助我们在块级作用域中获得更为需要的精确变量类型,从而减少不必要的类型断言。 类型判断:typeof实例判断:instanceof字面量相等…

手写Spring:第1章-开篇介绍,手写Spring

文章目录 一、手写Spring二、Spring 生命周期 一、手写Spring 💡 目标:我们该对 Spring 学到什么程度?又该怎么学习呢? 手写简化版 Spring 框架,了解 Spring 核心原理,为后续再深入学习 Spring 打下基础。在…

QMS系统在质量管理中的作用

一、QMS系统的定义: 质量管理体系(QMS)系统是一套用于规范和管理企业质量活动的框架和工具。它包括一系列互相关联的流程、程序和记录,旨在确保产品和服务符合质量要求、法规要求和客户期望,并持续改进质量绩效。 二、…

如何准确高效的对电商数据进行分析

体量庞大的电商数据,采集完成后应对数据进行合理利用,才能将采集到的数据数据物尽其用,这里说的利用数据,包含对数据的价格比较,或者分析使用,比较价格可输出低价分析报告,在品牌控价治理环节发…

关系型数据库和非关系型数据库

关系型数据库是以关系(表格)为基础的数据库,它采用了 SQL(Structured Query Language)作为数据操作语言,常见的关系型数据库包括 MySQL、Oracle、SQL Server 等。 非关系型数据库则是基于文档、键值、列族…

第4章 内核模块实验(iTOP-RK3568开发板驱动开发指南 )

在上一章节我们编写了最简单的helloworld驱动程序。有了驱动程序以后,要如何编译并使用驱动呢。编译驱动有俩种方法,分别是将驱动编译成内核和将驱动编译成内核模块。我们先来学习如何将驱动编译成内核模块、 4.1 设置交叉编译器 1 下载网盘资料下的交…

2023年9月软考高级信息系统项目管理师认证报名找弘博创新

信息系统项目管理师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职称资…

更改注册表exe值后的惨痛经历

装软件时由于执行性文件打不开,搜索教程更改了exefile的值,最后整个电脑崩了,所有EXE都打不开,折腾了5个小时,什么办法都试了,甚至重置电脑都不让,打算拿电脑城修电脑了,突然搜到了一…

文件上传之图片马混淆绕过与条件竞争

一、图片马混淆绕过 1.上传gif imagecreatefromxxxx函数把图片内容打散,,但是不会影响图片正常显示 $is_upload false; $msg null; if (isset($_POST[submit])){// 获得上传文件的基本信息,文件名,类型,大小&…

C++ continue 语句

C 中的 continue 语句有点像 break 语句。但它不是强迫终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。 对于 for 循环,continue 语句会导致执行条件测试和循环增量部分。对于 while 和 do…while 循环,continue 语句…

MySQL聚簇索引与非聚簇索引

分析&回答 当数据库一条记录里包含多个字段时,一棵B树就只能存储主键,如果检索的是非主键字段,则主键索引失去作用,变成顺序查找了。这时应该在第二个要检索的列上建立第二套索引。这个索引由独立的B树来组织。有两种常见的方…

Redis优化 RDB AOF持久化

---------------------- Redis 高可用 ---------------------------------------- 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境…

图文版:以太网二层接口类型(含配套习题)

常见的以太网二层接口类型包括以下三种: 一、Access接口 access链路类型端口,一种交换机的主干道模式,2台交换机的2个端口之间是否能够建立干道连接,取决于这2个端口模式的组合。 Access端口在收到以太网帧后打开VLAN标签&#…

祝贺埃文科技入选河南省工业企业数据安全技术支撑单位

近日,河南省工业信息安全产业发展联盟公布了河南省工业信息安全应急服务支撑单位和河南省工业企业数据安全技术支撑单位遴选结果,最终评选出19家单位作为第一届河南省工业信息安全应急服务支撑单位和河南省工业企业数据安全技术支撑单位。 埃文科技凭借自身技术优势…

网络课程学习

计算机网络概述 计算机网络定义 一组自治计算机互联的集合 计算机网络基本功能 资源共享 综合信息服务 分布式处理与负载均衡 计算机网络的类型 局域网 LAN:由用户自行建设,使用私有地址组建的内部网络 城域网 MAN:由运营商或大规模…

得心应手应对 OOM 的疑难杂症

Java全能学习面试指南:https://www.javaxiaobear.cn/ 前面我们提到,类的初始化发生在类加载阶段,那对象都有哪些创建方式呢?除了我们常用的 new,还有下面这些方式: 使用 Class 的 newInstance 方法。使用…

ssprompt:一个LLM Prompt分发管理工具

阅读顺序 🌟前言🔔ssprompt介绍命令介绍Metafile介绍版本依赖规则 🌊 PromptHubGitHub Token 🚀 Quick Install系统依赖pip安装Linux, macOS, Windows (WSL)Windows (Powershell) 🚩 Roadmap🌏 项目交流讨论…

智汇云舟出席全球制造业峰会并作主题分享

9月1日-5日,由中华人民共和国商务部、中华人民共和国国家发展和改革委员会、中华人民共和国科学技术部、中国国际贸易促进委员会、辽宁省人民政府共同主办的全球制造业峰会暨第二十一届中国(沈阳)国际装备制造业博览会在沈阳国际会展中心召开…

身份证二要素核验-实名认证API:数据隐私的守护先锋

前言 在当今数字化世界中,数据隐私和安全问题变得尤为重要。随着互联网的普及,个人信息的泄露已经成为潜在的威胁。为了应对这一挑战,身份证二要素核验-实名认证API成为了数据隐私的守护先锋,提供了一种强大的工具来确保个人信息…

前端面试的话术集锦第 8 篇:高频考点(JS性能优化 性能优化琐碎事)

这是记录前端面试的话术集锦第八篇博文——高频考点(JS性能优化 & 性能优化琐碎事),我会不断更新该博文。❗❗❗ 1. 从V8中看JS性能优化 注意:该知识点属于性能优化领域。 1.1 测试性能⼯具 Chrome已经提供了⼀个⼤⽽全的性能测试⼯具Audits。 点我们点击Audits后,可…