2020-12-30

1.Distributed Deep Convolutional Compression for Massive MIMO CSI Feedback

摘要

大规模多输入多输出(MIMO)系统需要基站(BS)的下行链路信道状态信息(CSI),以实现空间分集和多路复用增益。在频分双工(FDD)多用户大规模MIMO网络中,每个用户都需要压缩其下行链路CSI并将其反馈给BS。 CSI开销随天线,用户和子载波的数量而扩展,并成为整个频谱效率的主要瓶颈。在本文中,我们提出了一种基于深度学习(CSI)的CSI压缩方案,称为DeepCMC,该方案由卷积层,量化和熵编码块组成。与以前的基于DL的CSI缩减结构相比,DeepCMC提出了一种新颖的全卷积神经网络(NN)体系结构,在解码器处具有残差层,并将量化和熵编码块纳入其设计。 DeepCMC经过培训,可以最大程度地减少加权的额定认证成本,这可以在CSI质量与其反馈开销之间进行权衡。仿真结果表明,对于相同的压缩率,DeepCMC在CSI的重建质量方面要优于最新的CSI压缩方案。我们还针对多用户MIMO方案提出了DeepCMC的分布式版本,以分布式方式对多个用户的CSI进行编码和重构。分布式DeepCMC不仅利用单个MIMO用户的固有CSI结构进行压缩,而且还受益于附近用户的信道矩阵之间的相关性,从而与DeepCMC相比进一步提高了性能。我们还为分布式DeepCMC提出了一种降低复杂度的训练方法,允许将其扩展到多个用户,并提出了一种基于集群的分布式DeepCMC方法进行实际实施。

系统模型

在这里插入图片描述

DEEPCMC结构

在这里插入图片描述

介绍

其中两个通道输入代表通道矩阵的实部和虚部。用户将其CSI压缩为可变长度的比特流。该编码器包括一个基于CNN的特征编码器,一个统一的逐元素标量量化器和一个熵编码器。特征编码器从CSI矩阵中提取关键特征,以获得较低维的表示形式,然后通过应用标量量化将其转换为离散值矢量。尽管先前的工作只是将特征向量的32位标量量化版本作为CSI反馈发送[13],[14],[16],但我们已经观察到自动编码器结构不会产生均匀分布的特征值,因此,可以进一步压缩。为了进一步减少所需的反馈,我们采用了熵编码器;特别是,我们使用上下文自适应二进制算术编码(CABAC)技术[29],该技术输出可变长度的比特流。接收到此带有CSI的比特流后,BS首先由熵解码器对其进行处理,以再现CSI反馈的低维表示,然后由我们提出的特征解码器用于重建信道增益矩阵。
feature encoder

描绘了我们在DeepCMC中为特征编码器和解码器提出的CNN架构,其中“ Conv | 256 | 9×9 | ↓4 | BN | PReLU”表示具有256个内核的卷积层,每个内核的大小为9×9,然后以4的因子下采样,进行批归一化和参数化整流线性单位(PReLU)激活。特征编码器由三个卷积层组成,其中第一层使用大小为9×9的内核,其他两个使用大小为5×5的内核。使用“ SAME”填充技术,以便每个卷积层的输入和输出具有相同的大小(通道数不同)。令M = ff-en(H,θen),其中ff-表示用户处的特征编码器,Θ表示其参数向量。 M由256个大小为Nt 16×Nc 16的​​特征图组成。请注意,这种完全卷积的体系结构使我们可以将相同的编码器网络用于任意数量的发射天线和子载波,而特征矢量的大小取决于输入大小,这允许我们使用信道维度来缩放CSI反馈量。
在这里插入图片描述

feature decoder
BS处的特征解码器执行相应的逆运算,该逆运算由卷积层和上采样层组成。在BS处,熵解码器的输出被馈送到特征解码器中以重建信道增益矩阵。与特征编码器类似,解码器包括三层卷积(与编码器具有相同的内核大小)和上采样(与编码器的下采样操作相反)。解码器体系结构还包括两个带有快捷连接的残差块,它们在图1中用+表示逐个元素的加法跳过了几层。该结构通过防止沿着堆叠的非线性层消失梯度来简化网络的训练[30]。为此,残差块的输入和输出必须具有相同的大小。每个残差块包括两个卷积层(使用批处理范数进行归一化),并使用PReLU作为激活函数。受[31]的启发,我们还使用相同的快捷方式连接残差块的输入和输出,从而提高了实验所揭示的性能。 LetbH = ff-de(c M,Θde)表示联合解码器的输出,由Θde参数化,c M表示由熵解码器提供的M的估计值。bH表示在BS处的重建CSI矩阵。
在这里插入图片描述

2.Sparsity Learning-based CSI Feedback for FDD Massive MIMO Systems

摘要

在频分双工模式下,需要在基站通过终端的反馈来获取准确的信道状态信息(CSI)。然而,由大型阵列产生的昂贵的反馈开销对传统的反馈方案提出了艰巨的挑战。在这封信中,我们提出了一种用于大规模MIMO系统的压缩感知框架中的基于稀疏学习的CSI反馈方法。关键见解是通过递归最小二乘算法学习CSI的稀疏结构,并处理稀疏基础的连续更新。因此,构造了CSI稀疏特征自适应字典。仿真结果表明,该方案在压缩效率和恢复精度两方面均具有优异的性能。

