基于深度学习的大规模MIMO信道状态信息反馈
MIMO系统
MIMO系统利用多个天线在发送端和接收端之间建立多条独立的信道,从而使得同一时间可以传输多个数据流,从而使得同一之间可以传输多个数据流,提高数据传输速率。

优势
增加传输速率和容量,提高信号覆盖范围和抗干扰能力,增加频谱利用率。
MIMO需要解决的问题
- 依赖于精确的信道状态信息(CSI)
- 下行链路CSI在训练期间从用户处获得并通过反馈链路返回给基站
- 系统中有许多天线,反馈信道矩阵会很大并且因此会导致过量的开销

- FDD的低互换性:(1)各个信道使用不同的频率(2)每个频率信道需要专门设计硬件来调制和解调,各个信道的设备不能互换使用
- 基站需要知道下行链路的信道状态信息,依赖于用户根据基站发送的导频信号(CSI-RS)进行信道估计,然后将估计的信道状态信息通过反馈链路发送给基站。然而反馈信道矩阵会很大导致过量的开销,需要找到一种方法来减少反馈链路的反馈数据。
系统模型
考虑一个天线的用户的基站的FDD大规模MIMO系统。在这个系统中,采用 N c N_c Nc个子载波的OFDM。因此,第n个载波的用户的下行信号为:
y n = h n ∼ H v n x n + z n y_n = h_n \sim^H v_n x_n + z_n yn=hn∼Hvnxn+zn
其中 h ~ n ∈ C N t × 1 \tilde{h}_n \in \mathbb{C}^{N_t \times 1} h~n∈CNt×1是信道频率响应向量, V n ∈ C N t × 1 V_n \in \mathbb{C}^{N_t \times 1} Vn∈CNt×1是预编码向量, x n x_n xn是发射符号, z n z_n zn是加性噪声和干扰, ( ) H ()^H ()H表示共轭转置。
假设基站配备有均匀线性阵列,响应向量为:
a ( ϕ ) = [ 1 , e − j 2 π d λ sin ϕ , … , e − j 2 π d λ ( N t − 1 ) sin ϕ ] \mathbf{a}(\phi) = \left[1, e^{-j \frac{2\pi d}{\lambda} \sin \phi}, \ldots, e^{-j \frac{2\pi d}{\lambda} (N_t - 1) \sin \phi} \right] a(ϕ)=[1,e−jλ2πdsinϕ,…,e−jλ2πd(Nt−1)sinϕ]
其中 ϕ \phi ϕ是出发角, d d d是相邻天线的距离, λ \lambda λ是载波波长,信道可以表示为:
h ~ n = N t L ∑ l = 1 L α l e − j 2 π τ l f s n N c a ( ϕ ) \tilde{h}_n = \sqrt{\frac{N_t}{L}} \sum_{l=1}^{L} \alpha_l e^{-j 2 \pi \tau_l f_s \frac{n}{N_c}} \mathbf{a}(\phi) h~n=LNtl=1∑Lαle−j2πτlfsNcna(ϕ)
其中, L L L是下行多路径的数量, a l a_l al代表传播增益, τ l \tau_l τl表示响应的延迟, f s f_s fs是抽样频率,在空间频率整个CSI矩阵可以表示为:
H ~ = [ h ~ 1 , h ~ 2 , … , h ~ N c ] H ∈ C N c × N t . \mathbf{\tilde{H}} = [\tilde{\mathbf{h}}_1, \tilde{\mathbf{h}}_2, \ldots, \tilde{\mathbf{h}}_{N_c}]^H \in \mathbb{C}^{N_c \times N_t}. H~=[h~1,h~2,…,h~Nc]H∈CNc×Nt.
通过导频训练获得CSI
下行信道一般将CSI-RS序列当做导频序列
导频训练的基本原理
- 发送导频信号:发送端发送已知的导频信号序列。这些导频信号可以是特定的符号或序列,它们在发送端和接收端都是已知的。
- 接收导频信号:接收端接收到通过信道传输后的导频信号。由于信道的影响,接收端的导频信号会包含信道的增益和相位变化。
- 信道估计:接收端利用已知的导频和接收到的导频符号,通过比较和计算,估计出信道的特性,即CSI
导频训练过程

