I've been working on a bit of a project in my spare time and I'm trying to detect the source of a signal. The project is a bit much to explain, but the math behind it I'm thinking might make it sound a little easier.

Basically, I have triangle of receivers that can all detect the angle of the source signal. This triangle has controlled positions for each of the points. It's an equilateral triangle all on a single plane.

When I receive a signal, I'm able to derive the angle it received it from, but not the direction. When paired with the other receivers, I can create three new triangles since I can do some triangle calculations for ASA.

My problem is connecting the triangles to form the pyramid they are in, so that I can get transmitter location. There's a few ways to look at this, ideally I'd be happy with a way to get XY positions and a height (even though the height will be plus or minus given all my sensors are on a single plane). If I can however get the figure out how to connect the triangles to form a triangular pyramid, then I'm thinking I should be able to get the pyramid height and likely start figuring out the XY distances.

I'm really stumped on how to go about this. I'm able to figure most things out if I'm given some direction but right now I'm not even sure where to look.

EDIT: my goal is to figure out where the source of my signal is. I have three sensors on a single plane forming an equilateral triangle. The transmission point will make it into a 3d, triangular pyramid. Each of my receivers can give me the angle they detected the source at, but only on angle. For example, corner A might say 60 degrees. but it doesn't give a direction. I think I said that poorly at first.

Knowing the fixed receiver positions, I can get the distances between them and do some triangle formulas. The one that came to mind was Angle-Side-Angle to get two of the edges of my triangular pyramid. then I can pick another pairing of my sensors and repeat to get the remaining edge. From there I suppose it's just calculating the height of my pyramid and an xy position for it.

I can visualize that it should all be possible, it's just a bit beyond me, though I do feel that I'm starting to work a bit closer by explaining it a bit more.

  • $\begingroup$ So your sensors can detect which direction in the plane the "top" is, but can they also detect the angle off the plane the "top" is? Or is that not what we have? $\endgroup$ – N. Owad Nov 2 '16 at 18:34
  • $\begingroup$ Not clear what is your problem : ".. create three new triangles.." ??, " .. calculations for ASA" what is ASA ?? $\endgroup$ – G Cab Nov 2 '16 at 18:34
  • $\begingroup$ Do you agree with me that "angle" and "direction" is what many people call "azimuth" and "elevation" (or in reverse oder) unless I have understood all wrongly. $\endgroup$ – Jean Marie Nov 2 '16 at 18:40
  • $\begingroup$ I just edited my question. The ultimate goal is finding the position of the transmitter. The Tx paired with the three Rx's should form a pyramid. I can visualize how this should all work, though I am stumped on the math. $\endgroup$ – John Sly Nov 2 '16 at 19:00
  • $\begingroup$ It is not clear what you mean by "angle" and "direction". Is the angle measured with respect to the base plane? $\endgroup$ – Aretino Nov 2 '16 at 20:43

Quick and dirty:

Let the detectors are located at points $A_1, A_2, A_3$ in the $x,y$ -plane with coordinates $(a_1,b_1,0), \, (a_2,b_2,0), \,(a_3,b_3,0)$ respectively. Let your source of signal $S$ has coordinates $(x,y,z)$ assuming that $z>0$. The case $z<0$ is derived by simply switching the sign of $z$. Consequently, this configuration of three detectors and a source form a triangular pyramid $A_1A_2A_3S$. From what I understand, you are given the three angles $\alpha_1, \alpha_2, \alpha_3$ that the three lines $A_1S, \, A_2S, \, A_3S$ form with the $x,y$-plane, which is the plane determined by the three points $A_1A_2A_3$.

Let $H$ be the orthogonal projection of $S$ onto the plane $A_1A_2A_3$. Then the coordinates of $H$ are $(x,y,0)$ and $|SH| = z$. We have three right-angled triangles $SHA_1, \, SHA_2, \, SHA_3$ sharing the same edge $SH$. Then $\angle \, SA_1H = \alpha_1, \,\, \angle \, SA_2H = \alpha_2, \,\, \angle \, SA_3H = \alpha_3\,$.

Since $|SH| = z$, we can write $$|HA_1| = |SH| \cot(\alpha_1) = z \, \cot(\alpha_1)$$ $$|HA_2| = |SH| \cot(\alpha_2) = z \, \cot(\alpha_2)$$ $$|HA_3| = |SH| \cot(\alpha_3) = z \, \cot(\alpha_3)$$ Thus we derive the three ratio-equations

$$\frac{|HA_1|}{|HA_2|} = \frac{\cot(\alpha_1)}{\cot(\alpha_2)} \,,\,\,\,\,\,\,\,\, \frac{|HA_2|}{|HA_3|} = \frac{\cot(\alpha_2)}{\cot(\alpha_3)} \,,\,\,\,\,\,\,\,\,\, \frac{|HA_3|}{|HA_1|} = \frac{\cot(\alpha_3)}{\cot(\alpha_1)}$$ where only two out of the three are independent. The third one is obtained as a ratio of the other two. For convenience, we can square them and obtain $$\frac{|HA_1|^2}{|HA_2|^2} = \frac{\cot^2(\alpha_1)}{\cot^2(\alpha_2)} \,,\,\,\,\,\,\,\,\, \frac{|HA_2|^2}{|HA_3|^2} = \frac{\cot^2(\alpha_2)}{\cot^2(\alpha_3)} \,,\,\,\,\,\,\,\,\, \frac{|HA_3|^2}{|HA_1|^2} = \frac{\cot^2(\alpha_3)}{\cot^2(\alpha_1)}$$ or alternatively $$ \frac{|AH_1|^2}{\tan^2(\alpha_2)} = \frac{|AH_2|^2}{\tan^2(\alpha_1)}$$ $$\frac{|AH_2|^2}{\tan^2(\alpha_3)} = \frac{|AH_3|^2}{\tan^2(\alpha_2)}$$ $$\frac{|AH_3|^2}{\tan^2(\alpha_1)} = \frac{|AH_1|^2}{\tan^2(\alpha_3)}$$ Observe that $$|AH_j|^2 = (x-a_j)^2 + (y-b_j)^2, \,\,\, \text{ for } \,\, j=1,2,3$$ so the two equations turn into the system of three equations for two unknown parameters $(x,y)$ $$\frac{(x-a_1)^2 + (y-b_1)^2}{\tan^2(\alpha_2)} = \frac{(x-a_2)^2 + (y-b_2)^2}{\tan^2(\alpha_1)}$$ $$\frac{(x-a_2)^2 + (y-b_2)^2}{\tan^2(\alpha_3)} = \frac{(x-a_3)^2 + (y-b_3)^2}{\tan^2(\alpha_2)}$$ $$\frac{(x-a_3)^2 + (y-b_3)^2}{\tan^2(\alpha_1)} = \frac{(x-a_1)^2 + (y-b_1)^2}{\tan^2(\alpha_3)}$$ where two of the equations are independent, the third one is the ratio of the other two. So solve the system formed by two of them. You will get two solutions and pick the one that satisfies the third one too. That gives you the coordinates $(x,y)$. After that $$z = \frac{\sqrt{ (x-a_j)^2 + (y-b_j)^2}}{\cot(\alpha_j)}$$

  • $\begingroup$ I appreciate the help with this and need some time to digest this before I can even test it, lol $\endgroup$ – John Sly Nov 3 '16 at 18:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.