这个计算器能做什么
圆周卷积计算器用于计算两个离散时间序列的圆周卷积(又称循环卷积或周期卷积)——这是数字信号处理(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\) 个采样点——与较长的输入序列长度一致。
计算示例
设 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 中所有元素之和——这是一个非常实用的验算技巧。
常见问题
它和线性卷积有什么不同?线性卷积会生成一个长度为 \((\text{len}(x) + \text{len}(h) - 1)\) 的序列,没有环绕折叠。而圆周卷积将长度固定为 \(N\),并把溢出部分折回序列开头,这与基于 DFT 的滤波结果完全一致。
如果两个序列长度不一样怎么办?较短的序列会被补零,直到与较长序列的长度 \(N\) 相同,这样两个序列在做卷积前就对齐了。
可以输入负数或小数吗?可以。输入会按小数解析,所以像 -1.5, 0.25, 3 这样的数值都能正常使用。