Convolution卷积算法python以numpy,Matplotlib实现

1:简述

Numpy拥有函数numpy.convolve(a, v, mode=’full’)[source]¶,通过该函数完成卷积算法并图形化(Matplotlib)实现。

2:卷积定理

设:f(x),g(x)是R1上的两个可积函数,作积分:

∫∞−∞f (τ)f (x −τ)d τ∫−∞∞f(τ)f(x−τ)dτ

二个二维连续函数在空间域中的卷积可求其相应的二个傅立叶变换乘积的反变换而得。反之,在频域中的卷积可用的在空间域中乘积的傅立叶变换而得。
f(x,y) * h(x,y)

3:官方函数解读

scipy.signal.fftconvolve
%使用快速傅里叶变换卷积函数。
scipy.linalg.toeplitz
%可用于构造卷积运算符(Used to construct the convolution operator.)。
polymul
%多项式乘法,可以同本函数获得相同的输出,但是还可以接受poly1d对象作为输入。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
>>> np.convolve([1, 2, 3], [0, 1, 0.5])
array([ 0. ,  1. ,  2.5,  4. ,  1.5])
>>> np.convolve([1,2,3],[0,1,0.5], 'same')
array([ 1. ,  2.5,  4. ])
>>> np.convolve([1,2,3],[0,1,0.5], 'valid')
array([ 2.5])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

4:编码尝试

%cmd -> ipython notebook
%list和nparry都是单元数据,不能被直接plt。
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.plot([1,1,3])
end=np.convolve([1,2,3,4],[1,1,3],'full')
plt.plot(end)

Original: https://www.cnblogs.com/hdk1993/p/8784593.html
Author: 程序员修练之路
Title: Convolution卷积算法python以numpy,Matplotlib实现

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/9066/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

发表回复

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部