MATLAB卷积运算解释(conv、conv2、convn)
二维离散卷积公式:
=
第一部分
conv(向量卷积运算)
所谓两个向量卷积,说白了就是多项式乘法。
比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积如下:
把p的元素作为一个多项式的系数,多项式按升幂(或降幂)排列,比如就按升幂吧,写出对应的多项式:1+2x+3x^2;同样的,把q的元素也作为多项式的系数按升幂排列,写出对应的多项式:1+x。
卷积就是“两个多项式相乘取系数”。
(1+2x+3x^2)×(1+x)=1+3x+5x^2+3x^3
所以p和q卷积的结果就是[1 3 5 3]。
记住,当确定是用升幂或是降幂排列后,下面也都要按这个方式排列,否则结果是不对的。
你也可以用matlab试试
p=[1 2 3]
q=[1 1]
conv(p,q)
看看和计算的结果是否相同。
conv2(二维矩阵卷积运算)
a=[1 1 1;1 1 1;1 1 1];
b=[1 1 1;1 1 1;1 1 1];
>> conv2(a,b)
ans =
1 2 3 2 1
2 4 6 4 2
3 6 9 6 3
2 4 6 4 2
1 2 3 2 1
>> conv2(a,b,'valid')
ans =
9
>> conv2(a,b,'same')
ans =
4 6 4
6 9 6
4 6 4
>> conv2(a,b,'full')
ans =
1 2 3 2 1
2 4 6 4 2
3 6 9 6 3
2 4 6 4 2
1 2 3 2 1
convn(n维矩阵卷积运算)
>> a=ones(5,5,5)
a(:,:,1) =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
a(:,:,2) =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
a(:,:,3) =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
a(:,:,4) =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
a(:,:,5) =
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
>> b=ones(5,5,5);
>> convn(a,b,'valid')
ans =
125
>> convn(a,b,'same')
ans(:,:,1) =
27 36 45 36 27
36 48 60 48 36
45 60 75 60 45
36 48 60 48 36
27 36 45 36 27
ans(:,:,2) =
36 48 60 48 36
48 64 80 64 48
60 80 100 80 60
48 64 80 64 48
36 48 60 48 36
ans(:,:,3) =
45 60 75 60 45
60 80 100 80 60
75 100 125 100 75
60 80 100 80 60
45 60 75 60 45
第二部分
1.full
如下图:
图(1)
图中蓝色为原图像,白色为对应卷积所增加的padding,通常全部为0,绿色是卷积后图片。图的卷积的滑动是从卷积核右下角与图片左上角重叠开始进行卷积,滑动步长为1,卷积核的中心元素对应卷积后图像的像素点。
2.same
如下图:
图(2)
卷积的时候需要对卷积核进行180的旋转,同时卷积核中心与需计算的图像像素对齐,输出结构为中心对齐像素的一个新的像素值
3. valid
如下图:
图(3)
太简单,不解释。
最后,我们可以总结出full,same,valid三种卷积后图像大小的计算公式:
【注:在文章置顶的公式中,设A(m*m)为被卷积矩阵,K(n*n)为卷积核,B为卷积结果(可能与其他地方卷积公式的被 卷矩阵、卷积核选取有差异)则: ‘full’的输出结果为n+m-1,’same’的输出结果为m,’valid’的输出结果为m-n+1】
1.full: 滑动步长为1,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:N1+N2-1 x N1+N2-1
如图1, 滑动步长为1,图片大小为2x2,卷积核大小为3x3,卷积后图像大小:4x4
2.same: 滑动步长为1,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:N1xN1
3.valid:滑动步长为S,图片大小为N1xN1,卷积核大小为N2xN2,卷积后图像大小:(N1-N2)/S+1 x (N1-N2)/S+1
如图2,滑动步长为1,图片大小为5x5,卷积核大小为3x3,卷积后图像大小:3x3
第三部分
MATLAB的conv2函数实现步骤(conv2(A,B)):
其中,矩阵A和B的尺寸分别为ma*na即mb*nb
① 对矩阵A补零,第一行之前和最后一行之后都补mb-1行,第一列之前和最后一列之后都补nb-1列(注意conv2不支持其他的边界补充选项,函数内部对输入总是补零);
② 将卷积核绕其中心旋转180度;
③ 滑动旋转后的卷积核,将卷积核的中心位于图像矩阵的每一个元素,并求乘积和(即将旋转后的卷积核在A上进行滑动,然后对应位置相乘,最后相加);下面分别是shape=full, same, valid时取输出图像大小的情况,其中:位置1表示输出图像的值从当前核的计算值开始(对应输出图像左上角),位置2表示到该位置结束(对应输出图像右下角)
MATLAB卷积运算解释(conv、conv2、convn)相关推荐
- MATLAB卷积运算(conv、conv2、convn)解释
1 conv(向量卷积运算) 所谓两个向量卷积,说白了就是多项式乘法. 比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积如下: 把p的元素作为一个多项式的系数,多项式按升幂(或降幂)排 ...
- Matlab卷积函数之conv、deconv、conv2、convn
目录 1.conv:卷积和多项式乘法 2.deconv2:去卷积和多项式除法 3.conv2:二维卷积 4.convn:N维卷积 1.conv:卷积和多项式乘法 matlab官网解释: 示例:求多项式 ...
- matlab conv实现,MATLAB卷积运算(conv)以及通用的卷积函数my_conv的实现
conv(向量卷积运算) 两个向量卷积,简单理解其实就是多项式乘法. 比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积计算方法如下: 把p的元素作为一个多项式的系数,多项式按升幂(或降 ...
- matlab中filter卷积补零,matlab中的卷积——filter,conv之间的区别
filter是做滤波,其实原理跟卷积是想通的,只不过处理结果的方法不同,先看示例程序: x=[1,2,3,4,5]; h=[1,1,1]; y1=conv(h,x) y2=filter(h,1,x) ...
- matlab中conv什么意思,matlab卷积函数conv matlab中conv()是什么意思?
matlab中conv()是什么意思? conv(向量卷积运算) 两个向量卷积,简单理解其实就是多项式乘法. 比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积计算方法如下: 把p的元素 ...
- Matlab 卷积函数 ——conv2
功能:是二维卷积运算函数(与convmtx2相似).如果a和b是两个离散变量n1和n2的函数,则关于a和b的二维卷积运算数学公式如下: 用法:C = conv2(A,B) C = conv2(hcol ...
- 序列的卷积运算与相关运算——MATLAB
一.实验目的 1.掌握有限长序列线性卷积的编程计算原理,并能够利用Matlab或C语言编写算法程序进行线性卷积运算的程序实现; 2.学会线性卷积函数和线性相关函数的使用方法,并能利用二者进行有限长序列 ...
- 求助:MATLAB中实现卷积运算和理论分析中的卷积运算有什么区别?
MATLAB中实现卷积运算和理论分析中的卷积运算有什么区别. 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用Markdown编辑 ...
- matlab、C语言实现时域卷积运算
背景 某次面试(岗位为音频算法)遇到了c语言实现卷积的编程题.当时不够精通c语言,写的程序比较垃圾.现在重新整理了一下. 原理 卷积公式: matlab有自带的计算卷积的函数conv() 根据公式,现 ...
最新文章
- Exchange 2013部署系列之(十)信息权限保护RMS和Exchange 2013的整合
- 新闻与传播c刊_新闻传播类c刊有哪些
- 用函数计算工龄_用Excel计算财务账期,离不开这3个函数
- Codeforces 977D: Divide by three, multiply by two(暴力)
- 快手:今年下架抄袭、搬运内容的违规视频20316个
- 【实践】SimSvr在微信推荐系统中的应用实践
- 面试准备每日五题:C++(四)——typedefdefine、指针常量、队列栈、地址赋值、C和C++结构体
- 《深入浅出通信原理》知识总结
- 老龙头公司不完全名单
- promise跟ajax区别,Promise和AJAX有什么区别?
- Rust FFI 编程 - nix crate
- R语言绘图-gganimate 让你的统计图动起来
- 目标检测中常提到的IoU和mAP究竟是什么?
- 目前住院病人主要由护士护理
- JavaWeb+MySql+Tomcat一键部署方案
- Redis全部知识总结(概念、安装、用法、数据类型、事务、持久化、Jeids、订阅系统、缓存穿透及雪崩等)
- MyEclipse2014下载地址
- Could not load file or assembly ‘WMS.API.Service, Culture=neutral, PublicKeyToken=null‘. 系统找不到指定的文件
- 惊爆!重大秘密破解!宇宙,大脑,信息,三者之间存在惊天奥秘。道翰天琼认知智能三体论。
- 纵观虚拟现实在各行各业的应用,虚拟现实技术目前依然处在零星的散状的实验阶段。