作者:王赟 Maigo
链接:https://www.zhihu.com/question/24687047/answer/31176606
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我来简洁地解释一下。

1) 首先我们仅考虑实信号。
自相关的直观含义就是:把一个信号平移一段距离,跟原来有多相似。
于是就有了自相关的定义:
通俗理解【卷】积+互相关与卷积
它代表了“移、乘、积”这三步操作。

如果只谈自相关,其实到此就可以结束了。
只不过,在信号处理领域中还有一个叫“卷积”的东西,在别的地方(已知线性时不变系统的冲激响应和输入,求响应)有用。
它跟自相关的定义很相似,包含了“卷、移、乘、积”四步操作:
通俗理解【卷】积+互相关与卷积
左边有时也写作通俗理解【卷】积+互相关与卷积,表示这个函数是由x(t)和y(t)卷积而得的,但它的自变量是通俗理解【卷】积+互相关与卷积

我们发现卷积比自相关多了一步“卷”的操作,为了去掉这个多余的操作,我们先把原信号自己卷一下,就可以抵消掉卷积中的“卷”操作了。这就是自相关与卷积的关系:
通俗理解【卷】积+互相关与卷积

2) 现在扩展到复数域。
自相关是要刻画一个信号平移后与原始信号的相似性。显然,不平移时应该是最相似的。
我们希望x(t)与x(t)本身相乘后积分时,各时间点的值能够因叠加而增强。
在实数域上x(t)直接自乘没有问题。在复数域上,x(t)自乘后辐角还是乱的。
如果对其中一个x(t)取一下共轭,相乘后辐角就统一变成0了,积分时就能够取得叠加增强的效果。
所以在复数域上,自相关是这样的:
通俗理解【卷】积+互相关与卷积
(共轭取在前者还是后者上都可以,取决于作者的习惯)

扩展一下,复数域上线性空间的内积的定义中也有共轭,其动机与此处相同。
“相关”这个运算其实就是一种内积。
--------------------------------------------------------------------------------------------------------------

作者:马同学

链接:https://www.zhihu.com/question/22298352/answer/228543288
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

从数学上讲,卷积就是一种运算。

某种运算,能被定义出来,至少有以下特征:

  • 首先是抽象的、符号化的
  • 其次,在生活、科研中,有着广泛的作用

比如加法:

  •  a+b,是抽象的,本身只是一个数学符号
  • 在现实中,有非常多的意义,比如增加、合成、旋转等等

卷积,是我们学习高等数学之后,新接触的一种运算,因为涉及到积分、级数,所以看起来觉得很复杂。


卷积很直观呀,就是把二元函数 U(x,y) = f(x)g(y) 卷成一元函数 V(t) 嘛,俗称降维打击。。

怎么卷?

考虑到函数 f 和 g 应该地位平等,或者说变量 x 和 y 应该地位平等,一种可取的办法就是沿直线 x+y = t 卷起来:

通俗理解【卷】积+互相关与卷积


1 卷积的定义

我们称 通俗理解【卷】积+互相关与卷积通俗理解【卷】积+互相关与卷积 的卷积

其连续的定义为:

通俗理解【卷】积+互相关与卷积

其离散的定义为:

通俗理解【卷】积+互相关与卷积

这两个式子有一个共同的特征:

通俗理解【卷】积+互相关与卷积

这个特征有什么意义?

我们令 通俗理解【卷】积+互相关与卷积 ,那么 通俗理解【卷】积+互相关与卷积 就是下面这些直线:

通俗理解【卷】积+互相关与卷积

如果遍历这些直线,就好比,把毛巾沿着角卷起来:

通俗理解【卷】积+互相关与卷积

此处受到 荆哲:卷积为什么叫「卷」积? 答案的启发。

只看数学符号,卷积是抽象的,不好理解的,但是,我们可以通过现实中的意义,来习惯卷积这种运算,正如我们小学的时候,学习加减乘除需要各种苹果、糖果来帮助我们习惯一样。

我们来看看现实中,这样的定义有什么意义。

2 离散卷积的例子:丢骰子

我有两枚骰子:

通俗理解【卷】积+互相关与卷积

把这两枚骰子都抛出去:

通俗理解【卷】积+互相关与卷积

求:

通俗理解【卷】积+互相关与卷积

这里问题的关键是,两个骰子加起来要等于4,这正是卷积的应用场景。

我们把骰子各个点数出现的概率表示出来:

通俗理解【卷】积+互相关与卷积

那么,两枚骰子点数加起来为4的情况有:

通俗理解【卷】积+互相关与卷积


通俗理解【卷】积+互相关与卷积


通俗理解【卷】积+互相关与卷积

因此,两枚骰子点数加起来为4的概率为:

通俗理解【卷】积+互相关与卷积

符合卷积的定义,把它写成标准的形式就是:

通俗理解【卷】积+互相关与卷积

3 连续卷积的例子:做馒头

楼下早点铺子生意太好了,供不应求,就买了一台机器,不断的生产馒头。

假设馒头的生产速度是 通俗理解【卷】积+互相关与卷积 ,那么一天后生产出来的馒头总量为:

通俗理解【卷】积+互相关与卷积

馒头生产出来之后,就会慢慢腐败,假设腐败函数为 通俗理解【卷】积+互相关与卷积 ,比如,10个馒头,24小时会腐败:

通俗理解【卷】积+互相关与卷积

想想就知道,第一个小时生产出来的馒头,一天后会经历24小时的腐败,第二个小时生产出来的馒头,一天后会经历23小时的腐败。

