首页 › deep-tech › FFT与IFFT原理:OFDM的数学引擎

从傅里叶变换到OFDM:为什么发射端是IFFT、接收端是FFT?

如果你打开任何一个4G/5G空口的协议框图、芯片datasheet,或者用频谱仪抓过LTE信号,几乎一定会看到两个方块:发射链路上标着 IFFT,接收链路上标着 FFT。大多数工程师用了很多年,对它们的理解停留在“一个是逆变换、一个是正变换”的层面。但真正值得追问的问题是:为什么偏偏是这一对变换,坐在了整个移动通信物理层的正中央?

这篇文章就从数学直觉讲到工程实现,把这对“引擎”彻底拆开看一遍。


一、时域与频域:同一枚硬币的两面

先建立一个直觉。设想一个合唱团正在演唱C大调和弦:你站在音乐厅里听到的是一 mixed 在一起的声波——一条随时间起伏的压力曲线,这是信号的时域描述。而作曲家写在谱子上的,是"Do、Mi、Sol三个音符",这是信号的频域描述。

两条描述指向的是同一个物理对象,只是视角不同:

傅里叶变换就是这两种视角之间的翻译官:正变换把时域波形拆成频谱配方,逆变换把频谱配方合成时域波形。注意这个“拆”和“合”的方向,后面它是理解OFDM的钥匙。

类比到通信里更实用:多个人同时在嘈杂的房间里说话,如果所有人用同一个音调说话,你根本分不清谁在说什么;但如果每个人用一个固定的音高(男低音、女高音各占一路),人耳就能分离出每一路。无线通信面临的正是同样的困境——多径、干扰、有限带宽——而“让每个用户/每路数据占用一个不同且互不干扰的频率音调”,就是多载波思想的起点。


二、DFT:把信号拆成“正弦波配方”

计算机不能处理连续的积分,只能处理采样后的离散点。离散傅里叶变换(DFT)就是傅里叶变换的离散版本:给定 $N$ 个时域采样点,算出 $N$ 个频域系数。

正变换(DFT):

$$X_k = \sum_{n=0}^{N-1} x_n \, e^{-j 2\pi kn/N}, \quad k = 0, 1, \dots, N-1$$

逆变换(IDFT):

$$x_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k \, e^{+j 2\pi kn/N}$$

这两个公式初看吓人,其实可以读成一句大白话:

任何一个长度为 N 的信号,都可以唯一地表示成 N 个不同频率的正弦波(复指数)的加权和;DFT 求“每个频率分量占多少权重”,IDFT 则是“按权重把正弦波重新加回去”。

式中那个 $e^{-j2\pi kn/N}$ 叫做旋转因子(twiddle factor),你可以把它想象成“单位圆上均匀分布的N个指针”。DFT的本质,就是让输入信号分别与这N个指针做相关——信号里含有多少“这个转速的旋转”,相关结果就会在那个位置冒出峰值。这就像用一把标准音叉去“嗡”地敲一下,听环境音里有没有和它同频的成分。


三、FFT:不是新变换,而是“算得快的DFT”

这是最常见的误解之一,必须先澄清:

FFT不是另一种变换,它和DFT算出的结果一模一样,只是换了一种聪明的算法,把计算量从 $O(N^2)$ 降到了 $O(N\log_2 N)$。

按DFT定义直接算,$N$ 个输出、每个输出要累加 $N$ 项,共需 $N^2$ 次复数乘法。但1965年Cooley和Tukey发表的快速算法(其思想最早可追溯到1805年高斯的手稿)发现了一个分治技巧:

  1. 把 $N$ 点DFT按奇偶下标拆成两个 $N/2$ 点DFT;
  2. 两个小DFT各自递归地再拆;
  3. 最后用旋转因子的对称性和周期性把结果“拼”回去。

每次拆分把问题规模减半,拆 $\log_2 N$ 层后只剩2点DFT(加减法而已),每层合并需要约 $N$ 次乘法——总复杂度就是 $N\log_2 N$。这个合并单元因为画出来像蝴蝶,被称为蝶形运算(butterfly)。以4点FFT为例,其按时间抽取(DIT)结构如下(输入需按比特反序重排为 $x_0, x_2, x_1, x_3$):

