首页 › deep-tech › 5G信号处理:FFT与信道编码原理图解

5G信号处理:FFT与信道编码原理图解

从傅里叶变换到LDPC/Polar码,理解通信系统中最核心的数学工具


一、从一个比喻说起

想象你在听一场交响乐演出。舞台上有一百件乐器同时演奏——小提琴、大提琴、长笛、圆号……这些声音混合在一起,传到你耳朵里只是一团复杂的声波。但你的大脑能分辨出每一件乐器的声音。这就是傅里叶变换在做的事情:从一团混合信号中,分离出每个频率分量。

再想象你要给远方的朋友寄一封重要信件,但邮路不太可靠,信件可能被雨水打湿、部分字迹模糊。聪明的做法是:在信里加入一些冗余信息,比如关键段落重复写两遍,或者加一串校验码。即使部分内容损坏,收信人也能还原出完整信息。这就是信道编码的精髓。

这两项技术——频域变换和前向纠错编码——构成了现代通信系统信号处理的两大支柱。本文将从工程直觉出发,逐一拆解它们的原理。


二、信号处理全链路:数据是怎么变成电磁波的

在深入每个模块之前,先看一张全景图。一个典型的5G下行数据传输链路如下:

图表1

图表 1

这张图里有两个关键处理环节:

  1. 信道编码(步骤B):给原始数据添加冗余,对抗传输中的噪声和干扰
  2. IFFT(步骤G):把频域信号转换为时域波形,实现OFDM多载波调制

下面我们分别深入。


三、FFT/IFFT:通信系统的心脏

3.1 为什么需要频域思维?

时域和频域是观察同一个信号的两种视角。就像看一幅画——你可以一笔一笔地看它的线条(时域),也可以分析它用了哪些颜色的颜料(频域)。

在通信中,我们更习惯在频域设计和操作系统。原因很直观:

维度 时域视角 频域视角
带宽 看信号持续时间和波形变化 直接看到占用哪些频率
多用户 时分复用,分配时隙 频分复用,分配子载波
干扰分析 波形叠加,难以区分 各频率分量独立清晰
滤波 需要卷积运算 简单的频率选择

3.2 DFT到FFT:计算量的飞跃

离散傅里叶变换(DFT)的定义:

$$X[k] = \sum_{n=0}^{N-1} x[n] \cdot e^{-j\frac{2\pi}{N}nk}, \quad k = 0, 1, \ldots, N-1$$

直接计算DFT,每个输出点需要N次复数乘法,总共N个点就是 $N^2$ 次。当N=4096时,需要约1678万次复数乘法。

快速傅里叶变换(FFT)利用了旋转因子 $W_N^{nk} = e^{-j\frac{2\pi}{N}nk}$ 的对称性和周期性,将计算量降到:

$$\text{FFT计算量} = \frac{N}{2} \log_2 N$$

同样N=4096时,只需要约24576次复数乘法——效率提升了683倍。

参数 DFT直接计算 FFT算法
N=64 4,096次 192次
N=256 65,536次 1,024次
N=1024 1,048,576次 5,120次
N=4096 16,777,216次 24,576次
复杂度 $O(N^2)$ $O(N\log_2 N)$

3.3 蝶形运算:FFT的核心结构

FFT的关键是蝶形运算(Butterfly Operation)。以基2 FFT为例,每一级将N个数据两两配对,执行一次简单的加减运算:

图表2

图表 2

对于N=8的FFT,需要3级蝶形运算,每级4个蝶形:

图表3

图表 3

工程直觉:FFT蝶形结构的最大价值在于天然适合硬件并行。每个蝶形运算独立,FPGA/ASIC可以同时执行多个蝶形。这也是为什么5G基站能在微秒级完成4096点FFT——数百个蝶形运算单元并行工作。

3.4 IFFT在OFDM中的角色

在OFDM系统中,IFFT是调制器,FFT是解调器。为什么是IFFT而不是FFT用于发送端?

回想DFT公式。IFFT的数学定义:

$$x[n] = \frac{1}{N} \sum_{k=0}^{N-1} X[k] \cdot e^{j\frac{2\pi}{N}nk}$$

在OFDM中: - $X[k]$ 是第k个子载波上承载的数据符号(QAM符号) - $x[n]$ 是合成的时域OFDM符号 - 每个复指数 $e^{j\frac{2\pi}{N}nk}$ 就是一个子载波

用类比理解:IFFT就像一个混音器。每个子载波是一件乐器的声音,IFFT把所有乐器的声音混合成一首完整的交响乐(时域信号)。接收端的FFT则是把交响乐拆解回每件乐器的独奏。

图表4

图表 4

3.5 CP(循环前缀)为什么必须存在?

IFFT生成的OFDM符号在通过多径信道后,会产生符号间干扰(ISI)。解决方法是复制OFDM符号尾部的信号,粘贴到前面作为循环前缀(CP)。

为什么不是简单补零? 因为循环前缀使得OFDM符号与信道之间的线性卷积变成了循环卷积。循环卷积在频域对应于简单的逐点乘法:$Y[k] = H[k] \cdot X[k]$。这大大简化了接收端的信道均衡——只需一次除法就能恢复数据。

5G NR中定义了两种CP:

CP类型 长度(相对符号长度) 适用场景
Normal CP ~7% 常规场景,频谱效率高
Extended CP ~25% 大时延扩展场景(如MBMS单频网)

四、信道编码:让数据在噪声中幸存

4.1 香农定理与编码的意义

1948年,香农证明了划时代的信道编码定理:只要传输速率低于信道容量,就一定存在某种编码方式,使得误码率可以任意小。

$$C = B \cdot \log_2\left(1 + \frac{S}{N}\right)$$

其中 $C$ 是信道容量(bps),$B$ 是带宽(Hz),$S/N$ 是信噪比。

但香农只证明了存在性,没有给出具体怎么构造这样的码。此后几十年,通信工程师们一直在寻找逼近香农限的实用编码方案。

4.2 信道编码的演进路线

图表5

图表 5

这张时间线解释了为什么5G没有沿用4G的Turbo码——不是因为Turbo码不好,而是因为不同场景需要不同的最优解。

4.3 信道编码在5G中的分工

信道类型 编码方案 典型载荷大小 选择理由
PDSCH/PUSCH(数据) LDPC码 数百~数万比特 长码性能优、并行吞吐高
PDCCH/PUCCH(控制) Polar码 数十~数百比特 短码性能优、构造确定
PBCH(广播) Polar码 固定32比特 短码场景
DCI/UCI Polar码 20~140比特 可靠性优先

五、LDPC码:数据信道的守护者

5.1 核心思想:稀疏的关系网

LDPC(Low-Density Parity-Check)码的核心是一个稀疏的校验矩阵H。所谓"低密度",是指矩阵中1的个数远少于0的个数。

用比喻理解:想象一个工厂有100个工人(信息比特)和50个质检员(校验方程)。每个质检员只检查少数几个工人的工作(稀疏连接),每个工人也只被少数几个质检员检查。通过质检员之间反复交换信息(迭代),最终能精确定位哪些工人出了错。

这种结构用Tanner图表示最直观:

图表6

图表 6

5.2 译码过程:置信度传播

LDPC译码采用置信度传播(Belief Propagation, BP)算法,也称为和积算法(Sum-Product Algorithm)。核心步骤:

  1. 初始化:每个变量节点收到信道观测值,计算初始置信度
  2. 变量节点→校验节点:每个变量节点把收到的所有置信度(除了目标校验节点的)求和,发送给相连的校验节点
  3. 校验节点→变量节点:每个校验节点利用校验方程的约束,计算新的置信度,反馈给变量节点
  4. 判决:对每个变量节点,汇总所有输入置信度,做硬判决
  5. 校验:用校验矩阵H检验,如果满足 $H \cdot \hat{x}^T = 0$,译码成功;否则返回步骤2