基于深度学习的CSI反馈
传统方法
采用压缩感知技术(CS):LASSO l1-solver、TVAL3等
存在缺点:
- 严重依赖于信道是稀疏的假设
- 迭代重建方法有很大的复杂性并因此会消耗大量的计算资源


CsiNet方法
使用深度学习方法构建CsiNet。包括CSI感知(编码器)和恢复网络(解码器)两个部分
- 编码器:CsiNet通过训练数据从原始的信道矩阵中学习转换来压缩表示(码字)
- 解码器:CsiNet学习将码字转换成原始信道
- 优点:相比于传统压缩感知能以更好的恢复质量来恢复CSI,在高压缩率下保持良好性能

相关论文
论文1

- 2018 IEEE Wireless Communications Letters
- 首次将深度学习引入CSI反馈领域
- 提出CSiNet模型
论文2

- 2020,IEEE Transactions on Wireless Communications
- 对2018年模型进行了改进
- 提出CSiNet+模型
论文3

- 2021,IEEE Wireless Communications Letters
- 对2020年模型进行了改进
- 提出CSiNet+DNN模型
之后的各种基于深度学习的CSI反馈基本上是这些模型架构的变体,都是编码器和解码器,包含卷积网络,全连接网络和各种其他网络。
系统预设

CSI反馈机制

网络设计
下面三个深度学习网络为三篇论文中的CSI反馈网络
CsiNet

编码器

解码器

CsiNet+

CsiNet+DNN

训练策略

CsiNet+DNN仿真场景设置

不同方法比较
重构准确性比较

方法复杂度分析

