- 締切済み
到達時間差法の連立方程式の解法について
到達時間差法による音源の特定について http://www.enjoy.ne.jp/~k-ichikawa/sound_location.html ------------- (以下上記URLからの引用です。) sqrt((x2-x0)^2+(y2-y0)^2) - sqrt((x1-x0)^2+(y1-y0)^2) = c(t2-t1) …(式1) ここで、sqrt : 平方根(ルート) ^2 : 2乗 を意味します。 同様に、マイク2,3に音が到達する時間差(t3-t2)から次の式が成り立ちます。 sqrt((x3-x0)^2+(y3-y0)^2) - sqrt((x2-x0)^2+(y2-y0)^2) = c(t3-t2) …(式2) 式1,2の連立方程式を解くことにより、音の発生場所(音源位置)(x0,y0)を求めることができます。 ちなみに、式1はマイク1の位置(x1,y1)およびマイク2の位置(x2,y2)を焦点とする双曲線1であり、式2はマイク2の位置(x2,y2)およびマイク3の位置(x3,y3)を焦点とする双曲線2です。 (ここまで引用です。) ----------- この場合、分かっている値は、マイク1,2,3の位置、マイク1,2の到達時間差、マイク2,3の到達時間差ですが、この場合、この連立方程式をどのように解けば、音源位置を特定することができるのでしょうか? (式1)、(式2)の連立方程式の具体的な解き方を教えてもらえると大変助かります。 よろしくお願い致します。
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- 178-tall
- ベストアンサー率43% (762/1732)
ANo.1 を再考。 >…この連立方程式の場合、到達時間差は分かっていますが、各々の時間は分かっていません。… だからといって、いきなり連立解にとっかかるのは煩雑の極み … ので、座標の前処理でもしてみれば? 引用図の場合なら、M1 (x1, y1) → O (0, 0) 、M2 (x2, y2) → A (a, 0) と平行移動してみると、 「音源 S」の座標候補は、 d1^2 = x^2 + y^2 …(1)' d2^2 = (x-a)^2 + y^2 …(2)' の連立解は、 x = (a^2 + d1^2 - d2^2)/2a y = ±√(d1^2 - x^2) のペア。 …といった調子で、何とかなりませんか?
- mizuwa
- ベストアンサー率66% (32/48)
言葉足らずでした。すみません。 音源の位置を特定するのに、条件が足らないのでは?ということを示す簡易例でした。 そのため、グラフソフトで、作成し概略値を読み取ったもので、きちんと解を求めていません。 ●まず、cについての記述がない ※グラフの例では、c=O.4と設定していますが、以下のようなおかしなことが起こります。 ●次に、c=0.4と設定したときの、Sから、A,B,Cまでの距離の比が、時間差の比になるはずなのにはあきらかに違う。 ※これは、双曲線は2点からの距離の差が等しい点なので、各点からの距離に+αが あっても、差をとるとαが消去されてしまうことから起こります。
- mizuwa
- ベストアンサー率66% (32/48)
- rinkun
- ベストアンサー率44% (706/1571)
リンクされているサイトの記号法だと書きにくいので マイク点をA,B,C、音源をXとし、AからとCからのXの距離差をa、BからとCからのXの距離差をbとします。すなわち |AX|-|CX|=a |BX|-|CX|=b です。(間隔的に符号が逆に感じるかもしれませんが本質ではないので無視します) A,B,C,Xが2次元の点なので、上の式を満たすXはそれぞれ双曲線の一方の枝になります。 したがって両方を満たす点Xは二つの双曲線(片枝)の交点として特定できます。 さてこの問題を「解く」に2つのレベルがあります。 1.数値的に解く 2.解析的に解く 1の方は簡単です。 適当な点から初めて上記2式を満たすようなXを探索すれば良いです。具体的には Δ^2:=(|AX|-|CX|-a)^2+(|BX|-|CX|-b)^2 を最小化するXを非線形最適化で求めればΔ^2=0になり、そのときのXが音源です。 # 一般には二次曲線の交点なので2つある可能性はあるけど # 多分、解は1つになると思う。確認はしていないけど。 2の方は適当に移項しつつ2回2乗して平方根を外していくのだろうけど、4次の項が 出てくるので簡単には解けないと思います。2乗するときに解じゃない点も含まれる ようになるので、解析的に解いたもののどれが真の解かを調べるのも一般には大変 でしょうね。
補足
「Δ^2:=(|AX|-|CX|-a)^2+(|BX|-|CX|-b)^2 を最小化するXを非線形最適化で求めればΔ^2=0になり、そのときのXが音源です。」 "数値的に解く"この方法について、もう少し説明して頂けると幸いです。
- nobrain_nopain
- ベストアンサー率0% (0/4)
思いつきでものを言ってしまうが t1については常に"0"と置いても問題ないのではないだろうか? 同様にt2、t3についてもt1=0との時間差と考えてみてはどうだろう? 音響を用いた音源の方位距離測定システムを考えてみると (以下はマイク1が音源に一番近いものと仮定) マイク1で特定の音を感知したときに、システムのスイッチが入り カウントが始まる。 マイク2はそこからx秒後に、マイク3は(x+α)秒後に同一の音を捉えたとすれば (音感知からシステム稼動までのタイムラグ等を考慮すれば)システム的には破綻しないと思うが・・・ 具体的な解き方については、他の方にまかせた。
補足
コメントいただいたことについてはありがとうございます。 ただ、やはり具体的な解き方を教えてほしいですね。 他の方、よろしくお願いします。
- 178-tall
- ベストアンサー率43% (762/1732)
>到達時間差は分かっていますが、各々の時間は分かっていません。 引用例を見ると、到達時間差 d2-d1, d3-d1 のみ所与らしい。 …だとすれば、d1=d は未知、s2=d2-d, s3=d3-d は既知として、 √{ (x2-x)^2 + (y2-y)^2} = s2+d …(2)' √{ (x3-x)^2 + (y3-y)^2} = s3+d …(3)' だけから {x, y, d} を推算せよ、ということになるような気もします。 解けるのかしらん?
- 178-tall
- ベストアンサー率43% (762/1732)
>… t2-t1という時間差、t3-t2という時間差は分かっていますが、t1,t2,t3という各々の時間は明らかでないので、178-tallさんの手口は通用しないと思うのですが、いかがでしょうか? ハイ、その通り。
- 178-tall
- ベストアンサー率43% (762/1732)
(2 次元の場合) この問題を算術的に「単純化」してみると、(ct1 = d1 などと略記して) √{ (x1-x)^2 + (y1-y)^2} = d1 …(1) √{ (x2-x)^2 + (y2-y)^2} = d2 …(2) √{ (x3-x)^2 + (y3-y)^2} = d3 …(3) から {x, y} を推算せねばならぬような気もします。 これだと、(1), (2) を連立させて (連立) 解があれば、そのペア {x, y} の個数は 2 つ (重複もカウント) 。 どちら一方が (3) を満たすことをチェックして、OK ならそれが解。 …みたいな感じになってしまいますけど、この手口は通用しないのかナ?。
補足
178-tallさん、回答ありがとうございます。 ただ、この連立方程式の場合、到達時間差は分かっていますが、各々の時間は分かっていません。 つまり、t2-t1という時間差、t3-t2という時間差は分かっていますが、t1,t2,t3という各々の時間は明らかでないので、178-tallさんの手口は通用しないと思うのですが、いかがでしょうか?
補足
ご回答ありがとうございます。 どのようにして、S(x0,y0)≒(3.47145…,2.18143…)を導き出したのかを教えて頂けると幸いです。