如果你一路读过来,会发现单个零件其实都讲过:星座图讲过、OFDM 驯服多径讲过、循环前缀讲过、上行为什么偏爱单载波也讲过。但很多工作一两年的工程师仍会有一种“零件都认识、机器转不起来”的感觉——真让你对着协议栈从一段比特开始讲,讲着讲着就卡壳:加扰为什么放在编码前面?映射成星座点之后为什么还要做 IFFT?接收端拿到 waveform 之后先干什么后干什么?
这篇文章就当一次总装车间参观:不再拆零件,而是把 QAM、OFDM、CP、DFT-s-OFDM 这些零件按顺序装成一台完整的调制解调机,顺着流水线走一遍发送,再倒着走一遍接收,最后算一笔“尺寸与时间”的账——一段数据到底占了多少个子载波、多少个符号、多少个采样点。
先给一句总纲,全文都围绕它展开:
调制,是把“离散的比特”翻译成“连续的波形”;解调,是把被信道揉皱了的波形,尽量诚实地翻译回比特——并且诚实地报告自己有多不确定。
前半句是发送端流水线,后半句是接收端流水线加上“软判决”这个点睛之笔。
为什么不把比特直接变成电压发出去?三个原因。
第一,天线不肯。 天线尺寸和波长成正比,想要一根“合理长度”的天线(比如十分之一波长以内),频率就得够高。基带比特是接近直流的方波,能量集中在极低频,直接馈给天线等于对着空气喊话却张不开嘴。所以必须把信息“驮”到高频载波上——这就是“调制”最原始的含义:搬家。
第二,频谱要排队。 无线频谱是授权制稀缺资源,你的信号必须老老实实待在分给你的那段频率里,不能越界。搬家的过程就是用比特去控制载波的某个参数。
第三,一个载波太浪费。 空口要同时服务成百上千个用户,载波这个“搬家公司”必须能一次装很多人的货。这正是后面 OFDM 登场的理由。
那比特控制载波的什么参数?控制两个:幅度和相位。这里有个初级工程师常见的理解飞跃点——
一个余弦波 $\cos(\omega t)$ 和一个正弦波 $\sin(\omega t)$ 彼此正交,在同一个载频上互相“看不见”。于是我们可以同时用一路载波的幅度/相位(I 路)和另一路的幅度/相位(Q 路)各携带一部分信息,数学上合并成一个复数符号:
$$ s(t) = I(t)\cos(\omega t) - Q(t)\sin(\omega t) $$
所谓 QAM(正交幅度调制),本质就是:把 $\log_2 M$ 个比特打包,翻译成复数平面(星座图)上的一个点。16QAM 一点装 4 比特,256QAM 一点装 8 比特。符号速率 $R_s$ 与比特速率 $R_b$ 的关系一目了然:
$$ R_b = R_s \cdot \log_2 M $$
这就是“高阶调制更快”的全部数学——不是符号发得更快,而是每个符号里塞的比特更多。代价我们后面算账时细说。
下面这张图是整台机器的装配图。从上到下,就是你手机里一段数据发上天之前走过的每一站:
flowchart TD
A["来自上层的数据包"] --> B["加扰<br/>打乱比特"]
B --> C["信道编码<br/>掺入冗余"]
C --> D["QAM映射<br/>比特打包成星座点"]
D --> E["层映射与预编码<br/>分配到天线通道"]
E --> F["资源映射<br/>在时频格中入座"]
F --> G["IFFT<br/>并行符号变波形"]
G --> H["加循环前缀CP<br/>复制尾巴"]
H --> I["上变频与功放<br/>搬家到射频频段"]
I --> J["天线发射"]
逐站回答“为什么必须在这一步”。
第 1 站:加扰——先洗牌。 把比特序列乘上一个收发双方都知道的伪随机序列。为什么?如果一段数据恰好是长串 0 或 1,映射到调制上就会产生规律的频谱尖峰,对邻频和其他小区形成有结构的干扰;随机化之后,干扰变成“白”的,别人的接收机把它当噪声滤掉就好。洗牌还顺带帮接收端的译码器避免陷入规律性错误。注意顺序:先加扰再编码——扰动的对象是原始比特,译码之后再解扰,秩序自然恢复。
第 2 站:信道编码——掺冗余。 无线信道一定会出错,所以发送前主动掺入精心设计的冗余,让接收端能发现并纠正错误。LDPC 与 Polar 码的分工此前讲过,此处只需记住它在流水线上的位置:编码在调制之前,因为编码器操作的是离散比特,而调制器操作的是连续符号,两者不可颠倒。
第 3 站:QAM 映射——装箱贴标。 每 $\log_2 M$ 个比特变成星座图上一个复数点。从这里开始,数据脱离了"0/1"世界,进入了“复数”世界。
第 4 站:层映射与预编码——分路整形。 多天线时把符号流分到不同天线通道,并对信道做预整形。这个话题单开过一篇,总装视角下记住一句话即可:它动的是“符号怎么分、往哪个方向发”,不动符号内容本身。
第 5 站:资源映射——入座。 调度器已经决定了你的符号坐在时频格子的哪些位置(哪个子载波、哪个符号),这一站就是把复数符号填进一张巨大的二维表格。表格的横轴是时间(OFDM 符号编号),纵轴是频率(子载波编号),每个格子叫一个 RE。
第 6 站:IFFT——最关键的一次变形。 填表完成时,我们手里是几百个“该出现在各个子载波上的复数振幅”。IFFT 在数学上做的事,就是把这些频域振幅一次性合成为一段时域采样点波形。为什么这一步如此精妙,单独开一节讲。
第 7 站:加 CP。 把每个符号的尾巴复制一份垫到符号头上。这个“抄尾巴”的动机与收益此前专门讲过,总装视角只强调它在流水线上的位置:必须在 IFFT 之后、上变频之前,因为它保护的是时域符号,对抗的是信道的多径时延。
第 8 站:上变频与功放。 把基带复数波形搬到射频频点,放大,上天。这一步为什么不是“调制”的全部?狭义的“把信息装上载波”其实贯穿全程,而射频前端解决的是“如何高效、干净地辐射出去”。
早期对抗多径的思路是“轮流演奏”:把高速串行码流拉慢、扩频,让每个符号远宽于多径时延,配合均衡器硬扛。代价是均衡器复杂度随带宽暴涨。
OFDM 换了个思路:不轮流,而是并行。把 $N$ 个低速符号同时放在间隔 $\Delta f$ 的 $N$ 个子载波上,每个符号的持续时间被拉长了 $N$ 倍。原来多径时延相对符号周期很大,现在符号周期变长,多径造成的“拖尾”只占符号头部一小段——一个 CP 就能装下。
但并行带来新问题:几百个子载波在接收端怎么分干净?答案是正交性。只要积分窗口正好覆盖一个符号周期 $T$,任意两个不同子载波乘积的积分为零:
$$ \frac{1}{T}\int_0^T e^{j2\pi (k-m)\Delta f\, t}\,dt = 0,\quad k \neq m $$
直觉理解:两个不同频率的正弦波在一个公共周期里“转过的圈数都是整数”,快慢相抵,平均结果为零——彼此在数学上互相透明。接收端想知道第 $k$ 个子载波上的符号,只需把接收波形乘以 $e^{-j2\pi k\Delta f t}$ 再积分,其他子载波全部自动消失。
而“几百路乘法积分”这件事,恰好就是离散傅里叶变换的定义式:
$$ x_n = \frac{1}{N}\sum_{k=0}^{N-1} X_k\, e^{j2\pi kn/N} $$
发送端做一次 IFFT,接收端做一次 FFT,几百个子载波的合成与分离就各用一次运算完成。OFDM 的本质,是把“多载波调制”这个通信问题,变成了“傅里叶变换”这个计算问题——这是整个现代宽带无线最优雅的一步棋。
还有一层设计深意藏在 CP 里:FFT 要求信号呈现循环卷积性质,直接复制尾巴的 CP 恰好把多径造成的线性卷积“伪装”成循环卷积。回报是惊人的——频率域每个子载波上的多径影响退化成一个复数乘法,接收端用单抽头均衡就能拆掉整个多径。这份“正交性 + 循环性”的组合拳,是 OFDM 赢掉多址之争的根因。
把发送流水线搬到手机侧会发现麻烦:OFDM 把几百个子载波的能量叠加在一起,相位随机时近乎同相叠加的瞬间,峰均功率比(PAPR)可以冲到很高的量级(典型在 8~12 dB 这一范围,取决于调制阶数与负载):
$$ \text{PAPR} = 10\log_{10}\frac{P_{\text{peak}}}{P_{\text{avg}}} $$
功放为了不削掉波峰,必须整体回退工作点,效率大跌。基站可以不在乎——散热和电费都是工程问题;但手机在乎,电池容量和功放成本都是硬约束。
5G 上行的解法是在流水线里加一台“压峰机”:映射完的星座点先做一次 DFT(相当于把几十个子载波的信息“揉”回一个单载波形状的时域波形),再做资源映射和 IFFT。这条支线叫 DFT-s-OFDM,也就是大家常说的上行“单载波”波形:
flowchart TD
subgraph 下行链路
A1["星座点序列"] --> B1["资源映射"] --> C1["IFFT"] --> D1["加CP发发射"]
end
subgraph 上行链路
A2["星座点序列"] --> B2["DFT预扩展<br/>先揉成单载波"] --> C2["资源映射"] --> D2["IFFT"] --> E2["加CP发发射"]
end
两条流水线的取舍可以列成一张表:
| 对比项 | 下行 OFDM | 上行 DFT-s-OFDM |
|---|---|---|
| 波形形态 | 多载波叠加 | 单载波形状 |
| PAPR | 高,典型 8~12 dB 量级 | 明显更低 |
| 功放要求 | 宽松,基站供得起电 | 严格,为手机省电省成本 |
| 均衡方式 | 频域单抽头,极简 | 仍可频域处理,稍复杂 |
| 灵活性 | 频域调度极灵活 | 同样支持按 PRB 调度 |
| 典型用户 | 基站大功率下发 | 手机上行,IoT 与边缘场景受益最大 |
值得说明的是:随着手机功放工艺进步,上行高阶调制和更灵活的波形选项也在演进,标准允许多种配置,具体行为以实际网络和终端能力为准。设计哲学没变:下行追求灵活,上行呵护电池。
接收端把流水线倒着走,但每一步都不是发送端的简单逆运算——因为信道捣过乱了:
flowchart TD
R0["天线接收"] --> R1["下变频<br/>搬回基带"]
R1 --> R2["定时与频偏同步<br/>先对准再拆包"]
R2 --> R3["去CP"]
R3 --> R4["FFT<br/>波形还原为子载波"]
R4 --> R5["信道估计与均衡<br/>每子载波一个复数乘法"]
R5 --> R6["解QAM映射<br/>输出软信息LLR"]
R6 --> R7["信道译码<br/>利用冗余纠错"]
R7 --> R8["解扰<br/>恢复比特顺序"]
三个关键认知:
第一,同步在一切之前。 FFT 的正交性有个隐藏前提——积分窗口必须严丝合缝地对准符号起点,载波频率必须对准。差半个采样点的定时、几赫兹的频偏,正交性就被破坏,“互相透明”的子载波开始互相漏光(载波间干扰)。所以接收机开机后第一场硬仗永远是同步,此前讲过的载波同步、信道估计都是这场仗的组成部分。
第二,均衡借了 OFDM 的光。 因为 CP 买来了循环卷积性质,多径在频域退化为每个子载波上一个复数增益。信道估计出这个增益,除回去即可——“把星座掰直”讲的就是这件事。总装视角一句话:CP + FFT + 单抽头均衡,是一套捆绑销售的组合件,缺一不可。
第三,也是最容易被初学者忽略的:解调器输出的不是 0 和 1,而是“可信度”。 接收到的星座点不会正好落在标准针尖上,而是散落在附近。解映射器为每个比特计算对数似然比:
$$ \text{LLR}(b) = \ln\frac{P(b=0 \mid y)}{P(b=1 \mid y)} $$
正值代表“更像 0”,负值代表“更像 1”,绝对值大小代表把握有多大。一个落在两枚星座点正中间的接收点,LLR 接近零——译码器会读懂这是“我拿不准,请结合冗余和其他比特一起判断”。这套软判决机制让纠错码的增益成倍放大:LDPC 译码器吃的正是这一盘带置信度的软信息,多轮迭代里反复翻案,最终把硬判决下必死的误码救回来。
把发送与接收连起来看,你会发现一个漂亮的对称:发送端的每一道“确定”,到接收端都变成了“带概率的估计”。整个物理层的设计艺术,就是让这种不确定性被有序地量化、传递、最终在译码器里收敛。
概念都串起来了,最后做工程师最该做的练习——算账。以常见的 20 MHz 带宽、30 kHz 子载波间隔配置为例(1 个时隙 0.5 ms,含 14 个 OFDM 符号,常规 CP):
| 资源层级 | 数量 | 说明 |
|---|---|---|
| 频宽 | 20 MHz | 对应 51 个 PRB |
| 子载波 | 51 × 12 = 612 个 | 每个 PRB 含 12 个子载波 |
| 每 PRB 每毫秒 | 12 × 28 = 336 个 RE | 30 kHz 下每毫秒 2 个时隙、28 个符号 |
| 全带宽每毫秒 | 612 × 28 ≈ 17136 个 RE | 理论同时可用的“格子”总数 |
| QPSK 毛速率 | 约 34 Mbps | 2 bit/RE × 17136 |
| 256QAM 毛速率 | 约 137 Mbps | 8 bit/RE,未扣任何开销 |
| 实际吞吐 | 打 4~6 折 | 扣参考信号、控制信道、保护开销后的量级 |
再举一个大带宽的例子帮助建立尺度感:100 MHz、30 kHz 间隔对应 273 个 PRB,即 3276 个子载波,发射端用 4096 点的 IFFT 一次成型,采样率约 122.88 Msps——你的手机每秒钟要做上千万点级的 FFT 运算。所谓“基带芯片是手机第二大功耗来源”,账就出在这里。
这张账本还有一个重要推论,也是总装视角最想让你带走的直觉:时频资源格是死的,调制阶数是活的。格子数量由带宽和 numerology 决定,改不了;但每个格子里塞 2 比特还是 8 比特,完全由当时的信道质量决定。这正是链路自适应的物理基础。
星座图与 EVM,是调制质量的体检报告。 路测工具和基站的跟踪测量里都有“星座图”和 EVM(误差矢量幅度)指标——它度量接收星座点偏离理想针尖的平均“揉皱程度”。调制阶数越高,针尖间距越小,对 EVM 的要求越苛刻,工程通行的典型量级大致是:QPSK 约容忍 17.5%,16QAM 约 12.5%,64QAM 约 8%,256QAM 则要压到约 3.5% 量级——间距每减半,对发射机“手抖”的容忍度就再砍一截。
把前面算过的星座间距放在一起看更清楚(以单位平均能量归一,相对 QPSK 的最小距离):
| 调制阶数 | 每符号比特 | 最小距离(相对 QPSK) | 对 EVM 的典型容忍 | 现网常见位置 |
|---|---|---|---|---|
| QPSK | 2 | 100% | 约 17.5% | 小区边缘、控制信道 |
| 16QAM | 4 | 约 45% | 约 12.5% | 中等信噪比区域 |
| 64QAM | 6 | 约 22% | 约 8% | 近点中值场景 |
| 256QAM | 8 | 约 11% | 约 3.5% | 近点清静场景(权重偏高) |
排查 EVM 恶化的经典顺序,本质上就是沿着流水线找“哪一站手抖了”:功放回退不足或饱和(削峰)→ IQ 不平衡(星座整体变形旋转)→ 相位噪声(高阶 QAM 的星座点沿切向抹开)→ 定时/频偏残留(星座缓慢旋转)。每类毛病在星座图上的“长相”都不一样,这就是为什么老工程师看一眼星座图就能大致定位。
三个常见误区:
Q: 调制和编码到底有什么区别?我总是混。 A: 记住操作对象不同:编码操作“比特”,负责让比特流多而冗余,换来纠错能力;调制操作“符号/波形”,负责把比特流装进载波,搬家上天。流水线顺序永远是先编码后调制。一个管“说得啰不啰嗦但安全”,一个管“用什么声音说出去”。
Q: OFDM 和 OFDMA 是一回事吗? A: 不是。OFDM 是波形技术——如何用正交子载波承载比特;OFDMA 是多址技术——如何把那一大张时频格子拆开分给不同用户。OFDM 解决“怎么装车”,OFDMA 解决“车上的座位分给谁”。5G 上下行本质上都是 OFDMA,只是上行的波形换成了带 DFT 预扩展的变体。
Q: 为什么下行不在乎 PAPR,上行就那么紧张? A: 不是不在乎,是承担能力不同。基站功放有散热和电网撑腰,回退几个 dB 的电费可以接受;手机功放靠电池供电、受芯片面积约束,回退同样的量级意味着发热和续航的灾难。所以上行波形向低 PAPR 妥协,这是“谁付代价谁做设计”的经典体现。
Q: 为什么发送端用 IFFT、接收端用 FFT,而不是反过来? A: 因为资源映射之后,我们手里拿着的是“每个子载波上该放什么振幅”——这是频域信息,需要的是“从频域合成为时域波形”,即 IFFT。接收端拿到的是时域采样,要还原出“每个子载波上的振幅”,自然用 FFT。谁拿频域谁用 I,谁拿时域谁用 F,方向由数据形态决定。
Q: 1024QAM 为什么还没大规模用? A: 每升一阶,星座点间距再砍近一半,需要信道干净到近乎实验室水平:极近点、极低干扰、极稳的射频链路。现网大部分区域的 EVM 和干扰水平撑不起这么小的间距,能用上的场景有限。高阶调制从来不是“支持了就该用”,而是“信道允许才敢用”——链路自适应永远比参数表诚实。
本文由「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 等场景全覆盖。
