2026年1月20日火曜日

アンテナとタグの距離を測る その4

 前回は MF-PDOA を実際に計算して求めてみました。が、思ったような結果は得られませんでした。マルチパス(壁や床からの反射波)があると、位相が合成されてしまって結果が歪んでしまいます。マルチパスの影響を取り除くには FFT を用いる方法やもっと幅広い帯域での測定が必要みたいですが、リーダで読み取れるチャンネルは限られているのでそう簡単には実現できません。

そこで簡単にチャレンジできることとして、アンテナを2枚にして2か所から測定してみることにします。ということで調べていると、2枚のアンテナを使うことでAOA(Angle of Arrival:到着角度)の推定もできることがわかりました。2枚のアンテナを並べて設置し、タグからの電波を受信すると、タグの位置(角度)に応じて2枚のアンテナに届く電波の経路長にわずかな差が生じます。この経路差が、アンテナ間の位相差として観測されます。

距離(PDOA)と角度(AOA)の両方がわかると、タグの2次元的な位置(平面上の座標)が特定できるようになります。さらに、マルチパス対策としても強力です。マルチパスは直接波とは異なる角度から届くことが多いです。AOAによって「タグがあるはずの方向」がわかれば、その方向以外から届く(位相を乱す)反射波成分を理論的に排除しやすくなります。と、Geminiちゃんが申しております。

まじすか?ということでまずは AOA から試してみました。

前々回に作成した位相を表示するだけのアプリを改造して、2枚アンテナで取得した位相の【差】を表示するようにしてみました。

確かにタグを左右に動かすことで位相の差が変化することがわかります。周りが金属だらけなのでマルチパスしまくりでしょうけど、いちおう判断つくくらいの動きは見れました。ただ真正面にタグがあるときも位相の差が結構70度くらい出ているのが気になります。

真正面にあるときはそれぞれのアンテナとタグの距離は同じなので、測定される位相は同じ値になって差は0になるはずです。アンテナのケーブル長や、リーダ内部の基板上の長さのちょっとした違いで差がでるそうなので、これが表れているのだと思われます。この真正面のときの差は、リーダ固有のオフセット値と考えれば補正値として利用できそうです。


2026年1月6日火曜日

アンテナとタグの距離を測る その3

 前回はRFIDリーダで取得できる位相について見てきました。約16cm動かすと位相が一周するのがわかりました。しかしこれだけでは距離を正確に測ることができません。位相が何週したかがわからなければならないからです。

そこでMF-PDOAという手法があります。これは異なる周波数で位相を測り、その差分で距離を想定するやり方です。具体的には異なる周波数 f1 と f2 で位相を測った場合、

Φ2 - Φ1 = (4π・d f2 / c) mod 2π - (4π・d f1 / c) mod 2π = 4πd(f1 - f2)/c

となって(何週分かはどちらも同じと仮定した場合)、これを d について解くと、

d = c/4π・ΔΦ / Δf

となります。横軸に周波数、縦軸に位相で測定値をプロットした場合、直線となってその傾きから距離が求められるということになります。

まじすか?ということで実際に計測してみます。

測定風景は写真撮り忘れました。左が周波数(MHz)で値が位相(rad)になります。位相は複数回測定した平均値で、-πからπに収まるように補正しています。


これを横軸周波数、縦軸位相でプロットするとこうなりました。いい感じに直線になってますね。この直線の傾きから距離が計算できるということになります。実際に計算してみました。

100cm のタグ 計算値 18.623m

200cm のタグ 計算値 14.447m

300cm のタグ 計算値 28.542m

んー・・・ これは・・・ 何か間違えてる?

Geminiちゃんに聞くと、実際はアンテナの長さとかも含まれるからじゃね?あとマルチパスの影響もあるだし。みたいなこと言ってました。まぁ室内で測定してるしマルチパスはありそうだよなー、でも現場で使うにはマルチパス絶対あるだろうしなー、ということでもう少し探ってみたいと思います。