2013/06/23

プチコンでMIDIコントローラを作る(2)

プチコンから出てくるデータを受け取ってデコードするPC側の処理ができました。 一応MIDIを出すところまでできたので、MIDI Yoke 経由で RB-338 を制御できるようになりました。 これで一応DSからRB-338を制御できるようになったわけです。

2相PSKをデコードする方法としては、結局は素朴な方法を採用しました。
  1. まず、上の閾値を越えて上がる点を探します。いちばん最初または前回閾値を超えてからの間隔が短い場合は無視します。そうでなければ"1"を出力します。 
  2. 次に、下の閾値を越えて下がる点を探します。前回閾値を超えてからの間隔が短い場合は無視します。そうでなければ"0"を出力します。 
  3. これを繰り返し行い、閾値を超える点が見つからなくなったら、そこをコマンドの終了と判断します。 
図では、採用する点を赤で、無視する点を黒で示しています。
この方法だと、閾値に大きなヒステリシスを持たせているのでノイズには強そうですが、ジッタには弱いでしょう。サンプリング周波数を高めにしておいたほうが安全かもしれません。
なお、デコードを簡単にするため、スタートビットとして先頭に余分な"0"をつけることにしました。なくてもデコードは可能ですが、やっぱりあったほうが何かと楽なのです。

0 件のコメント: