☰
Sub-6GHz辅助与多头注意力驱动的车载波束预测方案
2026/10/16 2:34:31 网站建设 项目流程

上个月把最后一项消融实验补完之后,心里那块大石头才算落地。严格来说,这个项目的起点谈不上惊天动地——只是我们在跑车载毫米波测试时反复被一个问题卡住:波束方向的预测跟不上车辆的动态变化,链路刚建立就要重建,时延和误码都压不下去。后来我们想,车载终端本来就同时保留着Sub-6GHz频段的连接,为什么不借低频信道里相对稳定的空间信息,去给高频波束的预测搭一个“方向盘”呢?这个思路最终演化成了CAR-BRAINet——一个基于Sub-6GHz辅助和多头注意力的异构车载网络空间自适应波束预测方案。

在展开技术细节之前,先把这篇文章的定位说清楚。CAR-BRAINet不是某个商业芯片上的现成功能,它更像一套系统方案:把Sub-6GHz的测量信息、毫米波的历史波束记录、车辆自身的运动状态,用多头注意力机制融合起来,输出下一个时隙最可能的高性能波束候选集。这套设计既可以在仿真环境里复现,也可以搬上车载计算平台做实时推理。本文适合想做车联网物理层与AI交叉方向的同学,也适合已经在做波束管理却总被动态环境折磨的工程师参考。我会尽量避免只讲概念,尽可能把数据处理的细节和踩过的坑写出来。

1. 破题:车载波束预测到底难在哪

1.1 波束管理的三个老大难

波束管理在5G NR和后续演进体系里都是核心机制,流程大家也都熟悉:扫描、测量、上报、切换。但在车载环境里,这个流程每一步都会被放大成问题。

第一个问题是时延损耗。以典型的轮询式波束扫描为例,模拟波束系统的码本规模通常是几十甚至上百个候选方向,一轮完整扫描的耗时在几毫秒到几十毫秒之间。车载场景的端到端时延预算往往在10毫秒以内,如果光扫描就吃掉大半预算,留给数据面的处理时间就非常紧张。尤其当车辆进入高楼密集区或频繁切换的车道时,扫描周期只会更长,数据面的有效传输占比会被进一步压缩。

第二个问题是信道快速变化造成的预测误差。车速60km/h时,1毫秒内车辆移动约1.7厘米,这个距离在低频段可能不算什么,但对波长仅为毫米级别的频段来说,已经足以让相位发生可观变化。更麻烦的是散射体环境的持续变化——对向车辆驶过、路侧树木遮挡切换、车身姿态微调,都会让最优波束方向发生跳变。换句话说,车载毫米波的最优波束不是平稳漂移的,而是会突然从一个方向跳到另一个方向的。这种跳变性让很多基于时间序列外推的传统预测算法失灵。

第三个问题是异构网络的协调复杂度。现在车载通信基础设施通常是蜂窝移动网络与直连通信共存的,频段覆盖Sub-6GHz和毫米波两个大区间。同一个终端在不同网络、不同频段之间切换时,如果各自独立管理波束,实际使用中很容易出现“切换震荡”:低频链路还没断,高频已经启动了好几轮重配。这种震荡不仅浪费信令开销,还会让用户的传输速率跌到难以接受的水平。

我们做这个课题时反复问自己一个问题:能不能让波束预测从“被动响应”变成“主动预判”?这需要一个有效的前置信息来提前激活合适的波束候选集。Sub-6GHz信道恰好能提供这类信息。

1.2 Sub-6GHz为什么能帮上忙

不同频率的传播特性差别很大,但两条不同频率的链路穿过同一片物理环境时,散射体分布、主要反射路径的数量、到达角的统计规律,其实存在很强的空间一致性。这个性质在学术圈叫空间一致性,也是波束管理里可以利用的重要先验。

Sub-6GHz频段覆盖好、波束宽,即使不做高定向的波束成形,也能通过上下行参考信号测出主要到达角、收发端相对位置、信道冲激响应的部分特征。这些特征不能直接映射成毫米波波束的索引,但可以当作“占位信息”告诉模型:环境大概长什么样,车辆大概在哪个方位。这样,毫米波波束预测就从纯盲搜变成了有提示的条件映射。

我们在实际测试里得到一个直观结论:单独使用毫米波自身的历史信道做预测,方向突变时性能掉得厉害;把Sub-6GHz的到达角和信号强度特征并入输入之后,预测鲁棒性有明显提升。原因是低频信号对低速运动的平滑性更好,低频特征相当于模型里的“稳锚”,能帮助抑制高频信道上的短期抖动。

但这个原理落实起来并不容易。直接拼接低频特征和高频特征,模型并不会自动学到两者的对应关系。关键是要让网络理解“哪部分低频特征是稳定的、哪部分高频特征值得信任”,并把它们按空间位置对齐。我们最终是靠多头注意力机制解决了这个对齐和融合的问题。

2. 整体架构:CAR-BRAINet的设计逻辑

2.1 为什么叫“空间自适应”

CAR-BRAINet这个名字,前半部分来自车载场景,BRAINet则取Brain加Network的双重含义。最关键的修饰词其实是括号里的“空间自适应”。它意味着模型的预测结果不只是依赖时间上连续的波束历史,还主动利用了空间层面的上下文信息。

空间自适应的“空间”具体包含三层含义。第一层是地理位置与相对位置关系:车辆在世界坐标系中的位置、与基站或路侧单元的距离和夹角。第二层是车辆自身的运动状态:速度、航向角、加减速度,这些信息决定了未来一小段时间内可能出现的波束变化趋势。第三层是环境空间结构:道路走向、建筑物分布、路侧遮挡物位置,这一层最难直接获取,但可以通过信道特征中的多径结构反推出来,也可以利用Sub-6GHz的测量数据近似刻画。

把这三层空间信息送进模型后,波束预测就不再是纯粹的时间外推,而是一个带空间约束的映射问题。比如说,一辆车在空旷的高速公路上直行,模型可以根据位置和速度线性外推未来的波束方向;而进入十字路口转向时,车速和航向角的变化会让模型意识到波束方向即将发生大跳变,带动候选波束集提前切换。我们把这个行为叫作“空间感知的提前激活”,这也是CAR-BRAINet区别于普通LSTM或Transformer序列预测的关键设计。

2.2 多头注意力机制解决的是什么

很多人第一次看到这个方案时会问:为什么不用MLP、不用简单的特征拼接,非要用多头注意力?答案是特征对齐和重要性加权。

波束预测的输入是多模态的:Sub-6GHz的到达角可以做一维时间序列,毫米波历史波束索引可以是分类序列,车辆运动状态又完全是另一套量纲。如果直接用MLP融合,模型很难知道哪些信息源在哪个时刻更重要。更麻烦的是,同一时刻下,不同信息源之间的相对位移是变化的——例如车转过一个弯道时,Sub-6GHz和毫米波到达角的偏差会先扩大再缩小。这种时变的对应关系,正是注意力机制擅长的建模对象。

注意力机制本质上是在做“按相关性加权求和”。它让模型自己学习一个权重,决定在预测当前波束时,应该更多参考哪些历史状态、哪些空间特征。多头设计则是把同样的注意力计算并行做多次,每次在不同的特征子空间里进行。

这里需要解释清楚一个常见的误区:多头注意力不是让模型看多个不同的输入特征,而是让模型在多个不同的低维投影子空间里计算相关性,最后把结果拼起来。每个头可以关注不同粒度的模式——某个头可能主要关注车辆航向角的变化趋势,另一个头可能更关注Sub-6GHz到达角的缓慢漂移,还有一个头可能专注于毫米波历史波束在码本中的相邻关系。多头机制的价值正在于,它把复杂的高维融合问题分解为多个相对独立的子空间匹配问题,最终拼接的结果比单个注意力头表达力更强。

2.3 异构网络输入怎么组织

