モールスリーダー Kraftwerk の Radioactivity を読む

Kraftwerk 好きの皆さんなら、モールス信号といえば、Radioactivity ですよね。はい実はあれのモールス信号が読みたくてこのプロジェクトをやったんですが。ちゃちゃっとはできなくて足元には深い沼が見え始めてます。ここまで使ってきたテスト信号はノイズが乗っているといってもせいぜい定常なホワイトノイズぐらい、それほど信号読み取りの邪魔にはなりませんでした。ですが Radioactivity は音楽です。この冒頭のところ、クリック音が入ってるし、コーラス風のコードが流れているし途中からベースも入ってくるし、モールス信号を拾うのは格段に難しそうです。

モールス信号のパタンを認識する その2 残された可能性の刈り取り

前回の記事では、モールス信号の読み取りに迷ったらどちらの可能性にも分岐する「多重世界線方式」を考えて実装したところ、その自信度で評価して一番上に正解が来るようになりました。しかし可能性をいくつも見せても仕方がないのでやはり一つを残して他は刈り取る必要があります。これが次の課題です。

モールス信号のパタンを認識する

前回の記事で、モールス信号読み取りプログラムの大枠を作って紹介しましたが、モールス信号のオンオフパタンの読み取りは原始的な方法でお茶を濁してしまいました。今回はそこを強化してみた、という記事です。

モールス符号の入力を実際に理解させるときに、大きく二つ問題があります。

  • 全く同一のタイミングで別の符号パタンが存在する
  • モールス信号は人手で叩くこともあり、タイミングは必ずしも正確ではない

全く同一のタイミングについては、例えばこのようなもの

******      ******      ******
Bash

これは、トンの長さが文字二個分と認識すると”T T T” になって正しいコードです。トンの長さを文字六個分と認識するとこれは “S” になってこれも正しいコードです(SOS の S です)。

モールス符号のタイミングのブレで読み取りが紛らわしい問題については、実際にテストパタンで経験したものでは例えば

*****      ***************      ***********   ******
Bash

これは P (.–.) のつもりですけれども三番目の信号が何かあいまいで L (.-..) とも読めてしまいます。他にも隙間があいまいで単なる信号の切れ目なのか文字の切れ目なのか判別がつけづらいという場合もありました。