首先选取知乎上对卷积物理意义解答排名最靠前的回答。
不推荐用“反转/翻转/反褶/对称”等解释卷积。好好的信号为什么要翻转?导致学生难以理解卷积的物理意义。
这个其实非常简单的概念,国内的大多数教材却没有讲透。
直接看图,不信看不懂。以离散信号为例,连续信号同理。
已知x[0] = a, x[1] = b, x[2]=c
已知y[0] = i, y[1] = j, y[2]=k
下面通过演示求x[n] * y[n]的过程,揭示卷积的物理意义。
第一步,x[n]乘以y[0]并平移到位置0:
第二步,x[n]乘以y[1]并平移到位置1
第三步,x[n]乘以y[2]并平移到位置2:
最后,把上面三个图叠加,就得到了x[n] * y[n]:
简单吧?无非是平移(没有反褶!)、叠加。
从这里,可以看到卷积的重要的物理意义是:一个函数(如:单位响应)在另一个函数(如:输入信号)上的加权叠加。
重复一遍,这就是卷积的意义:加权叠加。
对于线性时不变系统,如果知道该系统的单位响应,那么将单位响应和输入信号求卷积,就相当于把输入信号的各个时间点的单位响应 加权叠加,就直接得到了输出信号。
通俗的说:
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。
在输入信号的每个位置,叠加一个单位响应,就得到了输出信号。
这正是单位响应是如此重要的原因。
以上是知乎上排名最高的回答。比较简单易懂。
有个回复也可以参考:
楼主这种做法和通常教材上的区别在于:书上先反褶再平移,把输入信号当作一个整体,一次算出一个时间点的响应值;而楼主把信号拆开,一次算出一个信号在所有时间的响应值,再把各个信号相加。两者本质上是相同的。
卷积表示为y(n)=x(n)∗h(n)y(n)=x(n)∗h(n)
使用离散数列来理解卷积会更形象一点,我们把y(n)的序列表示成y(0),y(1),y(2),⋯y(0),y(1),y(2),⋯, 这是系统响应出来的信号。
同理,x(n)x(n)的对应时刻的序列为x(0),x(1),x(2),⋯x(0),x(1),x(2),⋯
其实我们如果没有学过信号与系统,就常识来讲,系统的响应不仅与当前时刻系统的输入有关,也跟之前若干时刻的输入有关,因为我们可以理解为这是之前时刻的输入信号经过一种过程(这种过程可以是递减,削弱,或其他)对现在时刻系统输出的影响,那么显然,我们计算系统输出时就必须考虑现在时刻的信号输入的响应以及之前若干时刻信号输入的响应之“残留”影响的一个叠加效果。
假设0时刻系统响应为y(0)y(0),若其在1时刻时,此种响应未改变,则1时刻的响应就变成了y(0)+y(1)y(0)+y(1),叫序列的累加和(与序列的和不一样)。但常常系统中不是这样的,因为0时刻的响应不太可能在1时刻仍旧未变化,那么怎么表述这种变化呢,就通过h(t)这个响应函数与x(0)相乘来表述,表述为x(m)×h(m−n)x(m)×h(m−n),具体表达式不用多管,只要记着有大概这种关系,引入这个函数就能够表述y(0)y(0)在1时刻究竟削弱了多少,然后削弱后的值才是y(0)y(0)在1时刻的真实值,再通过累加和运算,才得到真实的系统响应。
再拓展点,某时刻的系统响应往往不一定是由当前时刻和前一时刻这两个响应决定的,也可能是再加上前前时刻,前前前时刻,前前前前时刻,等等,那么怎么约束这个范围呢,就是通过对h(n)h(n)这个函数在表达式中变化后的h(m−n)h(m−n)中的m的范围来约束的。即说白了,就是当前时刻的系统响应与多少个之前时刻的响应的“残留影响”有关。
当考虑这些因素后,就可以描述成一个系统响应了,而这些因素通过一个表达式(卷积)即描述出来不得不说是数学的巧妙和迷人之处了。
前面讲了这么多,我们看看教科书上对卷积的数学定义。
用一个模板和一幅图像进行卷积,对于图像上的一个点,让模板的原点和该点重合,然后模板上的点和图像上对应的点相乘,然后各点的积相加,就得到了该点的卷积值。对图像上的每个点都这样处理。由于大多数模板都是对称的,所以模板不旋转。卷积是一种积分运算,用来求两个曲线重叠区域面积。可以看作加权求和,可以用来消除噪声、特征增强。
把一个点的像素值用它周围的点的像素值的加权平均代替。
卷积是一种线性运算,图像处理中常见的mask运算都是卷积,广泛应用于图像滤波。
卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价。
另外在知乎上看到非常好也非常生动形象的解释,特意复制粘贴过来。(知乎马同学的解释)
从数学上讲,卷积就是一种运算。
某种运算,能被定义出来,至少有以下特征:
1.首先是抽象的、符号化的
2.其次,在生活、科研中,有着广泛的作用
比如加法:
1.a+b,是抽象的,本身只是一个数学符号
2.在现实中,有非常多的意义,比如增加、合成、旋转等等
卷积,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分、级数,所以看起来觉得很复杂。
这两个式子有一个共同的特征:
这个特征有什么意义?
只看数学符号,卷积是抽象的,不好理解的,但是,我们可以通过现实中的意义,来习惯卷积这种运算,正如我们小学的时候,学习加减乘除需要各种苹果、糖果来帮助我们习惯一样。
我们来看看现实中,这样的定义有什么意义。
2 离散卷积的例子:丢骰子
我有两枚骰子:
把这两枚骰子都抛出去:
求:两枚骰子点数加起来为4的概率是多少?
这里问题的关键是,两个骰子加起来要等于4,这正是卷积的应用场景。
我们把骰子各个点数出现的概率表示出来:
那么,两枚骰子点数加起来为4的情况有:
因此,两枚骰子点数加起来为4的概率为:
f(1)g(3)+f(2)g(2)+f(3)g(1)
符合卷积的定义,把它写成标准的形式就是:
(f∗g)(4)=∑m=13f(4−m)g(m)(f∗g)(4)=∑m=13f(4−m)g(m)
3 连续卷积的例子:做馒头
楼下早点铺子生意太好了,供不应求,就买了一台机器,不断的生产馒头。
假设馒头的生产速度是 f(t) ,那么一天后生产出来的馒头总量为:
∫240f(t)dt∫024f(t)dt
馒头生产出来之后,就会慢慢腐败,假设腐败函数为 g(t) ,比如,10个馒头,24小时会腐败:
10∗g(t)10∗g(t)
想想就知道,第一个小时生产出来的馒头,一天后会经历24小时的腐败,第二个小时生产出来的馒头,一天后会经历23小时的腐败。
如此,我们可以知道,一天后,馒头总共腐败了:
∫240f(t)g(24−t)dt∫024f(t)g(24−t)dt
这就是连续的卷积。
4 图像处理
4.1 原理
有这么一副图像,可以看到,图像上有很多噪点:
高频信号,就好像平地耸立的山峰:
看起来很显眼。
平滑这座山峰的办法之一就是,把山峰刨掉一些土,填到山峰周围去。用数学的话来说,就是把山峰周围的高度平均一下。
平滑后得到:
4.2 计算
卷积可以帮助实现这个平滑算法。
有噪点的原图,可以把它转为一个矩阵:
然后用下面这个平均矩阵(说明下,原图的处理实际上用的是正态分布矩阵,这里为了简单,就用了算术平均矩阵)来平滑图像:
g=⎡⎣⎢⎢191919191919191919⎤⎦⎥⎥g=[191919191919191919]
记得刚才说过的算法,把高频信号与周围的数值平均一下就可以平滑山峰。
比如我要平滑a1,1a1,1 点,就在矩阵中,取出a1,1a1,1点附近的点组成矩阵 f ,和 g 进行卷积计算后,再填回去
要注意一点,为了运用卷积, g 虽然和 f 同维度,但下标有点不一样:
写成卷积公式就是:
(f∗g)(1,1)=∑k=02∑h=02f(h,k)g(1−h,1−k)(f∗g)(1,1)=∑k=02∑h=02f(h,k)g(1−h,1−k)
要求c4,5c4,5,一样可以套用上面的卷积公式。
这样相当于实现了 g 这个矩阵在原来图像上的划动(准确来说,下面这幅图把 g 矩阵旋转了180∘180∘ ):
网友评论