scipy.signal.convolve¶
- scipy.signal.convolve(in1, in2, mode='full', method='auto')[源代码]¶
- 对两个N维数组进行卷积。 - 卷积 in1 和 in2 ,输出大小由 mode 论点。 - 参数
- in1array_like
- 第一次输入。 
- in2array_like
- 第二个输入。应具有与的维度数量相同的维度 in1 。 
- modestr{‘完整’,‘有效’,‘相同’},可选
- 指示输出大小的字符串: - full
- 输出是输入的全离散线性卷积。(默认) 
- valid
- 输出只包含那些不依赖于补零的元素。在“有效”模式下, in1 或 in2 必须在每个维度上至少与其他维度一样大。 
- same
- 输出的大小与 in1 ,相对于“完整”输出居中。 
 
- methodstr{‘AUTO’,‘DIRECT’,‘FFT’},可选
- 一个字符串,指示使用哪种方法计算卷积。 - direct
- 卷积是由和直接确定的,这是卷积的定义。 
- fft
- 傅里叶变换用于通过调用 - fftconvolve。
- auto
- 根据估计的速度较快(默认)自动选择直接或傅立叶方法。有关更多详细信息,请参见注释。 - 0.19.0 新版功能. 
 
 
- 退货
- convolve阵列
- 包含以下项的离散线性卷积的子集的N维数组 in1 使用 in2 。 
 
 - 参见 - numpy.polymul
- 执行多项式乘法(相同的运算,但也接受Poly1d对象) 
- choose_conv_method
- 选择最快、合适的卷积方法 
- fftconvolve
- 始终使用FFT方法。 
- oaconvolve
- 使用重叠相加方法进行卷积,当输入数组较大且大小差异较大时,此方法通常会更快。 
 - 注意事项 - 默认情况下, - convolve和- correlate使用- method='auto',它调用- choose_conv_method使用预计算值选择最快方法的步骤 (- choose_conv_method还可以使用关键字参数测量实际计时)。因为- fftconvolve依赖于浮点数,则某些约束可能会强制 method=direct (更多详细信息请参见- choose_conv_method文档字符串)。- 示例 - 使用Hann窗口平滑方形脉冲: - >>> from scipy import signal >>> sig = np.repeat([0., 1., 0.], 100) >>> win = signal.windows.hann(50) >>> filtered = signal.convolve(sig, win, mode='same') / sum(win) - >>> import matplotlib.pyplot as plt >>> fig, (ax_orig, ax_win, ax_filt) = plt.subplots(3, 1, sharex=True) >>> ax_orig.plot(sig) >>> ax_orig.set_title('Original pulse') >>> ax_orig.margins(0, 0.1) >>> ax_win.plot(win) >>> ax_win.set_title('Filter impulse response') >>> ax_win.margins(0, 0.1) >>> ax_filt.plot(filtered) >>> ax_filt.set_title('Filtered signal') >>> ax_filt.margins(0, 0.1) >>> fig.tight_layout() >>> fig.show() 