4

私はラジオ受信機を持っています。あのラジオの音声出力は私のコンピュータに送られます。音声出力には、440 Hz または約 440 Hz のモールス符号が含まれています。そのモールス符号の速度は 2 ~ 20 WPMの範囲である可能性があります。相手局が送信しているかどうかはなんとなく分かるのですが、その送信中・非送信中の状態を文字にするにはどうすればいいのでしょうか?総当たりよりも良い解決策があるかもしれないと思いました。

複雑な要因:

  • ほとんどのモールス信号プログラムのようにユーザーが指定するのではなく、プログラムが相手局の送信速度を把握できるようにしたいと考えています。
  • ノイズあり
  • モールス信号送信機は、すぐにオンとオフを切り替えるわけではありません。約 4 ミリ秒の立ち上がり時間と立ち下がり時間があります。
  • このモールス符号の多くは人によって送信されるため、完全ではありません。
    • たとえば、単語間の一時停止は 7 つの要素であると想定されていますが、5 から 8 までの任意の数になる可能性があります。
    • 人の送信速度は、1 回の会話で約 20% 異なる可能性があります
  • これを多かれ少なかれリアルタイムで実行したいと考えています。プログラムが何かを出力し、それが間違いであることに気づき、それを修正すれば問題ありません。

ソースコード

これまでのプログラムの出力例。オーディオをキー付き/キーなしに解決できますが、それをドット/ダッシュに解決することはできません。

###########################################################__________________________
_________________________________####################################################
#####################################################################################
#######################################______________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_____________________________________________________________________________________
_________________________

送信/送信しないことを決定するコード/提案、および/またはそれをモールス信号に解決するセクションをいただければ幸いです。

4

1 に答える 1

1

ダッシュとスペースからドットを分離することについての1つのアイデアは、会話の開始時に統計の収集を開始し、すべての「キー付きのXXms」イベントを1つの配列(または何か)に入れ、すべての「キーなしのYYms」を別の配列に入れることです。 (か何か)。次に、最終的に、キー付きのヒストグラム確率(t)と、キーなしのヒストグラム確率(t)が得られます。これらのヒストグラムには、人間といくつかのアルゴリズムの両方に見えるいくつかの最大値と最小値が必要です。したがって、曲線を丸めて、これらの最小値で分割し、左側のドットを右側のダッシュから分離します。これは、スペースを含む複数の最小値と同じです。このアプローチは実際に会話にうまく入りますが、調整は必要ありません。

于 2012-06-01T05:04:54.050 に答える