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)<=>F(u,v)H(u,v) 
f(x,y)h(x,y)<=>[F(u,v) * H(u,v)] (A * B 表示做A与B的卷积)

3:官方函数解读

numpy.convolve(a, v, mode=’full’) 
http://docs.scipy.org/doc/numpy/reference/generated/numpy.convolve.html#r17) 
a,v是两个算子(array_like),mode有三种情况,’full‘ : 默认值,将计算每个点的卷积,即若a,v长度为n,m。最终输出图形x长度为(n+m-1),在边界处信号不完全重叠,即存在边界效应。‘same‘:返回长度为max(n,m),仍然有边界效应。‘valid‘:返回长度为max(n,m)-min(n,m)+1。其中只会显示两个信号重叠的部分,不会有边界效应。

类似功能函数:

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

案例:

  1. >>> np.convolve([1, 2, 3], [0, 1, 0.5])
  2. array([ 0. , 1. , 2.5, 4. , 1.5])
  3. >>> np.convolve([1,2,3],[0,1,0.5], 'same')
  4. array([ 1. , 2.5, 4. ])
  5. >>> np.convolve([1,2,3],[0,1,0.5], 'valid')
  6. array([ 2.5])
  7.  
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

4:编码尝试

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

Convolution卷积算法python以numpy,Matplotlib实现的更多相关文章

  1. Mac下安装eclipse+python+pydev+numpy+matplotlib

    *本人亲测是成功的安装过程 1.更新Mac系统默认低版本的python2.7.请参见这篇文章:http://jingyan.baidu.com/article/14bd256e39b63dbb6d26 ...

  2. python AI(numpy,matplotlib)

    http://blog.csdn.net/ywjun0919/article/details/8692018 apt-cache policy python-numpy sudo apt-get in ...

  3. Python之Numpy详细教程

    NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前 ...

  4. windows下python安装Numpy、Scipy、matplotlib模块(转载)

    python下载链接     Numpy下载链接 python中Numpy包的安装及使用 Numpy包的安装 准备工作 Python安装 pip安装 将pip所在的文件夹添加到环境变量path路径中 ...

  5. Python中Numpy及Matplotlib使用

    Python中Numpy及Matplotlib使用 1. Jupyter Notebooks 作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!! 你可以 ...

  6. python安装numpy、scipy和matplotlib等whl包的方法

    最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...

  7. Python安装Numpy,matplotlib库

    <1> Numpy是一款基于python的功能强大的科学计算包.要安装numpy首先你得先安装python. python的安装非常简单,本人安装的是python2.7 具体安装步骤如下: ...

  8. 模拟退火算法Python编程(2)约束条件的处理

    1.最优化与线性规划 最优化问题的三要素是决策变量.目标函数和约束条件. 线性规划(Linear programming),是研究线性约束条件下线性目标函数的极值问题的优化方法,常用于解决利用现有的资 ...

  9. 模拟退火算法Python编程(3)整数规划问题

    1.整数规划问题 整数规划问题在工业.经济.国防.医疗等各行各业应用十分广泛,是指规划中的变量(全部或部分)限制为整数,属于离散优化问题(Discrete Optimization). 线性规划问题的 ...

随机推荐

  1. [OC] @property时,copy、strong、weak、assign的区别

    @property(copy,nonatomic)NSMutableString*copyStr; @property(strong,nonatomic)NSMutableString*strongS ...

  2. Redis自学笔记:3.1入门-热身

    第3章:入门 3.1热身 获取符合规则的键名列表:keys 匹配key 表3-1 glob风格通配符规则 符号 含义 ? 匹配一个字符 * 匹配任意个(包括0个)字符 [ ] 匹配括号间的任一字符,可 ...

  3. excel 删除重复项

    excel 删除重复项 单击“数据”按钮会出现如图所示,这时我们可以看到,在下分的菜单栏里有一个“删除重复项”选项,单击该选项.

  4. JavaScript基础笔记(十一)JSON

    JSON 关于JSON,最重要的一点是理解它是一种数据格式,不是编程语言. 一.语法 JSON 不支持变量.函数或对象实例,它就是一种表示结构化数据的格式,虽然与 JavaScript 中表示数据的某 ...

  5. 多轴APM飞控调参

    调参步骤: 遥控器,电动机和电调对应的APM飞控连线——遥控器校准——电调行程校准——加速度计校准——磁罗盘校准——故障保护设定(遥控器和飞控)——飞行模式设定并调整——自动调参设定选项 APM飞控调 ...

  6. [BZOJ5064]B-number

    [BZOJ5064]B-number 题目大意: 求\(1\sim n(n\le10^{15})\)间有多少数满足是\(13\)的倍数且包含字符串\(13\). 思路: 数位DP.\(f[i][j][ ...

  7. 第2讲——wiz

    PC端信息收集 网页剪藏 win+s 屏幕截图:win+printscreen微博收集:@mywiz  @我的印象笔记 按ESC隐藏/恢复左边导航栏 F11全屏阅读  打标签:解决文件夹重叠问题 搜索 ...

  8. 论文泛读 A Novel Ensemble Learning-based Approach for Click Fraud Detection in Mobile Advertising [1/10]

    title:新的基于集成学习的移动广告作弊检测 导语:基于buzzcity数据集,我们提出了对点击欺诈检测是基于一组来自现有属性的新功能的一种新方法.根据所得到的精度.召回率和AUC对所提出的模型进行 ...

  9. 安装 VS2017 的正确姿势

    自从装了长城带宽,我的肠子就变成青色的了. 国内的网络环境,真的是有很大的不同,有的人装 VS 的时候,号称满速,有的人(其实就是我)要等它下载很久,还告诉我有个组件没有安装成功.很久很久以前,VS ...

  10. C/JS_二分法查找

    1. 二分法查找 前提: 数据是排好序的. 题设:给出一个有序arr,从中找出key,arr的区间是array[ low , higt]. 步骤: (1)mid=(low+high)/2 (2)arr ...