summaryrefslogblamecommitdiffstats
path: root/3.-Direction-Finding-Background-Theory.md
blob: 22a563ed509521708d9b4ffd69ff7cf9c3d1bdb1 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                                                                                                                                                                                                                                                                




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     






                                                                                                                                                                                                                                                                                                                                   
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  




                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         

                                                                                                                                                                                                                                                                                                                                                                                                                                 


                                                                                                                                                   


                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      
# Direction Finding Background

In a radio direction finding operation the goal is to determine the exact location of an RF transmitter. This may be an illegal or interfering transmitter, a foxhunt beacon, an asset/pet/wildlife tracking beacon, a search and rescue beacon, or maybe just a curious unknown signal.

To locate a transmitter using triangulation, a bearing towards the transmitter needs to be determined from multiple locations using a radio direction finding device. The bearings should then be plotted, and where they intersect is the estimated location of the transmitter.

However, radio direction finding bearings will always have inaccuracies of several degrees, and there can often be poor results due to a phenomenon known as multipath. 

## Direction Finding Methods

**Directional Antenna Based:** These methods use a directional antenna like a Yagi and have a user sweep the antenna around searching for the direction of the highest power. This direction is then recorded. These steps are then recorded at other locations until triangulation is achieved.

More automated methods may make use of an array of directional antennas in a circle.

**Pseudo-Doppler:** Pseudo Doppler methods make use of a fixed antenna array where each element is rapidly activated for a brief period of time in a rotating fashion. This simulates a single antenna actually rotating on a horizontal wheel rapidly. When the rotation is moving towards the signal, the received frequency should increase. When the rotation is moving away, the frequency will decrease. With this information we can determine a bearing towards a signal. Pseudo-doppler is the (older) method used by LoJack, which allowed Police to track stolen vehicles.

There are several amateur radio pseudo-doppler devices that use a standard scanner radio, for example the RDF42 and the DDF2020T. An open source implementation of Pseudo-Doppler is Opera Cake for the HackRF. 

**TDoA:** Time Difference of Arrival (TDoA) methods require multiple time synchronized radio units to be separated over some distance. Differences in the time a signal is received are collected by each unit, and this information can be used to calculate hyperbolic curves between receivers. This is the method KiwiSDR uses.

**Correlative Interferometry:** This method extracts the phase between signals received in an antenna array. This is the method the KrakenSDR uses.

## Multipath

Multipath is when the signal to be located may be reflecting or refracting through some objects such as terrain, buildings or vehicles, and the radio direction finding system may ‘see’ that reflection as the source. This can either skew the bearing away from the actual source, or simply provide a totally incorrect reading. The worst case is when the receiving antenna array does not have line of sight to the signal source, so only the reflections can be seen.

An analogous example, you may be indoors looking at sunlight on the wall. If you couldn’t see the sun directly, and didn’t know any better, you might conclude that the source of light is the wall, a mirror or the window instead of the sun.

So, if we take a singular reading at a location where the multipath effect is strong due to a lack of line-of-sight radio path, we may come to the wrong conclusion about the signal source bearing. Therefore, to obtain an accurate location, we need to take multiple readings at multiple locations to average out the incorrect or skewed readings we get from multipath. This can be achieved by either having multiple distributed sites with a KrakenSDR and an antenna array at each site, or by moving a single KrakenSDR around by driving a vehicle and taking many readings.

Using a larger antenna array (while still keeping under the half wavelength interelement spacing limit) also helps reduce the effects of multipath. Small arrays have less resolution, so they will absorb multipath corruption into the main lobe, skewing the result. Larger arrays will provide greater resolution, meaning that the multipath signal will appear as a separate and hopefully weaker lobe that can be ignored.

## Mobile Vehicular Operation Theory

Many simple radio direction finding systems will have the user drive to different locations, take a manual reading and plot that bearing on a map. 

With the KrakenSDR system we make use of modern smart phone technologies such as mapping, GPS and compass sensors. We take hundreds of readings by automatically logging bearings generated by the KrakenSDR against the current location and heading determined by the smartphone sensors as the vehicle moves. The system over time generates an average intersection of these bearings, pinpointing the location of the transmitter. We make use of the smartphone mapping service MapBox to plot this data on a map for easy human visualization, and even have a turn-by-turn navigation feature to help take you directly to the transmitter without needing to consult a map.

Advanced Feature: The KrakenSDR app actually does something cleverer than calculating simple intersections of bearing lines. It uses the full 360 degrees of data given by the correlative interferometry algorithm. This 360 degrees of data includes multipath direction data too. It then overlays this data on a grid, activating each cell that the 360 degrees of data lies on by some scaled amount. Over time, the cell with the most activations is deemed to be the one containing the transmitter location.