我正在使用org.apache.commons.math3.transform类FastFourierTransformer,我现在尝试在实际数据集上应用FFT,并应用逆FFT来获取原始数据集。 我的问题是,为了获得原始数据集我使用复数的函数abs(),我得到正确的数字,但没有正确的符号。在原始数据集中,我有负数,但在逆数据集上,我只得到正数。 你知道我该怎么做才能得到正确的标志吗?
答案 0 :(得分:2)
获取绝对值后丢失的数字符号的正确方法是不取绝对值。逆FFT应该撤消先前的FFT。因此,如果您的原始数据是真实的,那么您的复杂结果应该是实数(假想部分为零,除了舍入误差)。所以你只想使用真实部分(而不是取绝对值)。记得包括一个完整性检查:确保假想部分真的可以忽略不计!