在Python中对两个一维序列进行离散线性卷积并获得它们重叠的地方

在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.]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Numpy教程