zoukankan      html  css  js  c++  java
  • numpy.convolve()

    卷积函数:

    numpy.convolve(avmode='full')

    Parameters:

    a : (N,) array_like

    First one-dimensional input array.

    v : (M,) array_like

    Second one-dimensional input array.

    mode : {‘full’, ‘valid’, ‘same’}, optional

    ‘full’:

    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.

    ‘same’:

    Mode ‘same’ returns output of length max(M, N). Boundary effects are still visible.

    ‘valid’:

    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.

    Returns:

    out : ndarray

    Discrete, linear convolution of a and v.

    The discrete convolution operation is defined as

    (a * v)[n] = sum_{m = -infty}^{infty} a[m] v[n - m]

    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.fftconvolveexploits the FFT to calculate the convolution of large data-sets.

    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])
  • 相关阅读:
    AD域新建用户
    Windows程序设计(1)
    C++ 进阶 模板和STL
    C++ 基于多态的职工管理系统
    C++核心编程
    C++入门-控制台版的通讯录管理系统
    第一章、熟悉工作环境和相关工具
    Spring整合JDBC temple
    SpringMVC整合mybaitis
    实验12 添加0号中断处理程序
  • 原文地址:https://www.cnblogs.com/data-ccz/p/6133814.html
Copyright © 2011-2022 走看看