关于matlab矩阵卷积conv2和傅里叶变换求卷积ifft2的关系
先定义两个矩阵
a = [1 2 3 5 ; 4 7 9 5;1 4 6 7;5 4 3 7;8 7 5 1] %a矩阵取5*4
b = [1 5 4; 3 6 8; 1 5 7] %b矩阵如多数模板一样取3*3
那么conv(a,b)的结果肯定是(5+3-1)*(4+3-1)=7*6的矩阵
卷积计算过程如下:默认先把a矩阵补0变成7*6维的矩阵,然后b翻转 之后进行模板操作,要计算a矩阵中哪个点卷积以后的值,就把翻转之后b‘矩阵的中心如图中的6放到要计算的位子 然后对应的3*3矩阵对应位置相乘,之后全部相加即为对应点的卷积之后的结果。如下图所示
结果如下:
c=conv2(a,b)
c =
1 7 17 28 37 20
7 39 89 127 115 60
14 61 151 212 207 103
12 74 165 226 225 119
24 98 178 190 168 109
29 98 179 139 102 57
8 47 96 75 40 7
d=conv2(a,b,'same') %这个结果表示卷积出来的结果与a矩阵的维数一样
d =
39 89 127 115
61 151 212 207
74 165 226 225
98 178 190 168
98 179 139 102
接下来看看e=ifft2(fft2(a).*fft2(b));计算这个的时候由于是点乘,两个矩阵的维数应该相同因此首先应该将a、b两个矩阵都变成卷积之后的维数大小才行,这里都变成7*6维
因此首先:
a(7,6)=0;
b(7,6)=0;
此时a =
1 2 3 5 0 0
4 7 9 5 0 0
1 4 6 7 0 0
5 4 3 7 0 0
8 7 5 1 0 0
0 0 0 0 0 0
0 0 0 0 0 0
b =
1 5 4 0 0 0
3 6 8 0 0 0
1 5 7 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
然后执行e=ifft2(fft2(a).*fft2(b))
得到
e =
1.0000 7.0000 17.0000 28.0000 37.0000 20.0000
7.0000 39.0000 89.0000 127.0000 115.0000 60.0000
14.0000 61.0000 151.0000 212.0000 207.0000 103.0000
12.0000 74.0000 165.0000 226.0000 225.0000 119.0000
24.0000 98.0000 178.0000 190.0000 168.0000 109.0000
29.0000 98.0000 179.0000 139.0000 102.0000 57.0000
8.0000 47.0000 96.0000 75.0000 40.0000 7.0000
是不是与之前conv(a,b)的结果一样,只不过这里是双精度型的
原地址:http://blog.csdn.net/ckghostwj/article/details/12170545
关于matlab矩阵卷积conv2和傅里叶变换求卷积ifft2的关系的更多相关文章
- MATLAB矩阵操作大全
转载自:http://blog.csdn.net/dengjianqiang2011/article/details/8753807 MATLAB矩阵操作大全 一.矩阵的表示 在MATLAB中创建矩阵 ...
- 【GCN】图卷积网络初探——基于图(Graph)的傅里叶变换和卷积
[GCN]图卷积网络初探——基于图(Graph)的傅里叶变换和卷积 2018年11月29日 11:50:38 夏至夏至520 阅读数 5980更多 分类专栏: # MachineLearning ...
- matlab矩阵的表示和简单操作
原地址:http://www.cnblogs.com/Ran_Ran/archive/2010/12/11/1903070.html 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必 ...
- [笔记]ACM笔记 - 利用FFT求卷积(求多项式乘法)
卷积 给定向量:, 向量和: 数量积(内积.点积): 卷积:,其中 例如: 卷积的最典型的应用就是多项式乘法(多项式乘法就是求卷积).以下就用多项式乘法来描述.举例卷积与DFT. 关于多项式 对于多项 ...
- Matlab 矩阵【Mark】
一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ]”内: b.矩阵的同行元素之间用空格(或”,”)隔开: c.矩阵的行与行之间用”;”(或回车符)隔开: d.矩阵的元素可以 ...
- Matlab矩阵基本操作(定义,运算)
转自:http://blog.csdn.net/perfumekristy/article/details/8119861 一.矩阵的表示在MATLAB中创建矩阵有以下规则: a.矩阵元素必须在”[ ...
- FFT求卷积(多项式乘法)
FFT求卷积(多项式乘法) 卷积 如果有两个无限序列a和b,那么它们卷积的结果是:\(y_n=\sum_{i=-\infty}^\infty a_ib_{n-i}\).如果a和b是有限序列,a最低的项 ...
- [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置
矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:' 运算符与 .' 运算符 >>a ...
- 矩阵的f范数及其求偏导法则
转载自: http://blog.csdn.net/txwh0820/article/details/46392293 矩阵的迹求导法则 1. 复杂矩阵问题求导方法:可以从小到大,从scalar到 ...
随机推荐
- SwifThumb.com 第一家Swift开发人员论坛 QQ群 343549891
官方QQ群2: 兴许会有app出来让大家随时地学习Swift并在线交流~ watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5ld2N6cw==/font ...
- UVa 657 掷骰子
意甲冠军:有一个大图.每个像素是格孩子只可能是 . * X 三种.代表背景.玻色子.色子点. 两格子是邻近或在通信,当且仅当两个格儿子*要么X.且具有共同的边,这是上下左右四个方向,斜过,即四连块. ...
- 收货MIGO
FUNCTION zrfc_mm003. *"---------------------------------------------------------------------- * ...
- 树莓派的.bashrc和.bash_aliases文件
在你的home文件夹中,你能够找到一个包括用户配置的隐藏文件.bashrc. 你能够依据自己的须要改动这个文件. 文件里为你提供了一些实用的调整设置.默认情况下当中一些设置是被凝视掉的. 比如,一些l ...
- 第13章、布局Layouts之RelativeLayout相对布局(从零開始学Android)
RelativeLayout相对布局 RelativeLayout是一种相对布局,控件的位置是依照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最经常使用,也是最灵活的一种布 ...
- 单元测试工具 SmokeTest
.NET 程序集单元测试工具 SmokeTest Smoke Test(冒烟测试),也称Regression Test(回归测试),是对软件的安装和基本功能的测试.一般地我们使用脚本来实现Smoke ...
- WPF的消息机制
前言 谈起“消息机制”这个词,我们都会想到Windows的消息机制,系统将键盘鼠标的行为包装成一个Windows Message,然后系统主动将这些Windows Message派发给特定的窗口,实际 ...
- Indy10.2.5的危险做法
为了排查一个Bug今天无意看了看Indy源码,结果吓了一跳.TIdIOHandler.ReadLongWord函数用于读取通讯数据并转换成LongWord类型返回,它做用了一种危险的做法可能会导致数据 ...
- 关于WM_ERASEBKGND和WM_PAINT的深刻理解
一直以来,对于WM_PAINT和WM_ERASEBKGND消息不是很清楚,从书上和网上找了很多资料,大体上有以下几点说法:1>WM_PAINT先产生,WM_ERASEBKGND后产生 2.WM_ ...
- Java 的垃圾回收机制(转)
先看一段转载,原文出自 http://jefferent.iteye.com/blog/1123677 虚拟机中的共划分为三个代:年轻代(Young Generation).年老点(Old Gener ...