工程直觉:BP算法的每一次迭代,就像质检员们开一轮会。第1轮可能只有60%的置信度,经过几轮信息交换后,置信度可能提升到99.9%。实际5G系统中通常5~20次迭代就能收敛。

5.3 5G NR LDPC码的特殊设计

5G标准为LDPC码定义了两张基图(Base Graph):

参数 BG1 BG2
适用码长 较长(≥3840比特偏好) 较短(<3840比特偏好)
适用码率 中高码率(0.33~0.93) 低码率(0.03~0.67)
基图大小 46×68 42×52
典型场景 eMBB大数据传输 小包/物联网数据

提升结构(Lifting):基图中的每个非零元素被一个 $Z \times Z$ 的循环置换矩阵替代。$Z$ 称为提升值,范围从2到384。这种结构使得硬件实现可以用循环移位寄存器高效完成,大幅降低存储和计算开销。

5.4 工程实践要点

调试LDPC译码器时的常见问题:

  1. 错误平层(Error Floor):当信噪比提高到一定程度后,误码率曲线不再线性下降,出现平台。这通常由Tanner图中的短环(4环、6环)导致。5G LDPC通过精心设计的基图避免了这个问题。
  2. 量化精度:BP算法涉及大量概率运算,硬件实现时需要量化。量化位数不足会导致性能损失1~3dB,过多则浪费资源。工程上通常选择6~8位量化。
  3. 吞吐量瓶颈:5G NR要求下行峰值速率20Gbps,LDPC译码器需要极高的处理吞吐。实际芯片中通常使用多层并行架构,几十个处理单元同时工作。

六、Polar码:控制信道的精准利器

6.1 信道极化:一个美丽的数学现象

2009年,土耳其比尔肯特大学的Erdal Arıkan教授发现了一个令人惊叹的数学现象——信道极化。

将N个相同的二进制对称信道经过特定的递归变换后,信道容量会发生极化:一部分信道的容量趋近于1(完美信道),另一部分趋近于0(完全不可靠)。当N趋近无穷大时,极化效果越彻底。

$$\text{信道极化}:W \xrightarrow{\text{变换}} {W_N^{(i)}}, \quad i = 0, 1, \ldots, N-1$$

其中部分 $I(W_N^{(i)}) \to 1$(好信道),部分 $I(W_N^{(i)}) \to 0$(坏信道),且:

$$\sum_{i=0}^{N-1} I(W_N^{(i)}) = N \cdot I(W)$$

总容量守恒,只是重新分配了。

用比喻理解:想象你有一箱苹果(N个信道),有些新鲜有些有点烂。通过一种特殊的分拣方法(极化变换),你能把这箱苹果分成两堆——一堆全是好苹果(信息比特放这里),一堆全是烂苹果(固定比特放这里)。分拣方法越精细(N越大),分得越彻底。

6.2 编码过程

Polar码的编码用一个简洁的矩阵乘法完成:

$$\mathbf{x} = \mathbf{u} \cdot G_N$$

其中 $G_N$ 是生成矩阵,由基本核矩阵递归构造:

$$G_2 = \begin{bmatrix} 1 & 0 \ 1 & 1 \end{bmatrix}, \quad G_N = G_2^{\otimes n} \quad (N = 2^n)$$

编码的关键是比特分配: - 选择可靠性最高的K个信道位置,放置信息比特 - 剩余N-K个位置放置冻结比特(通常设为0)

图表7

图表 7

6.3 译码:逐比特消除

Polar码最经典的译码算法是逐次消除(Successive Cancellation, SC)译码。其核心思想是:按顺序逐个判断每个比特的值,已判断的比特作为已知条件辅助后续判断。

SC译码的数学表达:

$$\hat{u}_i = \begin{cases} h_i(y, \hat{u}_0^{i-1}) & \text{if } i \in \mathcal{A} \text{(信息位)} \ 0 & \text{if } i \in \mathcal{A}^c \text{(冻结位)} \end{cases}$$

其中 $h_i$ 是判决函数,$\mathcal{A}$ 是信息位集合。

