python中的while循环语句的数组循环,Python:一维数组循环卷积

I wonder if there's a function in numpy/scipy for 1d array circular convolution. The scipy.signal.convolve() function only provides "mode" but not "boundary", while the signal.convolve2d() function needs 2d array as input.

I need to do this to compare open vs circular convolution as part of a time series homework.

解决方案

Since this is for homework, I'm leaving out a few details.

By the definition of convolution, if you append a signal a to itself, then the convolution between aa and b will contain inside the cyclic convolution of a and b.

E.g., consider the following:

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));

de7e90ec6947e28b881e64ed794cb9a8.png

That is the standard convolution. Now this, however

plot(signal.convolve(a, np.concatenate((b, b))));

ce537955cb2b58a5af3e227f8c4e9ee9.png

In this last figure, try to see where is the result of the circular convolution, and how to generalize this.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值