在Python中对两个一维序列进行离散线性卷积并获得它们重叠的地方
在这篇文章中,我们将研究返回两个一维序列的离散线性卷积的方法,并在Python中得到它们重叠的地方。
Numpy np.convolve()
为了返回两个一维序列的离散线性卷积,用户需要调用Python中Numpy库的numpy.convolve()方法。卷积算子经常出现在信号处理中,它模拟线性时变系统对信号的影响。在概率论中,两个独立随机变量的总和是根据它们各自分布的卷积来分布的。
语法: numpy.convolve(a, v, mode=”)
参数:
- a : 第一个一维输入矩阵。
- v : 第二个一维输入矩阵。
- mode{‘full ‘、’valid’、’same’}。
- full ‘: 默认情况下,模式是’full’。这将返回每个重叠点的卷积,其输出形状为(N+M-1,)。在卷积的端点,信号并不完全重叠,可能会出现边界效应。
- same’: 模式’相同’返回长度为max(M, N)的输出。边界效应仍然可见。
- ‘valid’:模式’有效’返回长度为max(M, N) – min(M, N) + 1的输出。卷积只对信号完全重叠的点给出。信号边界以外的数值没有影响。
返回:out: a和v的离散、线性卷积。
示例:
在这个例子中,我们创建了两个各有5个数据点的数组,然后我们简单地得到了每个数组的尺寸和形状,进一步使用np.convolve()方法,我们将两个数组的模式值作为参数传递给默认值,以返回两个一维序列的离散线性卷积,并在python中得到它们重叠的地方。
import numpy as np
# Creating two numpy One-Dimensional
# array using the array() method
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([0, 0.5, 1, 1.5])
# Display the arrays
print("Array1:->\n", arr1)
print("\nArray2:->\n", arr2)
# Check the Dimensions of both the arrays
print("\nDimensions of Array1:->\n", arr1.ndim)
print("\nDimensions of Array2:->\n", arr2.ndim)
# Check the Shape of both the arrays
print("\nShape of Array1:->\n", arr1.shape)
print("\nShape of Array2:->\n", arr2.shape)
# To return the discrete linear convolution
# of two one-dimensional sequences,
# use the numpy.convolve() method in Python Numpy
print("\nResult:->\n", np.convolve(arr1, arr2))
输出:
Array1:->
[1 2 3 4 5]
Array2:->
[0. 0.5 1. 1.5]
Dimensions of Array1:->
1
Dimensions of Array2:->
1
Shape of Array1:->
(5,)
Shape of Array2:->
(4,)
Result:->
[ 0. 0.5 2. 5. 8. 11. 11. 7.5]
示例:
在这个例子中,我们创建了两个各有5个数据点的数组,然后我们简单地得到了每个数组的维度和形状,进一步使用np.convolve()方法,我们将两个数组的模式值作为参数传递给有效,以返回两个一维序列的离散线性卷积,并在python中得到它们重叠的地方。
import numpy as np
# Creating two numpy One-Dimensional
# array using the array() method
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([0, 0.5, 1, 1.5])
# Display the arrays
print("Array1:->\n", arr1)
print("\nArray2:->\n", arr2)
# Check the Dimensions of both the arrays
print("\nDimensions of Array1:->\n", arr1.ndim)
print("\nDimensions of Array2:->\n", arr2.ndim)
# Check the Shape of both the arrays
print("\nShape of Array1:->\n", arr1.shape)
print("\nShape of Array2:->\n", arr2.shape)
# To return the discrete linear convolution of
# two one-dimensional sequences, use the
# numpy.convolve() method in Python Numpy
print("\nResult:->\n", np.convolve(arr1, arr2,
mode='valid'))
输出:
Array1:->
[1 2 3 4 5]
Array2:->
[0. 0.5 1. 1.5]
Dimensions of Array1:->
1
Dimensions of Array2:->
1
Shape of Array1:->
(5,)
Shape of Array2:->
(4,)
Result:->
[5. 8.]