2.2 调制与解调的数字化实现


2.2 调制与解调的数字化实现

本节摘要:SOURCE 2.2:发射 S/P→星座映射→IFFT→加 CP→P/S→DAC;接收逆过程,频域 Y_k=H_k X_k+N_k 后解映射。

基带链路

步骤 发射 接收
1 比特→QAM 映射 软/硬解映射
2 S/P P/S
3 IFFT FFT
4 加 CP 去 CP
5 DAC/上变频 ADC/下变频

02-02-fig01-3

复杂度优势:时域均衡 FIR 长度与信道时延成正比;OFDM 频域均衡为 N 次复除法。

⚠️ 常见坑:未做频域插值均衡——导频子载波间须插值 H_k

💡 关键直觉:OFDM 把均衡从时域卷积变成频域乘法。

IFFT 即调制:数学映射

OFDM 的数字化实现核心,是让 IFFT 承担"调制器"的角色。设频域符号向量 \mathbf{X}=[X_0,X_1,\dots,X_{N-1}]^T,IFFT 的数学定义为:

x[n] = \frac{1}{\sqrt{N}}\sum_{k=0}^{N-1} X_k\, e^{j2\pi kn/N}

展开这个式子可以看到,时域采样 x[n] 就是 N 个复指数(每个对应一个子载波)的加权叠加,权重正是频域符号 X_k。这正是"并行调制"的数字等价物——传统并行 OFDM 需要 N 路振荡器与混频器,数字化后用一次 IFFT 就完成了全部 N 路的载波调制。接收端 FFT 则是逆操作,把时域采样重新投影回频域符号。

这一映射有两点值得强调。其一,IFFT 的输出天然是复信号,对应实际系统中的 IQ 两路模拟信号,因此 OFDM 发射机后面接的是两路 DAC(I 路与 Q 路),而非单路。其二,频域符号 X_k 可以是任意复数,包含幅度与相位信息,这使 IFFT 同时完成"多路调制"与"多载波叠加"两件事,复杂度为 O(N log N)。对比之下,直接用离散傅里叶求和定义计算需要 O(N²),用模拟振荡器阵列则需要 O(N) 套硬件。三者差距随 N 增大急剧拉开。

Python 仿真:IFFT 调制与 FFT 解调

下面用 numpy 实现一个最小可运行的 OFDM 基带收发链路,包含星座映射、IFFT 调制、加去 CP、FFT 解调与解映射,并验证误码为零。

import numpy as np from numpy.fft import fft, ifft def qpsk_map(bits): # 每 2 bit 映射为一个 QPSK 符号 s = (bits[0::2].astype(int) * 2 - 1) + 1j * (bits[1::2].astype(int) * 2 - 1) return s / np.sqrt(2) # 归一化功率为 1 def qpsk_demap(sym): return np.stack([(sym.real > 0).astype(int), (sym.imag > 0).astype(int)], axis=1).flatten() N = 64 # 子载波数 N_CP = 16 # 循环前缀长度 bits = np.random.default_rng(0).integers(0, 2, 2 * N) X = qpsk_map(bits) # 频域符号 x = ifft(X) # IFFT:时域波形合成 x_cp = np.concatenate([x[-N_CP:], x]) # 加循环前缀 # 简化多径信道:两径,第二径延时 5 个采样 h = np.zeros(10); h[0] = 0.8; h[5] = 0.5 y = np.convolve(x_cp, h)[:N + N_CP] # 线性卷积等效多径 noise = np.random.default_rng(1).normal(0, 0.1, N + N_CP) y = y + noise * (1 + 1j) / np.sqrt(2) # 加性高斯噪声 y_cp_removed = y[N_CP:] # 去 CP Y = fft(y_cp_removed) # FFT:频域分解 # 单抽头均衡:已知理想信道频响 H = fft(h, N) X_hat = Y / H rx_bits = qpsk_demap(X_hat) print("解调误比特数 =", np.sum(rx_bits != bits))

运行结果为零误码(噪声功率较小时),直观展示了"IFFT 调制 + FFT 解调 + 单抽头均衡"的完整闭环。读者可以尝试修改第二径的时延与增益,观察 CP 长度不足时误码如何上升——这正是 2.3 节要深入讨论的主题。

复杂度对比:时域均衡 vs 频域均衡