如此,我们可以知道,一天后,馒头总共腐败了:

通俗理解【卷】积+互相关与卷积

这就是连续的卷积。

4 图像处理

4.1 原理

有这么一副图像,可以看到,图像上有很多噪点:

通俗理解【卷】积+互相关与卷积

高频信号,就好像平地耸立的山峰:

通俗理解【卷】积+互相关与卷积

看起来很显眼。

平滑这座山峰的办法之一就是,把山峰刨掉一些土,填到山峰周围去。用数学的话来说,就是把山峰周围的高度平均一下。

平滑后得到:

通俗理解【卷】积+互相关与卷积

4.2 计算

卷积可以帮助实现这个平滑算法。

有噪点的原图,可以把它转为一个矩阵:

通俗理解【卷】积+互相关与卷积

然后用下面这个平均矩阵(说明下,原图的处理实际上用的是正态分布矩阵,这里为了简单,就用了算术平均矩阵)来平滑图像:

通俗理解【卷】积+互相关与卷积

记得刚才说过的算法,把高频信号与周围的数值平均一下就可以平滑山峰。

比如我要平滑 通俗理解【卷】积+互相关与卷积 点,就在矩阵中,取出 通俗理解【卷】积+互相关与卷积 点附近的点组成矩阵 通俗理解【卷】积+互相关与卷积 ,和 通俗理解【卷】积+互相关与卷积 进行卷积计算后,再填回去:

通俗理解【卷】积+互相关与卷积

要注意一点,为了运用卷积, 通俗理解【卷】积+互相关与卷积 虽然和 通俗理解【卷】积+互相关与卷积 同维度,但下标有点不一样:

通俗理解【卷】积+互相关与卷积

我用一个动图来说明下计算过程:

通俗理解【卷】积+互相关与卷积
通俗理解【卷】积+互相关与卷积

写成卷积公式就是:

通俗理解【卷】积+互相关与卷积

要求 通俗理解【卷】积+互相关与卷积 ,一样可以套用上面的卷积公式。

这样相当于实现了 通俗理解【卷】积+互相关与卷积 这个矩阵在原来图像上的划动(准确来说,下面这幅图把 通俗理解【卷】积+互相关与卷积 矩阵旋转了 通俗理解【卷】积+互相关与卷积 ):

通俗理解【卷】积+互相关与卷积

此图出处:Convolutional Neural Networks - Basics


-------------------------------------------------------------------------------------------------------------------------------


互相关与卷积http://blog.sina.com.cn/s/blog_bf373a140101mixe.html

互相关

设两个函数分别是f(t)和g(t),则互相关函数定义为:

通俗理解【卷】积+互相关与卷积

它反映的是两个函数在不同的相对位置上互相匹配的程度。

 

线性卷积

在泛函分析中,是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与经过翻转和平移的g的重叠部分的累积。如果将参加卷积的一个函数看作区间的指示函数,卷积还可以被看作是"移动平均"的推广。

通俗理解【卷】积+互相关与卷积

理解卷积的物理含义也许有点难,但是理解其计算却是相对容易,东南大学的数字信号课程里做了一个线性卷积的动画演示:线性卷积

因此,我们很容易理解,卷积和相关是相似的,两者就是多了一个旋转过程而已,卷积要先对Y轴旋转!

用卷积来表示相关就是:通俗理解【卷】积+互相关与卷积

通常来说,计算卷积都是在频域进行的,这主要是利用了FFT变换的卷积定理

通俗理解【卷】积+互相关与卷积

快速傅里叶转换(FFT)计算卷积,在时域(time domain)做卷积相当于这两个信号的离散傅里叶转换在频域(frequency domain)做相乘。

因此,matlabz中计算相关和卷积都是在频域计算的,再转回时域,这可以简单用代码来验证一下:

 

Matlab计算互相关函数xcorr,计算卷积函数conv;

C = xcorr(x,y,'option'),如果xy长度不同,matlab会自动给短向量后面补零,最终长度length=2*max(n,m)-1;

"biased"为有偏的互相关函数估计;

"unbiased"为无偏的互相关函数估计;

"coeff"0延时的正规化序列的自相关计算;

"none"为原始的互相关计算,也是默认模式;

Z= conv(x,y,'shape'),两向量长度不需要一致,最后卷积长度length=n+m-1;

"full"为默认模式,返回全部卷积(n+m-1);

"same",返回中间部分卷积,长度与x相同(n);

"valid",返回中间没有用零填充部分的卷积值,用滑动窗的方法解释的话,就是第2个窗口能够完全被第一个窗口重合、包含的部分(max(n-max(0,m-1),0),因此如果n<m的话,返回值就不存在)

 

% 卷积法计算互相关的验证程序

dt=0.1;

t=[0:dt:100];

x=5*sin(4*t);

y=3*cos(3*t);

[a,b]=xcorr(x,y);

plot(b*dt,a);

yy=3*cos(3*fliplr(t)); % Y为轴对称翻转 yy=fliplr(y);

c=conv(x,yy);

err = a-c;

subplot(3,1,1);

plot(b*dt,a,'k');

title('Corr','fontsize',16);xlabel('Logs','fontsize',12);

subplot(3,1,2);

plot(b*dt,c,'r');

title('Conv','fontsize',16);xlabel('Logs','fontsize',12);

subplot(3,1,3);

plot(b*dt,err,'g');

title('Error','fontsize',16);xlabel('Logs','fontsize',12);

% 这里误差小于1e-13,本人认为是由matlab的数值误差所引起,可以忽略。

 

通俗理解【卷】积+互相关与卷积



相关文章: