Python中的时变带通滤波器

2024-05-28 19:30:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解决一个与this post中讨论的问题非常相似的问题

我有一个宽带信号,它包含一个时变频率的分量。我需要随着时间的推移监视这个组件的阶段。我可以通过谱图中的峰值跟踪(有点蛮力的方法)来跟踪频率偏移。我需要“清理”这个时变峰值附近的信号以提取Hilbert相位(或者,我需要一种不涉及Hilbert变换的跟踪相位的方法)。在

总结上一篇文章:及时改变FIR/IIR滤波器的系数会导致不好的事情发生(它不仅会改变通带,还会以导致意外瞬态的方式完全混淆滤波器状态)。然而,可能存在一些及时调整滤波器系数的方法(可能通过以某种智能方式联合修改滤波器系数和滤波器状态)。这超出了我的专长,但我愿意接受任何解决方案。在

有两类解决方案似乎可行:一类是使用具有时变频率的谐振器滤波器(基本上是由信号驱动的阻尼谐振子)。这个模型足够简单,可以避免意外的滤波器瞬态。我会试试这个——但是谐振器的阻带衰减很差(如果可以说它们有阻带的话?)。这让我很紧张,因为我不能百分之百地确定共振滤波器将如何工作。在

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

另一种可能的解决方案出现在我身上,那就是从滑动短时傅里叶变换(可以加窗、多处理器等)中的频率峰值提取相位。如果有人知道这方面的文献,我会很感兴趣的。相关的是从感兴趣频带上的滑动复Morlet小波变换中获取频率功率峰值处的相位。在

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

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

不管怎样,如果有人以前解决过这个问题。。。更妙的是,如果有人知道任何听起来直接适用于这里的文件,我将不胜感激。在


Tags: 方法信号状态方式解决方案事情频率瞬态

热门问题