每日精学 007|N 点循环卷积与 DFT 乘法关系

2026-09-25

雷达 · 通信 · 电子战 / 基础精学 007

线性卷积描述有限长离散时间系统对非周期序列的响应,其输出长度通常大于任一输入长度。DFT 则把一个 N 点数据块与 N 周期序列对应起来。DFT 域中的逐频点乘法经反变换后产生的不是无限索引上的线性卷积,而是 N 点循环卷积。

两种卷积只有在周期折叠不引起样本重叠时才相同。

循环卷积是频域快速滤波、周期系统分析和块处理的基础。其关键约束是变换长度与有效卷积长度之间的关系。若只执行 FFT 乘法而忽略补零或块边界,输出首尾会发生回绕,形成确定性的时域混叠。

报告集中处理 N 点循环卷积的定义、DFT 乘法定理、与线性卷积的对应条件以及有限精度数字实现,不展开 FFT 蝶形结构、随机过程谱估计或具体作战处理流程。


01
模型与符号

主要结论采用以下假设:

  • 时间索引 n,m,r 和周期偏移 ℓ 均为整数,DFT 长度 N 为正整数;

  • 两个 N 点序列在基本区间 0,1,…,N−1 给出,并按 N 周期延拓;

  • 序列可为复数,正 DFT 不含比例因子,反 DFT 含 1/N;

  • 比较线性卷积时,原有限长序列的长度分别为 Lx 与 Lh,区间外样本为零;

  • 数值验证采用双精度浮点运算,硬件示例采用二进制补码有符号整数。

n,m,r:一个周期内的离散时间索引(0,…,N−1)

N:DFT 长度和循环卷积周期(正整数)

(q)N:整数 q 除以 N 的非负余数(0,…,N−1)

x[n],h[n]:两个 N 点输入序列及其周期延拓(复数)

yN[n]:N 点循环卷积输出(复数)

ylin[n]:两个有限长序列的线性卷积(复数)

X[k],H[k],Y[k]:相应序列的 N 点 DFT(复数)

WN:N 次单位根(e−j2π/N)

Ch:由 h[n] 构成的循环矩阵(N× N)

02
N 点循环卷积的定义

周期延拓与模 N 索引

对基本区间内给出的 N 点序列 x[n],其周期延拓定义为

x_N[n]=x[(n)_N],\qquad x_N[n+N]=x_N[n].

模 N 索引把任意整数映射到一个周期内。

对固定的 m,映射

r=(n-m)_N

在集合 {0,1,…,N−1} 上是一一对应的置换。该性质保证循环移位不会遗漏或重复一个周期内的样本,也是卷积定理换元的基础。


循环卷积求和式

两个 N 点序列的循环卷积定义为

\boxed{ y_N[n]=(x\mathbin{\circledast_N}h)[n] =\sum_{m=0}^{N-1}x[m]h[(n-m)_N]}, \qquad 0\le n\le N-1.

每个输出样本由 N 个乘积组成。

与线性卷积不同,超出基本区间的索引不取零,而是回绕到同一周期内。通过变量替换可验证交换律

x\mathbin{\circledast_N}h=h\mathbin{\circledast_N}x.

循环移位冲激 δN[(n−n0)N] 与 x[n] 卷积,只产生 x[(n−n0)N],因此其作用是周期移位而非截断移位。


循环矩阵表示

令

\bm{x}=[x[0],\ldots,x[N-1]]^{\mathsf T}

并构造

[\bm{C}_h]_{n,m}=h[(n-m)_N].

则循环卷积可写为

\boxed{\bm{y}=\bm{C}_h\bm{x}}.

Ch 的第一列为 h,其余各列是前一列的循环下移。

矩阵结构表明,每个输出使用相同的一组系数,只是系数与输入的配对位置随输出索引循环改变。

03
DFT 乘法关系推导

时域循环卷积对应频域逐点乘法

采用

W_N=e^{-\mathrm{j}2\pi/N}

对 yN[n] 执行 N 点 DFT:

\begin{aligned} Y[k] &=\sum_{n=0}^{N-1}y_N[n]W_N^{kn}\\ &=\sum_{n=0}^{N-1}\sum_{m=0}^{N-1} x[m]h[(n-m)_N]W_N^{kn}. \end{aligned}

对固定 m 令 r=(n−m)N。

因该换元是一个周期内的双射,并且指数中增加任意 N 的整数倍不改变 WNkn,故

\begin{aligned} Y[k] &=\sum_{m=0}^{N-1}x[m] \sum_{r=0}^{N-1}h[r]W_N^{k(r+m)}\\ &=\left(\sum_{m=0}^{N-1}x[m]W_N^{km}\right) \left(\sum_{r=0}^{N-1}h[r]W_N^{kr}\right)\\ &=\boxed{X[k]H[k]}. \end{aligned}

因此

\boxed{\operatorname{DFT}_N\{x\mathbin{\circledast_N}h\}=X[k]H[k]}.

该等式对实序列和复序列均成立,不要求 N 为 2 的整数次幂。

