2008-12-30

私鉄空線のデコード(最終章?)

なんとかちまちま作ってきた私鉄空線デコーダーですが、とりあえずα版ぐらいのレベルまでたどり着けました。といっても、まだ作りこんでいないところがいくつかありますが、デコード機能的には完成したという感じです。

というわけで、現在の画面ですが、基本的にはデコードした結果を表示するだけなので地味なものですw。あと、前の記事でも書いたとおり、空線キャンセラーの機能も入っています。ただ、気がかりなところといえば、実行時のプロセッサーの負荷率がやや高いといったところでしょうか。サンプリングレートを上げて、デュアルデコード(左右チャンネル同時にデコードする)を実行すると、ちょっと重いかな?といった感じがします。

まだ、しばらくは作りこみが必要ではありますが、テストをしたいというのもあるので、限定で公開しようかと思っています。とりあえず、LiveSpaceに「関東私鉄空線研究会」というグループを作ったので、興味がある方がいらっしゃたら、WindowsLiveのアカウントを作って、入会をリクエストしてみてください。
そういったわけで、私鉄空線デコードネタは、このブログではとりあえず、クローズしたいと思います。

テストをお願いするにこちらから注文をつけるのも忍びないですが…。テストの成果をそれなりに出したいので、とりあえずの条件としては…。

  • それなりにWindowsを使いこなしている人
  • それなりに鉄道無線に精通している人
  • 空線がデコードできる私鉄の鉄道無線を受信できる人

要するにですね、いまのところヘルプとかの詳しいドキュメントができてないので、いきなり実行モジュールをもらってもなんとかなるとか、鉄道無線の受信の仕方とかを指南しなくてもなんとかなるとか、PCと受信機をオーディオケーブルでつなげられるとか、そういったレベルなので、普通に私鉄の無線を聞いている人でPCを持っていればおKといったところです。

受信電界強度が弱くて、ノイズ混じりだったり、電界強度が不安定だとデコードできないかもしれないので、必然的に特定の私鉄沿線の近くで受信できる人という条件にもなります。結局のところ関東というか首都圏の一部の地域に限定されてしまいますが…。

あと、できれば、フォーマットの解析もしたいので、いろいろな沿線の人に使ってもらいたいと思っています。このソフトは、最終的にはフリーウェアとして公開する予定なので、ボランティアで参加ということで…。そういうわけで、よろしくおねがいします。

2008-12-08

私鉄空線のデコードと空線キャンセラー

おまけの話でなんですが、空線がデコードできるということは、空線があるか否かがわかるという単純な発想で、作成中の空線デコーダーにいわゆる空線キャンセラーの機能を入れてみました。

空線キャンセラーといえば、空線がどのくらい除去されるのかというのが話題になるのですが…。
やる気になれば、デコード可能な信号という条件なら、ほぼ100%除去することも可能です(といっても、よっぽど電界強度が高く、安定してないと100%のデコードにはなりませんが…)。ただし、キャプチャと信号処理で必ず遅延が生じるので、それをするにはループバック(ラインインから取り込んで、Waveアウトに出力)させないとダメです。しかし、そこまでするのはかなり面倒なのでやりません(少なくともデコーダーの機能ではない)。

そういう意味では、簡易空線キャンセラーというべきかもしれませんが、信号処理でデータが抽出できたら、ミキサーコントロールを操作してミュートにするいう仕組みで、信号処理後にミュートですから、もちろんそれなりの遅延が生じます。

そもそも、キャプチャーはある程度のデータがバッファに溜まってから取り込むので、最悪バッファ長に相当する時間の遅延が発生するわけです。
さらに、そこから信号処理をするわけですが、プロセッサーの処理速度に関係なく遅延するのがフィルタです。

いわゆるデジタルフィルタは、ある程度の数の連続したサンプルを使って、出力を計算するわけですから、キャプチャしたデータの最後のほうは、次の取り込みでデータを取得しないと計算できません。あと、フィルタ長にもよりますが、フィルタによる遅延も影響してきます。

あとの信号処理は、大きく遅延するような処理はしないので、プロセッサーのパワー次第です。ただし、少なくともパソコンの場合、信号処理だけで負荷が高いと結果的にキャプチャーの取りこぼしにつながるので、ほどほどになるようにチューニングしておきます。そういった意味では、そこではそれほどの遅延にはならないはずです。

といった具合で、現在の空線デコーダーに組み込んだ簡易空線キャンセラーの場合、おそらく0.3秒ぐらいの遅延が生じているようです。これは、アップリンクの1パケットがだいたい0.5秒ぐらいなので、そこから聞いた感じで推測しているので、あまり正確な数字はないですが…。

と、いいつつも空線キャンセラーの機能は、デコーダー的にはまったくのおまけなので、これ以上どうにかしようとかは思っていません…。

私鉄空線のデコーダー

私鉄空線をデコードできるということは、過去記事にていくつか述べましたが、Windows上で動くデコーダーが概ね完成しました。まだ、絵的には完成していない(アイコンとか)ので、スナップショットは、体裁が整ったらご紹介しようかと思っています。

ただ、安定して受信できるのが、西武線しかないのでフォーマットの解析は西武線のみになっています。解析はほぼ完了しておりますが、まだいくつかのなぞが残っています。詳しい人がいたら教えてほしいのですが…。

西武線の場合、無線はLCXを使っているのですが、どうやら、沿線全てで指令側が1つではなくどこかに切れ目があり、場所によって指令側が変わるようです。
おそらく、どこかの駅の下り側と上り側では指令側の担当が違っているところがあるということです。

その切れ目がどこかというのが知りたいのですが…。いまのところの予想では、西武新宿線は、田無あたりに切れ目がありそうではないかと思ってます。
これとデコードとの何の関係があるかというと、このエリアによってデータが変わるのではなかろうかということです。

もちろん、それらしき場所に移動して、受信しデコードすれば判明することなのですが…。デコードをするには、それなりに電波が安定していないとダメなので、それなりの装備が必要ではないかと…。

比較的近い西武線ですらこんな感じですから、他の私鉄はほとんど手付かずです。耳で聞く限りでは受信できるところもあるのですが、デコードとなると条件は別で、電界強度が高くてもデコードできないこともありますし、聞いた感じノイズがのっていてもデコード可能という場合もあったりします。

そのへんは、デコーダーが出来上がったら、それぞれの沿線に得意な人に使ってもらって解析するというほうが無難ですかね…。