オーディオデバイスによる PSK 通信

前回の日記から間が空いてしまったけど,おもむろにこんなテーマを掲げてみる.

Linux のオーディオデバイスを使ってデータ通信をしてみた,というおはなし.

プログラム

http://jr0bak.homelinux.net/~imai/linux/psk.tar.gz

何はともあれ,プログラム. 実験用なので,perl でてきとーに書きました.

perl で適当に書いたとは言え,送り側受け側合わせて 200 行足らずで書けてしまったのは,書いた本人もビックリしていたりする.

PSK とは

PSK とは Phase Shift Keying の略. 搬送波の位相を切り替えてデータ通信,つまり 1/0 を送る変調方式である. 今回使った2相PSKだとこんな感じになる.

BPSK.png

変調

搬送波を sin ωt とすると,2 相 PSK では

データが 1 の時
sin ( ωt + 0 ) = sin ωt
データが 0 の時
sin ( ωt + π ) = -sin ωt

を送ることになる.

つまり

  1. 1/0 のデータをデータを +1/-1 に変換して
  2. 搬送波と掛け算する

これだけである.

が,これだけだと周波数スペクトルが広がってしまうので,無線通信の場合は,普通はフィルタを付けて帯域制限をかける. が,スピーカから鳴らす分には問題ないので,今回は広がったスペクトルはそのまま垂れ流すことにする.

復調

PSK の復調は,同期検波を使うのが基本.

方法としては,まず,何らかの方法で受信機側の発信器を sin ωt に(位相を含めて)正確に合わせる.

そしてこの発信器出力を変調波と掛け算すると…三角関数の積和の公式を使って

信号波が 1 の場合
sin ωt sin ωt = (1/2) * ( 1 + cos 2ωt )
信号波が -1 の場合
-sin ωt sin ωt = -(1/2) * ( 1 + cos 2ωt )

となる. cos 2ωt の周波数成分をフィルタでバッサリカットすると,元の信号波が得られることになる.

けど今回は復調側はこの方法を「そのまま」採用していない. これについては次回.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-09-21 (水) 08:28:25 (4624d)