如何解释具有复杂输入的匹配滤波器的输出?

信息处理 离散信号 傅里叶变换 信号检测 匹配过滤器 共轭
2022-02-23 20:55:00

我已经实现了基于傅里叶变换方法的匹配滤波器。在实数域中,这意味着我使用我的滤波器 (B) 的系数作为我试图找到并计算的信号的倒置时间样本:

real_output = IFFT(FFT(A).*FFT(B))

其中,如果我们假设完全匹配的时刻,A 是实值样本的输入信号,B 是由 A 的反相时间样本产生的信号(或者我也可以共轭 B 的频谱,我得到所需的时间反演因为信号是真实的)。为了避免混叠,我使用 length(A)+length(B)-1 个样本执行 FFT。此过滤器的输出始终为实数,其最大值位于发生匹配的时刻。

现在假设我们有一个复值 A 而不是实值 A。我的问题是:

  1. 是否可以对复杂域信号应用匹配滤波器?
  2. 我是否必须反转复值 A 以获得我的滤波器的系数,或者我应该做其他事情,比如将它们共轭?
  3. 如何解释过滤器的输出,我应该说如果输出的绝对值最大或仅在实部最大化时发生匹配?
  4. 在一些实验中,我注意到如果频谱(B)是频谱(A)的复共轭,那么在匹配时滤波器的输出是实数,这是正确的吗?
2个回答

是的,可以(至少在纸上或代码上,因为复杂信号在物理上不存在)将匹配滤波器应用于复杂信号。

这是我认为具有说明性的一种看待它的方式。假设脉冲是实数,能量为 1,即匹配的滤波器具有脉冲响应然后,如果滤波器的输入是实数,则匹配滤波器的输出(在适当的时间采样)等于p(t)

p2(t)dt=1.
p(t)p(t)ap(t)a
ap(t)p(t)=a.

如果脉冲幅度很复杂,比如对应实数,那么我们可以使用卷积运算的线性度来计算 a+jbab

(a+jb)p(t)p(t)=(ap(t)+jbp(t))p(t)=ap(t)p(t)+jbp(t)p(t)=a+jb.

解释结果的一种方法是过滤器独立匹配实部和虚部(但“同时”)。回想一下与实线正交;这意味着在卷积期间不会相互“干扰”。j=1ab

总而言之,您的问题的答案是:

  1. 是的。
  2. 如果您可以将系统定义为使用真实脉冲,则匹配滤波器为如果必须使用复脉冲,则匹配滤波器为p(t)p(t)p(t)
  3. 当滤波器的输出足够接近(在欧几里德距离意义上)匹配的信号时,可以声明“匹配”(有关更多详细信息,请参见https://en.wikipedia.org/wiki/Maximum_a_posteriori_estimation)。
  4. 为零时,滤波器的输出才应该是实数。b

@MBaz 的回答非常完整。我在辩论中添加了一个无耻的插件。

在过去的工作中,我参与了一种算法的设计,旨在在本地找到涉及一个信号和一个模板(以及后来的几个)的“最佳”匹配滤波。由于(地震)数据的噪声和非平稳性,我们希望在变换域中执行匹配滤波。跳过失败和其他细节,我们最终得到了一个复杂的小波变换(你可以想到加窗傅里叶变换)。dx

经过一些试验,我们发现“单一”或一元系数匹配滤波器非常有效。看起来很奇怪(单系数实滤波器没那么有趣),但它起作用了,因为这个系数很复杂。幅度被解释为幅度校正,相位被解释为(不知何故)子样本时间偏移。你可以在Adaptive multiple subtraction with wavelet-based complex unary Wiener filters , 2012中找到整个故事。我们后来添加了一个滞后参数来解释超样本移位。因此,您可以使用复共轭等很容易地检查具有单个复系数的推导。所以:

  1. 是的,它确实
  2. 您应该将自己置于傅里叶、相关等复杂数据的最一般上下文中,以避免错误
  3. 你有一个幅度和一个移位项,但它有点棘手(子样本)
  4. 显然是这样,但我不像@MBaz那么确定