有没有办法识别/分离相同频率的多个异相副本?

信息处理 fft 阶段
2022-01-29 04:06:13

给定一个由三个 1.xxx kHz 信号加在一起组成的信号(其中 xxx 永远不会超过 0.01)。三个 1kHz 信号中的每一个都是 60 度异相(第一个偏移 0 度,接下来偏移 120 度,第三个偏移 180 度),最好的方法是检测三个“频率非常相似的实例”,以及每个实例的相位偏移?

我尝试使用 FFT,但它似乎没有相位的概念。我在互联网上搜索了一下 FFT 和相位,但找不到任何方法来使用 FFT 来提取仅按相位分隔的频率的多个实例。

我认为为了使用传统意义上的 FFT,我需要有一个极端数量的 bin(1000*sample_rate?)。

我构建了一个 gnuradio 流程图来试验这个概念。

在此处输入图像描述

生成的 FFT 在 0kHz 和 1kHz 处显示峰值。我想不出一种从原始信号中提取原始三个信号的方法。

我的用例处理频率差异低至 0.001Hz 的输入信号。检测分量信号的存在并确定它们的精确频率是我需要做的。它们的频率随着时间的推移而变化很小。

FFT 结果是 0kHz 和 1kHz 处的峰值

1个回答

这不可能。让我们考虑两个余弦的情况,角度那么它们的和等于θ=2πf0t+αϕ=2πf0t+β

2cos(αβ2)cos(2πf0t+α+β2).

请注意,如果您测量此信号的幅度和相位,您可以找到合理的候选者,但通常会有多种可能的解决方案。请注意,信号也可能为零!当您增加处的原始余弦数时,歧义也会增加。αβf=f0

最后一点,DFT 确实提供了相位信息。然而,GnuRadio 工具仅绘制 DFT 的幅度,并且在那里丢失了相位信息。