使用 Android 应用程序进行信号处理(莫尔斯电码解码)
我在 Delphi 中制作了使用 Windows API Beep 函数发出莫尔斯电码蜂鸣声的测试应用程序。然后在 Android 中创建一个应用程序,将该莫尔斯电码存储在 WAV 文件中。现在我想要 Android 应用程序解码摩尔斯电码。是否有一些声音处理教程或者有人可以发布一些简单的代码(认为这里不简单)作为示例?或者也许我需要执行哪些步骤才能使其正常工作?
我还下载了 JTransforms 和 jfttw 库,但不知道从哪里开始。
问候, 邪恶的
I made test application in Delphi that beeps morse code using Windows API Beep function. Then made an application in Android that stores this morse code in WAV file. Now I want Android application to decode the morse code. Is there some tutorials for sound processing or can somebody post some simple code (think there's no simplicity here) for an example? Or maybe steps that I need to do to get it work?
I also downloaded the JTransforms and jfttw libraries but don't really know where to start.
Regards,
evilone
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
FFT 对此来说太过分了 - 您只需使用简单的 Goertzel 滤波器 即可将摩尔斯电码与背景噪声,然后解码其输出。
An FFT is overkill for this - you can just use a simple Goertzel filter to isolate the morse code from background noise, then decode the output of this.
我记得几年前,QST 杂志的较旧期刊上有一篇关于用于 Morse/CW 解码的 DSP 的文章。可能想尝试搜索他们的档案。
基本上,您需要 DSP 代码来确定在任何给定时间点是否存在音调,并估计每个音调的开始和结束时间。然后缩放每个音调的持续时间和音调之间的间隙时间以获得预期的代码速度,并与每个莫尔斯电码字母的计时表进行比较,以估计每个或任何字母出现的概率。
在最简单的情况下,您可能有一个点划空间决策树。在严重的噪音和衰落加上高度个性化的拳头/计时中,您可能需要一些复杂的统计和/或自适应音频模式匹配技术才能获得不错的结果。
I think an older issues of QST magazine had an article on DSP for Morse/CW decoding several years back. Might want to try and search their archives.
Basically, you need DSP code to determine whether or not a tone is present at any given point in time, and an estimate of the onset and off-time of each tone. Then scale the duration of each tone and the gap times between the tones for the expected code speed, and compare against a table of timings for each Morse code letter to estimate the probability of each or any letter being present.
In the simplest case, you might have a dot-dash-space decision tree. In severe noise and fading plus highly personalized fist/timing you might need some sophisticated statistical and/or adaptive audio pattern matching techniques for decent results.