卷积和互相关操作的关系

本文首发于 算法社区 dspstack.com,转载请注明出处,谢谢。

前言#

卷积和互相关操作在数字信号处理中都是非常重要的公式,卷积是迟缓线性时不变系统的输出响应,而相关操作则在系统识别方面非常有用,现在就来讲讲卷积和相关操作之间的关系。

卷积操作#

首先,给出卷积公式
file
卷积公式的计算步骤:

  1. 折叠(Folding):对 h(k) 关于 k = 0(时间原点)折叠获得 h(-k)。
  2. 移位(Shifting):对 h(-k) 向右(向左)移位 n0 个时间单位;如果 n0 是正数,获得 h(n0 - k)。
  3. 相乘(Multiplication):x(k) 乘以 h(n0 - k) 获得乘积序列 v_n0(k) = x(k) h(n0 - k)。
  4. 相加(Summation):相加乘积序列 v_n0(k) 的所有值,得到在 n = n0 的输出。


上述4个步骤计算出了在时间 n = n0 时刻的输出值,当时间为 -∞ < n < +∞ 也就是有个不同的 n0,此时需要重复步骤 2 到步骤 4 来计算得出所有的系统响应输出。

说明:从卷积公式,我们可以看出,当系统是因果的(往往也是如此),那么系统的脉冲响应 h(n) = 0, n < 0,所以此时在卷积公式中,h(n - k) 的值不会超过当前所要计算的时间 n,也就不会出现将来值,也就是说,在计算时是安全的。从这个角度来理解卷积公式可以知道,因果系统的当前时刻的输出只与过去和当前时刻的输入有关。
有关卷积操作其他的知识请详看 数字信号处理 相关的书籍和文献。

互相关操作#

和卷积公式一样,我们先给出互相关操作的定义:
file
其中,x(n),y(n)是两个有限能量的实信号序列。

说明:有限能量的信号序列保证了序列 x(n),y(n) 互相关的存在性。

互相关序列的计算:

  1. 移位:对 y(n) 向右移位 l 个时间单位,l = 0,-1,1,-2,2....。
  2. 相乘:x(n) 乘以 y(n - l) 获得乘积序列 v_l(n) = x(n) h(n - l)。
  3. 相加:相加乘积序列 v_l(n) 的所有值,得到在偏移量为 l 的输出。
    相对照卷积公式,很明显,互相关操作缺了卷积公式的计算步骤一:折叠操作。
    既然互相关的计算和卷积的计算这么相似,那么我们能否使用卷积公式来直接计算互相关的序列呢?答案是肯定的。

使用卷积公式计算互相关序列#

要使用卷积公式,那就必须要有 折叠 操作,所以我们可以先把 互相关公式 涉及的 y(n) 序列进行折叠,形成 y(-n),这样,使用序列 x(n) 和新序列 y(-n) 来计算它们的卷积。卷积步骤一:折叠,即 对 y(-n) 进行折叠,也就得到 y(n),这个就是互相关公式的序列 y(n),如此,就使用了卷积公式来计算互相关序列了。具体(简写形式)如下:
file
其中,y(-l) 在卷积公式中就是 y( -l + n),是对 y(-n) 折叠之后进行移位 l 个单位所得。
所以,基本上卷积计算和互相关计算的关系就是这样了,如有什么疑问或错漏,可在评论区留言,欢迎交流。

本文首发于 算法社区 dspstack.com,转载请注明出处,谢谢。

猜你喜欢

转载自blog.csdn.net/rickyzhang2008/article/details/84873882