Computer & RF Technology

AD8302+抵抗ブリッジ+ADF4351でADS-Bアンテナを観測しipython notebookでグラフにする

ADS-Bアンテナを自作する場合、たとえ設計通りのサイズに作ったとしても、適切に製作調整できているかどうかよくわかりません。全体のサイズが小さいので、ごく僅かな数ミリのズレでも大きく影響しそうです。ネットワークアナライザがあれば一発で挙動を観察できますが、普通はそんなモノがあるわけもなく、例の自作品は現状では1090MHzをまともに観測できる状態ではありません。

そこで先日製作したADF4351によるPLLシンセサイザを信号源として、抵抗ブリッジを使って挙動をグラフ化してみました。ブリッジは以前実験用にAD8302で試作しましたが、設計の勘違いからまったくダメで放置してあったものを、強引に改造して使ってみました。

改造の様子です。一部の不要な部品を取り除き、バランを追加しブリッジからの平衡信号を不平衡にしてAD8302に入力するようにしました。こんな強引な改造でも意外と使えるものです。ブリッジ部分は1005サイズの小さな0.1%精度のチップを使っています。

AD8302が出力するレベル差と位相差の電圧を、USB PLLボード上のPIC18F14K50の10 bit ADCで変換します。AD8302からはVref = 1.8Vが出ているので、これもPICに入力しADCのリファレンスとして使います。こうすることで10bit分全体をダイナミックレンジとして有効に利用できます。ADCの入力と電源を合わせて、USB PLLボードの拡張ポートと接続します。PCと接続するのはUSB一本のみですので簡便です。

さて、データの取得とグラフ化ですがいつものようにPythonスクリプトを使います。指定した範囲の周波数をステップで変化させるようPLLにコマンドを送り、その時の位相差、レベル差の電圧値ADCの読みを取得し、それを単純にmatplotlibでグラフ化します。

まずは最初に、妥当な動作をしているかどうかを、オープン、ショート、ターミネートの順で見てみます。周波数は800MHz〜1200MHzを100分割でスイープさせています。緑がリターンロス、青が位相差です。AD8302は振幅差が30mV/dB, 位相差が10mV/度の感度を持ち、縦軸のスケールはADCそのままの10ビット1024=1.8Vですので、それぞれおよそ17/dB, 5.7/度となります。

オープン

ショート

ターミネート(50Ω)

ターミネートの場合と、オープン/ショートの場合とでそこそこレベル差がある(ちょっともの足りないですが..)ようですので、同調周波数を確認したりするくらいなら実用になりそうです。

位相について試すため、遅延の例として同軸ケーブルを接続して他端をオープンにした場合です。残念ながらAD8302は位相差の正負の区別が付きませんので、波形が鋸状ではなく三角になってしまいます。この曖昧性がある状態でキャリブレーションをする方法はちょっとすぐには思いつかないので、とりあえずこのまま使います。

さて、本題であるADS-Bのアンテナですがいくつか作ってみました。まずはコーリニア。アルミ線3mmを曲げて作ります。ハンダが付かないので給電点は銅線を巻き付け、調整後にかしめて固定します。コネクタはSMAです。エレメントはそれぞれ100mmで、平行部分は70mm、10mmで給電です。

平衡部分の間隙をかなり狭め(1~2mm程度)にしないと同調しませんでした。わずかに動かしただけでも大きくズレます。(緑線がリターンロス)

コーリニアは固定に苦労するので、いっそポールをエレメントにしてしまえとこんなのも作ってみました。材料は農業資材のグラスファイバーポールにアルミテープを巻き付けているだけです。この作りは丈夫で良いのですが、結果は良くなく、1090MHzに追い込むことができませんでした。やはり電圧の上がるエレメント付近に誘電体があるとダメなようです。うまくいけば多段コーリニアも簡単に作れると目論んだのですが、残念ながら失敗です。

ツインデルタループも試してみました。これもアルミ線を曲げて作ります。アルミ線を継いでループにするのに、電工用のリングスリーブを使いました。両端からアルミ線を突き合わに入れ、かしめて固定します。

いくつか作り直しした結果、三角形の辺の長さを105mmにすると同調点を1090MHz付近にすることができました。ただしこれも作りっぱなしでは難しいようです。

同調点が大きくずれている場合には、エレメントをカットしたりしますが、修正だけでは追い込めないと判断したら、大きさを変えて作り替えました。材料が安価で工作も簡単なので何度も作り直しをしましたので、死屍累々です。

おそらくきちっと同調を追い込まなくてもそこそこ受信はできるのだと思うのですが、動作状態が判らないのは釈然としないので、可能な範囲で計測してみました。大きさや形を変えたときに、どこがどう影響するかはなんとなく判った気がします。こんな計測とアンテナの性能はまた別の話だとは思いますが、より理解が深めるためにはアンテナシミュレーションには手を付けるべきかもしれません。

ちなみにPythonの実行には例によってIPython notebookを使っています。少しコードを書ける必要がありますが、ブラウザ上で条件を変えたり、結果を並べたりが自由にでき、さらにEvernote等にコピペが簡単にできるので大変便利です。

一回のスキャンには15秒ほどかかっていますが、これがリアルタイムにできるようになると一層便利だろうと思います。現状ではPICのファームウェアを適当に作り、HIDデバイスとしているのですが、これをちゃんとすれば数倍程度に高速化することは可能だと思います。

リファレンス

Load more