| [ Web Proxy ] |
| Viewing: https://numpy.org/doc/stable/reference/generated/../random/../generated/numpy.convolve.html | [Back] [Original] |
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 [1]. 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.
First one-dimensional input array.
Second one-dimensional input array.
By default, mode is full. This returns the convolution at each point of overlap, with an output shape of (N+M-1,). At the end-points of the convolution, the signals do not overlap completely, and boundary effects may be seen.
Mode same returns output of length max(M, N). Boundary
effects are still visible.
Mode valid returns output of length
max(M, N) - min(M, N) + 1. The convolution product is only given
for points where the signals overlap completely. Values outside
the signal boundary have no effect.
Discrete, linear convolution of a and v.
See also
scipy.signal.fftconvolveConvolve two arrays using the Fast Fourier Transform.
scipy.linalg.toeplitzUsed to construct the convolution operator.
polymulPolynomial multiplication. Same output as convolve, but also accepts poly1d objects as input.
Notes
The discrete convolution operation is defined as
It can be shown that a convolution \(x(t) * y(t)\) in time/space
is equivalent to the multiplication \(X(f) Y(f)\) 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.
References
Wikipedia, Convolution, https://en.wikipedia.org/wiki/Convolution
Examples
Note how the convolution operator flips the second array before sliding the two across one another:
>>> import numpy as np
>>> 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])
| Web Proxy Viewer | New URL | Original Page |