1、5G物理层概述:5G NR标准演进、物理层在协议栈中的位置、物理层核心功能
各位好,我是老张。做5G物理层有些年头了。今天咱们聊聊物理层最基础的东西——标准怎么来的、物理层在协议栈里到底干啥、以及它最核心的那几板斧。
说实话,我刚接触5G NR的时候,第一反应是:这玩意儿比LTE复杂太多了。但干久了你会发现,万变不离其宗。物理层说到底,就是三件事:编码、调制、资源映射。嗯,今天咱们就围绕这三件事展开。
1.1 5G NR标准演进:从需求到落地
5G NR的标准,3GPP从Release 15开始搞。我记得2018年那会儿,Release 15刚冻结,我们团队就开始做原型验证。那时候很多参数还没定死,大家边看标准边改代码,挺折腾的。
简单梳理一下演进脉络:
- Release 15(2018年):5G NR第一个完整版本。定义了eMBB(增强移动宽带)和URLLC(超可靠低时延通信)的基础框架。说白了,就是先把高速率、低时延这两个场景的物理层框架搭起来。
- Release 16(2020年):重点搞了URLLC增强、工业物联网、V2X(车联网)。我个人觉得,Release 16最大的亮点是引入了更灵活的调度机制,让物理层能更好地支持低时延业务。
- Release 17(2022年):开始搞mMTC(海量机器类通信)的增强,还有RedCap(轻量级终端)。你想想看,物联网设备那么多,每个都配全功能5G模组,成本受不了。RedCap就是砍掉一些物理层能力,让终端更便宜。
- Release 18(2024年):5G-Advanced,也就是5.5G。重点在AI/ML与物理层的结合、频谱效率进一步提升。我最近就在看AI辅助信道估计这块,挺有意思的。
核心要点:5G NR标准不是一步到位的。它像搭积木一样,每个版本加一些新功能。做物理层实现时,一定要搞清楚你针对的是哪个Release。我在项目中遇到过,有人拿着Release 15的代码去对接Release 16的基站,结果调度时序对不上,折腾了两周。
1.2 物理层在协议栈中的位置:承上启下的关键层
5G NR的协议栈,从上到下依次是:NAS(非接入层)→ RRC(无线资源控制)→ SDAP(服务数据适配协议)→ PDCP(分组数据汇聚协议)→ RLC(无线链路控制)→ MAC(媒体接入控制)→ PHY(物理层)。
物理层在协议栈的最底层。它上面是MAC层,下面是射频硬件。说白了,物理层就是负责把MAC层送过来的数据块,变成能在空中传输的无线信号。
我习惯把物理层比作「翻译官」:
- MAC层送来的传输块(Transport Block),是「数字世界的语言」
- 物理层把它编码、调制、映射到资源格上,变成「无线世界的语言」
- 接收端物理层再把它翻译回来,交给MAC层
为什么会这样设计?因为无线信道太不靠谱了。多径衰落、干扰、噪声,随便哪个都能让数据出错。物理层就是要在这种恶劣环境下,保证数据能正确传输。
避坑指南:我曾经犯过一个错误——把物理层和MAC层的接口时序搞反了。物理层处理完数据后,要严格按照子帧边界把数据送给MAC层。早送或晚送,都会导致调度失败。嗯,后来我在代码里加了个定时器,专门卡这个边界。
1.3 物理层核心功能:编码、调制、资源映射
物理层的核心功能,我总结为三大块:编码、调制、资源映射。咱们一个一个说。
1.3.1 编码:给数据穿上防弹衣
编码的目的,说白了就是让数据在传输过程中能抗干扰。5G NR用了两种编码:
- LDPC码(低密度奇偶校验码):用于数据信道。它的特点是并行性好,解码速度快。我在做FPGA实现时,LDPC解码器占了将近40%的逻辑资源。
- Polar码(极化码):用于控制信道。它的特点是短码性能好,适合传输少量关键信息。
编码过程大致是:
传输块 → CRC添加 → 码块分段 → 每个码块加CRC → LDPC/Polar编码 → 速率匹配 → 码块级联
这里有个坑:速率匹配。它要根据实际分配的物理资源,把编码后的比特数调整到刚好能塞进资源格。我刚开始做的时候,速率匹配的算法没调对,导致解码端一直报错。后来发现是打孔(puncturing)的位置算错了。
1.3.2 调制:把比特变成符号
调制就是把0和1变成复数符号。5G NR支持的调制方式有:
| 调制方式 | 每符号比特数 | 典型应用场景 |
|---|---|---|
| QPSK | 2 | 控制信道、低信噪比场景 |
| 16QAM | 4 | 中等速率数据 |
| 64QAM | 6 | 高速率数据 |
| 256QAM | 8 | 高信噪比、室内场景 |
你想想看,调制阶数越高,每个符号携带的比特越多,但抗干扰能力越差。基站会根据信道质量动态选择调制方式。这就是链路自适应(Link Adaptation)。
注意:调制映射时,星座点的功率归一化一定要做对。我见过有人直接用整数映射,结果发射功率超标,被射频同事找上门来。正确的做法是:每个星座点都要乘以归一化因子,保证平均功率为1。
1.3.3 资源映射:把符号摆到正确的位置
资源映射,就是把调制后的符号,放到时频资源格(Resource Grid)上。5G NR的资源格由以下元素组成:
- 资源元素(RE):一个OFDM符号上的一个子载波,是最小资源单位
- 资源块(RB):12个连续子载波 × 1个时隙,是调度最小单位
- 资源块组(RBG):多个RB组成,用于下行调度
资源映射的顺序是:先频域后时域。也就是说,先把一个OFDM符号上的所有子载波填满,再填下一个符号。
这里有个细节:参考信号(如DMRS、CSI-RS)要优先映射。我习惯的做法是:先预留参考信号的位置,再把数据符号填到剩下的RE里。否则参考信号和数据冲突,解调就乱套了。
经验之谈:资源映射的代码,一定要做边界检查。我在项目中遇到过,因为RB数算错了,数据符号写到了资源格外面,导致内存越界。嗯,从那以后我每个映射函数都加了assert。
1.4 小结
今天咱们聊了5G物理层的三个核心点:
- 标准演进:从Release 15到Release 18,每个版本都有新东西
- 协议栈位置:物理层在MAC层下面,负责数字信号到无线信号的转换
- 核心功能:编码(LDPC/Polar)、调制(QPSK到256QAM)、资源映射(时频资源格)
下一章,咱们会深入OFDM和波形生成。那是物理层最底层的技术,也是5G NR和4G LTE最大的区别之一。到时候我会讲讲CP-OFDM和DFT-s-OFDM的区别,以及我在做波形生成时踩过的坑。
好,今天就到这儿。有问题欢迎交流。