信号处理中的卷积和相关的理解
信号处理中的卷积和相关的理解
卷积和相关的理解
数学公式
卷积运算:
$$
S_o(t) = x(t) * h(t) = \int_{-\infty}^{+\infty} x(\tau) h(t-\tau) d\tau
$$
$$
S_o[n] = x(n) * h(n) = \sum_{k=-\infty}^{+\infty} x[k] h[n-k]
$$
$x(t)$和$h(t)$可分别理解为信号函数和系统函数。而积分符号$\int$和求和符号$\sum$右侧的$x(\tau)$、$h(t-\tau)$是函数值。
相关运算(以自相关为例):
$$
R(\tau) = \langle x(t), y(t+\tau) \rangle = \int_{-\infty}^{+\infty} x(t) y(t+\tau) dt
$$
$$
R[k] = \langle x(n), y(n+k) \rangle = \sum_{k=-\infty}^{+\infty} x[n] y[n+k]
$$
$x(t)$和$y(t+\tau)$可分别理解为信号函数和信号函数。而积分符号$\int$和求和符号$\sum$右侧的$x(t)$、$y(t+\tau)$是函数值。
卷积运算和相关运算在信号处理方面应用广泛,然而由于这两种运算非常相似,容易对其产生混淆或者理解模糊等。这两种运算看似相似甚至还可互相转换,然而其实质上存在着较大的差异。清晰的理解这两种运算还要从他们的应用场景、提出原因谈起。
卷积运算应用背景
卷积是在研究线性时不变系统(Linear Time-Invariant)的重要数学工具。线性时不变系统具有两个明显的性质就是:线性和时不变性。线性是指满足叠加原理,时不变性是指系统的响应特性不会随着时间的推移而发生变化。实际中,一般系统还存在着另一个不言而喻的特性,即系统的响应不仅跟当前的输入有关还跟它的过去输入有关。很显然,我们人类就是这类系统的融合。上面提到的线性时不变系统也可以具有这一特性,而且工程应用中大部分的线性时不变系统都具有该特性。由于系统响应跟过去数据有关所以可以表示成如下形式(以离散系统为例):
$$
S_o(t) = h(S_i(t), S_i(t-\tau), S_i(t-2\tau), ..., S_i(t-N\tau))
$$
其中,$S_i(t-N\tau)$是$t-N\tau$时刻的系统输入值。$N$是LTI系统的阶数,也就是系统的输出响应只跟当前输入和前面的$N$个历史输入有关(因果系统),再久远的历史数据或者已经对系统输出响应没有影响,或者是$N+1$阶已经满足了系统的应用要求。可见系统的输出$S_o(t)$是$N+1$个输入的函数。这实质上就是延迟线系统。如下图所示。
典型延迟线系统
卷积运算是计算线性时不变系统输出响应的一种方法。其实质是计算一个信号输入到具有延迟性LTI系统的运算,所以“两个信号的卷积”的说法是不够严谨的,卷积运算是信号与系统之间的运算。
以离散的因果LTI系统为例,并假设当前时刻为$t=0$,即当前时刻视为在时间轴的零点。从而可以把系统表示为$h(\tau) = (h_0, h_1, ..., h_N)$的延迟线系统,其参数看作一个向量。它的向量值从左往右 ,依次对应着延迟更长的系统输入,所以进行运算时需要对$h(\tau)$进行翻转,得到$h(-\tau) = (h_N, h_{N-1}, ..., h_0)$,才能与信号$x(t) = (\tau_N, \tau_{N-1}..., \tau_0)$对应点乘。简言之是因为LTI系统的参数向量从左往右,与信号从左到右在时间上是相反的,需要对系统参数向量反转。示意图如下图所示。
卷积过程示意图
相关运算的应用背景
在信号处理领域,相关运算一般用于考查在一个时序信号中包含某一信号的程度,可理解为在一个时序信号里寻找某个时序信号段,或者称寻找与副本信号(参考信号)一致的一段信号。如下图(LFM信号+Guss噪声)所示。
LFM信号+高斯噪声
设$S_1$为副本信号$x(t)$,$S_2$为包含与“副本信号$y(t+\tau)$相似”的一段信号。两端信号向量从左到右在时间上是统一的都是右边的数据更新,左侧的是经过的延迟信号(更历史的信号)所以不需要对信号向量进行翻转,直接点乘。
设$S_1$的信号长度为$N+1$,在$S_2$的信号以进一个点出一点的滑动点乘方式,相当于不断地在从$S_2$上截取的一段长度与$S_1$一样的信号,用$S_2'$为某时刻。所以,相关运算还可以从信号空间的角度理解,更加直观。可以理解为考查$S_1$信号向量与信号空间里的$S_2'$信号向量的线性相关程度。即理解为$S_2'$向量到参考向量$S_1$的投影,相关性越强时投影越大,完全不线性相关时投影为0,即两个信号向量正交。以平面空间的矢向量为例,其示意图如下图所示。相关内容参考内积空间中的Schwarz不等式。
信号向量点积示意图
某一时刻$t_n$的相关值是$S_2'$到$S_1$的投影长度和$S_1$长度之积,或者反之。用数学符号表示如下:
$$
\langle S_1, S_2' \rangle = |S_1| \cdot |Proj_{S_1}S_2'| = |S_2'| \cdot |Proj_{S_2'}S_1|
$$
卷积与相关的联系
上面提到“两个信号的卷积”的说法不准确,但也可以把其中的一个信号,比如参考信号视为一个LTI系统,此时相关运算就可以用卷积运算来计算。但参考信号不能直接视为系统,因为延迟线系统的参数向量与信号向量在时间特性上是相反的,需要将参考信号进行翻转,翻转后这组信号向量就可视为一个相关器系统的参数向量。
信号1:
$$
x[n] = {x[0], x[1], ..., x[N]}
$$
信号2:
$$
y[n] = {y[0], y[1], ..., y[N]}
$$
将信号2转换为相关器系统:
$$
y[-n] = {y[-N], y[-N+1], ..., y[0]}
$$
如果把卷积运算再转换成相关运算,则需要的是进行一次翻转,也就跟原来的相关运算是相等的。
之所以,相关运算会和卷积运算纠缠在一起的一个原因是,相关运算的运算量太大,将其转换为卷积运算后可以进一步转化为频域的点乘,从而可以利用快速傅里叶算法(FFT)。
总结
一句话总结:
理解卷积运算和相关运算的区别,仅从数学算式的角度去理解是比较片面的。应该从两种的运算的提出背景、应用场景和基本原理出发,这样理解起来就比较容易,而透彻。
信号和系统向量都是复数时,卷积运算和相关运算如下。
卷积运算:
$$
S_o(t) = x(t) * h(t) = \int_{-\infty}^{+\infty} x(\tau) h^*(t-\tau) d\tau
$$
$$
S_o[n] = x(n) * h(n) = \sum_{k=-\infty}^{+\infty} x[k] h^*[n-k]
$$
相关运算:
$$
R(\tau) = \langle x(t), y(t+\tau) \rangle = \int_{-\infty}^{+\infty} x(t) y^*(t+\tau) dt
$$
$$
R[k] = \langle x(n), y(n+k) \rangle = \sum_{k=-\infty}^{+\infty} x[n] y^*[n+k]
$$