【问题标题】:DFT frequency subtractionDFT频率减法
【发布时间】:2011-05-26 16:12:25
【问题描述】:

如果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;
}

为了从原始波数据中消除(减去)频率影响? 假设数据是几个不同频率的正弦和余弦的总和,并乘以不同的系数。

编辑1: 我可以通过减法实现对消,结果是正确的。上面有一个错误,但可以做到。如果有兴趣,我可以发布这样做的方式。

编辑2: 如果您进行下一次 DFT 变换,您将在 A 和 B 值处得到一个非常小的接近零的值。 但您需要记住,原始数据可以是 4 个频率(正弦和余弦)的总和,但 DFT 变换会得到与 DFT 大小除以 2 一样多的值。

【问题讨论】:

    标签: dft


    【解决方案1】:

    不,这行不通。只有当时域分量与 FFT bin 频率完全匹配并且分量的相位在整个采样窗口中保持不变时,它才能工作,即使是这种情况,您仍然需要注意减法中的相位。

    理想情况下,您需要移除(即零)频域中的分量,然后执行逆 FFT。请注意,您可能不希望仅将频域中的感兴趣 bin 归零,因为这会在您对 FFT 进行反演后在时域中产生伪影 - 您需要对感兴趣的 bin 和相邻的 bin 应用窗口函数垃圾箱。

    【讨论】:

    • 我可以通过使该组件等于零来删除它吗?幅度图上接近 F 频率的峰值呢?
    • 我想我现在已经在我的回答中涵盖了这一点 - 当你发表评论时我还在编辑。
    • @maximus:将 bin 归零将移除该 bin 频率范围内的所有能量。
    • 例如,如果数据由一些完全拟合(完全匹配 FFT bin)频率和一些其他不完全拟合的频率组成。对于精确拟合的频率,该方法是否仍然正确?还是不准确的频率会破坏一切?
    • 关于归零,正如我们所知,存在错误的峰值,从最大峰值开始,这反过来又是数据中包含的正确(几乎)频率。正如您所说,将最大峰值归零当然会删除该箱范围内的所有能量,但最近的箱仍然具有接近最大峰值的值(能量),并且其他峰值也会产生影响。因此,将唯一的垃圾箱归零可能不是那么有效..
    猜你喜欢
    • 2013-01-19
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2020-05-22
    • 1970-01-01
    • 2022-01-11
    • 2017-02-14
    • 2021-08-23
    相关资源
    最近更新 更多