[TowerTalk] Tracking Arrival Angle

David Gilbert ab7echo at gmail.com
Fri Mar 13 17:56:44 EDT 2026


I mentioned in an earlier post that I was investigating ways to measure 
and plot incoming signal arrival angles as a function of time.  I just 
think it would be interesting. but there is probably some practical 
value considering that many antennas have a notch in the elevation 
pattern depending upon height above ground, and if the signal meanders 
through that notch we'd get a lot of fading.

I have an Elecraft K3 with two receivers that can be phase locked, and 
since phase is preserved through down conversion I can feed the stereo 
Line Out audio from the rig into the stereo Line IN port of my computer 
sound card and capture the difference in phase for an arriving signal 
incident on two antennas spaced some distance apart.  Using Codez AI I 
built a browser app that does just that process and it works fine.  I 
can feed two RF signals into my K3 from a 2-channel RF generator with 
controllable phase shift, and the displayed phase difference for the 
audio in the browser app is right on target.  The app gives me a 
scrolling plot of the phase difference ... both "instantaneous" and 
smoothed.  There is a calibration slider to adjust for phase differences 
in the feedlines, the receivers (the K3 receivers are phase locked but 
the absolute phase changes at turn on and whenever the crystal filter 
changes), and potentially the sound card channels.  Sorry I can't 
include a screenshot here, but I can send one of an interim version of 
the app if you're interested.

However, when I tried some real life experiments using the two yagis on 
my tower (a 2 element 40m and a tribander) I got very squirrely 
results.  The displayed phase shifts were WAY greater than could be 
explained by the frequency and spacing of the antennas and they varied 
quite rapidly in time.  I was using WWV at 10 MHz for the signal source 
with my K3 cranked down to a 200 Hz bandwidth to mostly reject the AM 
sidebands.  I suspect that the parasitic nature of the yagis exaggerates 
the phase response for varying arrival angles (especially for off-axis 
signals) since parasitic antennas work by manipulating phase, but even 
when I used EZNEC to model the phase response of two simple dipoles one 
above the other the phase difference between them didn't match the 
theoretical sin() profile at all.

I suspected that ground reflections were the culprit so I first tried 
modeling vertical dipoles one over the other since vertical polarization 
is less affected by ground reflections, and while that was a little 
better it didn't fix the problem.  However, the one thing that DOES work 
in the model is to use two horizontal dipoles at the same height above 
ground spaced some distance apart horizontally since at least 
theoretically the ground affects both antennas equally at all arrival 
angles.  That model tracks almost perfectly with the theoretical cos() 
profile we would expect ... like to a small fraction of a percent.  The 
problem with that configuration, though, is that the signal needs to be 
directly broadside to the dipoles for the calculated angle to be valid.

There are ways to solve all of that if you use enough antennas and 
probably multiple receivers, but one simpler(?) possibility might be to 
put two horizontal dipoles at the ends of a roughly 20 foot boom in 
addition to two vertical dipoles also at the ends of the boom. The 
antennas don't need to be resonant, and in fact you don't want them to 
be resonant so the shorter the better as long as the resultant signal is 
strong enough to register cleanly in the app (or whatever else you use 
to compare phase).  Use a pair of DPDT switches at the antennas to 
switch between the horizontal and vertical dipoles to feed two runs of 
coax (properly choked) back to the shack.  Use the vertical dipoles to 
get a phase difference of zero in the app for the desired signal when 
rotating the boom, then rotate the boom 90 degrees and switch to the 
horizontal dipoles to measure/plot the arrival angle.  A small 
programmable signal source like an inexpensive Si5351 module located at 
the center of the boom could be used for calibration.

I don't know if I will actually build an antenna system like that or 
not, but I will finish up the app and make it freely available for 
anyone who wants to try something similar.  At the very least it could 
be used with two ground plane verticals (or three verticals if switched 
to eliminate the ambiguity inherent with just two antennas)) to 
determine azimuth, but it still would require two phase locked 
receivers.  A possible non-transceiver alternative that should work is 
the SDRPlay RSPduo that sells for about $300 and has two separate 
receivers that can be phase locked.  I think it could be used with the 
SDRuno app (free) to provide the required audio feeds to the app using 
the VB-Audio virtual audio cables app (free for the 2-channel version) 
although I haven't personally tried it.

Sorry for the long post, but I wanted to summarize things for the folks 
who had asked.  Comments are welcome.

73,
Dave   AB7E

p.s.  In case anyone is interested, I used a third dipole in the model 
as a 10 MHz source for the incoming wave.  I positioned it 10,000 feet 
from the two dipoles and changed it's position in an arc that maintained 
a 10,000 foot distance for all measurements.  As an example, 45 degrees 
is 7070 feet for the X dimension in the model and 7070 feet for the Z 
dimension.  The length of the two dipoles had negligible affect on the 
results as long as it was short enough (roughly 20 feet or less in the 
case of 10 MHz).



More information about the TowerTalk mailing list