【发布时间】:2012-06-05 12:07:15
【问题描述】:
我有一个无线电接收器。那台收音机的声音输出到我的电脑。声音输出包含 440 Hz 或大约 440 Hz 的摩尔斯电码。该莫尔斯电码的速度范围可以从 2 到 20 WPM。我有点知道如何判断对方是否在传输,但是我如何将传输/未传输状态转换为文本?我认为可能有比蛮力更好的解决方案。
复杂因素:
- 我希望程序能够计算出其他电台的传输速度,而不是像大多数摩尔斯电码程序那样由用户指定。
- 有噪音
- 莫尔斯电码发射器不会立即打开和关闭。上升和下降时间约为 4 毫秒。
- 这个莫尔斯电码大部分是由人发送的,因此并不完美:
- 例如,单词之间的停顿应该由 7 个元素组成,但也可以是 5 到 8 个元素。
- 一个人的发送速度在一次对话中可能会有大约 20% 的变化
- 我想或多或少地实时执行此操作。如果程序输出一些东西,意识到这是一个错误并纠正它,那就没关系了。
到目前为止的程序示例输出。它可以将音频解析为键控/非键控,但无法将其解析为点/破折号。
###########################################################__________________________
_________________________________####################################################
#####################################################################################
#######################################______________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_________________________
任何关于决定传输/不传输的代码/建议和/或将其解析为莫尔斯电码的部分都将不胜感激。
【问题讨论】:
-
也许 Goertzel 过滤器在您的情况下有用吗? stackoverflow.com/questions/7273153/…
-
速度现在不是真正的问题。 (它比它需要的速度快大约 10 倍。)无论如何我都试过了,结果发现它在检测音调时明显不那么繁琐。谢谢!
-
听起来很有趣。如果您可以发布示例录音,我很乐意试一试。
标签: python morse-code