Source localization in 3d

Let's say I have a 4-sensor square-shaped array in 3d space, with sensors at

$$s_1 = [1 \ 0 \ 1] \\ s_2 = [2 \ 0 \ 1] \\ s_3 = [1 \ 0 \ 2] \\ s_4 = [2 \ 0 \ 2] \\$$

And a single source somewhere out in space, in the y>0 hemisphere. I want to localize that source.

Between each two sensors, I have a phase shift (I'm looking in the time domain). I use that phase shift to create an incident angle for each sensor pair.

But since I'm in 3d space, the set of points which satisfies that incident angle looks like a cone, for each sensor pair. So what I'll have is 4 cones between the four sensor pairs (I'm not counting diagonals of the square). And I'll want to find their intersection, which will represent the location of my source.

The question: how do I go about doing this? It seems to involve some very complicated geometry. What's worse is that the each of the four sensors will be arbitrarily located (1.3, -2.9, 3.4), etc. Somehow I'll need to create cones for each sensor pair at arbitrary locations in 3d space and find their intersection. Any tips or leads? I'm using MATLAB: I was thinking of starting here.

• Maybe it helps your understanding to deliberately look at this less geometrically-tangibly: it's relatively easy to write a function that maps every point in space to the phases a signal will have when it travels from that point to the sensors. That is a function $\mathbb R^3 \mapsto \mathbb R^4$. Then, look for the inverse of that function. – Marcus Müller Jul 25 '17 at 1:30