N 的因子结构只影响 FFT 算法的计算组织,不影响循环卷积定理。

反变换形式

利用 N 点反 DFT 可直接得到

\boxed{ (x\mathbin{\circledast_N}h)[n] =\frac{1}{N}\sum_{k=0}^{N-1}X[k]H[k]e^{\mathrm{j}2\pi kn/N}}.

计算流程由两次正向 DFT、N 次复数逐点乘法和一次反 DFT 组成。

直接循环卷积需要 N2 量级乘加;采用 FFT 时,变换部分通常降为 Nlog2N 量级,但还需要数据搬移、旋转因子、缩放和缓冲存储。


循环矩阵的 DFT 对角化

定义 DFT 矩阵

[\bm{F}_N]_{k,n}=W_N^{kn}

由上一节对任意 x 成立的关系

\bm{F}_N\bm{C}_h\bm{x} =\operatorname{diag}(\bm{H})\bm{F}_N\bm{x},

可得

\boxed{ \bm{C}_h=\frac{1}{N}\bm{F}_N^{\mathsf H} \operatorname{diag}(\bm{H})\bm{F}_N}.

循环矩阵因此被 DFT 基完全对角化,其特征值为 H[k]。

循环卷积在时域表现为各样本耦合,在 DFT 基下则分解为 N 个互不耦合的标量乘法。这一结构解释了频域逐点乘法的代数来源。

04
循环卷积与线性卷积的对应

充分补零条件

长度分别为 Lx 和 Lh 的有限长序列从索引 0 开始,其线性卷积非零支撑最多覆盖

0\le n\le L_x+L_h-2,

输出长度为

L_y=L_x+L_h-1.

若将两个输入都补零到 N 点,并满足

\boxed{N\ge L_x+L_h-1},

则线性卷积的全部非零样本可落在单个 N 点周期内,不同周期副本不重叠。

此时

y_N[n]= \begin{cases} y_{\mathrm{lin}}[n], & 0\le n\le L_x+L_h-2,\\ 0, & L_x+L_h-1\le n\le N-1. \end{cases}

该条件是使用 FFT 计算一次完整线性卷积时最直接的长度规则。


长度不足导致的周期折叠

当两个输入本身均能放入 N 点区间,但 N<Lx+Lh−1 时,N 点循环卷积等于线性卷积的周期求和:

\boxed{ y_N[n]=\sum_{\ell\in\mathbb{Z}}y_{\mathrm{lin}}[n+\ell N]}, \qquad 0\le n\le N-1.

因 ylin[n] 为有限长序列,实际只有有限项非零。

该式表明时域混叠不是随机误差,而是相隔 N 点的线性卷积样本按确定位置相加。仅有循环卷积输出时,一般无法分离这些已叠加的分量。

分块线性卷积

长数据流不能无限补零后一次处理,通常采用重叠相加或重叠保留方法。重叠相加把输入分块,每块与长度为 Lh 的冲激响应共同补零到满足 N≥ L+Lh−1 的长度,再把相邻块的线性卷积重叠区相加。

重叠保留则让相邻输入块共享 Lh−1 个样本,执行 N 点循环卷积后舍弃每块中受回绕影响的前 Lh−1 个输出。两种方法均利用 DFT 乘法,同时通过明确的补零或丢弃规则消除周期折叠对有效输出的影响。


05
物理含义

循环卷积对应一个定义在有限周期网格上的移不变系统。输入循环移动一个样本,输出也循环移动一个样本,边界处没有终止状态,而是首尾相接。DFT 复指数在循环移动后只改变相位比例,因此成为该系统的特征向量。每个频点 H[k] 表示系统对相应周期复指数模式的复增益。

线性卷积假定区间外为零,循环卷积假定区间外按 N 周期重复。二者的差异实质上是边界条件不同。补零并不改变原有限长样本,却在周期副本之间插入足够的零区间,使一个周期内的卷积结果不与相邻周期重叠。

欠补零时,尾部样本回绕到周期起点,这正是 FFT 快速滤波中常见的首尾污染来源。

06
固定参数算例

MATLAB 程序固定使用

x[n]=\{2,-1,3,0,1\},\qquad h[n]=\{1,2,-1,1\}.

两序列的线性卷积长度为 8,结果为

y_{\mathrm{lin}}[n]=\{2,3,-1,9,-3,5,-1,1\}.

程序先补零到 N=8,分别按循环卷积定义、FFT 逐点乘法和循环矩阵计算输出;

随后取不足长度 N=5,检查线性卷积的周期折叠。程序还验证

\bm{C}_h=\bm{F}_N^{\mathsf H}\operatorname{diag}(\bm{H})\bm{F}_N/N

MATLAB R2026a 的实际运行结果列于表 2。