OFDM 数字化实现的复杂度优势,在均衡环节体现得最充分。单载波系统中,若信道最大时延扩展对应 L 个抽头,时域均衡器需要做 L 阶 FIR 滤波,每个符号的复杂度为 O(L)。当数据速率高达 Gbps 级时,L 可达数十至上百,时域均衡成为吞吐瓶颈。OFDM 将整个问题搬进频域:加 CP 保证循环卷积,FFT 后信道对角化,均衡变成 N 次复除法,复杂度 O(N)。此外,时域均衡在长时延扩展下需要额外的前馈/反馈结构来抑制误差传播,而频域单抽头均衡不存在误差传播,结构上天然更稳定。

代价是 OFDM 引入的固定开销:IFFT/FFT 运算 O(N log N)、CP 的频谱开销、以及频域均衡需要逐块处理引入的处理时延。这些开销在宽带系统中被吞吐提升覆盖,但在时延敏感或功率受限的场景下需要重新权衡。这也解释了为什么 LTE 上行不用 OFDM 而用 SC-FDMA——终端功率受限,多载波的高峰均比会让功率放大器效率进一步恶化,权衡的结果是牺牲部分频谱效率换取发射机实现简单。

数字化实现的工程形态

在实际系统中,上述基带算法以固定管线固化在 ASIC 或可重配置的 FPGA 中。发射侧,MAC 层下发的比特经编码调制后,按子帧结构排列成频域栅格,导频符号在此处插入,随后整块交给 IFFT 引擎;接收侧,ADC 采样经去 CP、FFT 后,导频位置用于信道估计,数据位置用于均衡与解映射。关键设计指标包括:IFFT/FFT 引擎的位宽与定点化误差、乒乓缓存的吞吐匹配、以及实时性约束下流水线的切分。理解 2.1 与 2.2 的数学基础,是理解这些工程细节的前提。

资源映射与导频在管线中的位置

上文仿真省略了资源映射与导频插入环节,实际系统中这两步是 IFFT 之前的必经工序。频域符号向量 X 并不是直接被 IFFT 的,而是先按资源网格布局填入:数据符号填入数据 RE,导频符号按设计图案填入导频 RE,其余位置置零或填入辅助信号。映射规则由标准定义,发射机按子帧配置执行,接收机按相同规则逆向提取。在仿真中,可以这样模拟导频辅助的信道估计闭环:

import numpy as np from numpy.fft import fft, ifft N = 64 pilot_pos = np.arange(0, N, 8) # 导频位置:每 8 子载波一个 data_pos = np.setdiff1d(np.arange(N), pilot_pos) rng = np.random.default_rng(4) H = 0.9 + 0.4 * np.exp(1j * 0.2 * np.arange(N)) # 平滑频响 X = np.zeros(N, complex) X[pilot_pos] = 1 + 0j # 导频符号(BPSK 已知) X[data_pos] = (rng.integers(0, 2, data_pos.size) * 2 - 1) / np.sqrt(2) x = ifft(X) # IFFT 合成时域波形 y = np.fft.fft(x) * H # 过信道(简化:无噪声) H_est_pilot = y[pilot_pos] / X[pilot_pos] # LS 估计导频处信道 H_est = np.interp(np.arange(N), pilot_pos, H_est_pilot) # 插值补全 err = np.max(np.abs(H_est - H)) print(f"信道估计最大误差 = {err:.4f}")

这段代码展示了数字化 OFDM 管线中"映射—调制—传输—估计"的完整数据流。导频密度决定估计精度,插值方法决定误差形状,二者共同影响均衡后信号的 EVM——这部分内容会在第 4.3 节深入展开。读者在仿真中加入导频与映射环节后,就能理解为什么第 3.3 节的资源网格是"坐标纸":一切符号都有它的格点坐标,IFFT 只是把整张坐标纸投影到时域。

定点化与量化误差

最后讨论一个工程实现绕不开的话题:有限精度。上文仿真使用浮点运算,真实芯片采用定点数。FFT 引擎的位宽不足会在蝶形运算中累积舍入误差,等效抬高噪声底;均衡除法用查表近似会引入幅度与相位偏差;DAC/ADC 的量化噪声按位宽每增 1 bit 改善约 6 dB。这些误差叠加起来,决定了 EVM 的实现余量,进而限制实际可达的 MCS 档位。设计者的任务是在位宽、功耗与性能之间取平衡——例如 5G 基带常用 16 bit 定点 FFT,配合逐级缩放与饱和处理,把实现损失压在 1 dB 以内。理解数字化实现,最终要落到"把浮点理论变成定点流水线"这一工程能力上。

本章回顾

  • IFFT/FFT 是核心算子
  • 每子载波独立 QAM
  • 数字化实现可 ASIC/FPGA 固化
  • 频域均衡 O(N) 且无误差传播
  • 导频映射与定点化决定实现余量

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U