SC译码的问题:一旦某个比特判错了,错误会传播到后续所有比特。为了解决这个问题,5G NR采用了CRC辅助的SC列表译码(CA-SCL):

译码算法 原理 复杂度 性能
SC 逐比特硬判决 $O(N\log N)$ 一般
SCL 保留L条候选路径 $O(LN\log N)$ 较好
CA-SCL SCL + CRC校验选最优 $O(LN\log N)$ 非常好

CA-SCL的巧妙之处在于:同时维护L条(通常L=8或16)候选译码路径,最后用CRC校验来选择正确的那条。这就像迷宫搜索时同时探索L条路,最后选择能到达出口的那一条。

6.4 为什么5G控制信道选Polar而不选LDPC?

这个问题是3GPP标准化会议上的核心争议。最终选择Polar的原因:

  1. 短码性能:控制信息通常只有20~140比特。在这个码长范围内,Polar码(CA-SCL译码)的性能优于LDPC
  2. 确定性构造:Polar码的可靠性序列是确定性的,不存在LDPC的随机构造问题,更适合固定格式的控制信道
  3. 无错误平层:Polar码理论上不存在错误平层问题,这对控制信道的高可靠性要求至关重要
  4. 实现复杂度可控:控制信道速率低,Polar译码的串行性不是瓶颈

七、信号处理链路的完整协作

回到开头的全景图,让我们用一个完整的数值案例串联所有环节:

示例:5G NR下行传输一个TB(Transport Block)

假设一个1000字节的TB需要通过PDSCH传输:

处理步骤 输入 操作 输出
1. CRC附加 8000比特 加24bit CRC 8024比特
2. 码块分段 8024比特 分成2个CB CB1: 4012, CB2: 4012
3. CB级CRC 4012×2 每个CB加24bit CRC 4036×2
4. LDPC编码 4036×2 BG1编码,码率0.5 8072×2编码比特
5. 速率匹配 8072×2 打孔/重复到目标长度 匹配后编码比特
6. 比特交织 匹配后比特 交织抗突发错误 交织后比特
7. QAM调制 交织后比特 256QAM映射 QAM符号
8. RE映射 QAM符号 映射到资源网格 频域信号
9. IFFT 频域信号 4096点IFFT 时域OFDM符号
10. 加CP OFDM符号 复制尾部到前端 完整发射信号

八、FFT与信道编码在工程调试中的实战连接

8.1 频域分析定位干扰

当基站出现高BLER(块错误率)时,工程师需要判断是哪个环节出了问题:

8.2 LDPC译码迭代次数的工程意义

平均迭代次数 含义 建议动作
1~3次 信道质量极好 可提升MCS(更高阶调制)
4~8次 正常工作范围 保持当前配置
9~15次 信道质量恶化 考虑降MCS或增大发射功率
接近上限 严重恶化,可能译码失败 检查RF前端、干扰源

8.3 常见调试陷阱

  1. CP长度不足:在山区或密集城区,多径时延可能超过Normal CP的长度。此时不应怀疑FFT或编码模块,而应切换到Extended CP。
  2. 时钟频偏:发射端和接收端的晶振频率微小偏差,会导致FFT之后子载波正交性被破坏。这不是编码问题,而是同步问题。
  3. LDPC基图选择错误:如果码长和码率落在BG2的适用范围却选了BG1(或反之),性能会显著下降。实际系统中MAC层会根据TB大小和码率自动选择。
  4. 量化溢出:LDPC译码器内部使用定点数运算,信噪比极高时可能出现溢出,反而导致误码。这不是算法问题,是工程实现问题。

九、信道编码方案对比全景

