在python中,如果我对复杂数据执行fft,那么irfft只对正频率执行,这会对数据产生什么影响



所以我试图在一组实值点上执行频移。为了实现频移,必须将数据乘以复指数,从而使所得数据变得复杂。如果我只乘以一个余弦,我会得到和频和差频的结果。我只想要和或差。

我所做的是将数据乘以一个复指数,使用fft.fft()来计算fft,然后仅在正频率上使用fft.irff()来获得一个频率只有和或差偏移的实值数据集。这似乎很有效,但我想知道这样做是否有任何缺点,或者可能是实现相同目标的更合适的方式。提前感谢您提供的任何帮助!

您所做的一切都很好。您正在生成分析信号以适应负频率,就像离散希尔伯特变换一样。你会遇到一些缩放问题——你需要将FFT结果的实频部分中的所有非DC和非奈奎斯特信号加倍。

一些实际问题是,这种方法会导致窗口大小的延迟,因此,如果您试图实时执行此操作,您可能应该使用FIR Hilbert变换器和适当的和进行检查。在这种情况下,延迟将是希尔伯特变换器的群延迟。

另一个值得关注的问题是,你需要记住,你信号的直流分量也会随着所有其他频率的变化而变化。因此,我建议您在移位前降低数据的等级(保存值),在对数据进行FFT后将DC仓归零(以去除DC仓中的任何频率分量),然后将平均值加回来以在最后保持信号电平。

最新更新