2026年4月30日木曜日

nRF52833で測距(5) - IQデータの処理方法(2)



ちょっと本気出して測距を考えてみたい。IQデータの料理方法についてまとめておきたい。、、、の第2回目。

BeamformerができるんだったらCaponもできるのでは?って考えちゃう。んで、Caponってどんなんだったっけ?ってのは、、、Geminiに調べてもらった。前回はIQのフーリエ逆変換をどう理解するかっていう少し人間っぽい思考があった(まあわかってやってたんだけど)けど、今回はその必要がない(?)ので一気にGeminiに解説してもらう。
ってんで、こちら んで要点だけ抜き出すと
こちら、ステアリングベクトル(というらしい)
\[ \mathbf{a}(t) = \begin{pmatrix} 1 \\ e^{-j 2 \pi \Delta f t} \\ \vdots \\ e^{-j 2 \pi (N-1)\Delta f t} \end{pmatrix} \tag{1} \] ウェイトベクトル$\mathbf w$によって電力$P$は
\[ P=\mathbf w^H \mathbf R_{xx} \mathbf w \tag{2} \] って表されるんでした。見たい距離での出力を一定にしたうえで、$P$を最小化するってのがCapon法。それを数学的に書くと
\[ \min_{\mathbf{w}} \mathbf{w}^H \mathbf{R}_{xx} \mathbf{w} \quad \text{subject to} \quad \mathbf{w}^H \mathbf{a}(t) = 1 \tag{3} \] となるらしい。
これを解いて、Capon法のスペクトルは
\[ P_{CP}(t) = \frac{1}{\mathbf{a}(t)^H \mathbf{R}_{xx}^{-1} \mathbf{a}(t)} \tag{4} \] となるらしい。
(ステアリングベクトルって「距離によって位相差がこうなる」ってのを示していて、ステアリングベクトルの距離(すなわち$t$)をスイープすることで出力を最大化するってのがBeamformerでした。)
ところで、このCapon法は実は困ったことがあって、相関行列$\mathbf{R}_{xx}$の逆行列が存在しないってこと。今回IQデータのスナップショット数は1なので$\mathbf{R}_{xx} = \mathbf{x} \mathbf{x}^H$において$rnk(\mathbf{R}_{xx})=1$らしくて、これだと逆行列は存在しない。さらに測距において、LocalとRemoteのIQデータから得られる信号は、単一の経路(あるいは固定された反射路)を通っていて、強い相関(コヒーレンシー)を持っていて、いくらスナップショットを重ねても、位相関係が固定されているので、情報は重なったまま(コヒーレントなまま)で、行列のランクが上がらないってのも問題。これを解決するには
  1. 空間平均法=サブアレー的な処理をして信号間の相関を崩す
  2. 複数シーケンス=独立した複数のデータ取得で様々な要因を取り込んで信号間の相関を崩す
  3. 対角成分付加法=数学的には固有値の底上げ
ていうアイデアがあるらしいんだけど、3が簡単そうなのでやってみる。1が正攻法っぽいけど、3は確実に逆行列を安定して得られるという点で良い方法らしい。ちな、「Tamed Capon」とか「Diagonal Loadingを適用したRobust Capon Beamforming」とかいうらしい。

ble_tamedcapon.py


あれ?するどくなってる?なってないような、、、σ( ̄∇ ̄; )
やっぱり空間平均法もやってみるかー


ほんとまじで戦争やめて!
○○○○が○○○○○の首をとって○○○に謝ればいいのに

0 件のコメント:

コメントを投稿