对比维度 LDPC码 Polar码 Turbo码(4G)
发明时间 1962年(Gallager) 2009年(Arıkan) 1993年(Berrou)
理论最优性 长码逼近香农限 理论证明可达香农限 长码逼近香农限
5G应用 数据信道 控制信道 不使用
4G应用 不使用 不使用 数据+控制信道
最优码长 中长码(>500bit) 中短码(<500bit) 中码(~1000bit)
译码并行度 高(BP迭代) 低(SC串行) 中(迭代但串行约束)
吞吐量 极高(>20Gbps) 中等 受限(~1Gbps瓶颈)
实现灵活度 码率/码长灵活 码长必须为2的幂次 固定多项式
错误平层 可能存在 不存在 可能存在

十、从原理到实践:三个关键认知

认知1:FFT不是"频谱分析仪"

很多初学者把FFT理解为"显示频谱的工具"。在通信系统中,FFT/IFFT是信号生成的核心模块。发射端用IFFT把频域数据变为时域波形,接收端用FFT把时域波形还原为频域数据。没有FFT/IFFT,OFDM的数百个子载波需要数百个独立的振荡器,这在成本和体积上不可接受。

认知2:信道编码不是"加密"

信道编码(LDPC/Polar)和加密是完全不同的功能。信道编码的目的是对抗信道噪声,增加冗余使接收端能纠正错误。任何人拿到编码后的数据,只要知道编码参数,就能还原原始信息。加密则是为了防止未授权访问。

认知3:编码增益是"免费的午餐"

使用LDPC编码后,在相同误码率下可以降低约7~9dB的发射功率。这意味着: - 基站覆盖范围可以扩大(约2倍半径) - 终端电池续航可以延长 - 或者在不增加功率的前提下提升传输速率

这7~9dB就是编码增益——不额外占用频谱资源,纯靠算法获得的性能提升。


常见问题

Q1: 为什么5G不统一用一种编码方案?

A: 因为没有一种编码在所有场景下都是最优的。LDPC在长码、高吞吐场景下表现优异;Polar在短码、高可靠性场景下更有优势。这就像越野车和跑车——各有所长,混搭使用效果最好。

Q2: FFT点数越大越好吗?

A: 不是。FFT点数增大带来更高的频率分辨率,但也增加了CP开销和时延。5G NR中FFT点数与子载波间隔和带宽相关。120kHz子载波间隔下100MHz带宽需要4096点FFT;而15kHz子载波间隔下5MHz带宽只需512点。选择要匹配实际信道条件和业务需求。

Q3: LDPC和Turbo码的本质区别是什么?

A: LDPC基于图模型(Tanner图),译码通过节点间消息传递实现,天然并行;Turbo码基于级联卷积码+交织器,译码是两个分量译码器之间迭代交换外信息。LDPC的并行性使其在5G高速数据传输中吞吐量远超Turbo。

Q4: Polar码的"冻结比特"有什么实际意义?

A: 冻结比特是放在极化后"坏信道"上的固定值(通常为0)。它们不携带信息,但为"好信道"上的信息比特提供了已知的参考点,帮助译码器更准确地推算信息比特。可以理解为牺牲一部分传输效率,换取更高的可靠性。

Q5: 实际设备中FFT是软件实现的吗?

A: 基站和手机中的FFT/IFFT通常由专用硬件(硬件加速器)完成,不是软件在CPU上运行。因为FFT需要极高的实时性(微秒级完成数千点运算),通用CPU无法满足时延要求。基带芯片中通常有独立的FFT/IFFT硬核模块。


参考来源

  1. 5G NR信道编码架构:LDPC和Polar(Engee文档) — 5G NR LDPC与Polar编码架构完整分析
  2. Demystifying 5G Polar and LDPC Codes: A Comprehensive Review (arXiv) — 5G Polar与LDPC码的学术论文综述
  3. 5G信道编码演进史及LDPC与Polar码核心原理(阿里云开发者社区) — 从Turbo到LDPC/Polar的演进历程与核心原理
  4. LDPC and Polar Coding in 5G NR — Complete 3GPP TS 38.212 Guide (CafeTele) — 基于3GPP标准的LDPC/Polar编码实现指南
  5. PySDR: A Guide to SDR and DSP using Python — Channel Coding — 用Python实现信道编码的交互式教程

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入