Python:一维数组循环卷积
问题内容:
我想知道numpy /
scipy中是否存在用于1d数组圆形卷积的函数。该scipy.signal.convolve()
函数仅提供“模式”而不提供“边界”,而该signal.convolve2d()
函数需要2d数组作为输入。
我需要这样做,以比较开放卷积和圆形卷积作为时间序列作业的一部分。
问题答案:
由于这是做作业,因此我省略了一些细节。
通过卷积的定义,如果你追加一个信号 一个
给自己,然后之间的卷积 AA 和 b 将包含的循环卷积内 一个 和 b 。
例如,考虑以下几点:
import numpy as np
from scipy import signal
%pylab inline
a = np.array([1] * 10)
b = np.array([1] * 10)
plot(signal.convolve(a, b));
那就是标准的卷积。现在,但是
plot(signal.convolve(a, np.concatenate((b, b))));
在最后一个图中,尝试查看圆卷积的结果在哪里,以及如何对此进行概括。