如何为并行 FIR 系统创建匹配的“最小相位”?

信息处理 最小相位
2022-01-28 02:46:20

问题陈述

我有一组幅度(仅)响应,我想将其转换为 FIR 滤波器内核

  1. 相匹配
  2. 相对于整个系统而言,相位“最小”
  3. 几乎没有“预环”
  4. 高度保持设计规模

在理想情况下,我希望有一个分析而不是参数的解决方案。

满足第一个要求可以表示为:

ϕs(f)=arg{H0(f)}=arg{H1(f)}=...=arg{Hn(f)}

并且,在线性相位情况下很容易满足。

积累阶段

在尝试满足第二个条件时,我尝试了类似于给定每个滤波器的最小相位版本的相位“级联”。我已经做到了

  1. 返回每个幅度响应的“希尔伯特”最小相位
  2. 累积这些响应,然后将其定义为系统阶段
  3. 将系统阶段重新分配给每个响应

这是我用来查找系统阶段的累积表达式:

ϕs(f)=i=0nH{ln(|Hn(f)|)}

不幸的是,对于我的回答,这会导致结果不佳,返回的内核在时域的低频下具有太多的拖尾/滞后。从任何意义上说,所有这些涂抹都远非“最小”!

我怀疑这可能是前面讨论的最小相位的两个定义的结果。

L-2 幅度范数的最小相位

经过一番修改后,我得到的最有希望的结果是采用我的幅度集的 L-2 范数并将其用作最小相位目标:

|HL2(f)|=(i=0n|Hn(f)|2)1/2

ϕL2(f)=H{ln(|HL2(f)|)}

环境ϕs(f)=ϕL2(f)返回将系数压缩到表的开头和结尾的内核。旋转表,线性相位偏移,由max(ϕL2(f)), 将末端变成“预环”。

虽然不漂亮,但这确实让我更接近我认为我正在寻找的东西。

关于我的量级的更多细节

|H0(f)|是全通;其余的是高通,每增加一个滚降斜率和截止频率。

问题

有现成的好解决方案吗?在我看来,这个问题与匹配的相位交叉非常相似。

我要求太多了吗?在理想情况下,我不想有“预响”。也许这是不可能的?

我在问正确的问题吗?换句话说,我正在寻找的是“最小阶段”。我真正想要的是让我的内核在相位上匹配,并“尽快”做出响应。

1个回答

希尔伯特“变换”或关系为给定的幅度响应定义了一个相位响应,因此在您的情况下,您无法同时获得匹配的相位和最小相位。

问候。