你按下一张图片的发送键,几十万个比特要在几毫秒内穿过一条充满反射、绕射、多普勒频移的恶劣无线信道。它们凭什么能活着到达对面?答案藏在两道加工工序里:先变换,再纠错。变换工序(FFT/IFFT)解决“怎么把宽带信号塞进恶劣信道而不碎掉”;纠错工序(LDPC/Polar码)解决“碎了之后怎么把它拼回来”。这两道工序一个管“防碎”,一个管“拼接”,合起来构成了现代空口的骨架。本文把这两件事拆开讲透:为什么OFDM离不开FFT,为什么纠错码要在图上“开会”,以及5G为什么让LDPC和Polar各管一摊。
先用一个日常类比。你在音乐厅听到一个和弦,耳朵接收到的是一条连续变化的声波(时域);但钢琴师眼里看到的是几个琴键(频域)。同一段声音,两种视角:时域告诉你“空气压强随时间怎么变”,频域告诉你“这条波形由哪几个纯音、各占多少比例叠加而成”。傅里叶变换就是这两种视角之间的翻译官,而且翻译是无损的——任何一段波形都能唯一分解成一组正弦波,反过来也能完美合成。
无线通信为什么死磕频域视角?因为无线信道的破坏方式,用频域语言描述起来简单得多。
基站发出的信号会在楼宇、山体、车辆上反射,多条路径先后到达接收机,时域上表现为信号被“拖尾”——第0微秒发出的符号和第1微秒发出的符号在空中叠在一起,这叫码间串扰。在时域里修补它,需要一个抽头数量等于信道时延长度的复杂滤波器逐点卷积,运算量巨大且必须实时跟踪信道变化。
但傅里叶变换有一条神奇的性质:时域的卷积,等于频域的乘法。多径信道在时域里是一团乱麻的卷积,到了频域里就退化成“每个频率点上乘一个复数”。修补动作从“解一条微分方程”简化成“每个频点除以一个数”。通信系统工程师看到这个性质的心情,大概等于账房先生发现除法可以代替解方程——整套均衡理论瞬间从大学课程变成小学算术。
这个性质是第一道工序的出发点:把信号设计在频域,用变换把它送到时域发射,接收后再变换回频域做“逐点除法”式的轻量修补。
正交频分复用的想法早在上世纪60年代就有人提出:把宽带信道切成几百上千个互相正交的窄子载波,每个子载波上衰落近似平坦,各自承载一个星座点。但这个想法当年根本没法商用,卡点不在理论,在算力。
把比特装上子载波,数学上就是离散傅里叶反变换(IDFT)。它的朴素算法长这样:
$$X[k] = \sum_{n=0}^{N-1} x[n] \, e^{-j 2\pi kn / N}$$
对N个点做一次变换,要进行约 $N^2$ 次复数乘法。问题在于宽带系统的N大得吓人:20MHz的LTE信号用2048点变换,100MHz的5G信号用4096点。按朴素算法,4096点要做约1677万次复数乘法——这还只是一个OFDM符号,每毫秒要处理十几个符号。用60年代的硬件,这等于宣判OFDM死刑。
转机来自一个看似纯数学的观察:$N^2$ 次乘法里有海量重复计算。傅里叶变换的核 $e^{-j2\pi kn/N}$ 具有周期性和对称性,把一个N点DFT按奇偶下标拆成两个N/2点DFT,算完再合并,总运算量会大幅下降;拆下去还可以继续拆,直到每个子问题只剩2个点。这就是快速傅里叶变换(FFT)的分治思想——注意它不是一种新变换,DFT和FFT算的是同一个东西,FFT只是算得更聪明。顺带一提,这套分治思路最早可追溯到1805年高斯的手稿,但真正改变世界是1965年Cooley和Tukey重新发表之后——他们的动机之一是处理地震监测信号,用于核查核试验。
分治之后,复杂度从 $N^2$ 降到 $N \log_2 N$:
$$\mathcal{O}(N^2) \;\longrightarrow\; \mathcal{O}(N \log_2 N)$$
省多少?看账本:
| 变换点数 N | 朴素DFT乘法次数(约N²) | FFT乘法次数(约N/2·log₂N) | 节省倍数 |
|---|---|---|---|
| 64 | 4,096 | 192 | 21倍 |
| 1024 | 约105万 | 5,120 | 205倍 |
| 2048 | 约419万 | 11,264 | 372倍 |
| 4096 | 约1,677万 | 24,576 | 683倍 |
N越大,FFT的优势越夸张。正是这几百倍的节省,让1971年Weinstein和Ebert提出的“用DFT实现OFDM”从论文变成了产业:4G、5G、Wi-Fi、数字电视、ADSL,几乎所有宽带体制都踩在FFT肩膀上。可以说,没有FFT就没有OFDM的商用,没有OFDM就没有你手机上的满格信号。
再看空口信号加工的全流程,FFT/IFFT嵌在哪一环一目了然:
flowchart TD
A["信息比特"] --> B["信道编码 加冗余"]
B --> C["QAM星座映射"]
C --> D["串并转换 每符号一列"]
D --> E["IFFT 频域搬上子载波"]
E --> F["加循环前缀CP"]
F --> G["数模变换 射频发射"]
G --> H["多径无线信道"]
H --> I["接收 去CP"]
I --> J["FFT 时域还原频域"]
J --> K["频域均衡 每载波一除"]
K --> L["QAM软解调"]
L --> M["迭代译码 还原比特"]
注意一个初学者常见困惑:发射端用IFFT、接收端用FFT,不是“发射端更高级”或“顺序反了”。原因纯粹是设计视角:我们天然知道“想让第37号子载波承载哪个星座点”(频域视角是设计图纸),IFFT负责按图纸合成出实际要发射的时域波形;接收机拿到被信道搅乱的波形,再用FFT还原回频域图纸。IFFT和FFT是同一套算法的正反两个方向,现代芯片里通常共用一套硬件单元,只是把旋转因子取共轭、输出序列换个方向。
上图里有个不起眼的步骤“加循环前缀CP”,它是频域均衡能退化成“逐点除法”的隐藏前提,值得单讲。
多径时延会把前一个符号的尾巴拖进后一个符号的头里。OFDM的对策很直白:把每个符号末尾的一段复制一份,贴到符号开头。只要这段复制的长度大于信道最大时延,那么就算多径把尾巴拖进来,拖进来的也只是本符号自己的复制体,不会污染下一个符号。代价是这段复制不传有效信息,纯开销——常规配置下CP约占符号时长的7%,相当于发100个比特的时间里有7个比特的时间在“复读”。
更妙的是,复制尾巴这个动作让发射信号在符号周期内呈现周期性,多径卷积从普通的线性卷积变成了循环卷积,而循环卷积在离散傅里叶变换下恰好严格对应频域逐点相乘。也就是说:没有CP,FFT乘法的优雅就不成立;有了CP,接收机FFT之后每个子载波只需除以一个复数。这7%的开销,买来的是均衡复杂度的断崖式下降,顺便还附赠了符号定时同步的参考信号,是通信史上性价比最高的一笔交易之一。
但正交性是脆弱的。子载波互相正交的前提,是每个子载波在符号周期内恰好包含整数个振荡周期。一旦收发两端存在载波频偏(多普勒或晶振偏差),这个整数关系被破坏,一个子载波的能量就会泄漏到所有其他子载波上,形成子载波间干扰(ICI),而且这种干扰没法用逐点除法修复。高速移动场景选大子载波间隔、毫米波频段头疼相位噪声,背后的病根都是这一个。
FFT解决了“信号别碎掉”,但恶劣信道只能做到“少碎”,做不到“不碎”。信噪比就是那么低,误码必然发生。第二道工序的任务是:提前埋好冗余,让接收机有能力自动发现并纠正错误。
1948年香农用一个定理给整个行业立了规矩:任何信道都有一个容量上限 $C$,只要传输速率 $R < C$,就存在某种编码方式让误码率任意低;反之,超过 $C$ 则怎么编码都白搭。这个定理妙在只说了“存在”,没说“怎么造”——于是接下来五十年,编码学家们都在寻找逼近香农极限、同时译码器又能做得起的具体码型。三代主流纠错码的接力,本质上就是一场“离极限还有多远、译码芯片多少钱”的双线竞赛:
| 代际 | 代表技术 | 核心思想 | 局限 |
|---|---|---|---|
| 第一代(1950s起) | 汉明码、卷积码 | 代数结构或移位寄存器,硬判决纠错 | 距香农极限差好几个dB |
| 第二代(1993) | Turbo码 | 两个弱码并联互喂软信息,迭代逼近极限 | 长码时延大,高吞吐并行难 |
| 第三代(1990s复活/2009新生) | LDPC、Polar码 | 图上迭代消息传递 / 信道极化 | 各有擅长场景,见下文 |
冗余换可靠的账很好算:假设原始信息K个比特,编码后发出N个比特,码率 $R = K/N$。R=1/2意味着每1个有效比特搭1个冗余比特,开销100%,换来的是在很低信噪比下也能正确译码;R=8/9冗余只占12.5%,但需要更好的信道条件。链路自适应(MCS选择)干的事,就是在“多付冗余”和“少占资源”之间实时找平衡。
LDPC(低密度奇偶校验码)是1963年Gallager在MIT的博士论文里发明的。它的想法朴素得惊人:构造一个绝大多数元素是0的校验矩阵H,编码后的比特必须满足所有校验方程 $\mathbf{H}\mathbf{x}^{\mathrm{T}} = \mathbf{0}$。“低密度”三个字是灵魂——每个比特只参与少数几个校验方程,每个校验方程只看少数几个比特。
低密度带来的第一个好处是译码可以画成一张图:比特是一类节点(变量节点),校验方程是另一类节点(校验节点),谁参与谁的方程就连一条边。下面是一个4比特、3方程的小例子:
flowchart TD
V1["比特v1"] --> C1["校验方程c1"]
V2["比特v2"] --> C1
V3["比特v3"] --> C1
V2 --> C2["校验方程c2"]
V3 --> C2
V4["比特v4"] --> C2
V1 --> C3["校验方程c3"]
V4 --> C3
第二个好处藏在译码方式里。LDPC译码不是“算出一个答案”,而是一场多轮交叉质证。把每个比特想象成一句证词,每个校验方程想象成一个陪审团:陪审团本身不知道真相,它只检查交给自己的几句证词是否自洽。每轮迭代中,比特节点把自己当前的“可信度”(对数似然比)告诉相邻陪审团,陪审团综合几份证词后反馈“根据其他证词,你的说法需要上调/下调可信度”;比特节点拿到多方第二意见后修正自己,再进入下一轮。如此往复,正确的比特越来越自信,错误的比特被周边证词逐渐扳正。
用流程图描述这场迭代:
flowchart TD
A["输入软信息似然比"] --> B["初始化变量节点"]
B --> C["变量节点向校验节点传话"]
C --> D["校验节点互证回话"]
D --> E["变量节点汇总修正"]
E --> F{"校验方程全通过"}
F -->|是| G["译码成功输出比特"]
F -->|否 且未到迭代上限| C
F -->|否 且到迭代上限| H["译码失败 计入误块"]
为什么这套“开会”流程能逼近香农极限?直觉上是冗余形成了多重互锁的证据链:一个比特出错,会在它参与的所有校验方程上同时制造矛盾,矛盾越多、定位越准。码长越长,证据链越长,一个孤立错误越难“伪装过关”——这就是长LDPC码性能可以做到距香农极限不到1dB的原因。
历史对这个码开了个残酷的玩笑:Gallager的论文发表在1963年,当时的计算机连一次完整的迭代仿真都跑不动,学界认为它没有实用价值,这个码被遗忘了几十年。直到1993年Turbo码横空出世、展示出“迭代软译码”的惊人威力,人们才想起三十年前那个被尘封的 idea——1990年代中期,MacKay和Neal等人重新发掘LDPC,用当时的计算机验证出同样的逼近极限性能。一段被冷落33年的好数学,就此封神。如今LDPC是5G数据信道、Wi-Fi、DVB-S2卫星广播、万兆以太网的御用编码。
极化码是2009年由土耳其教授Arıkan提出的,思路更加天马行空:不去改造单个信道的质量,而是把N条相同的信道“拧”在一起使用,让它们主动分化。
先看最简单的两条信道怎么拧。发送端发两个比特u1、u2,第一根天线(逻辑上)发 $x_1 = u_1 \oplus u_2$(异或),第二根发 $x_2 = u_2$:
flowchart TD
U1["信息比特u1"] --> X1["x1 = u1 异或 u2"]
U2["冻结比特u2"] --> X1
U2 --> X2["x2 = u2"]
X1 -->|差信道W-| Y1["噪声更大的判决"]
X2 -->|好信道W+| Y2["噪声更小的判决"]
Y1 --> Z["串行解出u1 再解u2"]
Y2 --> Z
拧完再拆开看,奇迹出现了:解u2时,不但有 $x_2$ 这路直接观察,解出u1之后 $x_1 = u_1 \oplus u_2$ 还能反推出一份对u2的独立观察——两份噪声平均下来,u2这条信道变好了(图中的好信道W+);而u1只能依赖带噪的 $x_1$,且此时u2还是未知数,它这条信道反而变差了(差信道W-)。两条一模一样的信道,拧一下,一条更烂、一条更好——这就是“极化”。
把2条扩到4条、8条……每条合成信道再互相拧,递归下去,信道的质量分布会像冰水混合物一样两极分化:一部分信道无限趋近于无噪声的完美信道,另一部分趋近于纯噪声的废信道。数学上可以证明,当N趋于无穷时,“好信道”占总数的比例恰好等于信道容量——不多不少。编码策略于是简单粗暴:信息比特只走好信道,坏信道上全部填收发双方约定好的“冻结比特”(通常是0)。编码矩阵由一个2×2的小核矩阵反复做Kronecker积生成:
$$F = \begin{bmatrix} 1 & 0 \ 1 & 1 \end{bmatrix}, \qquad G_N = F^{\otimes \log_2 N}$$
整个编码的复杂度是 $\mathcal{O}(N \log N)$——和FFT同款,这不只是巧合,两者的递归结构(蝴蝶图)几乎是同一张图。
译码采用串行抵消(SC):先凭观察硬着头皮判u1,然后把已判出的u1当作已知条件去判u2,再拿u1、u2一起判u3,像剥洋葱一样层层依赖。串行的好处是复杂度极低、时延确定,坏处是一步错步步错。工程上用“保留L条候选路径”的SCL译码缓解这个问题,再用一段CRC校验当裁判,从L条路径里挑出正确的那条——这套组合拳让极化码在几十比特的短码块上表现出色。
现在可以回答那个经典问题了:两个都是逼近极限的好码,为什么5G不让一个包揽所有业务?
| 维度 | LDPC | Polar |
|---|---|---|
| 诞生 | 1963年提出,1990年代复活 | 2009年提出 |
| 核心思想 | 稀疏校验图上的迭代置信传播 | 信道极化,好信道传信息坏信道冻结 |
| 译码方式 | 高度并行,可流水线化 | 串行抵消或SCL,逐比特依赖 |
| 擅长码长 | 中长码、高吞吐 | 短码 |
| 时延特性 | 迭代次数不定,吞吐极高 | SC时延确定可预算 |
| 典型岗位 | 数据业务信道(大块视频、下载) | 控制信道(调度指令、广播) |
答案藏在业务形状里。数据信道的码块动辄几千上万比特,追求极限吞吐——LDPC的消息传递天然并行,译码器可以做成大规模流水线,吞吐量随硬件规模线性扩展,正对口。控制信道传输的调度指令只有几十到一百多比特量级,短码块恰好是极化码的主场:码短,串行译码的时延累积也短,且在小码长下极化码的性能优势最明显。一个管 bulk(大宗货运),一个管 command(调度命令),各取所长。标准允许多种实现,具体参数配置以各厂家官方文档为准。
频谱仪与星座图的位置感。星座图不在天线上,而在“FFT+均衡”之后才成形。调试时看到的星座整体旋转、缓慢转动,多半是载波频偏或相位噪声在作祟——这正是第三节说的ICI前兆;星座收缩成糊团则是噪声主导,该看MCS和信号强度了。知道每个处理级输出什么,才能把故障定位到具体环节。
CP配置错误的经典病征。小区半径大、远端多径强的场景,若CP长度配置不足,边缘用户的首径与反射径跨越符号边界,误块率异常抬升,而近点用户毫无感觉。排查“为什么只有边缘用户掉话”时,CP和多径时延的匹配关系是必查项。
BLER与MCS的联动。现网通常把初始传输误块率目标定在10%左右——不是追求零误码,而是利用纠错码加HARQ重传的组合:初传故意留10%的错让重传兜底,换来更高的频谱效率。看到BLER常年0%反而要警惕,说明MCS选保守了,吞吐在白白流失。LDPC译码失败率(达到最大迭代仍未通过)则是芯片功耗与时延的重要观测量,迭代上限的设置本质是“成功率-功耗-时延”的三方谈判。
常见误解清单:其一,“FFT是OFDM专用的”——错,它是最通用的频谱分析工具,雷达、医学成像、音频处理全靠它;OFDM只是把它的正反两个方向都用上了。其二,“极化码理论更优,早晚取代LDPC”——错,极化的威力要在长码下才完全展开,而长码恰恰撞上串行译码的时延墙,两者是分工而非替代。其三,“纠错码能让误码为零”——不能,香农容量是天花板,低于速率上限才能无限逼近可靠,编码从来不是免费的,冗余就是成本。
Q: FFT和IFFT是两套不同的算法吗?硬件要不要做两份? A: 不是两套算法,是同一套DFT算法的正反方向,IFFT只是把旋转因子取共轭、输出再除以N。实际芯片里发射和接收通常共用一个FFT处理单元,配置不同参数即可,这也是为什么基带芯片的变换模块总按“每秒多少点”统一计量。
Q: 极化码是2009年才提出的,为什么能这么快就用进5G? A: 因为它补上了编码理论最后一块拼图——第一个被证明能严格达到信道容量、且编解码复杂度只有O(N log N)的构造性编码。此前的LDPC、Turbo只是“实践上逼近极限”,理论上没人证明得了。不过5G选用它只限于短码块的控制信道,长数据块仍是LDPC的天下。
Q: LDPC和Turbo码是什么关系?5G为什么弃Turbo选LDPC? A: 两者同属“迭代软译码”思想家族,1993年Turbo码的爆发直接唤醒了被遗忘的LDPC。5G转向LDPC的关键是并行性:Turbo的译码依赖前后反馈,提吞吐靠堆叠级联;LDPC天然可并行流水线,数据速率越高优势越大。
Q: 循环前缀白白浪费7%的速率,能不能不加? A: 可以不加,但那样多径卷积退回线性卷积,频域“逐点除法”的均衡不复存在,接收机要重新扛起时域均衡的复杂运算。7%的速率换均衡复杂度的数量级下降外加免费的同步参考,这笔账在绝大多数场景下都划算。只有当信道极短(如室内超近距)时,才有系统设计考虑缩减CP。
Q: 信道编码配合HARQ重传,两者怎么分工? A: 信道编码负责“单次传输内的自愈”——用冗余对抗中等强度的噪声;HARQ负责“跨传输的兜底”——译码失败时不丢帧,而是把重传的软信息与旧传合并,累积证据再判一次。前者降低单次误码率,后者把残余的失败平滑成可控的时延抖动,两层配合才能既快又稳。
本文由「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 等场景全覆盖。
