【发布时间】:2018-10-07 12:48:57
【问题描述】:
我正在尝试使用 FFT 来解码莫尔斯电码,但我发现当我检查我感兴趣的结果频率箱/桶时,即使呈现恒定音调,绝对值也会有很大的变化。这使我无法使用阈值附近的上升和下降来解码音频莫尔斯。 我什至尝试过似乎到处都在复制的简单示例,但它也有所不同...... 我无法弄清楚我做错了什么,而且我的数学还不够聪明,无法理解与 FFT 相关的所有公式。 我现在肯定有可能,但我不知道如何......有人可以帮忙吗?
【问题讨论】:
-
你在 FFT 之前使用的是窗口函数吗?
-
可能不是,因为我不认识这个词。基本上,我声明了一个 RealDoubleFFT,读取麦克风输入(8000hz),将其以 512 个块送入缓冲区(在 /32,768.0 之后),然后在缓冲区上调用 .ft。然后在与我输入麦克风的音调相关的频率桶中检查结果(在返回缓冲区中)
-
OK - 如果没有窗口函数,您将在频谱中获得各种人工制品,特别是关于任意频率的峰值幅度。参见例如this question.
-
顺便说一句,基于 FFT 的方法对于摩尔斯电码解码来说可能是多余的,您可能需要在连续 FFT 之间使用大量重叠来获得足够的起始/偏移分辨率。
-
感谢您的帮助。我确实有一个可以工作的莫尔斯解码器来分析传入的音频,但我希望能够从“瀑布”显示中选择所需的信号(通过 fft 频谱)。我有一个很好的频率分辨率,但选定的 bin 的大小是我的问题。我想知道在哪里可以找到如何应用窗口化的示例?