バイナリデータをサウンドにエンコードする小さなプログラムを構築しました。例えば、以下のバイナリ入力:各文字が時間の一定単位を表しオーディオエンコードされたバイナリデータをどのように解釈すればよいですか?
################..S.SS.S################
:
00101101
は、このような「音」を生成します。 #
は、送信の開始および終了を決定するために使用される880Hzの正弦波を表し、.
はゼロを表す無音を表し、S
は1を表す440Hzの正弦波を表します。明らかに、中央の部分は実際にははるかに長くなります。
私の質問の本質は:どのように私はこの操作を反転できますか?
サウンドファイルは、簡単な再生とサウンドの録音で受信者に送信されます。つまり、簡単に元のサウンドファイルをデコードしようとしているわけではありません。
明らかに、周波数に関して記録されたデータを分析する必要があります。しかしどうですか?私はフーリエ変換について少し読んだが、ここではかなり失われている。
私はどこから始めたらよいかわかりませんが、これは簡単ではなく、おそらく信号処理に関するかなりの知識が必要です。誰かが私を正しい方向に向けることができますか?
私はRubyでこれをやっています(それは遅いですが、それは単なる概念の証明です)。問題自体はプログラミング言語に固有なものではありません。
[オーディオ周波数シフトキーイング](http://en.wikipedia.org/)/wiki/Frequency-shift_keying#Audio_FSK) –
http://stackoverflow.com/questions/3714321/open-source-fsk-decoder-library –
ああ、車を改造してみませんか? :)ヒントのおかげで! –