说完为什么要用多头注意力,还得面对一个现实问题:异构车载网络里的信息来自不同的协议栈,采样率不一致,时延也不同,怎么统一组织成模型输入?

我们把输入按“特征张量”的方式组织。每一个时间步对应一个特征向量,包含:

  • Sub-6GHz链路的测量特征:到达角、信号强度、时延扩展、信道秩等
  • 毫米波链路的测量特征:历史最优波束索引、各候选波束的参考信号接收功率
  • 运动状态特征:速度、航向角、横向加速度
  • 上下文特征:与基站/路侧单元的相对位置、路面类型编码等

这些特征按时间先后排列,形成[T, F]的二维张量。其中T是历史窗口长度,F是特征维度。如果存在多根天线或同时关联多个接入点,则再加一个维度的基站/路侧单元索引,形成三维张量[T, N, F],N表示关联节点数量。多头注意力在这个三维张量上计算时,会把节点维度也纳入注意力机制,让模型能够动态决定当前应该更信任哪个接入点的信息。

异构网络的关键特点是“同一辆车可能同时与多个节点关联”。如果不做融合,单纯选用信号最强的节点作为唯一输入,经常会因为瞬时衰落导致信息断层。而通过注意力机制对所有关联节点的特征做加权,可以克服单点失真的问题。

3. 核心模块拆解:从信道特征到波束索引

3.1 特征工程与预处理

很多做深度学习的人会低估特征预处理在通信问题里的重要性。波束预测不是典型的图像或文本任务,通信链路的数据噪声模型和数值分布很不规整,预处理做不好,再好的网络也学不出来。

我们在预处理阶段严格遵守以下几点。

第一,数值归一化必须按物理含义分组进行。速度、到达角、信号强度这三类特征的量纲和分布范围差异很大,不能放到同一个归一化器里。到达角通常映射到[-180°, 180°],但角度具有环状周期性,0°和360°其实是同一个方向。直接做线性归一化会让模型误以为0°与90°的距离小于0°与359°的距离,因此我们采用正弦余弦编码,将角度拆成sin和cos两个分量,从根本上消除角度环状边界问题。

第二,缺失值处理很重要。车载环境下,Sub-6GHz的测量不一定每帧都能成功更新,毫米波波束测量也有周期性限制。直接删除缺失样本会破坏时间连续性。我们的做法是首先用线性插值补齐短时缺失,再用一个可学习的掩码标识位告诉模型哪些位置的数据是插值的。掩码向量会参与注意力计算,让模型自己决定对缺失数据的信任程度。

第三,历史窗口长度需要根据车速动态调节。低速场景(例如拥堵车流)中,固定2秒的历史窗口足够;高速场景中,同样时间跨度包含的有效信息更多,模型可以用更短窗口获得相近效果。一个可行的妥协做法是设计多个并行的窗口分支,每个分支配置不同的感受野,再把它们的输出在注意力层中合并。这样做虽然参数量略增,但在实测中稳定性和准确性都有增益。

3.2 空间编码模块

空间编码模块的目的是把车辆的几何位置、朝向和环境结构转换成适合注意力网络处理的向量。这里借鉴了Transformer里位置编码的思路,但做了面向物理世界的修正。

第一步,对车辆绝对位置、距离基站的相对角度、当前行驶方向分别做正弦编码或三角网格网格格点编码。这种编码比直接输入原始数值更适合模型学习周期性规律。例如车辆绕基站转一圈时,相对角度会从-180°平滑变化到180°,正弦编码能让模型感知到这种首尾相连的性质。

第二步,把环境结构的信息近似映射成一个低维向量。工程上我们是用网格化的路侧单元和基站分布图加卷积来粗编码。这一卷积分支的输出会与运动特征编码拼接,作为空间上下文送入主干网络。为了让这个分支不至于变成黑盒,我们在训练时会额外加入对比学习任务:同一路段、同一朝向的样本,空间编码向量的余弦相似度要高于不同路段的样本对。

