通过MCP连接 →

输入计算

数学公式

广告

结果

圆周卷积

31, 31, 28

第一个序列 1,2,3
第二个序列 4,5,6
最大值 31
最小值 28

这个计算器能做什么

圆周卷积计算器用于计算两个离散时间序列的圆周卷积(又称循环卷积或周期卷积)——这是数字信号处理(DSP)中的一项核心运算。与线性卷积不同,圆周卷积会将序列在固定周期 \(N\) 上进行"环绕"折叠。当你把两个信号的离散傅里叶变换(DFT)相乘再逆变换回时域时,得到的正是圆周卷积的结果。输入你的序列,本工具会立即给出输出序列,并附带它的最大值和最小值,方便你快速分析。

需要输入的内容

  • 第一个序列:你的输入信号 x,以英文逗号分隔的数字形式填写(例如 1, 2, 3, 4)。
  • 第二个序列:第二个信号 h,同样使用英文逗号分隔(例如 1, 1, 1)。

如果两个序列长度不同,计算器会用零将较短的序列补齐到 \(N\)(即较长序列的长度)。随后,两个序列都被视为周期为 \(N\) 的周期信号进行处理。

计算公式

圆周卷积的定义为:

$$y[n] = \sum_{k=0}^{N-1} x[k] \cdot h\big[(n - k)\bmod N\big]$$

它与线性卷积最关键的区别在于索引中的 模 N(mod N) 运算。当 \((n - k)\) 变为负数时,索引不会产生零,而是"环绕"回到序列的末尾。正因如此,圆周卷积的结果始终恰好有 \(N\) 个采样点——与较长的输入序列长度一致。

Advertisement
排列在圆环上的两个序列,为循环卷积对齐样本
循环卷积用模 \(N\) 对索引取模回绕,将样本在环上对齐。

计算示例

设 x = [1, 2, 3, 4]、h = [1, 1, 1, 1](两者长度均为 \(N = 4\))。逐项计算输出:

  • \(y[0] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
  • \(y[1] = 1\cdot 1 + 2\cdot 1 + 3\cdot 1 + 4\cdot 1 = 10\)
  • \(y[2] = 10\),\(y[3] = 10\)

结果为 [10, 10, 10, 10],最大值为 10,最小值也为 10。由于 h 的元素全为 1,每个输出都等于 x 中所有元素之和——这是一个非常实用的验算技巧。

逐步网格,展示循环卷积的逐样本相乘与求和
每个输出 \(y[i]\) 是对齐样本乘积之和,使用回绕索引计算。

常见问题

它和线性卷积有什么不同?线性卷积会生成一个长度为 \((\text{len}(x) + \text{len}(h) - 1)\) 的序列,没有环绕折叠。而圆周卷积将长度固定为 \(N\),并把溢出部分折回序列开头,这与基于 DFT 的滤波结果完全一致。

如果两个序列长度不一样怎么办?较短的序列会被补零,直到与较长序列的长度 \(N\) 相同,这样两个序列在做卷积前就对齐了。

可以输入负数或小数吗?可以。输入会按小数解析,所以像 -1.5, 0.25, 3 这样的数值都能正常使用。

最后更新: