相关和卷积

相关

在信号处理中,cross-correlation是用来度量两个有相对位移的函数(信号)的相似程度的。连续函数(信号) f g 的相关定义为:                           

(fg)(τ) =deff(t) g(t+τ)dtf(tτ)g(t)dt

其中 f 表示 f 的复共轭, τ 表示位移。
离散信号互相关的表示为:
(fg)[n] =defm=f[m] g[m+n]

卷积

卷积定义:

(fg)(t) =deff(τ) g(tτ)dt=f(tτ)g(τ)dτ

cross-correlation 和两个信号的卷积有些相似。而auto-correlation就是函数与自己做cross-correlation,自相关总会在 τ 等于0是达到峰值。
离散信号卷积的定义:
s[n]=(fg)[n] =defm=0N1f[m] g[nm]

相关和卷积性质:

  • f(t) g(t) 的互相关等于 f(t) g(t) 的卷积,即: fg=f(t)g
  • F{fg}=(F{f}F{g} ,其中 F 表示傅里叶变换。
  • 相关操作, f(t) 需要取复共轭, f(t) 也不需要翻转
  • 卷积操作需要把 f(t) 翻转。

卷积的可视化例子

1、连续信号
相关和卷积_第1张图片

2、离散信号
公式 s[n]=(fg)[n] =defN1m=0f[m] g[nm] 中N表示信号 f(n) 的信号长度, s[n] 为卷积信号结果。序列长度: len(f(n)+len(n)1

example1:一维卷积

f(n)=[1 2 3];g(n) = [2 3 1];

s(0) = f(0)g(0-0) + f(1)g(0-1)+f(2)g(0-2)
= 1*2 + 2*0 + 3*0 =2

s(1) = f(0)g(1-0) + f(1)g(1-1) + f(2)g(1-2)
   = 1*3 + 2*2 + 3*0 = 7

s(2) = f(0)g(2-0) + f(1)g(2-1) + f(2)g(2-2)
=1*1 + 2*3 + 3*2=13

s(3) = f(0)g(3-0) + f(1)g(3-1) + f(2)g(3-2)
=1*0 + 2*1 + 3*3=11

s(4) = f(0)g(4-0) + f(1)g(4-1) + f(2)g(4-2)
=1*0 + 2*0 + 3*1=3

最终结果为:    s(n) = [2 7 13 11 3]

操作步骤:

相关和卷积_第2张图片
     [2      7       13      7         3]
  g(m) 在信号处理中通常叫做滤波器或掩码,卷积相当于掩码g(m)反转后在信号f(n)上平移求和。Matlab计算卷积的函数为conv,

A= [1 2 3];
B = [2,3,1];
convD = conv(A,B)
convD =[ 2 7 13 11 3]

example2二维卷积

二维卷积定义:

s(n1,n2)=k1=k2=f(k1,k2)g(n1k1,n2k2)

同一维情况一样,先将卷积模板翻转180°,过程如下:

相关和卷积_第3张图片

参考文献:

  1. 矩阵卷积、矩阵相乘的转化
  2. 离散卷积与自相关———-信号处理系列

你可能感兴趣的:(机器学习)