4、资源映射:RE映射规则、DMRS配置、PTRS配置、CORESET与搜索空间

好,咱们接着往下聊。上一章我们把OFDM符号怎么生成的讲清楚了,这一章要解决一个更实际的问题:这些数据比特,到底怎么塞进时频资源格子里?

说白了,资源映射就是给每个数据找到它在时频网格里的“座位”。5G的调度粒度很细,不像4G那么粗犷。我个人习惯把RE映射看作是“填格子游戏”,但规则比俄罗斯方块复杂多了。

4.1 RE映射规则:从码字到物理资源

先看整体流程。数据从MAC层下来,经过编码、加扰、调制,变成了一堆复数符号。这些符号要映射到RE上。映射的顺序是:先频域,后时域

具体来说,在一个PRB内,从最低的子载波开始,依次往上填。填完一个OFDM符号的所有子载波,再跳到下一个符号。嗯,这里要注意:DMRS占用的RE是优先预留的,数据符号只能填剩下的位置。

核心原则:每个RE只能承载一个复数符号。PDSCH/PUSCH的数据、DMRS、PTRS、CSI-RS等,都在争抢这些RE。谁先谁后,协议有严格规定。

我在项目中遇到过一个问题:有个同事把DMRS的RE位置算错了,结果数据把DMRS给覆盖了。解调出来的星座图完全散开,怎么调都调不好。后来查了半天,就是映射顺序搞反了。

映射的公式其实不复杂,但参数多。我习惯这样记:

# 伪代码示意
for symbol in 时域符号:
    for k in 频域子载波:
        if (k, symbol) 被DMRS占用:
            放DMRS
        elif (k, symbol) 被PTRS占用:
            放PTRS
        else:
            放数据符号

你想想看,这个循环在基站侧是硬件并行处理的,但理解逻辑时用软件思维更清晰。

4.2 DMRS配置:解调的“眼睛”

DMRS,全称解调参考信号。它的作用就是让接收端知道信道长什么样。没有DMRS,数据就是一堆乱码。

5G的DMRS比4G灵活得多。我刚开始学的时候也被各种配置项搞晕了。后来总结出几个关键参数:

  • DMRS类型(Type A / Type B):Type A的起始符号固定,Type B更灵活。说白了,Type A适合广播场景,Type B适合低时延场景。
  • DMRS长度(单符号/双符号):单符号省资源,双符号抗多普勒频移好。高速场景我建议用双符号。
  • DMRS位置(ld):协议里用表格查,比如ld=2表示DMRS在符号2和符号11上。
参数 选项 我的建议
dmrs-Type typeA / typeB 普通场景用typeA,URLLC用typeB
dmrs-Length 1 / 2 低速用1,高速用2
dmrs-AdditionalPosition pos0 / pos1 / pos2 / pos3 信道变化快就多加几个位置

避坑指南:我曾经在配置DMRS时,把dmrs-AdditionalPosition设成了pos3,结果一个时隙里DMRS占了太多RE,数据速率掉了一半。后来才意识到,DMRS密度不是越高越好,够用就行。

DMRS的序列生成也值得一说。用的是Gold序列,初始化参数跟小区ID、时隙号、符号号都有关。公式我就不列了,协议38.211里写得很清楚。我一般直接调库函数,但理解原理有助于排查问题。

4.3 PTRS配置:相位噪声的“克星”

PTRS,相位跟踪参考信号。这东西在4G里没有,是5G新加的。为什么?因为5G用了更高阶的调制(256QAM甚至1024QAM),对相位噪声特别敏感。

相位噪声说白了就是振荡器不完美,导致星座图旋转。PTRS的作用就是跟踪这个旋转,然后补偿掉。

PTRS的配置有几个要点:

  • 时域密度(L_ptrs):每几个OFDM符号放一个PTRS。L_ptrs=1表示每个符号都放,L_ptrs=2表示隔一个放一个。
  • 频域密度(K_ptrs):每几个子载波放一个PTRS。K_ptrs=2表示每两个子载波放一个。
  • RE偏移:PTRS在频域的位置跟DMRS的端口有关,不能冲突。

注意:PTRS只在PDSCH/PUSCH的带宽内存在。而且,如果调制阶数低于64QAM,PTRS可以不用配。我见过有人给QPSK也配了PTRS,纯属浪费资源。

我记得有一次外场测试,终端在高频段(28GHz)上报的EVM很差。查来查去,发现是PTRS的时域密度配得太稀了。相位噪声变化快,PTRS跟不上。把L_ptrs从2改成1,EVM立马降下来了。

4.4 CORESET与搜索空间:控制信道的“地图”

CORESET,全称控制资源集。它是PDCCH(物理下行控制信道)的“地盘”。搜索空间,则是告诉终端在这个地盘里怎么找自己的控制信息。

这两个概念容易混淆。我打个比方:CORESET是足球场,搜索空间是球门的位置。终端知道球场在哪,但还得知道球门在哪才能射门。

CORESET的配置参数:

  • 频域资源(frequencyDomainResources):一个位图,指示哪些RB被占用。
  • 时域长度(duration):1到3个OFDM符号。
  • CCE到REG的映射:交织或非交织。非交织简单,交织能获得频率分集增益。

搜索空间的配置参数:

  • 监测周期和偏移:比如每5个时隙监测一次,从时隙0开始。
  • 监测符号:在一个时隙内,从哪个符号开始监测。
  • 聚合等级(AL):1, 2, 4, 8, 16。AL越大,占用的CCE越多,可靠性越高。
聚合等级 CCE数量 适用场景
AL=1 1 信道条件好,小区中心用户
AL=4 4 中等信道条件
AL=8 8 信道差,小区边缘用户
AL=16 16 极端情况,比如深覆盖

关键点:一个CORESET可以关联多个搜索空间,一个搜索空间只能关联一个CORESET。终端在搜索空间里盲检PDCCH,直到找到自己的DCI。

我曾经在配置搜索空间时,把监测周期设得太长(比如每20个时隙一次)。结果终端要等很久才能收到调度信息,时延超标。后来改成每2个时隙一次,问题解决。但代价是终端功耗增加了,因为要更频繁地唤醒。

嗯,这里要提醒一下:CORESET和搜索空间的配置,直接影响控制信道的容量和时延。配得太少,调度不过来;配得太多,资源浪费。这个平衡需要根据实际业务场景来调。

好了,资源映射这块就讲这么多。下一章我们聊聊波束管理,那又是另一个有意思的话题。