numpy.convolve(a, v, mode='full')[source]Returns the discrete, linear convolution of two one-dimensional sequences.
The convolution operator is often seen in signal processing, where it models the effect of a linear time-invariant system on a signal [R17]. In probability theory, the sum of two independent random variables is distributed according to the convolution of their individual distributions.
If v is longer than a, the arrays are swapped before computation.
| Parameters: |
a : (N,) array_like First one-dimensional input array. v : (M,) array_like Second one-dimensional input array. mode : {‘full’, ‘valid’, ‘same’}, optional
|
|---|---|
| Returns: |
out : ndarray Discrete, linear convolution of |
See also
scipy.signal.fftconvolvescipy.linalg.toeplitzpolymulThe discrete convolution operation is defined as
![(a * v)[n] = \sum_{m = -\infty}^{\infty} a[m] v[n - m]](https://docs.scipy.org/doc/numpy-1.11.0/_images/math/7684e2e27ec39e9a8cdc8f40b7b668cfa06f8dd6.png)
It can be shown that a convolution
in time/space is equivalent to the multiplication
in the Fourier domain, after appropriate padding (padding is necessary to prevent circular convolution). Since multiplication is more efficient (faster) than convolution, the function scipy.signal.fftconvolve exploits the FFT to calculate the convolution of large data-sets.
| [R17] | (1, 2) Wikipedia, “Convolution”, http://en.wikipedia.org/wiki/Convolution. |
Note how the convolution operator flips the second array before “sliding” the two across one another:
>>> np.convolve([1, 2, 3], [0, 1, 0.5]) array([ 0. , 1. , 2.5, 4. , 1.5])
Only return the middle values of the convolution. Contains boundary effects, where zeros are taken into account:
>>> np.convolve([1,2,3],[0,1,0.5], 'same') array([ 1. , 2.5, 4. ])
The two arrays are of the same length, so there is only one position where they completely overlap:
>>> np.convolve([1,2,3],[0,1,0.5], 'valid') array([ 2.5])
© 2008–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.convolve.html