我需要连续识别出prek频率。我已经尝试FFT
和JTransform
了但是我没有得到正确的频率并且它有很多噪音。我不知道如何纠正这个问题。我在google上搜索过,遗憾的是我找不到合适的搜索。
因此,如果您有任何其他工作示例确定峰值频率。
请与我们分享,
谢谢。
答案 0 :(得分:1)
我仍然不确定您的输入信号是什么,或者您是如何知道您从傅立叶分析和/或峰值检测器获得错误的峰值频率。
一般情况下,为了测试您的FFT,您需要合成纯音,例如32 Hz余弦音。
使用FFT处理这种纯音时,你应该得到一个32 Hz的单峰:
要测试您的峰值检测代码,您需要将32 Hz音调衰减为半功率,并添加另一个全功率纯音,例如64 Hz,如下所示:
当您使用FFT处理这两个谐波时,您应该在32和64 Hz处获得两个峰值,并且32 Hz峰值应该是相对于64 Hz峰值的一半功率。
在您的代码使用上述合成信号正常工作后,您应该尝试一个真正的已知信号,例如将这个单个E2音符插在原声吉他上:
此E2音符信号的FFT频谱如下所示:
使用此实际信号,您的峰值功率检测器应找到161 Hz峰值,此信号恰好是E2音符的第一个谐波。 80 Hz的低功率峰值是E2音符的真实基频。
生成合成信号和实际信号