matlab中卷积convolution与filter用法
转自:https://blog.csdn.net/dkcgx/article/details/46652021
转自:https://blog.csdn.net/Reborn_Lee/article/details/83279843
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
ans(:,:,4) =
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(:,:,5) =
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
>> convn(a,b)
ans(:,:,1) =
1 2 3 4 5 4 3 2 1
2 4 6 8 10 8 6 4 2
3 6 9 12 15 12 9 6 3
4 8 12 16 20 16 12 8 4
5 10 15 20 25 20 15 10 5
4 8 12 16 20 16 12 8 4
3 6 9 12 15 12 9 6 3
2 4 6 8 10 8 6 4 2
1 2 3 4 5 4 3 2 1
ans(:,:,2) =
2 4 6 8 10 8 6 4 2 4 8 12 16 20 16 12 8 4 6 12 18 24 30 24 18 12 6 8 16 24 32 40 32 24 16 8 10 20 30 40 50 40 30 20 10 8 16 24 32 40 32 24 16 8 6 12 18 24 30 24 18 12 6 4 8 12 16 20 16 12 8 4 2 4 6 8 10 8 6 4 2
ans(:,:,3) =
3 6 9 12 15 12 9 6 3 6 12 18 24 30 24 18 12 6 9 18 27 36 45 36 27 18 9 12 24 36 48 60 48 36 24 12 15 30 45 60 75 60 45 30 15 12 24 36 48 60 48 36 24 12 9 18 27 36 45 36 27 18 9 6 12 18 24 30 24 18 12 6 3 6 9 12 15 12 9 6 3
ans(:,:,4) =
4 8 12 16 20 16 12 8 4 8 16 24 32 40 32 24 16 8 12 24 36 48 60 48 36 24 12 16 32 48 64 80 64 48 32 16 20 40 60 80 100 80 60 40 20 16 32 48 64 80 64 48 32 16 12 24 36 48 60 48 36 24 12 8 16 24 32 40 32 24 16 8 4 8 12 16 20 16 12 8 4
ans(:,:,5) =
5 10 15 20 25 20 15 10 5 10 20 30 40 50 40 30 20 10 15 30 45 60 75 60 45 30 15 20 40 60 80 100 80 60 40 20 25 50 75 100 125 100 75 50 25 20 40 60 80 100 80 60 40 20 15 30 45 60 75 60 45 30 15 10 20 30 40 50 40 30 20 10 5 10 15 20 25 20 15 10 5
ans(:,:,6) =
4 8 12 16 20 16 12 8 4 8 16 24 32 40 32 24 16 8 12 24 36 48 60 48 36 24 12 16 32 48 64 80 64 48 32 16 20 40 60 80 100 80 60 40 20 16 32 48 64 80 64 48 32 16 12 24 36 48 60 48 36 24 12 8 16 24 32 40 32 24 16 8 4 8 12 16 20 16 12 8 4
ans(:,:,7) =
3 6 9 12 15 12 9 6 3 6 12 18 24 30 24 18 12 6 9 18 27 36 45 36 27 18 9 12 24 36 48 60 48 36 24 12 15 30 45 60 75 60 45 30 15 12 24 36 48 60 48 36 24 12 9 18 27 36 45 36 27 18 9 6 12 18 24 30 24 18 12 6 3 6 9 12 15 12 9 6 3
ans(:,:,8) =
2 4 6 8 10 8 6 4 2 4 8 12 16 20 16 12 8 4 6 12 18 24 30 24 18 12 6 8 16 24 32 40 32 24 16 8 10 20 30 40 50 40 30 20 10 8 16 24 32 40 32 24 16 8 6 12 18 24 30 24 18 12 6 4 8 12 16 20 16 12 8 4 2 4 6 8 10 8 6 4 2
ans(:,:,9) =
1 2 3 4 5 4 3 2 1 2 4 6 8 10 8 6 4 2 3 6 9 12 15 12 9 6 3 4 8 12 16 20 16 12 8 4 5 10 15 20 25 20 15 10 5 4 8 12 16 20 16 12 8 4 3 6 9 12 15 12 9 6 3 2 4 6 8 10 8 6 4 2 1 2 3 4 5 4 3 2 1
conv
Convolution and polynomial multiplication
Syntax
w = conv(u,v)
w = conv(u,v,shape)
Description
w = conv(u,v)返回向量u和v的卷积。如果u和v是多项式系数的向量,则对它们进行卷积相当于将两个多项式相乘。
w = conv(
returns a subsection of the convolution, as specified by u,v
,shape
)shape
. For example, conv(u,v,'same')
returns only the central part of the convolution, the same size as u
, and conv(u,v,'valid')
returns only the part of the convolution computed without the zero-padded edges.
w = conv(u,v,shape)返回卷积的子部分,由形状指定。 例如,conv(u,v,'same')仅返回卷积的中心部分,与u的大小相同,而conv(u,v,'valid')仅返回计算后的卷积部分而没有零填充边。
Polynomial Multiplication via Convolution
Create vectors u
and v
containing the coefficients of the polynomials x^2 + 1 and 2x + 7.
u = [1 0 1];
v = [2 7];
Use convolution to multiply the polynomials.
w = conv(u,v)
w = 1×4 2 7 2 7
w
contains the polynomial coefficients for 2x^3 + 7x^2 + 2x + 7.
Vector Convolution
Create two vectors and convolve them.
u = [1 1 1];
v = [1 1 0 0 0 1 1];
w = conv(u,v)
w = 1×9 1 2 2 1 0 1 2 2 1
The length of w
is length(u)+length(v)-1
, which in this example is 9
.
Central Part of Convolution
Create two vectors. Find the central part of the convolution of u
and v
that is the same size as u
.
u = [-1 2 3 -2 0 1 2];
v = [2 4 -1 1];
w = conv(u,v,'same')
w = 1×7 15 5 -9 7 6 7 -1
w
has a length of 7
. The full convolution would be of length length(u)+length(v)-1
, which in this example would be 10.
matlab中卷积convolution与filter用法的更多相关文章
- matlab中norm与svd函数用法
格式:n=norm(A,p) 功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数 以下是Matlab中help norm 的解释: NORM Matrix or vector ...
- MATLAB中的max函数的用法及含义
当A是一个列向量时候,返回一个最大值,在此不在赘述. 当Amxn是一个矩阵的时候,有以下几种情况: ① C = max(max(A)),返回矩阵最大值 ② D = max(A,[],1),返回 ...
- matlab中卷积编码参数的理解
poly2trellis(7, [171 133])代表什么意思呢?首先是7,他是1*k的vector,此处k为1,[171 133]是k*n的vector,此处n就是2,那么这个编码就是1/2码率的 ...
- matlab中disp函数的简单用法
输出数组类型的数据,也可以把string类型的数据看做数组输出 输出数字 >> num = ; >> disp(num) 输出字符串 >> disp('this i ...
- matlab中的卷积——filter,conv之间的区别
%Matlab提供了计算线性卷积和两个多项式相乘的函数conv,语法格式w=conv(u,v),其中u和v分别是有限长度序列向量,w是u和v的卷积结果序列向量. %如果向量u和v的长度分别为N和M,则 ...
- 图像卷积、相关以及在MATLAB中的操作
图像卷积.相关以及在MATLAB中的操作 2016年7月11日 20:34:35, By ChrisZZ 区分卷积和相关 图像处理中常常需要用一个滤波器做空间滤波操作.空间滤波操作有时候也被叫做卷积滤 ...
- matlab中fspecial Create predefined 2-D filter以及中值滤波均值滤波以及高斯滤波
来源: 1.https://ww2.mathworks.cn/help/images/ref/fspecial.html?searchHighlight=fspecial&s_tid=doc_ ...
- Matlab中imfilter()函数的用法
Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波.用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,... ...
- MATLAB中conv2的详细用法 (以及【matlab知识补充】conv2、filter2、imfilter函数原理)
转载: 1.https://blog.csdn.net/jinv5/article/details/52874880 2.https://blog.csdn.net/majinlei121/artic ...
随机推荐
- Android(java)开发之将double类型,强制保留到小数点后两位解决方法。
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 前提:当我们进行double数据类型与double进行运算的时候,可能会遇到 得到小数点后好多位,但是 ...
- 获取android手机的屏幕分辨率 android开发
/** * 获取屏幕分辨率 */ private void getResolution() { // TODO Auto-generated method stub Display display = ...
- Android开发工程师面试题总结。android开发面试经验
1:Android中五种数据存储方式分别是什么?他们的特点? (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQ ...
- 洛谷 P3177 [HAOI2015]树上染色 树形DP
洛谷 P3177 [HAOI2015]树上染色 树形DP 题目描述 有一棵点数为 \(n\) 的树,树边有边权.给你一个在 \(0 \sim n\)之内的正整数 \(k\) ,你要在这棵树中选择 \( ...
- 安装Android Studio之后无法直接打开SDK Manager
之前安装的android studio之后,SDK Manager和AVD Manager两个运行程序双击都打不开页面了,之前都是正常的,所以java环境变量的问题是不存在的. SDK Manager ...
- LR监听Linux
1.准备 1)CentOS6.0 2)LR11.0 3)Linux安装包: xinetd-2.3.14-33.el6.i686.rpm (CentOS安装盘自带) rsh-server-0.17-60 ...
- 04router
1.以 / 开头的嵌套路径会被当作根路径.一级路由可以放在二级router-view里面 实现的效果是页面嵌套 { path: '/console', name: 'console', compone ...
- 【小白学PyTorch】8 实战之MNIST小试牛刀
文章来自微信公众号[机器学习炼丹术].有什么问题都可以咨询作者WX:cyx645016617.想交个朋友占一个好友位也是可以的~好友位快满了不过. 参考目录: 目录 1 探索性数据分析 1.1 数据集 ...
- C#的TextBox的四种禁止编辑方法
前言 一般而言,Textbox中有两个属性可以对其进行防止编辑的设定,这是最基础的知识,也是我要提出的前两种方法.而后两种方法实际为一种,但可以应用于不同环境中. 一.ReadOnly属性 这样设置, ...
- Java-Collection和Map
创建博客的目的主要帮助自己记忆和复习日常学到和用到的知识:或有纰漏请大家斧正,非常感谢! 之前面试,被问过一个问题:List和Set的区别. 主要区别很明显了,两者都是数组形式存在的,继承了Colle ...