Python中的时变带通滤波器

时间:2015-03-21 04:30:38

标签: python filtering frequency phase

我正在尝试解决与this post

中讨论的问题非常相似的问题

我有一个宽带信号,其中包含一个具有时变频率的分量。我需要随着时间的推移监控该组件的阶段。我能够通过频谱图中的峰值跟踪(有点蛮力方法)跟踪频率偏移。我需要在这个时变峰周围“清理”信号以提取希尔伯特相位(或者,我需要一种跟踪不涉及希尔伯特变换的相位的方法)。

总结前一篇文章:及时改变FIR / IIR滤波器的系数会导致不良事件发生(它不仅仅会移动通带,还会以导致惊人瞬变的方式完全混淆滤波器状态)。然而,可能存在一些方式及时调整滤波器系数(可能通过以某种智能方式联合修改滤波器系数和滤波器状态)。这超出了我的专业水平,但我会对任何解决方案持开放态度。

有两类似乎看似合理的解决方案:一类是使用具有时变频率的谐振器滤波器(基本上是由信号驱动的阻尼谐振子)。该模型非常简单,可避免出现令人惊讶的滤波器瞬变。我会试试这个 - 但是谐振器在阻带中的衰减非常差(如果它们甚至可以说有一个阻带?)。这让我感到紧张,因为我不能100%确定共振滤波器的表现。

另一个建议是使用滤波器组并根据频率在各种带通滤波信号之间平滑插值。这种方法似乎很吸引人,但我怀疑它有一些隐藏的警告。我想,线性混合两个带通滤波信号可能并不总能达到预期效果,并可能导致奇怪的事情?但是,这不是我的专业领域,所以如果混合过滤器库被认为是一种安全的解决方案(之前已经过分析和发布的解决方案),我会使用它。

我发现了另一类潜在的解决方案,即在滑动短时傅里叶变换(可以是窗口,多锥等)中从频率峰值中取出相位。如果有人知道任何先前的文献,我会非常感兴趣。相关的是,在感兴趣的频带上从滑动复Morlet小波变换获取频率功率峰值的相位。

所以,我想,基本上我有三类解决方案。  1.具有时变频率的谐振器滤波器。  2.使用过滤器组,可能混合?  3.从STFT或CWT中拉出相位(这些可以被认为是滤波器组方法的一个子集)

我的讽刺意味着在(2,3)中不时会发生令人惊讶的事情,而在(1)中我们可能无法拒绝我们想要的那么多噪音。我不清楚这个问题是否有一个完美的解决方案(时间 - 频率分辨率的不确定性原理?)。

无论如何,如果有人之前已经解决了这个问题,并且......甚至更好,如果有人知道任何听起来直接适用于此的论文,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

不确定这是否有帮助,但谷歌搜索“监视时变组件的阶段”导致:http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=4124619&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D4124619

希望有所帮助。

相关问题