低频尖峰的相位不变检测

信息处理 过滤器 信号分析 算法 阶段
2022-02-10 06:09:30

我是一名物理研究生,通过模拟研究一种新的物理设备。感谢 SE DSP,按照建议阅读了里昂的理解 DSP(虽然还没有完全通读),以及一堆工作,我一直在学习和享受 DSP。我正处于完全被某事难住的地步,需要一些帮助。

对于这个项目,信号处理看起来非常简单,如下图所示: 在此处输入图像描述 但是,“物理设备”内部发生的事情有些复杂。简单地说,当外部信号f(t)与物理装置相互作用,存在一定的相消干涉。对我来说,这意味着在有干扰的时候会有一个狭窄的低频尖峰。当没有破坏性干扰时,会发生很多事情。与通信系统相比,与物理设备相关的输出非常难看;有许多谐波和其他事情发生。

当我正在模拟的物理设备正在运行时,以及外部微波信号f(t)=Acos(ω1t+ϕ1)+Bcos(ω2t+ϕ1)引入,相消干涉会在特定位置产生一些低频振荡:

输入#1:f(t)=Acos(ω1t+ϕ1)+Bcos(ω2t+ϕ1)

输出#1:

signal1 原始和 LP

上图显示原始数据,下图在我应用低通滤波器后显示。如果我在 DC 附近使用低通 FIR 滤波器,它会给我很好的峰值来识别低频振荡发生的位置。

在这些中,附近的第一个峰60 ns与第一项有关,第二个较小的峰靠近100 ns与第二项有关。还,B=0.2A,所以第二个峰值应该比第一个峰值短。

如果不是相移ϕ1在第一项中,信号的相移为ϕ2,或如:f(t)=Acos(ωt+ϕ2)+Bcos(ω2t+ϕ1),我们得到相似的原始数据:

输入#2:f(t)=Acos(ω1t+ϕ2)+Bcos(ω2t+ϕ1)

输出#2:

信号较弱

但是在低通滤波器之后,峰值就不那么漂亮了。

是否有一种算法可以让我确定何时将外部信号引入物理系统,而不管外部信号的初始相移如何?我的眼睛可以从原始数据中识别出峰值应该在哪里,但是低通滤波器并不能始终如一地完成这项工作。

我尝试过使用信号能量,如tt+T|x(t)|2dt,但这在两个方面都失败了。

  1. 它没有看到第二个峰值
  2. 它需要一些阈值,但效果不佳AB可以相差几个数量级。

有没有一种很好的算法可以从两个信号中获得漂亮的细峰?更重要的是,它是可以用现有技术构建的吗?

我可以发布上述图表的数据。我怎样才能发布它?它们是小列表,大约有 100,000 个元素。

2个回答
  1. 我会使用一个以峰值频率为中心的带通滤波器(10ns 周期?)。这应该会给你更多的第二个信号峰值。

  2. 使用正交滤波器对(带通滤波器及其希尔伯特变换)来获得相位不变性。输出称为解析信号其幅度是局部相位不变的能量度量。

在 MATLAB 中,这将是

f_a = hilbert(conv(f,g,'same'));
amplitude = abs(f_a);
phase = angle(f_a);

其中f是信号,g是带通滤波器。

我看不出您显示的信号是两个正弦波的总和。您是否尝试过 FFT 来显示这一点?我的直觉说你在这里混合(相乘)两个或多个信号,结果看起来像一个扫频正弦加上一个恒定频率的正弦 - 就像调谐一个旧的超外差收音机并查看混频器的输出。您可能想尝试将它们混合到较低的频率(下变频),然后使用一个或两个锁相环来指示信号何时出现和/或它们的频率(这将被您的下变频从它们的真实频率抵消)。通过与扫频询问器的 I 和 Q(90* 相移)版本混合,然后对平方输出求和,可以避免相位灵敏度。