graph LR
    subgraph 输入["比特反序输入"]
        x0["x(0)"]
        x2["x(2)"]
        x1["x(1)"]
        x3["x(3)"]
    end
    subgraph S1["第1级:两个2点DFT"]
        B1(("蝶形1"))
        B2(("蝶形2"))
    end
    subgraph S2["第2级:乘旋转因子后合并"]
        W1["×W⁰"]
        W2["×W₁"]
        B3(("蝶形3"))
        B4(("蝶形4"))
    end
    subgraph OUT["自然顺序输出"]
        X0["X(0)"]
        X1["X(1)"]
        X2["X(2)"]
        X3["X(3)"]
    end
    x0 --> B1
    x2 --> B1
    x1 --> B2
    x3 --> B2
    B1 --> W1
    B2 --> W2
    W1 --> B3
    W2 --> B3
    W1 --> B4
    W2 --> B4
    B3 --> X0
    B3 --> X2
    B4 --> X1
    B4 --> X3

规模上的差距是惊人的。以 $N=4096$ 为例:直接按定义算大约需要3000万次运算,而基-2 Cooley-Tukey算法只需约 7万次——相差400多倍。对一个每秒要处理成千上万个OFDM符号的基带芯片来说,这就是“可行”与“不可行”的分界线。这也是为什么OFDM的思想1966年就在贝尔实验室被提出,却要等到上世纪90年代低成本DSP芯片成熟后才真正大规模商用——FFT芯片,是OFDM的“生产力前提”。


四、核心洞察:OFDM为什么发射端用IFFT?

现在回到开头那个问题。先看OFDM想干什么:把高速串行数据拆成几千路并行的低速数据,分别调制到几千个紧挨着、频谱互相重叠却不互相干扰的正交子载波上同时发送。

4.1 笨办法 vs 聪明办法

笨办法(1966年的原始方案):为每一个子载波配一个独立的振荡器、一个调制器,发射机端真刀真枪地生成几千路正弦波再相加;接收机端配几千个解调器。子载波一多,硬件规模爆炸,成本上完全不可行。

聪明办法(1971年Weinstein和Ebert提出的实现):注意IDFT的公式——

$$x_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k \, e^{+j 2\pi kn/N}$$

它做的事情,恰恰就是“把N路频率分量各乘一个复系数、再全部加起来”!也就是说:

"用N个振荡器生成N路子载波并叠加"这个物理过程,在数学上与“做一次N点IDFT”完全等价。

于是发射机的几千个振荡器,被一块做IFFT的数字芯片取代:

接收端则反过来:收到的时域波形采样后做FFT,就“分拣”出了每个子载波上承载的QAM符号。IFFT是“合成器”,FFT是“分拣器”——这就是那对变换坐镇物理层中央的根本原因。

完整的收发链路如下:

graph TD
    subgraph TX["发射机(如基站)"]
        A[比特流] --> B["QAM映射<br/>(每log2 M比特→1个复符号)"]
        B --> C["串并转换<br/>N路并行"]
        C --> D["N点IFFT<br/>频域→时域"]
        D --> E["加循环前缀CP"]
        E --> F["DAC + 射频前端"]
    end
    CH((无线多径信道))
    subgraph RX["接收机(如终端)"]
        G["射频前端 + ADC"] --> H["去CP<br/>定时同步"]
        H --> I["N点FFT<br/>时域→频域"]
        I --> J["信道估计与<br/>单抽头均衡"]
        J --> K["QAM判决"]
        K --> L["并串转换→比特流"]
    end
    F -->|"s(t)"| CH
    CH -->|"r(t) = s(t)*h(t)+n"| G

4.2 正交性:子载波为什么“挤在一起却不打架”

常规FDM系统里,相邻载波之间必须留保护带,否则互相串扰,频谱效率很低。OFDM敢让子载波频谱大幅重叠,靠的是精心设计的正交条件:子载波间隔严格等于

$$\Delta f = \frac{1}{T_{\text{symbol}}}$$

即子载波间隔 = 符号长度的倒数。此时任意两个子载波在一个符号周期内积分严格为零:

$$\frac{1}{T}\int_0^T e^{j2\pi k_1 t/T}\left(e^{j2\pi k_2 t/T}\right)^* dt = \begin{cases} 1, & k_1 = k_2 \ 0, & k_1 \neq k_2 \end{cases}$$

直觉解释:在一个符号周期 $T$ 内,相邻子载波恰好相差整数个周期。接收端用FFT解调时,本质是对波形“取整数个周期做相关”——想提取第 $k$ 路时,其他任何一路子载波在这段窗口里转了整数圈,“平均值”精确为零,仿佛它们互不存在。这就是“频谱重叠却零干扰”的魔法。反过来,一旦频偏破坏了这个整数周期关系,正交性崩塌,产生载波间干扰(ICI)——这是现网调试中最重要的原理性约束,后文详述。