这个设计带来的实际收益是可解释性。不是只能看到“模型预测准了”,而是可以观察空间编码向量的中间表示,确认模型确实学到了“车辆在交叉口转向时空间特征会明显聚成一簇”这样的规律。这对后续调试和向客户汇报实验结果都有帮助。

3.3 多头注意力融合模块的搭建

融合模块是CAR-BRAINet的主干。我们采用的是堆叠式Transformer编码器的变体,但与标准实现有两个区别:一是加入了物理约束的注意力偏置,二是把部分自注意力替换为互注意力。

物理约束的注意力偏置是一种工程技巧。标准自注意力允许序列里的任意两个位置自由交互,但在波束预测场景里,时间上相隔太远的状态对预测当前波束往往没有直接帮助,甚至在高速场景下会产生干扰。我们给注意力分数加上一个随距离变化的偏置项,距离越远衰减越强,幅度根据当前车速动态调整。这样模型既保留了长距离依赖的可能性,又不会盲目建模全序列关系。

互注意力用于处理高低频信息的融合。把Sub-6GHz特征序列作为查询,毫米波特征序列作为键和值,让模型在学习每个毫米波波束状态时,主动去低频特征中寻找对应的空间线索。这个方法源自跨模态对齐的思路,在低频与高频特征对齐上非常有效。

给出一个简化的伪代码框架:

class BeamPredictor(nn.Module): def __init__(self, d_model=128, num_heads=8, num_layers=4): super().__init__() self.input_proj = nn.Linear(feature_dim, d_model) self.spatial_encoder = SpatialEncoder(d_model) self.encoder_layers = nn.ModuleList([ TransformerEncoderLayer( d_model=d_model, nhead=num_heads, dim_feedforward=512, dropout=0.1 ) for _ in range(num_layers) ]) self.beam_head = nn.Sequential( nn.LayerNorm(d_model), nn.Linear(d_model, codebook_size) ) def forward(self, sub6_feature, mmwave_feature, motion_feature, node_idx): # 特征拼接与投影 fused = torch.cat([sub6_feature, mmwave_feature, motion_feature], dim=-1) x = self.input_proj(fused) # 加入空间位置编码 x = x + self.spatial_encoder(node_idx) # 堆叠Transformer编码层 for layer in self.encoder_layers: x = layer(x) # 取最后一个时间步的输出,映射到码本空间 logits = self.beam_head(x[:, -1, :]) return logits

这段伪代码省略了掩码和物理偏置的细节,但整体骨架与我们在项目里实际使用的结构一致。值得注意的是,输出层前面的层归一化非常关键,它把Encoder输出的均值和方差重新拉回稳定范围,能显著提升末端分类层的收敛速度。

3.4 波束预测输出与训练目标

波束预测的输出层有两种设计思路。

一种是直接分类,把输出层设计成在码本空间上的softmax分类,每个码本索引对应一个输出类别。这个方案比较直观,也容易训练,但缺陷是无法输出码本之外的波束方向。如果码本设计得比较粗,预测精度受限于码本粒度。

另一种是回归加偏移,先通过分类头选定候选波束簇,再用回归头计算一个精细的方向偏移量。我们最终采用了这个混合结构。原因是码本是固定的离散集合,但在高速场景里,最优波束经常落在两个码本方向的夹角中间,单纯分类无法覆盖这种情况。回归偏移可以把预测结果做“插值修正”,代价是多了一个额外的输出头和相应的回归损失。

损失函数采用了交叉熵加平滑标签加回归损失的组合。具体来说:

  • 分类头:交叉熵,标签做标签平滑处理,平滑系数设0.1,避免模型对码本索引过于自信
  • 回归头:只对正确选中的簇内计算均方误差,不对全码本做回归
  • 总损失:分类损失 + 0.3 * 回归损失

训练时还需要一个Top-K指标来评估候选波束集的质量。因为车载场景中波束预测的最终应用不是选一个方向,而是给波束管理模块推送一个候选集,候选集的覆盖质量比单一预测的准确率更重要。如果模型输出的Top-3候选方向中能覆盖真实方向,实际使用时就可以在3个方向上做精细测量,时延成本只有完整扫描的三分之一左右。

