首页 › deep-tech › 变换与纠错:空口信号两大工序

你按下一张图片的发送键,几十万个比特要在几毫秒内穿过一条充满反射、绕射、多普勒频移的恶劣无线信道。它们凭什么能活着到达对面?答案藏在两道加工工序里:先变换,再纠错。变换工序(FFT/IFFT)解决“怎么把宽带信号塞进恶劣信道而不碎掉”;纠错工序(LDPC/Polar码)解决“碎了之后怎么把它拼回来”。这两道工序一个管“防碎”,一个管“拼接”,合起来构成了现代空口的骨架。本文把这两件事拆开讲透:为什么OFDM离不开FFT,为什么纠错码要在图上“开会”,以及5G为什么让LDPC和Polar各管一摊。

一、先问一个根本问题:为什么通信偏爱频域

先用一个日常类比。你在音乐厅听到一个和弦,耳朵接收到的是一条连续变化的声波(时域);但钢琴师眼里看到的是几个琴键(频域)。同一段声音,两种视角:时域告诉你“空气压强随时间怎么变”,频域告诉你“这条波形由哪几个纯音、各占多少比例叠加而成”。傅里叶变换就是这两种视角之间的翻译官,而且翻译是无损的——任何一段波形都能唯一分解成一组正弦波,反过来也能完美合成。

无线通信为什么死磕频域视角?因为无线信道的破坏方式,用频域语言描述起来简单得多。

基站发出的信号会在楼宇、山体、车辆上反射,多条路径先后到达接收机,时域上表现为信号被“拖尾”——第0微秒发出的符号和第1微秒发出的符号在空中叠在一起,这叫码间串扰。在时域里修补它,需要一个抽头数量等于信道时延长度的复杂滤波器逐点卷积,运算量巨大且必须实时跟踪信道变化。

但傅里叶变换有一条神奇的性质:时域的卷积,等于频域的乘法。多径信道在时域里是一团乱麻的卷积,到了频域里就退化成“每个频率点上乘一个复数”。修补动作从“解一条微分方程”简化成“每个频点除以一个数”。通信系统工程师看到这个性质的心情,大概等于账房先生发现除法可以代替解方程——整套均衡理论瞬间从大学课程变成小学算术。

这个性质是第一道工序的出发点:把信号设计在频域,用变换把它送到时域发射,接收后再变换回频域做“逐点除法”式的轻量修补。

二、FFT:一个让OFDM从纸面走向现网的算法

正交频分复用的想法早在上世纪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是同一套算法的正反两个方向,现代芯片里通常共用一套硬件单元,只是把旋转因子取共轭、输出序列换个方向。

三、循环前缀: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:证人、陪审团与交叉质证

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卫星广播、万兆以太网的御用编码。

六、Polar:把一条烂信道劈成极好和极坏两半

极化码是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管控制

现在可以回答那个经典问题了:两个都是逼近极限的好码,为什么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负责“跨传输的兜底”——译码失败时不丢帧,而是把重传的软信息与旧传合并,累积证据再判一次。前者降低单次误码率,后者把残余的失败平滑成可控的时延抖动,两层配合才能既快又稳。

参考来源

  1. Low-density parity-check code — Wikipedia — LDPC发明史(Gallager 1963)、置信传播译码与应用领域概述
  2. Polar code (coding theory) — Wikipedia — 信道极化思想、Arıkan 2009年提出、5G控制信道采用情况
  3. Cooley–Tukey FFT algorithm — Wikipedia — FFT分治算法、O(N log N)复杂度与1965年论文背景
  4. R. G. Gallager, Low-Density Parity-Check Codes, MIT Press, 1963 — 稀疏校验矩阵与迭代译码的原始出处
  5. E. Arıkan, "Channel Polarization: A Method for Constructing Capacity-Achieving Codes", IEEE Transactions on Information Theory, 2009 — 极化码构造与容量可达性证明的原始论文

本文由「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学通信知识星球海报-扫码加入