五、循环前缀:一个“抄尾巴”的神来之笔

多径是无线信道的宿命:信号经多条路径先后到达,前一个符号的“尾巴”会拖进后一个符号,造成符号间干扰(ISI)。传统单载波系统为此要设计复杂时域均衡器。

OFDM的解法极为优雅:在每个符号前插入循环前缀(Cyclic Prefix, CP)——把符号尾部的片段复制到头部。要求CP长度大于信道最大时延扩展,这样多径副本永远落在CP范围内,FFT窗口内的有效符号部分不受前一个符号污染。

为什么是“复制尾巴”而不是填零?因为复制尾部使波形在一个周期内呈现循环性,多径卷积因此变成循环卷积,而循环卷积在频域就是对角化——信道对每个子载波的影响退化为一个复数乘法 $H_k$。于是均衡简单到令人发指:

$$\hat{X}_k = \frac{Y_k}{H_k}, \quad k = 0, 1, \dots, N-1$$

每个子载波只需一次复数除法(单抽头频域均衡),对比单载波系统动辄上百抽头的时域FIR均衡,复杂度低了几个数量级。一个直观例子:若符号周期1 ms、CP取其1/8即125 μs,可容忍的多径时延扩展对应约37.5公里的路径差——这正是CP较长的系统(如地面数字电视)能组建单频网(SFN)的原因。

代价当然有:CP不承载任何数据,是纯粹的开销。CP越长,吞吐率损失越大——这就是为什么标准要在“抗多径能力”和“频谱效率”之间反复权衡。


六、从LTE到5G NR:同一引擎的参数化演进

理解了IFFT/FFT引擎,再看标准就通透了——所谓numerology(参数集),核心就是围绕FFT尺寸和子载波间隔做设计。

系统 子载波间隔 FFT规模(20MHz级) 有用符号长度 常规CP 典型采样率
LTE 15 kHz(固定) 2048点 ≈66.7 μs ≈4.7 μs 30.72 Msps
5G NR(基础) 15 kHz 4096点(可裁剪) ≈66.7 μs ≈4.7 μs 30.72 Msps
5G NR(n=1) 30 kHz — ≈33.3 μs ≈2.3 μs —
5G NR(n=2) 60 kHz — ≈16.7 μs ≈1.2 μs —
5G NR(n=3) 120 kHz(毫米波常用) — ≈8.3 μs ≈0.6 μs —

注意这里的“为什么这样设计”:

另一个重要分支是上行为何不用OFDM而用SC-FDMA。OFDM有个软肋:IFFT输出是N路独立子载波的叠加,各路相位随机,同相叠加时会产生极高的峰均比(PAPR)——峰值功率可比均值高出10 dB以上,迫使功放工作在高度线性的区域(回退),效率极低。基站可以承受昂贵的线性功放,电池供电的手机承受不起。于是LTE上行采用了DFT扩展方案:先做一个小规模DFT把数据“预压缩”,再进IFFT——

graph LR
    subgraph OFDM_TX["OFDM发射(下行)"]
        A1["QAM符号"] --> B1["IFFT"] --> C1["高PAPR波形"]
    end
    subgraph SCFDMA_TX["SC-FDMA发射(LTE上行)"]
        A2["QAM符号"] --> B2["N点DFT<br/>(预扩展)"] --> C2["M点IFFT"] --> D2["类单载波波形<br/>低PAPR"]
    end

其效果是波形“长得像”单载波信号,PAPR大幅降低,功放可以工作在更高效的状态——代价是牺牲了下行OFDMA那种灵活的频域调度自由度。下行用OFDMA(性能优先),上行用SC-FDMA(功耗优先),是能量约束决定波形设计的经典案例。5G NR上行为CP-OFDM(借助功放技术进步容忍了更高PAPR),换取上下行波形统一。


七、实战连接:这些原理在现网调试中怎么用

1. EVM恶化,先查相位噪声和频偏。 正交性对频率误差极其敏感——接收端本振偏差或多普勒频移会让FFT窗口内的子载波不再“转整数圈”,产生载波间干扰(ICI)。现象是:星座图整体旋转(固定频偏,可被导频跟踪纠正)或者星座点发糊扩散(多普勒扩展导致的ICI,难救)。用频谱仪看高速移动场景(高铁)的上行信号,EVM明显劣化,原理根源就在这里——这也是OFDM被指“对多普勒敏感”的机制本质。

