如果DFT变换的最大幅度M= A^2 + B^2对应于频率F,(A -实数,B- DFT的虚数输出,频率F),则执行以下操作是正确的:
for (j = 0; j < size; ++j) {
data[j] -= (A*cos(2*PI*F*j/dfts) -
B*sin(2*PI*F*j/dfts)) / dfts;
}为了从原始波形数据中消除(减去)该频率影响?假设数据是几个不同频率的正弦和余弦的总和,并乘以不同的系数。
EDIT1:我可以通过减法来实现对消,结果是正确的。上面有一个错误,但它是可以做到的。如果感兴趣,我可以发布做它的方式。
EDIT2:如果你做下一个离散傅立叶变换,你会得到一个非常小的,接近于零值的A和B值。但您需要记住,原始数据可以是4个频率(正弦和余弦)的总和,但DFT变换得到的结果与DFT的大小除以2一样多。
发布于 2011-05-12 18:23:03
不-那是行不通的。它只能在时域分量与FFT bin频率精确匹配,并且分量的相位在整个采样窗口中是恒定的情况下才能工作,即使是这种情况,您仍然需要在减法中注意相位。
理想情况下,您需要删除(即零)频域中的分量,然后执行逆FFT。请注意,您可能不希望仅在频域中将感兴趣的bin置零,因为这将在反FFT后在时域中产生伪影-您将需要将窗函数应用于感兴趣的bin和相邻的bin。
https://stackoverflow.com/questions/5976538
复制相似问题