系统模型

结构

基于稀疏学习的CSI反馈方案示意图

2 Exploiting Correlation with Wideband CQI and Making Differential Feedback Overhead Flexible in 4G/5G OFDM Systems

2.基于多任务联邦学习的协作MIMO-NOMA接收机设计(审稿文章)

### 回答1: 可以使用Python中的pandas库将时间序列数据存储到DataFrame中,然后使用pandas的to_excel()方法将其输出到Excel文件中。 首先,需要使用pandas中的date_range()函数生成时间索引,确定时间范围从2018-01-01 08:00:00到2020-12-30 00:00:00,每小时取一个值。 其次,使用pandas中的DataFrame()函数创建一个新的DataFrame并将时间索引设置为刚才生成的时间索引。 最后,使用DataFrame的to_excel()方法将其输出到Excel文件中。 代码示例如下: ``` python import pandas as pd # 生成时间索引 time_index = pd.date_range('2018-01-01 08:00:00', '2020-12-30 00:00:00', freq='H') # 创建新的DataFrame并将时间索引设置为刚才生成的时间索引 df = pd.DataFrame(index=time_index) # 输出到Excel文件 df.to_excel('output.xlsx') ``` ### 回答2: 首先,我们需要计算从2018年1月1日08:00:00到20201230日00:00:00的总小时数。我们可以使用日期时间函数来完成这个计算。 首先,计算起始日期和结束日期之间的总天数。起始日期是2018年1月1日08:00:00,结束日期是20201230日00:00:00。计算这两个日期之间的天数,可以使用以下公式: =end_date - start_date + 1 其中,"+1"是因为起始日期所占的一天也要计算在内。 接下来,计算总小时数。因为每天有24小时,所以总小时数等于总天数乘以24。公式如下: total_hours = total_days * 24 现在我们知道了从起始日期到结束日期的总小时数,我们可以使用循环来逐小时生成日期时间,并将其写入Excel文件。我们可以使用Python中的openpyxl库来实现这个功能。 首先,导入必要的库: import openpyxl from datetime import datetime, timedelta 然后,创建一个新的Excel工作簿: workbook = openpyxl.Workbook() sheet = workbook.active 接下来,设置起始日期和结束日期: start_date = datetime(2018, 1, 1, 8, 0, 0) end_date = datetime(2020, 12, 30, 0, 0, 0) 然后,用循环生成连续的日期时间,并将其写入Excel文件: current_date = start_date for i in range(total_hours): sheet.cell(row=i+1, column=1).value = current_date current_date += timedelta(hours=1) 最后,保存Excel文件: workbook.save('output.xlsx') 以上就是将2018年1月1日08:00:00到20201230日00:00:00的连续时间每小时取一个值,并输出为Excel文件的步骤。 ### 回答3: 要将2018-01-01 08:00:00到2020-12-30 00:00:00这个时间范围内每小时连续取一个值,并输出到Excel文件中,可以使用Python编程语言中的pandas和openpyxl库来实现。 首先,我们需要导入所需的库: ```python import pandas as pd from openpyxl import Workbook ``` 接下来,我们可以创建一个日期范围,从2018-01-01 08:00:00到2020-12-30 00:00:00,每小时的频率,并将其存储在一个DataFrame中: ```python start_date = pd.Timestamp('2018-01-01 08:00:00') end_date = pd.Timestamp('2020-12-30 00:00:00') date_range = pd.date_range(start=start_date, end=end_date, freq='1H') df = pd.DataFrame(date_range, columns=['Timestamp']) ``` 然后,我们可以向DataFrame中添加其他需要的列,例如年、月、日和小时: ```python df['Year'] = df['Timestamp'].dt.year df['Month'] = df['Timestamp'].dt.month df['Day'] = df['Timestamp'].dt.day df['Hour'] = df['Timestamp'].dt.hour ``` 最后,我们可以使用openpyxl库将DataFrame保存到Excel文件中: ```python output_file = 'output.xlsx' with pd.ExcelWriter(output_file, engine='openpyxl') as writer: df.to_excel(writer, index=False) ``` 完整的代码如下: ```python import pandas as pd from openpyxl import Workbook start_date = pd.Timestamp('2018-01-01 08:00:00') end_date = pd.Timestamp('2020-12-30 00:00:00') date_range = pd.date_range(start=start_date, end=end_date, freq='1H') df = pd.DataFrame(date_range, columns=['Timestamp']) df['Year'] = df['Timestamp'].dt.year df['Month'] = df['Timestamp'].dt.month df['Day'] = df['Timestamp'].dt.day df['Hour'] = df['Timestamp'].dt.hour output_file = 'output.xlsx' with pd.ExcelWriter(output_file, engine='openpyxl') as writer: df.to_excel(writer, index=False) ``` 运行这段代码将生成一个名为output.xlsx的Excel文件,其中包含从2018-01-01 08:00:00到2020-12-30 00:00:00每小时连续取一个值的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值