2. 定时偏差的容忍度取决于CP。 FFT窗口落在CP范围内(只要不落入前一符号的有效部分),循环性保证了依然能正确解调,只是各子载波附加一个可被均衡吸收的相位旋转。所以协议对定时提前(TA)的精度要求,本质上是“别让FFT窗滑出CP”。调试中若发现TA接近边界时误码率抬升,检查CP配置和小区半径的匹配即可理解。

3. 频谱仪上认OFDM信号。 OFDM时域波形像噪声、频域近似“白”而平坦(大量子载波叠加)。看到矩形滚降的平顶频谱、时域上包络剧烈起伏的突发,基本就是多载波信号;而PAPR抑制做得好的上行SC-FDMA,时域包络会平滑得多。

4. 常见调试陷阱: - 把FFT点数当带宽算:FFT点数(如2048)是采样点数,实际占用带宽由"有效子载波数×子载波间隔"决定,通常小于FFT对应的奈奎斯特带宽(两边有保护带)。 - 忽视CP开销估算吞吐:用纯符号速率算峰值速率会偏高,实际有效速率要乘以 $T_{\text{symbol}}/(T_{\text{symbol}}+T_{\text{CP}})$ 及参考信号、控制信道的开销。 - 毫米波链路照搬低频经验:120 kHz间隔下CP只有约0.6 μs,小区半径做大后CP可能罩不住时延扩展——远点用户劣化比低频小区更陡,这正是numerology要与覆盖场景绑定的原因。


八、小结

把全文压缩成四句话:

  1. 时域和频域是同一信号的两个视角,傅里叶变换是两者间的翻译。
  2. FFT不是新变换,而是把DFT复杂度从 $O(N^2)$ 降到 $O(N\log N)$ 的分治算法——它让多载波通信从数学可能变成工程现实。
  3. IFFT在数学上等价于“N个振荡器叠加合成”,所以OFDM发射机用IFFT合成波形、接收机用FFT分拣子载波;子载波间隔=符号率倒数保证了正交。
  4. 循环前缀把多径卷积变成循环卷积,换来每个子载波一次除法的极简均衡;而PAPR问题催生了上行SC-FDMA和5G的可扩展numerology。

常见问题

Q1: FFT和DFT的区别是什么? A: 没有本质区别——二者计算的是完全相同的结果。DFT是数学定义($N^2$ 次乘加),FFT是计算该定义的快速算法(约 $N\log_2 N$ 次),靠分治和旋转因子的对称性/周期性省掉重复运算。说“设备里用FFT”实际指“用FFT算法算DFT”。

Q2: 为什么OFDM发射端用IFFT而不是FFT? A: 方向问题。发射端要做的是"把N路频域符号合成为一路时域波形",这正是IDFT的定义;接收端要做的是把时域波形分解回N路频域符号,用DFT(FFT实现)。两者互为逆变换,成对出现。

Q3: CP既然不传数据,为什么不干脆去掉? A: 去掉CP,多径破坏循环性,信道不再是“每子载波一个乘法”,单抽头均衡失效,必须回到复杂的时域均衡,且FFT窗易被前一符号污染。部分系统(如超宽带UWB)确实用零填充保护间隔省功率,但接收机需自行重构循环性,复杂度转移到了接收端。

Q4: 子载波间隔为什么5G NR要做成可变的,LTE固定15 kHz不行吗? A: LTE单一场景(sub-6G宏覆盖)够用;5G要同时服务低频广覆盖、毫米波大带宽和uRLLC低时延。间隔翻倍则符号/CP等比缩短,一种帧结构参数化适配所有场景,且不同numerology还能在同一载波内混合调度。

Q5: OFDM信号PAPR高,除了上行换SC-FDMA还有什么办法? A: 常见思路包括峰值削波+滤波、选择性映射(SLM)、部分传输序列(PTS)、预留子载波等,代价分别是失真、计算量和吞吐开销。现代功放则靠数字预失真(DPD)+包络跟踪提升线性区效率,从器件侧缓解而非改变波形。


参考来源

  1. Weinstein & Ebert (1971), "Data Transmission by Frequency-Division Multiplexing Using the Discrete Fourier Transform" — 首次提出用DFT/IDFT实现OFDM并引入保护间隔的经典论文
  2. Cooley & Tukey (1965), "An algorithm for the machine calculation of complex Fourier series" — 现代FFT算法的奠基论文

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