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

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

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

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

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

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

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

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

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

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

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

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

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

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

モールス信号を読んでみる

ここ数日モールス符号のデコードアルゴリズムを書いていました。何故かというと、ラズパイでモールス信号の読み取り機ができるんだろうか?と突如疑問に思ったわけなんです。スマホが音声認識してしまう時代にモールス信号なんて、できても虚しいのでは?という自問に負けず、それでもやっぱりちゃんと機構を組んでメカメカしく動くものを作ると見えてくる物事の本質もあるはず。いやそんなメカちょっとみてみたい、と、復号化だけでなく信号を読むとこ全部やってみることにしたわけです。

モールス符号のデコードアルゴリズム

モールス信号は、「トンツー」の組み合わせでアルファベットや数字を表します。スイッチ一個で文章が伝達できるとても便利なコードで長い歴史を持っています。今でも便利に使えそうですけど、僕は昔からモールス符号、覚えられません。モールス符号は人間が理解できるように作られていますが、どうにも覚えられないし、機械に読ませられないかな?と思ってやってみることにしました。まずは一連の処理のうち一番簡単そうな「トンツー」を文字に変換する部分からやってみます。ということで、先日二つ実装を紹介したのですが、プログラムだけ見ると難解かもしれません。あれはこういう仕組みで動いてますよ、という記事です。

引用:Wikipedia

モールス符号のデコード関数・改

Chris Wellons さんのモールス符号のデコード関数の実装を参考に同じことをする別関数を書いてみたけれどもあんまり筋が良くありません。やっぱり本家のほうが魅力的。もと実装を見ていたら、もう少しだけ小さく実装できそうだったのでやってみました。

Raspberry Pi 4 設定メモ

動きのない SSH セッションが勝手に切れてしまうのを防ぐ方法 wlan0 に初期状態で入っているパワーセーブをオフにします。以下で再起動後も設定が残ります $ sudo crontab -e # which opens…

ラズパイにはどの SD Card を使ったらいいの?

ソフトウェアを書く方は、「やーそれラズパイ買ってきてちゃちゃっとデモしちゃいましょうよ」というようなことを一度や二度は口にしたことがあるんじゃないでしょうか?僕はあります。でもいざやってみると、SD Card に乗ってるシステムって怖いんですよね。いつ飛んじゃうのかと。そして、近頃もラズパイで楽しく遊んでみようと思ったらやはりシステムが飛んでしまいました。まあただの設定ミスかもしれないんですけど。それで、本格的に遊んでみる前に、以前からかねての疑問「そもそもラズパイには何の SD Card を使ったらいいの?」についてまじめに取り組んでみました。

SD Card の規格、超わかりくくないですか?こんなのとか。

「え?class 10? V30? U3? A1? なにそれ?」と思ってしまいます。買うとき毎回です。

調べた結論から書いてしまうと僕の考えは「SD Card を使うなら A2 クラスが良い。ほかのあれこれは無視してOK」です。でも「むしろ SD Card は使わないで SSD を使った方がいい」とも思うんですけれども。なんでそう思うのか興味があったら続きを読んでいってください。