基于深度学习的大规模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以写入压缩数据。读取原始文件并写入压缩流。关闭流…...
基于三菱PLC和组态王的恒温控制系统:加热炉温度控制设计-含梯形图程序、接线图原理图及IO分配...
基于三菱PLC和组态王恒温控制系统的设计加热炉温度控制 带解释的梯形图程序,接线图原理图图纸,io分配,组态画面三伏天里给车间加热炉做恒温控制,那酸爽就跟抱着暖气片吃火锅似的。今天咱们来聊聊基于三菱FX3U PLC和组态王的温度控…...
如何解决SQL子查询阻塞问题_锁定机制与优化策略
子查询阻塞SELECT本质是锁等待而非语法慢,常见于REPEATABLE READ下间隙锁、IN子查询未索引或依赖型执行;优化需用EXPLAIN分析执行计划,优先改JOIN、加合适索引并验证。子查询导致 SELECT 被阻塞,本质是锁等待不是子查询语法本身慢…...
视频下载重命名全攻略,VS Code 使用 Chrome DevTools MCP 实现浏览器自动化。
视频下载与重命名方法 手动下载 打开浏览器访问课程平台,找到目标视频《计算机网络技术》。点击下载按钮选择保存路径,等待下载完成。右键点击文件选择“重命名”,输入新名称如“人工智能-03-04_20250920_计算机网络技术.mp4”。 Python自动化…...
告别命令行恐惧:用LLaMA-Factory的Gradio WebUI,像玩积木一样微调你的大模型
告别命令行恐惧:用LLaMA-Factory的Gradio WebUI,像玩积木一样微调你的大模型 当大模型技术从实验室走向产业应用时,一个残酷的现实摆在眼前:90%的潜在使用者被命令行界面挡在门外。那些闪烁着光标的神秘终端窗口,就像一…...
python pyoxidizer
# 关于PyOxidizer的一些思考 最近在Python打包工具领域,有个工具引起了不小的讨论,那就是PyOxidizer。如果你经常需要将Python代码打包成可执行文件,或者部署到没有Python环境的机器上,可能会对这个工具感兴趣。 它到底是什么 PyO…...
分享稳定可靠的TMC5160、TMC5130高性能步进电机驱动代码,支持级联,简单易用,附送原理图
TMC5160、TMC5130高性能步进电机驱动代码 代码都已长时间验证,稳定可靠运行! 图里资料就是到手资料 简介: 德国TMC步进电机驱动代码 送你OrCAD或者AD版本原理图 自己整个重新写的代码,注释详细 支持多个TMC5160级联 调用很简单&a…...
HarmonyOS6 半年磨一剑 - RcSwitch 组件尺寸系统与宽度计算机制深度剖析
文章目录前言一、三档语义化尺寸1.1 预设尺寸与像素映射1.2 数字类型直传二、宽度计算:独立参数与比例推算2.1 switchWidth 优先级2.2 黄金比例 1.82.3 自定义宽度的典型场景三、圆点尺寸计算:switchSpace 的作用3.1 间距参数的意义3.2 三个间距档位的视…...
e1547:让社区浏览体验回归纯粹的定制化浏览器
e1547:让社区浏览体验回归纯粹的定制化浏览器 【免费下载链接】e1547 A sophisticated e621 browser 项目地址: https://gitcode.com/gh_mirrors/e1/e1547 问题引入:当浏览变成筛选的艺术 在内容爆炸的时代,每位用户都渴望看到真正感…...
STEP3-VL-10B私有化部署指南:Apache 2.0许可下的完整教程
STEP3-VL-10B私有化部署指南:Apache 2.0许可下的完整教程 1. 认识STEP3-VL-10B:轻量级多模态模型 STEP3-VL-10B是阶跃星辰开源的一款10B参数量的多模态视觉语言模型。虽然参数规模不算庞大,但在多个专业评测中表现优异,甚至能与…...
在WSL2上搞定PyTorch模型转昇腾OM:我的Atlas 200DK部署踩坑实录
在WSL2上实现PyTorch模型到昇腾OM的高效转换:避坑指南与实战解析 对于希望在Windows环境下完成昇腾模型转换的开发者来说,WSL2提供了一个近乎完美的解决方案。本文将深入探讨如何在这一环境中高效完成从PyTorch到昇腾OM模型的完整转换流程,同…...
