关于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到 ...
 
随机推荐
- js ajax调用请求
			
<pre name="code" class="html"> function getAppList(env){ var data = {}; da ...
 - <?php echo "我的第一段 PHP 脚本!"; ?>
			
<!DOCTYPE html><html><body> <?phpecho "我的第一段 PHP 脚本!";?> </body ...
 - C语言指针和数组知识总结(下)
			
一.数组指针: 数组指针就是一个指针,只不过它指向的是一个数组.可以通过如下方式来定义 typedef int Array[5]; //数组类型 Array* m; //数组定义 还有一种更 ...
 - clearcase常用命令
			
版本控制工具学习 http://www.itpxpj.com/course.do?method=getAllCourseInFront&classTypeId=21 1.[ClearCase] ...
 - [置顶] 64位Win2008_VS2012使用ODP.NET遭遇问题和解决办法
			
最近为使用Oracle11G数据库做个快速开发的小程序,使用64位Win2008+Vs2012环境,结果碰壁连环,幸好不算太笨,终于解决了,特记录一下. 测试环境: Oracle11g (11.2.0 ...
 - Kendo UI开发教程(27): 移动应用开发简介
			
Kendo UI 支持开发Web应用,前面介绍的SPA,也支持开发移动应用,至于使用 HTML5 + JavaScript + CSS开发移动是不是一个好的选择不在本文的讨论之中.Kendo UI M ...
 - APNS 那些事!
			
之前在消息推送中间件APush里实现了对APNS的桥接.并利用业余时间阅读了官方指南Local and Push Notification Programming Guide.蛮有心得的.稍作总结.分 ...
 - Nginx负载均衡:分布式/热备Web Server的搭建
			
Nginx是一款轻量级的Web server/反向代理server及电子邮件(IMAP/POP3)代理server.并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开 ...
 - 深入理解extern使用方法
			
一. extern做变量声明 l 声明externkeyword的全局变量和函数可以使得它们可以跨文件被訪问. 我们一般把全部的全局变量和全局函数的实现都放在一个*.cpp文件中面,然后用一个同名的 ...
 - Codeforces 484B Maximum Value(排序+二分)
			
题目链接: http://codeforces.com/problemset/problem/484/B 题意: 求a[i]%a[j] (a[i]>a[j])的余数的最大值 分析: 要求余数的最 ...