Ruby での AFSK エンコーディングとデコーディング
概要
電波/音波を使用してデータを送受信するために使用できる「オーディオ周波数シフトキーイング」(AFSK) エンコーダとデコーダを作成しようとしています。
Bell 202 は、私が取り組んでいる AFSK 標準で、バイナリ データを 1200hz と 2200hz の 2 つのトーンにエンコードします。これら 2 つのトーンは、バイナリの 1 と 0 を表します。
私は Ruby 内で win32-sound を使用してこれらのトーンを生成しようとしていますが、実際にそうなります。問題は、あるトーンを切り替えて別のトーンに移行するのに完了するまでに約 1 秒かかることです。これは、ベル 202 が動作できる 1200 ボーの速度には遅すぎます。
私の質問は、これらのトーンを作成し、それらをより速く切り替える他の方法はあるのかということです。また、私がここにいる間に、それらのトーンをバイナリデータにデコードできる宝石はありますか?
解決策
少し前に、Ruby で AFSK 変調器/復調器を作成しようとしました。 WAV ファイルの読み書きができる動作するプロトタイプを入手しましたが、リアルタイムのパフォーマンスには程遠いものでした (私の記憶が正しければ、リアルタイムの約 8 倍まで最適化しました)。
いくつかのヒント: