第4章 物理层(PHY)实战:PSCCH与PSSCH信道处理、SCI格式解析、DMRS映射

各位同学,欢迎来到物理层实战环节。说实话,V2X通信里物理层是最「接地气」的一层——你写的代码最终要变成空口上的波形。今天我们就来啃硬骨头:PSCCH、PSSCH这两个信道,以及SCI格式和DMRS映射。

我个人习惯把物理层比作「快递分拣系统」。PSCCH是面单,PSSCH是包裹,DMRS是定位标签。没有面单,包裹送不到;没有定位标签,包裹就丢了。嗯,这个比喻你记住,后面会反复用到。

4.1 PSCCH与PSSCH:谁是谁的「说明书」?

先搞清楚两个信道的分工。

  • PSCCH(物理侧行控制信道):承载SCI(侧行控制信息)。说白了,就是告诉接收方「我发了个包,格式是啥,资源在哪」。
  • PSSCH(物理侧行共享信道):承载实际的数据。比如BSM消息、CAM消息,都塞在这里。

我在项目中遇到过有人把SCI和数据混在一起发,结果接收端解析不出来。为什么?因为接收端得先读PSCCH,才知道PSSCH怎么解。顺序搞反了,全乱套。

关键点:PSCCH和PSSCH在时频资源上是频分复用的。同一个子帧里,PSCCH占一部分RB,PSSCH占另一部分。3GPP R16里,PSCCH固定占用3个OFDM符号,频域上占10~20个RB。

4.2 SCI格式解析:第一阶段的「暗号」

SCI分两个阶段。第一阶段SCI(1st-stage SCI)在PSCCH上发,第二阶段SCI(2nd-stage SCI)在PSSCH上发。今天我们先讲第一阶段。

第一阶段SCI的格式,说白了就是一张紧凑的位图。我把它拆成几个关键字段:

字段 比特数 说明
优先级 3 0~7,值越小优先级越高
频域资源分配 变量 指示PSSCH占用的RB集合
时域资源分配 5 指示PSSCH占用的时隙偏移和符号数
资源预留周期 4 周期性预留,用于半持续调度
DMRS模式 3 指示DMRS的时域位置和类型
第二阶段SCI格式 2 指示第二阶段SCI使用哪种格式
CRC 24 用目标ID加扰

你想想看,总共就32~40比特的信息,要承载这么多内容。所以编码时用了极化码,效率很高。我曾经在调试时发现CRC校验老失败,查了半天发现是目标ID加扰时搞反了比特序。嗯,这种低级错误,犯一次就记住了。

实战技巧:解析SCI时,建议先把原始比特流打印成十六进制,然后对照协议表逐字段核对。我习惯写一个sci_parser()函数,输入是32比特的数组,输出是结构体。这样调试时一目了然。

4.3 DMRS映射:接收端的「眼睛」

DMRS(解调参考信号)的作用,就是让接收端估计信道。没有DMRS,接收端不知道信号经历了怎样的衰落,解调出来的数据全是错的。

DMRS映射有两个关键参数:时域位置频域模式

  • 时域位置:PSCCH的DMRS固定在第1个和第3个OFDM符号上。PSSCH的DMRS位置由SCI中的DMRS模式字段决定,可以是第2个和第4个符号,也可以是第1个、第3个、第5个符号。
  • 频域模式:DMRS在频域上是梳状结构(comb pattern)。Type A是每隔一个子载波放一个DMRS,Type B是每隔两个子载波放一个。Type A密度高,适合高速场景;Type B节省资源,适合低速场景。

我记得在做一个高速公路V2X项目时,车速120km/h,用Type B的DMRS,结果误码率居高不下。换成Type A后,性能立马达标。为什么?因为高速下信道变化快,DMRS密度不够,插值误差太大。这个坑,我替你们踩过了。

避坑指南:我曾经在DMRS序列生成时,忘了加小区ID和时隙号。结果DMRS序列跟别人冲突,接收端信道估计完全错误。记住:DMRS序列生成公式里,c_init一定要包含N_IDn_slot。这是3GPP TS 38.211里明确写的,别偷懒。

4.4 实战:从比特流到信道估计

光说不练假把式。我们来看一个简化的处理流程:

// 伪代码:PSCCH接收处理
1. 从时频资源格中提取PSCCH的RE
2. 提取PSCCH的DMRS(第1和第3符号)
3. 用本地DMRS序列做信道估计
4. 用信道估计结果均衡PSCCH数据
5. 解调(QPSK)和解码(极化码)
6. 解析SCI字段,得到PSSCH的资源分配信息
7. 根据SCI指示,提取PSSCH的RE和DMRS
8. 重复步骤3~5,解调PSSCH数据

这个流程看起来简单,但每一步都有细节。比如步骤3的信道估计,我建议用LS估计+线性插值。LS估计简单粗暴,线性插值在低速场景下够用。如果追求性能,可以用MMSE估计,但计算量翻倍。

你可能会问:「为什么PSCCH和PSSCH的DMRS要分开处理?」因为两个信道的DMRS位置不同,而且PSCCH的DMRS只用于解调SCI,PSSCH的DMRS只用于解调数据。混在一起用,反而会引入噪声。

4.5 小结与思考

今天的内容,说白了就是三件事:

  1. PSCCH是控制信道,承载SCI,告诉接收方「数据在哪、怎么解」。
  2. SCI格式紧凑,32~40比特,用极化码保护,解析时要逐字段核对。
  3. DMRS是信道估计的基石,时频位置和模式选择直接影响性能。

我个人觉得,物理层最难的不是算法,而是时序对齐。你想想看,发送端在符号n发了PSCCH,接收端要在符号n+1之前解出来,才能准备解PSSCH。这个时序窗口非常窄,代码里稍有不慎就超时。

下一章我们会讲资源池配置和HARQ重传机制。到时候你会看到,物理层和MAC层是怎么配合的。嗯,先消化今天的内容,有问题随时在群里讨论。

课后练习:写一个SCI解析函数,输入是32比特的数组,输出是结构体。要求能正确提取优先级、频域资源分配、时域资源分配和DMRS模式。测试用例自己构造,用3GPP标准里的例子验证。