卷积(Convolution)

用于描述一个线性时不变(LTI, Linear Time-Invariant)系统对输入信号的响应。
简单来说,只要知道了系统的单位冲激响应,通过卷积,你就能计算出系统在任何信号输入下的输出。

LTI 系统具有两个超级特性:

  • 叠加性(Linearity): 输入 $x_1(t) + x_2(t)$,输出就是 $y_1(t) + y_2(t)$。
  • 时不变性(Time-Invariance): 输入延迟 $\tau$,输出就延迟 $\tau$。

基于这两个特性,我们可以把任意复杂的输入信号 $x(t)$,拆解为无数个不同强度、不同位置的单位冲激信号 $\delta(t)$ 的组合。如果我们已知系统对一个标准冲激信号 $\delta(t)$ 的响应是 $h(t)$(称为单位冲激响应),那么根据 LTI 特性:系统对延迟了 $\tau$ 的冲激 $\delta(t-\tau)$ 的响应就是 $h(t-\tau)$。系统对强度为 $x(\tau)$ 的延迟冲激 $x(\tau)\delta(t-\tau)$ 的响应就是 $x(\tau)h(t-\tau)$。把所有这些微小的响应全部叠加(积分)起来,就得到了系统最后的总输出 $y(t)$。这个叠加的过程,在数学上就叫做卷积。

根据信号是连续的还是离散的,卷积分为两种形式:

  1. 连续信号的卷积(卷积积分)对于连续时间信号 $x(t)$ 和 $h(t)$,其卷积定义为:
    $$y(t) = x(t) * h(t) = \int_{-\infty}^{+\infty} x(\tau)h(t-\tau) d\tau$$

  2. 离散信号的卷积(卷积和)对于离散时间信号 $x[n]$ 和 $h[n]$,其卷积分形式转为累加:
    $$y[n] = x[n] * h[n] = \sum_{k=-\infty}^{+\infty} x[k]h[n-k]$$

Symmetric FIR && DFT

对称有限冲激响应滤波器 和 离散傅里叶变换

Symmetric FIR

  1. FIR(Finite Impulse Response)称为有限冲激响应滤波器。其核心特点是系统的冲激响应 $h(n)$ 只有有限个非零点(长度为 $N$)。其输出 $y(n)$ 仅取决于当前输入、过去输入的加权组合,不依赖过去的输出(无反馈)。其差分方程为:
    $$y(n) = \sum_{k=0}^{N-1} h(k)x(n-k)$$

  2. 为什么必须“对称”?—— 严格线性相位 (Linear Phase)在语音、通信(如 LTE/5G 基带)、图像处理中,波形畸变是致命的。如果滤波器对不同频率的信号分量产生不同的时间延迟,输出的波形就会发生扭曲。要让滤波器实现严格线性相位(即所有频率成分通过滤波器后,延迟的时间完全相同,群延迟为常数),滤波器的系数(冲激响应)必须满足对称性。根据长度 $N$ 的奇偶性,对称 FIR 分为两种基本形态(加上反对称共四种类型):

    • 奇数长度对称 (Type I): 长度 $N$ 为奇数,关于中心点 $h(\frac{N-1}{2})$ 镜像对称。例如 $N=5$:
      $[h_0, h_1, h_2, h_1, h_0]$

    • 偶数长度对称 (Type II): 长度 $N$ 为偶数,关于中心两个点之间镜像对称。例如 $N=4$:
      $[h_0, h_1, h_1, h_0]$

  3. 硬件实现与乘法器级联优化 (Hardware Optimization)

    1. 对称性在微架构(如 DSP 核心、FPGA MAC 单元)中带来了一个巨大的红利:乘法器数量直接减半。以 $N=5$ 的 Type I 对称 FIR 为例:
      $$y(n) = h_0 x(n) + h_1 x(n-1) + h_2 x(n-2) + h_1 x(n-3) + h_0 x(n-4)$$

    通过提取公因数,可以改写为:

    $$y(n) = h_0 \cdot [x(n) + x(n-4)] + h_1 \cdot [x(n-1) + x(n-3)] + h_2 \cdot x(n-2)$$

    • 传统实现: 需要 5 次乘法,4 次加法。
    • 对称折叠(Folded)实现: 只需要 3 次乘法(系数减半),4 次加法。
    • DSP 实践: 现代 DSP 的乘加单元(MAC)通常带有前置加法器(Pre-Adder)。在单个时钟周期内,硬件先将 $x(n)$ 和 $x(n-4)$ 相加,然后直接送入乘法器与 $h_0$ 相乘。这对于像 BBE32 这种超宽向量流水线来说,意味着在相同吞吐量下,节省了一半的乘法器资源和功耗。

DFT

DFT(Discrete Fourier Transform)是连续傅里叶变换在时域和频域同时离散化后的形式。它是计算机和 DSP 芯片能够直接处理的“唯一”傅里叶变换形式。对于一个长度为 $N$ 的离散信号序列 $x(n)$,其 DFT 定义为:
$$X(k) = \sum_{n=0}^{N-1} x(n) W_N^{kn}, \quad k = 0, 1, \dots, N-1$$
其中 $W_N = e^{-j\frac{2\pi}{N}}$ 称为旋转因子(Twiddle Factor)。
物理意义: $X(k)$ 反映了数字信号 $x(n)$ 在第 $k$ 个频率基底上的复数幅度(包含模长/能量,以及初始相位)。

旋转因子 $W_N^{kn}$ 的矩阵与正交性如果把 DFT 写成矩阵乘法的形式,它实际上是一个正交矩阵线性变换:
$$\mathbf{X} = \mathbf{W} \cdot \mathbf{x}$$
因为 $W_N^{kn} = \cos(\frac{2\pi}{N}kn) - j\sin(\frac{2\pi}{N}kn)$,DFT 的本质就是将时域信号与一组在复平面单位圆上均匀分布的正弦/余弦基波进行内积运算。

DFT 的计算复杂度与 FFT 的引出如果直接按照定义计算一个 $N$ 点的 DFT:

  • 算出每个 $X(k)$ 需要进行 $N$ 次复数乘法和 $N-1$ 次复数加法。
  • 整个序列共有 $N$ 个点,总计算复杂度为 $\mathcal{O}(N^2)$。

当 $N=1024$ 时,$N^2 \approx 10^6$ 次运算,这在实时通信或雷达信号处理中开销过大。利用旋转因子的周期性($W_N^{k+N} = W_N^k$)和对称性($W_N^{k+N/2} = -W_N^k$),可以将大点数的 DFT 拆解为多个小点数的变换,这就是快速傅里叶变换(FFT,如 Cooley-Tukey 算法),它将复杂度骤降至 $\mathcal{O}(N \log_2 N)$。