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。其中只会显示两个信号重叠的部分,不会有边界效应。

类似功能函数:

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)

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. Python发送QQ邮件

    #!/usr/bin/python # -*- coding: UTF-8 -*-    import smtplib from email.mime.text import MIMEText fro ...

  2. 用STM32CudeMX 配置用到的函数(记住他!)

    1.设置PB5的电平:HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, 0);2.读取PB5的电平值:int a = HAL_GPIO_ReadPin(GPIOB, GPIO_ ...

  3. UE4入门(三)

  4. hiredis 使用 linux c++

    1.linux下如何安装hiredis 1)下载地址  https://github.com/redis/hiredis 2)编译和安装 解压后的文件夹执行 make;make install; 3) ...

  5. elastic-job详解(五):自定义任务参数

    在elastic-job详解(三):Job的手动触发功能一文中讲到了如何手动触发一个Job,但是我们手动触发的时候常常需要输入一些参数.举个栗子:我们有个日统计报表,每天凌晨统计一次,统计上一天的数据 ...

  6. HTML5 学习07——Video(视频)Audio(音频)

    <video> 元素:提供了 播放.暂停和音量控件来控制视频. width 和 height 属性:控制视频的尺寸 <video> 与</video> 标签之间插入 ...

  7. 法嵌入互操作类型“SHDocVw.ShellWindowsClass”请改用适用的接口-解决方法

    点DLL名字,---属性----------嵌入互操作类型(设置为false)

  8. .ipynb格式文件

    ipynb,即ipython notebook,需要用ipython notebook打开,IPython Notebook是web based IPython封装,但是可以展现富文本,使得整个工作可 ...

  9. 搭建SpringCloud-Eureka 注册中心以及服务提供与调用 快速了解 SpringCloud-Eureka

    原文地址:  搭建SpringCloud-Eureka 注册中心以及服务提供与调用   纸上得来终觉浅,绝知此事要躬行啊~果然看着很easy,自己搞起来就是各种坑~各位看官,容我慢慢道来~ 关于spr ...

  10. JavaScript中Object值合并方法

    原文:https://www.cnblogs.com/fullstack-yang/p/8085206.html ------------------------------------ 前言:在日常 ...