4. 训练与实验实测记录

4.1 数据集怎么来

做波束预测方向的研究,绕不开数据集来源问题。真实路测数据成本高、标注难;纯仿真数据又容易与现实环境脱节。我们的方案是仿真与实测混合。

仿真环节采用的是射线追踪工具,生成城市峡谷、十字路口、高速公路、城郊道路四类典型场景。每类场景下设置不同的车辆轨迹、车速和路侧节点部署密度。射线追踪能精确给出每条多径的到达角、离开角、功率和时延,同时输出对应频段上的信道冲激响应特征,相当于给模型提供了理想标注——真实环境下很难拿到这么干净的“最优波束方向”标签。

实测环节选择了一条包含高架桥和地面道路的城市测试路线。实测数据主要用来验证仿真训练的模型在真实环境下的迁移能力。由于实测时无法直接得知理论最优波束方向,我们通过多轮全码本扫描获得实测的“准最优波束索引”,作为近似标签。这个方法不完美,因为在快速移动时,扫描一圈下来真实方向可能已经变了,但至少可以作为工程上的有效参照。

数据规模上,仿真数据大约生成了120万条样本,实测数据约12万条。训练集、验证集、测试集按场景和时间片切分,避免同一车辆轨迹在不同集合中重复出现而造成的评估失真。这个切分细节很重要,如果不按轨迹切分而按样本随机切分,模型会对已见过的轨迹过拟合,测试集上的指标会虚高。

4.2 评估指标与基准方法对比

评估一个波束预测系统,不能只看单一准确率。我们主要报告三个指标:

  • Top-1准确率:预测的首选波束与真实最优波束一致的比例
  • Top-3覆盖比例:真实最优波束出现在预测前三位候选中的比例
  • 平均切换次数:单位时间内波束切换的次数,切换越少,对协议栈压力越小

基准方法选了三种:全码本扫描的基线方案、基于即时信道状态直接映射的线性回归方案、以及一种基于LSTM的时间序列预测方案。对比结果可以定性地总结如下。

全码本扫描的Top-1永远是100%,但平均切换次数和扫描时延成本极高。线性映射方案的Top-3覆盖比例在低速场景尚可,但在转向和超车场景快速退化。LSTM方案在平稳行驶段表现不错,但面对波束方向突变时预测值存在明显滞后,其实是时间外推方法天生的问题。CAR-BRAINet在Top-3覆盖比例上比LSTM方案高出8到12个百分点,平均切换次数减少了约30%。

这些数字不能直接照搬到所有环境,毕竟测试路线和天线配置会影响绝对数值,但趋势是稳定的:加上空间上下文和注意力融合之后,模型在动态切换场景下的预判能力确实明显强于纯时序模型。

4.3 消融实验与参数敏感性

为了搞清楚每个模块的真实贡献,我们做了一组标准的消融实验。

第一组对比是去掉Sub-6GHz特征,只保留毫米波历史和运动特征。结果Top-1准确率下降约9个百分点,Top-3覆盖比例下降约6个百分点。这说明低频辅助特征是模型性能的重要来源。

第二组是去掉空间编码模块,把位置和朝向信息直接作为普通特征拼进输入,不经过空间编码。结果在转向场景的准确率下降明显,转弯场景的Top-3覆盖比例掉了十几个百分点。这说明正弦空间编码对方向变化建模确实有效。

第三组是把多头注意力换成单头注意力,保持参数量基本一致。整体准确率下降约4个百分点,但更重要的是模型对车速变化的适应性变差——单头模型在60km/h下的表现与30km/h下差异明显,多头模型则平稳得多。这也进一步印证了多头子空间多样化建模的价值。

参数敏感性方面,我们重点调了三个量:注意力头数、历史窗口长度、特征投影维度。注意力头数在4到8之间表现较好,16个头时模型参数量增加但性能增益有限,反而在车载平台上增大了推理时延。历史窗口长度在1秒到2秒之间比较合适,窗口过短时模型缺乏上下文,过长时又会引入过多过时信息增加干扰。投影维度128维在当前数据规模下足够,继续增大到256维收益不明显。

