逆 FFT - 获得绝对值的符号

inverse FFT - get the sign of the absolute value

我正在使用 org.apache.commons.math3.transform Class FastFourierTransformer,我现在正在尝试对真实数据集应用 FFT,并应用逆 FFT 来获取原始数据放。 我的问题是,为了获得原始数据集,我使用了复数函数 abs() 并且我得到了正确的数字但不是正确的符号。在原始数据集中我有负数但在逆数据集中我只得到正数。 你知道我应该怎么做才能得到正确的标志吗?

取绝对值后丢失的数的符号正确取法是不取绝对值。反向 FFT 应该撤消之前的 FFT。因此,如果您的原始数据是真实的,那么您的复数结果应该已经是实数(虚部为零,舍入误差除外)。所以你会只想使用实部(而不是取绝对值)。请记住包括完整性检查:确保虚部真的小到可以忽略不计!