4、傅里叶变换入门:连续傅里叶变换、离散傅里叶变换、频谱与功率谱的概念

傅里叶变换是音频信号时频分析的理论基石。它回答了这样一个核心问题:一段随时间起伏的声波,究竟由哪些频率成分以何种强度叠加而成?从工程应用角度看,无论是均衡器调节、噪声抑制、音频编码,还是扬声器频响测量,其底层都依赖傅里叶变换将时间域信号映射到频率域。本章从连续傅里叶变换(CFT)出发,引出离散傅里叶变换(DFT)的工程实现,并厘清频谱与功率谱这两个极易混淆的核心概念,为后续的短时傅里叶变换(STFT)与频谱处理打下基础。

傅里叶变换家族与频谱/功率谱关系图 时间域信号 x(t) 连续 / 离散采样序列 连续傅里叶变换 (CFT) X(f) = ∫x(t)e^(-j2πft)dt 离散傅里叶变换 (DFT) X[k] = Σx[n]e^(-j2πkn/N) 频谱 幅度谱 |X(f)| 与相位谱 ∠X(f) 反映各频率分量的幅度与相位 功率谱密度 (PSD) S(f) = |X(f)|² / T 或周期图法 反映功率在频率上的分布 关键关系 DFT 是 CFT 在时域采样与频域离散化后的工程近似 功率谱 = 幅度谱的平方(或平方平均),丢弃相位信息

4.1 核心原理:从连续傅里叶变换到离散傅里叶变换

连续傅里叶变换(CFT)将连续时间信号 x(t) 分解为不同频率的复指数分量之和,其定义为:X(f) = ∫₋∞⁺∞ x(t) · e^(-j2πft) dt。其中 X(f) 为复数,包含幅度与相位信息。CFT 在数学上完美,但计算机无法处理连续积分,因此必须引入离散化。离散傅里叶变换(DFT)针对长度为 N 的有限长序列 x[n](n=0,1,...,N-1),其定义为:X[k] = Σₙ₌₀^{N-1} x[n] · e^(-j2πkn/N),k=0,1,...,N-1。DFT 的输出 X[k] 是长度为 N 的复数序列,对应 N 个离散频率点,频率分辨率为 fs/N(fs 为采样率)。

从工程视角看,DFT 是 CFT 的“可计算版本”:它假设信号在时域被等间隔采样(采样定理保证不混叠),在频域被等间隔取点(对应周期延拓)。DFT 的快速算法 FFT(快速傅里叶变换)将计算复杂度从 O(N²) 降至 O(N log N),使得实时频谱分析成为可能。例如,对 1024 点采样做 FFT,仅需约 10240 次复数乘法,而直接 DFT 需要约 100 万次,差距达两个数量级。

核心理解:DFT 的物理意义是“用 N 个等间隔频率点的复指数去拟合长度为 N 的离散信号”。每个 X[k] 的模 |X[k]| 表示该频率分量的幅度,幅角 ∠X[k] 表示初始相位。频率索引 k 对应的实际频率为 f = k·fs/N(k=0 对应直流,k=N/2 对应奈奎斯特频率 fs/2)。

4.2 频谱与功率谱:概念辨析与计算方法

频谱(Spectrum)通常指 DFT 或 CFT 的直接输出,包含幅度谱和相位谱。幅度谱 |X[k]| 直观显示各频率成分的强弱,单位与信号幅度一致(如 Pa、V);相位谱则包含时间对齐信息,在音频处理中常被忽略(人耳对相位不敏感),但在波束成形、回声消除等场景中至关重要。功率谱(Power Spectral Density, PSD)描述信号功率在频率上的分布,单位是信号幅度的平方除以频率(如 V²/Hz)。对于确定性周期信号,功率谱可通过 |X[k]|²/N² 计算;对于随机信号,则需采用周期图法或 Welch 方法(平均周期图)估计。

对比维度频谱(幅度谱)功率谱密度(PSD)
数学定义X(f) 或 X[k] 的模|X(f)|²/T 或 E[|X[k]|²]
物理单位信号幅度单位(V, Pa)幅度²/Hz(V²/Hz)
相位信息保留(在复数中)丢弃(取模平方)
适用信号周期信号、瞬态信号随机信号、平稳噪声
典型应用谐波分析、频谱整形噪声评估、信噪比计算

计算功率谱时需注意归一化:对长度为 N 的实信号,单边功率谱密度为 P(f) = 2·|X[k]|²/(fs·N),其中因子 2 用于合并正负频率能量(实信号频谱共轭对称),除以 fs·N 是为了得到单位 Hz 的功率密度。若只需比较相对大小,可直接使用 |X[k]|² 作为功率谱的近似。

4.3 案例拆解:1 kHz 正弦波的频谱与功率谱分析

假设我们以 fs = 8000 Hz 采样率采集一段 1 kHz 正弦波,时长 0.1 秒,共 N = 800 点。信号幅度为 1 V,无直流偏置。目标:计算其频谱与功率谱,并验证频率分辨率。

  1. 生成信号:x[n] = sin(2π·1000·n/8000),n=0,...,799。
  2. 执行 FFT:对 x[n] 做 800 点 FFT,得到 X[k](k=0,...,799)。
  3. 频率映射:k=100 对应频率 f = 100·8000/800 = 1000 Hz,正好是信号频率。
  4. 幅度谱:|X[100]| = 400(因为正弦波幅度 1V,N/2=400),|X[700]| = 400(负频率镜像)。
  5. 功率谱:单边 PSD 在 1000 Hz 处为 2·400²/(8000·800) = 0.05 V²/Hz。若用 1/3 倍频程带宽(约 231 Hz)积分,得到该频带功率约 11.55 V²,对应 RMS 值约 0.707 V,与理论值一致。

此案例验证了 DFT 频率分辨率为 fs/N = 10 Hz,即能区分间隔 ≥10 Hz 的两个频率分量。若信号时长缩短至 0.05 秒(N=400),分辨率降至 20 Hz,1 kHz 与 1.01 kHz 将无法区分,这就是频谱分析中“时间-频率分辨率权衡”的直观体现。

工程经验:实际音频分析中,建议使用 2 的幂次长度(如 1024、2048、4096)以便直接调用 FFT 库。若 N 不是 2 的幂,可补零至最近幂次,但补零不提高真实分辨率,仅使频谱曲线更平滑。

4.4 常见误区与总结复盘

误区一:混淆幅度谱与功率谱。幅度谱的单位是 V,功率谱单位是 V²/Hz,两者相差一个“平方”和“归一化”。在比较不同采样率下的频谱时,必须使用功率谱密度,否则结果不可比。

误区二:忽略窗函数的影响。直接对截断信号做 DFT 会产生频谱泄漏——能量从真实频率扩散到相邻频点。例如上述 1 kHz 正弦波若时长不是周期的整数倍,频谱会出现“裙边”。解决方法是加窗(如汉宁窗、平顶窗),但加窗会降低频率分辨率(主瓣变宽)。

误区三:认为 DFT 点数越多分辨率越高。分辨率由信号实际时长决定(Δf = 1/T),而非 FFT 点数。补零只能插值,不能增加信息量。

误区四:忽视直流分量与奈奎斯特频率的特殊处理。对于实信号,X[0] 和 X[N/2](N 为偶数时)是实数,单边谱转换时这两个点不应乘以 2。

风险提醒:在音频实时处理系统中,FFT 的延迟与块大小直接相关。例如 44.1 kHz 采样率下,2048 点 FFT 引入约 46 ms 延迟,对于需要低延迟的监听系统(目标 <10 ms),需改用小窗或分频段处理策略。