2. OFDM与波形设计:从原理到实战

各位好,我是老张。今天咱们聊聊OFDM——5G物理层最核心的波形技术。说实话,我刚入行那会儿,觉得OFDM就是个数学公式堆砌的东西。直到在项目中调试时,亲眼看到CP长度没配好导致小区边缘用户全掉线……嗯,从那以后我才真正理解,纸上得来终觉浅。

2.1 OFDM基本原理:为什么5G选它?

OFDM,全称正交频分复用。说白了,就是把一个高速数据流,拆成N个低速子数据流,分别调制到N个正交的子载波上发送。

为什么要这么干?两个核心原因:

  • 对抗多径衰落:单载波系统里,多径时延扩展会导致严重的符号间干扰(ISI)。OFDM把符号周期拉长N倍,多径时延相对就变小了。我做过仿真,在典型城区信道下,OFDM的误码率比单载波低两个数量级。
  • 频谱效率高:子载波之间正交,允许频谱重叠。你想想看,传统FDM要留保护带,OFDM不用,频谱利用率直接翻倍。

核心公式(记住这个):

s(t) = Σ X[k] · e^(j2πkΔf·t)   (0 ≤ t < T)

其中Δf是子载波间隔,T是OFDM符号周期。X[k]是第k个子载波上的调制符号(QPSK、16QAM等)。

我个人习惯把OFDM调制看作一个IDFT过程。实际上,基带实现就是用IFFT完成的。举个例子,一个20MHz带宽的LTE系统,2048点IFFT,子载波间隔15kHz——这些数字你最好记在心里,面试常考。

2.2 CP-OFDM vs DFT-s-OFDM:两个流派

5G NR支持两种上行波形:CP-OFDM和DFT-s-OFDM。为什么搞两套?我来给你讲讲背后的故事。

2.2.1 CP-OFDM:正统继承者

CP-OFDM就是传统OFDM加了个循环前缀(CP)。CP的作用是什么?两个:

  1. 消除ISI:CP长度大于最大多径时延,前一个符号的拖尾就被CP吃掉了。
  2. 保持子载波正交性:CP把线性卷积变成循环卷积,FFT解调时正交性不受影响。

我在项目中遇到过一个问题:CP长度配短了,导致高速移动场景下子载波间干扰(ICI)飙升。后来查3GPP协议才发现,不同子载波间隔对应的CP长度有严格规定,不能随便改。

避坑指南:我曾经在某个基站调测中,把CP长度设成了协议规定值的一半,想着省点开销。结果上行吞吐量直接掉了30%。后来老老实实按协议来,问题解决。CP开销是必要的,别省。

2.2.2 DFT-s-OFDM:上行利器

DFT-s-OFDM,也叫SC-FDMA。它和CP-OFDM最大的区别是:在IFFT之前先做一次DFT(预编码)。

为什么要多此一举?因为峰均比(PAPR)更低。CP-OFDM的时域信号是多个子载波叠加,峰值功率很高,对功放线性度要求苛刻。DFT-s-OFDM本质上是单载波传输,PAPR低3-4dB。

你想想看,手机终端的功放就那么点功率,PAPR高了,回退就大,覆盖就差了。所以5G NR上行强制支持DFT-s-OFDM,就是为了照顾终端。

对比项 CP-OFDM DFT-s-OFDM
PAPR 高(约11-12dB) 低(约7-8dB)
频谱效率 高(灵活调度) 略低(频域资源连续)
接收机复杂度 低(单点频域均衡) 略高(需IDFT解预编码)
典型应用 下行(基站发) 上行(终端发)

我的经验:在5G基站实现中,上行接收机要同时支持两种波形。我建议用统一的FFT引擎,通过配置切换模式。DFT-s-OFDM的接收端,先做FFT,再做IDFT解预编码——注意,这里的IDFT大小和DFT大小一致,别搞混了。

2.3 子载波间隔与Numerology:5G的灵活之道

5G NR和LTE最大的不同,就是支持多种子载波间隔。LTE只有15kHz一种,5G NR从15kHz到240kHz,共5种。

为什么需要多种子载波间隔?因为场景不同,需求不同

  • 15kHz:大覆盖、低频段(sub-6GHz),和LTE兼容
  • 30kHz:中频段(C-band),典型5G部署
  • 60kHz:高频段(毫米波),低时延场景
  • 120kHz:超高频,用于V2X等极低时延场景

子载波间隔和符号长度是反比关系:Δf越大,符号周期越短。举个例子:

15kHz: 符号周期 = 1/15000 ≈ 66.7μs
30kHz: 符号周期 = 1/30000 ≈ 33.3μs
60kHz: 符号周期 = 1/60000 ≈ 16.7μs

符号周期短了,时延就低了。但代价是CP开销变大(CP长度固定为符号周期的约7%)。

Numerology参数速查表:

μ Δf (kHz) 符号长度 (μs) CP长度 (μs) 典型场景
0 15 66.7 4.7 LTE兼容、大覆盖
1 30 33.3 2.3 5G中频、eMBB
2 60 16.7 1.2 高频、URLLC
3 120 8.3 0.6 毫米波、V2X

我记得在开发5G基站时,有个坑:不同numerology的符号边界要对齐。比如30kHz的2个符号,正好等于15kHz的1个符号。这样在频域上才能灵活复用。3GPP协议里叫"时域对齐",实现时要注意帧结构的整数倍关系。

注意:子载波间隔越大,对频偏越敏感。120kHz下,1ppm的频偏就会导致严重的ICI。我曾经在毫米波测试中,因为本地振荡器没锁好,整个带宽内的子载波都串扰了。后来加了频偏估计和补偿模块才搞定。

2.4 波形实现的实战要点

最后,分享几个我在基站物理层实现中的心得:

  1. IFFT/FFT引擎要可配置:支持不同点数(128到4096),对应不同带宽和numerology。
  2. CP插入要精确:CP长度是符号周期的1/14(常规CP)或1/8(扩展CP),别算错。
  3. DFT-s-OFDM的预编码矩阵:DFT大小等于分配的RB数×12,不是固定值。我建议用查表法实现DFT,比实时计算快得多。
  4. 波形切换:同一个时隙内,不同符号可以用不同波形。比如控制信道用CP-OFDM,数据信道用DFT-s-OFDM。实现时要注意流水线切换的时序。

好了,OFDM这部分就聊到这儿。下一章咱们讲信道编码——LDPC和Polar码,那可是5G的另一个重头戏。有什么问题,欢迎在评论区交流。