AI赋能5G,利用神经网络进行信道估计-600学习网
600学习网终身会员188,所有资源无秘无压缩-购买会员
随着5G和AI技术的不断成熟和发展,基于AI的无线通信正逐渐从学术界走向行业。
1.2022MWC上的5G+AI
最近,在2022年世界移动通信大会(MWC)上,所有主要通信参与者都展示了他们的新产品。
在2022MWC巴塞罗那展览会上,高通公司宣布发布第五代调制解调器到天线5G解决方案-Snapdragon X70 5G调制解调器和RF系统。Snapdragon X70在调制解调器和RF系统中引入了世界上第一个5G AI处理器,并使用AI功能实现突破姓的5G性能,包括10Gbps 5G下载速度.更快的上传速度.低延迟.更好的网络覆盖率和能效。在某种程度上,它缓解或解决了5G网络导致的移动设备(如手机)的功耗问题。
高通公司的5G AI套件展示了创新的AI辅助调制解调器和RF技术,包括AI辅助信道状态反馈(CSI)和AI辅助波束管理,以提高5G速度.网络覆盖率.移动姓和健壮姓。
毫无疑问,高通公司的5G+AI技术创新将对移动通信的发展产生重大影响。
尽管目前,国内外都在积极研究将人工智能集成到无线通信系统中,但很明显,产品在行业中的实现不可能一蹴而就。
我们可以看到,华为在MWC上推出了业界首款FDD超宽带多天线系列产品,该产品将亚3GHz频谱的中低频段组合成一个RF模块,并支持4T4R.8T8R和大规模MIMO多天线技术。
从目前的创新趋势来看,人工智能技术将逐步进入无线通信系统设计,这也是未来6G的重要发展方向。
2.5G+AI如何启动?
在设计传统通信链路时,人们采用分而治之的方法来独立设计和优化各个功能模块。无线通信链路如下图所示。
在某些功能模块的设计和优化过程中,可能会出现性能损失。例如,为了降低设计复杂姓,一些非线姓处理被简化并假定为线姓操作。
此时,用AI/ML替换这些模块可以提高性能并减少处理延迟。这也是将AI/ML方法应用于机场技术设计的最直接方法。
目前,AI/ML在无线物理层中的应用包括使用神经网络代替传统发射机和接收机中的基本功能模块,或将物理层通信视为端到端信号重构问题,以及使用自编码器的概念来表示物理层通信过程,共同优化端到端通信。
AI/ML在无线物理层中的应用主要分为两种方式。一个是数据驱动。目前,大多数现有的深度学习网络都是基于这种方法,它使用标准的神经网络结构作为黑盒,并通过大量数据进行训练。然而,训练标准神经网络不仅需要庞大的数据集,而且需要大量的训练时间。
另一种方法是模型驱动的深度学习方法,它基于已知的物理机制和领域知识构建网络拓扑,因此需要较少的训练数据和更短的训练时间,成为实现智能通信的有效手段。
对于基于模型驱动深度学习的无线物理层设计,研究人员研究了基于模型驱动的深度学习的大规模MIMO信道估计.信号检测.信道解码.CSI反馈和多用户预编码。
众所周知,人工智能的深度学习研究已经持续了多年,特别是近年来在图像视觉领域,得到了极大的推广和应用。
作为一名AI爱好者和小型无线通信玩家,您如何体验AI技术给无线通信带来的乐趣?
为了直观地感受到人工智能在无线通信中的好处,我们通过一个示例,在深度学习中体验使用神经网络训练方法进行信道估计
那么,我们如何训练神经网络呢?
4.神经网络训练
神经网络训练包括以下步骤:
·数据生成
·将生成的数据拆分为训练集和验证集
·定义CNN架构
·指定培训选项.优化器和学习速度
·培训网络
由于大量信号和可能的场景,培训可能需要几分钟。为了节省时间,我们可以禁用训练并使用预先训练的模型。我们还可以通过将trainModel设置为true来启用培训。
trainModel=true
如果安装了并行计算工具箱,并且设置了支持CUDA的NVIDIA GPU,则网络培训默认使用GPU加速。trainNetwork功能允许您覆盖此默认行为。有关受支持GPU的列表,请参阅支持的GPU版本(并行计算工具箱)。
数据生成被设置为生成256个训练样本或训练数据集。该数据量足以在合理的时间内在CPU上训练功能信道估计网络。为了进行比较,预训练模型基于16384个训练示例。
MATLAB示例中CNN模型的训练数据具有固定维数,网络只能接受612×14×1,即612个子载波.14个OFDM符号和1个天线。因此,该模型仅适用于固定带宽分配.循环前缀长度和单个接收天线。因此,考虑到实际情况,需要支持100MHz带宽的有效副载波和多天线收发器,模型需要定制。
CNN将资源网格视为二维图像,因此网格中的每个元素都必须是实数。在信道估计场景中,资源网格数据是复杂的。因此,这些网格的实部和虚部分别输入到CNN中。在本例中,来自复数612×14的训练数据将矩阵转换为实值612×。由于在预测过程中必须将实部网格和虚部网格分别输入到神经网络中,该示例将训练数据转换为612×。
为了确保CNN不会过度拟合训练数据,将训练数据分为验证集和训练集。验证数据用于定期监测训练神经网络的性能,由valFrequency定义,约为5次/历元。当验证损失停止改善时,停止培训。在本例中,由于数据集的大小较小,验证数据大小与单个微批次的大小相同。
基于不同的延迟扩展.多普勒频移和0~10dB信噪比范围,在不同的信道配置下训练返回信道估计CNN。
代码:
%为再现姓设置随机种子(如果GPU为
%已使用)
rng(42)
如果列车型号
%生成培训数据
[trainData,trainLabels]=hGenerateTrainingData(256)
%设置每个小批量的示例数量
批大小=32
%将实网格和虚网格拆分为2个图像集,然后连接
trainData=cat(4,trainData(:,:,1,:),trainData(:,,2,:)
trainLabels=cat(4,trainLabel(:,:,1,:),trainLabels(:,,2,:)
%分为培训和验证集
valData=列车数据(:,:,::,1:batchSize)
valLabels=列车标签(:,:,::,1:batchSize)
trainData=trainData(:,,:,batchSize+1:结束)
trainLabels=trainLabel(:,:,::,batchSize+1:结束)
%每个历元大约验证5次
valFrequency=round(大小(trainData,4)/batchSize/5)
%定义CNN结构
层=〔…〕。。。
imageInputLayer([612 14 1],”标准化”,”无”)
卷积2d层(9,64,’填充’,4)
reluLayer(相关层)
卷积2d层(5,64,”填充”,2,”数字通道”,64)
reluLayer(相关层)
卷积2d层(5,64,”填充”,2,”数字通道”,64)
reluLayer(相关层)
卷积2d层(5,32,”填充”,2,”数字通道”,64)
reluLayer(相关层)
convolution2dLayer(5,1,’Padding’,2,’NumChannels’,32)
回归层
];
%制定培训政策
选项=培训选项(‘adam’。。。
“初始学习率”,3e-4。。。
《大纪元》,5。。。
“洗牌”,”每个时代”。。。
“详细”,错误。。。
“阴谋”,”训练-进步”。。。
“MiniBatchSize”,batchSize。。。
“验证数据“,{valData,valLabels}。。。
“验证频率”,valFrequency。。。
“验证耐心”,5)
%训练网络。保存的结构trainingInfo包含
%培训进度供以后检查。此结构对
%比较不同优化算法的最优收敛速度
%方法。〔channelEstimationCNN,trainingInfo〕=trainNetwork(trainData,…trainLabels,layers,options)
其他的
%如果trainModel设置为false,则加载预训练网络
负载(“trainedChannelEstimationNetwork.mat”)
终止
5.创建仿真渠道模型
设置模拟噪声水平(dB):
SNRdB=10
加载预定义的仿真参数,包括PDSCH参数和DM-RS配置。返回的对象载波是有效的载波配置对象。PDSCH是为SISO传输设置的PDSCH配置结构。
〔gnb,载波,pdsch〕=hDeepLearningChanEstSimParameters()
创建TDL信道模型并设置信道参数。为了比较估计器的不同信道响应,可以改变这些参数。
通过信道多径分量获得最大延迟样本数。这个数字是根据具有最大延迟的信道路径和信道滤波器的实现延迟来计算的。获取接收信号时,需要此数字来刷新信道滤波器。
代码:
%%
%创建TDL信道模型并设置信道参数
%估算器的不同信道响应,您可以更改这些
%参数。
信道=nrTDL信道
信道.种子=0
信道延迟剖面=’TDL-A’
信道延迟扩展=3e-7
信道最大DopplerShift=50
%此示例仅支持SISO配置
信道数传输天线=1
信道数接收天线=1
waveformInfo=nrOFDMInfo(载波)
channel.SampleRate=波形Info.SampleRate
%%
%获取通道多径的最大延迟样本数
%组件。此数字是根据通道路径计算的
%最大延迟和信道滤波器的实现延迟
%当获得接收到的时,需要number来冲洗信道滤波器
%信号。
chInfo=info(信道)
maxChDelay=ceil(max(chInfo.PathDelays*channel.SampleRate))+chInfo.ChannelFilterDelay
6.模拟PDSCH传输过程
通过执行以下步骤模拟PDSCH传输:
·生成PDSCH资源网格
·插入DM-RS符号
·执行OFDM调制
·通过信道模型发送调制波形
·添加AWGN
·理想的定时同步
·执行OFDM解调
要刷新频道内容,请在传输波形末尾添加0。这些零考虑了信道中引入的任何延迟,例如多径和实现延迟。0的数目取决于采样率.延迟配置文件和延迟扩展。
将加姓高斯白噪声(AWGN)添加到时域波形中。为了考虑采样率,对噪声功率进行了归一化。为每个接收天线的每个资源元素(RE)(3GPP TS 38.101-4)定义信噪比。
执行完美同步。要找到最强的多径分量,请使用信道提供的信息。
OFDM解调接收的数据以重建资源网格。
%生成DM-RS索引和符号
〔~,dmrsIndices,dmrsSymbol,pdschIndicesInfo〕=hPDSCH资源(gnb,pdsch)
%创建PDSCH资源网格
pdschGrid=nrResourceGrid(载波)
%将PDSCH DM-RS符号映射到网格
pdschGrid(dmrsIndices)=pdschGrd(dmrsIndices)+dmrsSymbols
%OFDM-调制相关资源元素
stxWaveform=nrOFDM调制(载波,pdschGrid)
tx波形=[tx波形零(maxChDelay,大小(txWaveform,2))]
%%
%通过TDL信道模型发送数据。
[rxWaveform,pathGains,sampleTimes]=信道(txWaveform)
SNR=10分(SNRdB/20);%计算线姓噪声增益
N0=1/(sqrt(2.0*gnb.NRxAnts*double(waveformInfo.Nfft))*SNR)
噪声=N0*复数(randn(大小(rxWaveform))
rx波形=rx波形+噪声
%获得用于完美信道估计的路径滤波器
pathFilters=getPathFilter(通道)
〔offset,~〕=nrPerfectTimingEstimate(pathGains,pathFilters)
rx波形=rx波形(1+偏移:结束,:)
rxGrid=nrOFDM解调(载波,rxWaveform)
%用零填充网格,以防解调不完整的时隙
〔K,L,R〕=尺寸(rxGrid)如果(L<carrier.SymbolsPerSlot)
rxGrid=cat(2,rxGrd,0(K,carrier.SymbolsPerSlot-L,R))
终止
7.比较并可视化各种信道估计效果
我们可以执行并比较同一信道模型的完美.实际和神经网络估计的结果。
要执行完美的信道估计,请使用nrPerfectChannelEstimate函数使用信道提供的路径增益值。
对于实际信道估计,使用nrChannelEstimate函数。
要使用神经网络进行信道估计,必须对接收的网格进行插值。然后将插值图像分为实部和虚部,并将这些图像作为单个批次输入神经网络。使用predict(深度学习工具箱)功能预测真实和虚拟图像。最后,将结果连接起来并转换为答复。
计算每种估计方法的均方误差(MSE)。
代码:
estChannelGridPerfect=nrPerfectChannelEstimate(载波,路径增益。。。
pathFilters.offset.sampleTimes)
%%
%要执行实际的信道估计,请使用
%<docid:5g_ref#mw_function_nrChannelEstimate nrChannel Estimation>函数。
〔estChannelGrid,~〕=nrChannelEstimate(载波,rxGrid,dmrsIndices。。。
dmrsSymbols,’CDMLengths’,pdschIndicesInfo.CDMLength)
%使用导频符号位置插值接收的资源网格
interChannelGrid=hPreprocessInput(rxGrid,dmrsIndices,dmrsSymbol)
%沿批次维度连接实网格和虚网格
nnInput=cat(4,real(interChannelGrid),imag(interChannel Grid))
%使用神经网络估计信道
estChannelGridNN=predict(channelEstimationCNN,nnInput)
%将结果转换为复杂
estChannelGridNN=复数(estChannel GridNN(:,:,:1),estChannellGridNNN(:,,:,2))
%%
%计算每种估算方法的均方误差(MSE)。
神经_ mse=平均值(abs(estChannelGridPerfect(:)-estChannel GridNN(::))
interp _ mse=平均值(abs(estChannelGridPerfect(:)-interpChannelGrid(:))。^ 2)
实际_ mse=平均值(abs(estChannelGridPerfect(:)-estChannel Grid(:))
%%
%绘制单个信道估计值和实际信道
%从信道滤波器抽头获得的实现
%估计器和神经网络估计器优于线姓估计器
%插值。
plotChEstimates(interChannelGrid,estChannelGrid,estChannelGridNN,estChannel GridPerfect。。。
interp_mse,practical_ms,neural_ms)
8.演示效果
在我们通过MATLAB编写代码之后,我们运行该程序并使用在线CNN训练来获得最终各种信道估计的MSE图。绘制从信道滤波点获得的单个信道估计和实际信道实现。从下图中,我们可以看出,实际估计器和神经网络估计器都优于线姓插值。
虽然我们可以通过CNN模式进行训练,并获得更好的效果。然而,人工智能技术真正应用于通信产品还有很长的路要走。
参考资源
[1]. IMT-2030(6G)推广小组,无线人工智能(AI)技术研究报告-发布
〔2〕.MATLAB,5G信道估计的深度学习数据合成。
[3]. QualCommm中国
[4]. 华为中国
—结束—
600学习网 » AI赋能5G,利用神经网络进行信道估计-600学习网