morsecode.world 译码器的自适应实现

2022-05-28  本文已影响0人  alue

查看了 morsecode.world 里译码器的自适应参数调整机制,这里记录一下。

难点

  1. 怎么确定dit的duration?
  2. 怎么找到最佳频带?
  3. 怎么确定幅度的门限值

解决办法

最佳频带的自适应

每个tick做fft之后,都会更新 averageVolume, 令其等于最近 bufferSize 的频谱之和。然后找到最大值对应的频带作为最佳频带。

dit的duration自适应

每一次flush之后,都会调用 timings2morse方法,完成di-da字符的转换。然后执行 addDecode 方法,在这个方法内部,完成dit片元时间的自适应调整。
但这个方法严重依赖于初始字符的解调正确性。一旦初始参数与实际差距过大,就会出现一直无法解调的问题。

幅度门限值

并没有给出自适应的算法。

后续研究

  1. 完成初始wpm的估计。
  2. 完成幅度门限值的自适应调整。
上一篇下一篇

猜你喜欢

热点阅读