MATLAB 数值验证结果
验证项目结果
8 点时域定义与 FFT 计算最大误差8.88×10−16
8 点循环卷积与线性卷积最大误差0
DFT 乘法定理最大复误差9.93×10−16
循环矩阵乘法最大误差0
循环矩阵 DFT 对角化最大复误差2.07×10−15
5 点时域定义与 FFT 计算最大误差1.78×10−15
5 点循环卷积与周期折叠最大误差0
8 点与 5 点循环卷积向量见正文
图 1:固定输入序列、充分补零时的 8 点循环卷积、欠补零时的 5 点周期折叠,以及 DFT 域乘积与输出 DFT 的幅度一致性。(子图 1)图 1:固定输入序列、充分补零时的 8 点循环卷积、欠补零时的 5 点周期折叠,以及 DFT 域乘积与输出 DFT 的幅度一致性。(子图 2)图 1:固定输入序列、充分补零时的 8 点循环卷积、欠补零时的 5 点周期折叠,以及 DFT 域乘积与输出 DFT 的幅度一致性。(子图 3)图 1:固定输入序列、充分补零时的 8 点循环卷积、欠补零时的 5 点周期折叠,以及 DFT 域乘积与输出 DFT 的幅度一致性。(子图 4)

图 1 固定输入序列、充分补零时的 8 点循环卷积、欠补零时的 5 点周期折叠,以及 DFT 域乘积与输出 DFT 的幅度一致性。

充分补零时,8 点循环卷积为

y_8[n]=\{2,3,-1,9,-3,5,-1,1\},

与线性卷积逐点一致。取 N=5 时得到

y_5[n]=\{7,2,0,9,-3\}.

其中前三项分别由 2+5、3+(−1) 和 −1+1 形成,直接对应

y_5[n]=y_{\mathrm{lin}}[n]+y_{\mathrm{lin}}[n+5]

其余两项没有可折叠的非零尾部样本。

07
数字实现的边界

08
适用范围

DFT 乘法定理适用于长度相同且采用一致索引约定的 N 点序列。利用该定理计算有限长线性卷积时,两个输入必须先补零到至少 Lx+Lh−1 点;

若选择更长的 FFT 长度,额外输出样本应为数值零或有限精度下的近零值。周期序列本身需要循环卷积时,则不应把回绕解释为误差。

在公开的通信、雷达和电子测量基础处理中,该关系可用于 FIR 滤波的块 FFT 实现、周期相关运算、循环前缀条件下的数据块模型以及有限记录的快速匹配滤波。

所有应用都需明确保存 DFT 长度、有效输入长度、补零位置、归一化方式和频点排列。缺少这些信息时,相同的频域乘积可能被错误解释为线性卷积或循环卷积。

当冲激响应固定而输入数据块连续到达时,可预先计算并保存 H[k],每个数据块只需计算输入 DFT、逐点乘法和反变换。采用重叠相加或重叠保留时,还应记录块长、重叠长度和有效输出区间,以保证相邻数据块拼接后与直接线性卷积一致。

09
工程上需要注意

  • 边界条件:循环卷积默认周期延拓,线性卷积默认区间外为零;未声明边界条件会导致结果含义不确定。

  • 变换长度:计算线性卷积时若 N<Lx+Lh−1,尾部必然折叠到周期起点;仅增加 FFT 运算精度不能消除该结构性误差。

  • 输入长度:若任一原序列本身长于 N,形成 N 点序列前还会先发生周期求和或截断,必须与卷积后的折叠区分。

  • 归一化约定:不同 DFT 实现可把比例因子放在正变换、反变换或两端;频域乘积和幅度比较必须使用一致约定。

  • 有限精度:浮点 FFT 存在舍入误差;定点实现还受乘积截断、累加溢出、旋转因子量化和级间缩放影响。

  • 复数数据通路:一般 DFT 域乘法需要四个实乘法和两个实加法,或等价的三乘法结构;资源与时序取决于器件映射。

  • 块边界:重叠长度、丢弃区间或输出相加位置错误会产生块间不连续,即使每个 FFT 数据块内部计算正确。

  • 并行结构时序:配套 4 点模块未插入寄存器,最高工作频率取决于乘法器与加法树的综合映射,不能由功能公式单独确定。

  • 采样系统非理想:量化噪声、时钟抖动、模拟前端带宽和非线性会改变输入样本,不包含在理想卷积模型中。

N 点循环卷积在模 N 索引下对两个周期序列求和,其 DFT 等于两个输入 DFT 的逐频点乘积。换元 r=(n−m)N 在一个周期内的双射性质给出该定理;循环矩阵的 DFT 对角化进一步表明,频域乘法是循环移位系统在特征向量基下的标量表示。

有限长线性卷积与循环卷积是否一致取决于周期副本是否重叠。将两个输入补零到 N≥ Lx+Lh−1 时,一个周期包含完整线性卷积;长度不足时,循环输出等于线性卷积样本按 N 点间隔的周期求和。

MATLAB 实际运行在双精度误差范围内验证了时域定义、FFT 乘法、循环矩阵分解、充分补零和欠补零折叠。SystemVerilog 文件以 2W+2 位输出实现 4 点并行循环卷积;

动态 HDL 结论仍以可用仿真器上的自检运行为边界。

内容依据:每日精学第 07 课《N 点循环卷积与 DFT 乘法关系》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。

阅读20
分享
写评论...