Convolution卷积算法python以numpy,Matplotlib实现
1:简述
Numpy拥有函数numpy.convolve(a, v, mode=’full’)[source]¶,通过该函数完成卷积算法并图形化(Matplotlib)实现。
2:卷积定理
原理:
设:f(x),g(x)是R1上的两个可积函数,作积分:
用处:
二个二维连续函数在空间域中的卷积可求其相应的二个傅立叶变换乘积的反变换而得。反之,在频域中的卷积可用的在空间域中乘积的傅立叶变换而得。
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实现的更多相关文章
- Mac下安装eclipse+python+pydev+numpy+matplotlib
*本人亲测是成功的安装过程 1.更新Mac系统默认低版本的python2.7.请参见这篇文章:http://jingyan.baidu.com/article/14bd256e39b63dbb6d26 ...
- python AI(numpy,matplotlib)
http://blog.csdn.net/ywjun0919/article/details/8692018 apt-cache policy python-numpy sudo apt-get in ...
- Python之Numpy详细教程
NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前 ...
- windows下python安装Numpy、Scipy、matplotlib模块(转载)
python下载链接 Numpy下载链接 python中Numpy包的安装及使用 Numpy包的安装 准备工作 Python安装 pip安装 将pip所在的文件夹添加到环境变量path路径中 ...
- Python中Numpy及Matplotlib使用
Python中Numpy及Matplotlib使用 1. Jupyter Notebooks 作为小白,我现在使用的python编辑器是Jupyter Notebook,非常的好用,推荐!!! 你可以 ...
- python安装numpy、scipy和matplotlib等whl包的方法
最近装了python和PyCharm开发环境,但是在安装numpy和matplotlib等包时出现了问题,现总结一下在windows平台下的安装方法. 由于现在找不到了工具包新版本的exe文件,所以采 ...
- Python安装Numpy,matplotlib库
<1> Numpy是一款基于python的功能强大的科学计算包.要安装numpy首先你得先安装python. python的安装非常简单,本人安装的是python2.7 具体安装步骤如下: ...
- 模拟退火算法Python编程(2)约束条件的处理
1.最优化与线性规划 最优化问题的三要素是决策变量.目标函数和约束条件. 线性规划(Linear programming),是研究线性约束条件下线性目标函数的极值问题的优化方法,常用于解决利用现有的资 ...
- 模拟退火算法Python编程(3)整数规划问题
1.整数规划问题 整数规划问题在工业.经济.国防.医疗等各行各业应用十分广泛,是指规划中的变量(全部或部分)限制为整数,属于离散优化问题(Discrete Optimization). 线性规划问题的 ...
随机推荐
- 关于如何在ElementUI中实现统计Table筛选结果数量
在开发单位自己的系统时,领导提了这个需求,在看了ElementUI发现并没有实现这个功能. 遂向官方求解,得回复:自己在filter-method 中实现.于是便有了思路. 这里本人使用了一个比较暴力 ...
- Codeforces.1110E.Magic Stones(思路 差分)
题目链接 听dalao说很nb,做做看(然而不小心知道题解了). \(Description\) 给定长为\(n\)的序列\(A_i\)和\(B_i\).你可以进行任意多次操作,每次操作任选一个\(i ...
- BZOJ.3453.tyvj 1858 XLkxc(拉格朗日插值)
BZOJ 题意即求\[\sum_{i=0}^n\sum_{j=1}^{a+id}\sum_{x=1}^jx^k\] 我们知道最后一个\(\sum\)是自然数幂和,设\(f(n)=\sum_{x=1}^ ...
- 【DWM1000】 code 解密9一 ANCHOR response poll message
根据上面TAG发送的代码,我直接找到如下代码 case RTLS_DEMO_MSG_TAG_POLL: { if(inst->mode == LISTENER) ...
- js中使用将json数组 转换为json将一个包含对象的数组用以创建一个包含新重新格式化对象的新数组
1.使用reduce: let arr = [{ "code": "badge", "priceList": [{ "amount ...
- POJ 1905 Expanding Rods 木棍膨胀
描述 当长度为L的一根细木棍的温度升高n度,它会膨胀到新的长度L'=(1+n*C)*L,其中C是热膨胀系数. 当一根细木棍被嵌在两堵墙之间被加热,它将膨胀形成弓形的弧,而这个弓形的弦恰好是未加热前木棍 ...
- python 绘图pylab
绘图 1.绘图主要通过代码来进行认知 demo: import pylab #绘图库 pylab.figure(1) #创建图一 pylab.plot([1,2,3,4],[1,2,3,4]) #在图 ...
- aix 查看内存,CPU 配置信息
内存lsattr -El mem0cpu lsdev -C |grep procCPU的信息lsattr -El proc0 #bootinfo -r查看物理内存 使用命令# lsdev ...
- .Net core下的配置设置(二)——Option
我在前面的文章.Net core下的配置设置(一)——Configuration中介绍了.net core下配置文件的读取方法,在.net core中,直接从Configuration对象中读取的并不 ...
- 【总结】瞬时高并发(秒杀/活动)Redis方案
1,Redis 丰富的数据结构(Data Structures) 字符串(String) Redis字符串能包含任意类型的数据 一个字符串类型的值最多能存储512M字节的内容 利用INCR命令簇(IN ...