CsiNet+DNN复现及优化
数据集介绍
相关文章:
基于深度学习的大规模MIMO信道状态信息反馈
MIMO系统 MIMO系统利用多个天线在发送端和接收端之间建立多条独立的信道,从而使得同一时间可以传输多个数据流,从而使得同一之间可以传输多个数据流,提高数据传输速率。 优势 增加传输速率和容量,提高信号覆盖范围和抗干扰能力…...
在Docker中部署Rasa NLU服务
最近因为项目需要将rasa nlu配置到docker容器中供系统调用,本篇主要整理该服务的docker配置过程。 本篇的重点在于docker的使用,不在Rasa NLU。 系统环境:Ubuntu 18.04.6 1. Rasa介绍 Rasa是一个开源的机器学习框架,专为构建基于文…...
SQL语句创建数据库(增删查改)
SQL语句 一.数据库的基础1.1 什么是数据库1.2 基本使用1.2.1 连接服务器1.2.2 使用案例 1.2 SQL分类 二.库的操作2.1 创建数据库2.2 创建数据库示例2.3 字符集和校验规则2.3.1 查看系统默认字符集以及校验规则2.3.2查看数据库支持的字符集2.3.3查看数据库支持的字符集校验规则2…...
微信小程序-Vant组件库的使用
一. 在app.json里面删除style:v2 为了避免使用Vant组件库和微信小程序组件样式的相互影响 二.在app.json里面usingComponents注册Vant组件库的自定义组件 "usingComponents": {"van-icon": "./miniprogram_npm/vant-weapp/icon/index&qu…...
为什么企业需要进行能源体系认证?
通过能源体系认证,企业可以向公众和利益相关方展示其在节能减排方面的承诺和成就。这不仅提升了企业的社会责任形象,还增强了品牌的信誉度。在当今消费者更加关注环境问题的背景下,绿色企业形象有助于赢得市场和客户的认可与信任。 能源体系认…...
【日常记录-MySQL】EVENT
Author:赵志乾 Date:2024-08-07 Declaration:All Right Reserved!!! 1. 简介 在MySQL中,EVENT是一种数据库对象,其用于设定数据库任务自动执行。这些任务可以是任意有效的SQL语句&a…...
嵌入式学习day12(LinuxC高级)
由于C高级部分比较零碎,各部分之间没有联系,所以学起来比较累,多练习就好了 一丶Linux起源 寻科普|第二期:聊聊Linux的前世今生 UNIX和linux的区别: (1)linux是开发源代码的自由软件.而unix是…...
pytorch中的hook机制register_forward_hook
上篇文章主要介绍了hook钩子函数的大致使用流程,本篇文章主要介绍pytorch中的hook机制register_forward_hook,手动在forward之前注册hook,hook在forward执行以后被自动执行。 1、hook背景 Hook被成为钩子机制,pytorch中包含forwa…...
使用Gin框架返回JSON、XML和HTML数据
简介 Gin是一个高性能的Go语言Web框架,它不仅提供了简洁的API,还支持快速的路由和中间件处理。在Web开发中,返回JSON、XML和HTML数据是非常常见的需求。本文将介绍如何使用Gin框架来返回这三种类型的数据。 环境准备 在开始之前࿰…...
网工内推 | 国企运维工程师,华为认证优先,最高年薪20w
01 上海陆家嘴物业管理有限公司 🔷招聘岗位:IT运维工程师 🔷岗位职责: 1、负责对公司软、硬件系统、周边设备、桌面系统、服务器、网络基础环境运行维护、故障排除。 2、负责对各部门软件操作、网络安全进行检查、指导。 3、负责…...
c# 使用异步函数实现线程的功能
c#程序执行时 想要拖动窗口 需要使用线程,但是使用线程 对操作前端窗体很不友好. 所以写了一个异步函数,网上搜了一下,貌似异步函数比线程 更加友好,更加现代 做这个功能的原因是 主要是想等程序执行完 走一个提示.用线程很难做到 using System; using System.Threading; usi…...
MySQL之MySQL server has gone away复现测试
测试MySQL server has gone away复现条件 环境情形一报错信息复现测试 情形二报错信息复现测试 环境 Python: 3.8/3.9 MySQL: 5.x 情形一 报错信息 File "/usr/local/lib/python3.6/dist-packages/MySQLdb/cursors.py", line 319, in _querydb.query(q)File "/…...
编程深水区之并发④:Web多线程
Node的灵感来源于Chrome,更是移植了V8引擎。在Node中能够实现的多线程,在Web环境中自然也可以。 一、浏览器是多进程和多线程的复杂应用 在本系列的第二章节,有提到现代浏览器是一个多进程和多线程的复杂应用。浏览器主进程统管全局…...
【实战指南】从提升AI知识库效果,从PDF转Markdown开始
经常有人抱怨AI知识库精确度不够、答非所问。我有时候想想,会觉得其实AI也挺冤的,因为很有可能不是它能力不行,而是你一开始给的文档就有问题,导致它提取文本有错误、不完整,那后边一连串的检索、生成怎么可能好呢&…...
Android 删除telephony的features
比如删除android.hardware.telephony.subscription 找到这个文件:frameworks/native/data/etc/android.hardware.telephony.subscription.xml <!-- This is the standard set of features for devices to support Telephony Subscription API. --> -<perm…...
Linux驱动开发—编写第一个最简单的驱动模块
文章目录 开发驱动准备工作1.正常运行的Linux系统的开发板2.内核源码树3.nfs挂载的rootfs4.得心趁手的IDE 第一个Hello world 驱动程序常见模块的操作命令模块的初始化和清理模块的版本信息模块中的各种宏 示例Hello World代码printk函数解析 使用MakeFile编译驱动模块使用insm…...
科普文:微服务之Spring Cloud 组件API网关Gateway
API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响…...
Kubernetes中的CRI、CNI与CSI:深入理解云原生存储、网络与容器运行时
引言 随着云原生技术的飞速发展,Kubernetes(简称K8s)作为云原生应用的核心调度平台,其重要性日益凸显。K8s通过开放一系列接口,实现了高度的可扩展性和灵活性,其中CRI(Container Runtime Inter…...
【数据结构】二叉搜索树(Java + 链表实现)
Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:数据结构、LeetCode专栏 📚本系…...
java Brotli压缩算法实现压缩、解压缩
在Java中实现Brotli压缩和解压缩,你可以使用org.brotlienc和org.brotlidec包中的类。以下是压缩和解压缩的基本步骤和示例代码: 压缩文件 创建FileInputStream以读取原始文件。创建BrotliOutputStream以写入压缩数据。读取原始文件并写入压缩流。关闭流…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
算法笔记2
1.字符串拼接最好用StringBuilder,不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...
【生成模型】视频生成论文调研
工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...
