卷积常数?
常数c和函数f(x)作卷积,等于f(x)从负无穷到正无穷的积分的c倍因此,当f(x)是常数b时,负无穷到正无穷的积分为b(正无穷-负无穷),当b>0时,结果为正无穷,当b<0时,结果为负无穷。再乘以c,就是正无穷或负无穷的c倍。1和1作卷积,为1(正无穷-负无穷)=正无穷2和3作卷积,为6(正无穷-负无穷)=正无穷这玩艺没什么意义卷积在工程上面用来进行线性时不变系统的计算,带入的几乎都是积分有限的函数,搞常数卷积没什么意义
如何利用matlab实现两个有限长序列的卷积?
原理方法
1、基本数学原理
我们假设有两个长度有限的任意序列A(n)和B(n),其中A(n)和B(n)的具体数学表达式可以看下图一。那么这两个有限长序列的卷积就应该为C(n)=A(n)*B(n),其具体表达式请参看一下图二。
2、conv和deconv指令实例
具体实例请看下图,这里我们求多项式(x2+2x+1)与多项式(2x2+x+3)的积,再求积与(x2+2x+1)的商。需要注意的是向量c代表多项式(2x4+5x3+7x2+7x+3)。
两个有限长序列的卷积实例
1、具体序列的数学形式
在这一步我们将具体的有限长时间序列按数学方式显示,具体请看下图。
2、解法一:循环求合法求卷积
在本例中我们将按照原理方法第一步中图二的方式进行卷积计算,即循环求合法求卷积。具体的代码及结果请看下图。图一是是生成有限长度时间序列,图二是根据原理方法第一步中图二的方式即循环求合法求卷积的具体代码,图三是是图二的计算结果。
3、解法二:0起点序列法
下面就说一下第二种方法,即“0起点序列法”,所采用的指令就是我们在原理方法中介绍的conv函数指令。具体代码看下图。
4、解法三:非平凡区间序列法
下面就说一下“0起点序列法”,所采用的指令就是我们在原理方法中介绍的conv函数指令。具体代码看下图。图一为计算代码,图二为计算结果。
5、绘图比较
这一步我们将解法二和解法三的计算结果绘制在一张图片中进行比较,其中第一幅是“0起点法”的计算结果图,第二幅是“非平凡区间法”的计算结果图。其中画图代码为:
subplot(2,1,1),stem(kc,c),text(20,6,'0起点法')%画解法二的结果
CC=;%补零是为了两子图一致
subplot(2,1,2),stem(kc,CC),text(18,6,'非平凡区间法')%画解法三的结果
xlabel('n')
如何通俗的理解图像处理中常见的去卷积(反卷积or?
谈谈我的理解
卷积是一种运算操作,傅里叶变换是一种变换操作。卷积在图像处理的应用中一般是卷积滤波,即用一个卷积模板(卷积核/滤波器)去进行滤波,而傅里叶变换在信号处理中往往是变换时域和频域,在图像处理中便是空域和频域。那么我先把你说的边缘处理就认为是图像滤波里面的一种好了。那问题就变成是图像处理
空域滤波
和时域滤波
的对比了。卷积滤波
不用多说,原理就是一个卷积核去对图像进行卷积操作。这里附上二维卷积的实现可以得到,假如原图是M*N大小,卷积核为m*n, 时间复杂度约为
M * N * m * n
而卷积核通常比较小,一般有 3 * 3 和 5 * 5等,所以可以卷积滤波算法复杂度可以约为 c * M * N ,c为常数
时域滤波过程与一般信号处理一样,就是傅里叶变换到时域->在时域进行操作->傅里叶反变换回空域。
频域滤波过程
原图像大小 M * N
扩充后, 2M * 2 N
fft变换到频域, 计算量 2M * 2N * log( 2M * 2N), 即 4M * N * log (4M * N)
对应相乘, 计算量 2M * 2N ,即4M * N
ifft变换回空域, 计算量 2M * 2N * log( 2M * 2N), 即 4M * N * log (4M * N)
所以可以得到频域滤波算法复杂度为4M*N + 4M * N * log (4M * N)
即M*N(4 + log(4M * N))。 所以与 c * M * N 相比,算法复杂度上频域滤波一般是没什么优势的。
然后另一个点是,在频域滤波第2步中,扩充图像回引入高频分量,从而带来干扰。
如图,扩充后,两个边界就会引入高频分量。
所以,我觉得一是算法复杂度没有相比卷积没有优势,二是可能会引入高频分量干扰。卷积的方法会更适合在实际应用的处理之中,而傅里叶变换到频域去我觉得更适合用来分析就好。
为什么现在对图像边缘的处理大多数是用卷积而不是傅里叶变换? - 芒果小屋