5. 实际部署中的问题与经验

5.1 时间对齐问题

把模型从仿真环境搬到实车硬件前,最容易被低估的就是数据时间对齐。

车上的Sub-6GHz测量、毫米波测量和运动状态数据来自不同模块,时间戳往往不统一。Sub-6GHz链路的测量更新周期可能长达几十毫秒,毫米波波束测量周期可能更短,而惯性传感器的更新频率又很高。如果直接把这些数据按接收顺序拼接成输入张量,模型学到的时间关系是乱的,离线测试准确率再高也白搭。

我们最后专门写了一个时间对齐模块,以毫米波测量时隙为基准,把其他特征线性插值或最近邻对齐到毫米波时隙上。实测中这一步非常关键——对齐后的模型Top-3覆盖比例比不对齐时提升了约15个百分点。建议有类似需求的朋友在做数据采集时就在记录原始时间戳,别等训练阶段再去猜时间关系。

5.2 交互环境的标签漂移

仿真环境里可以用射线追踪拿到准确标签,但真实路测时标签是通过全码本扫描获得的近似值。问题在于,扫描周期内车辆还在移动,实际最优波束方向已经变化,标签本身就是偏的。我们把这个现象叫作标签漂移。

处理标签漂移的办法有三个层面。第一,尽可能缩短扫描周期,使用轻量级扫描只扫部分候选方向。第二,在训练损失设计里加入容错项,不要求模型严格拟合瞬时标签,而是把Top-K命中作为额外的训练目标。第三,对标签做滞后补偿,根据车速和转向估算扫描期间的角度变化量,对标签位置做反向偏移修正。这三点结合下来,模型在实测数据上的表现才算可用。

5.3 车载算力受限时的量化部署

深度模型上车遇到的第一个挑战就是算力。即使是最精简的CAR-BRAINet结构,浮点推理在车载嵌入式平台上的时延也难以满足毫秒级要求。我们的做法是分两步压。

第一步是剪枝。去掉对输出影响很小的注意力头和一些冗余前馈神经元,后端的logits输出由全码本维度降到候选子集维度。剪枝后模型参数量减少约40%,Top-3覆盖比例只下降1到2个百分点。

第二步是量化。将权重和激活从FP32降到INT8。量化损失在可控范围内,但需要注意,通信特征中的一些数值区间跨度很大,直接做均匀量化会把小数值信息完全抹掉。我们用了一种简单的解决方案:先对特征做分段非线性变换,再均匀量化,相当于手动做了一个非均匀量化映射。这个细节如果不是实际部署,光看论文很难注意到。

最终部署版本在嵌入式平台上单次推理时间为2到3毫秒,满足车载场景的实时需求。推理时延之外的波束切换信令开销还需要单独优化,但那已经不属于模型本身的范畴了。

6. 后续方向与个人体会

这个课题做到后面,我最深的一个体会是:通信问题里的AI模型,难点从来不在模型结构本身,而在数据和环境的不确定性。CAR-BRAINet在仿真里指标很好,但真正的问题几乎都出在数据时间对齐、标签漂移、量化分布这些看似不起眼的工程细节上。

后续我们能想到的扩展方向大致有三个。第一个是引入联邦学习机制,让不同路段、不同车队的测量数据在不上传原始数据的前提下联合更新模型,这能解决集中收集数据时的隐私合规问题。第二个是进一步简化模型结构,尝试用知识蒸馏把多头注意力的知识迁移到更小的学生网络中,进一步降低车载部署门槛。第三个是把这个波束预测模块与更上层的路径规划联动,让车辆可以根据未来一段时间的移动意图提前预留波束资源,把通信和自动驾驶规划层面的信息真正贯通起来。

如果你也在做这个方向,建议先别急着调网络结构,把数据采集、时间对齐、标签质量这三件事想清楚,模型提升空间会比你想象的大得多。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询