An audio "pre-processor"
for the
Montreal Doppler I, II and III
DF units


A problem that vexes anyone who is attempting to use radio direction-finding techniques to locate the source of a signal is that of multipath/reflections.  It is inevitable that one will encounter situations where the apparent source of the signal turns out to be a reflection or refraction and has nothing to do with the true bearing and make it more difficult to determine where the signal really is.

While there is no substitute for experience in being able to recognize situations in which the true bearing may be obfuscated by false readings, as means arise to more nearly automate the tracking process it is helpful to do what one can prevent "bogus" readings from diluting those that may contain useful information.  While poor-quality bearings may be recognized by an experienced user at the time that they were observed, such situations may not be obvious during later analysis of recorded data so it would make sense to remove as much "bad" bearing data as possible at the time of collection

Please note that this unit cannot possibly detect all instances where the signal being received may be representative of bad data:  There is no substitute for experience and observation in being able to detect and deal with such situations.

Please note:  This is NOT an official page of VE2EMM - please read the disclaimer at the bottom of this page.

The problem:

A "Doppler" type of RDF system relies on being able to determining the phase of the incoming wave front with respect to the antenna array.  In many cases, particularly amongst urban clutter, the signal in question has been reflected/refracted such that there may be more than one apparent source of this signal.

Fortunately, the recovered signal often contains clues that the quality of the heading being received may be compromised.  In most Doppler-type DF units, the quality factor is calculated simply by monitoring the amplitude of the fundamental of the switching frequency.  Because the unit contains a bandpass filter at the switching frequency that removes harmonic energy, the apparent quality of the recovered switching signal can, to a degree, be determined in this way by observing that the energy of the switching tone goes into the harmonics by virtue of the fact that the energy at the fundamental frequency decreases.  Additionally, this scheme also indicates that the quality of the signal being received may be being diluted by modulation on the signal and/or noise due to it's being weak.

This method has its limitations, however:

A (partial) solution:

Fortunately, it is possible to detect instantly many cases where the quality of the bearing being received may be of poor quality.  While the ideal situation would be to perform a frequency-domain analysis on the switching signal to determine its apparent quality, this would require a bit more computational horsepower and code complexity than could easily be handled by a modest microcontroller.  With time-domain analysis, however, one can easily analyze the waveform, detect many cases where the switching signal may have been compromised by multipath, and then take appropriate action.
Figure 1:  Examples of received switching waveforms:  The top trace is de-emphasized audio output, the bottom trace is the discriminator output.  There is a slight amount of multipath present on this signal - can you spot it?

How to tell if a signal is "bad":

Let us start by looking at examples of "clean" signals - that is, an audio signal as received through a 4-antenna Doppler array with a 500 Hz rotation rate, receiving a multipath-free unmodulated signal:  Figure 1 shows two traces, with the top trace displaying the waveform as received through the speaker output of a typical narrowband FM receiver (an FT-817 in this case) while the lower trace displays the same signal, but taken from the discriminator output of the receiver (the "9600 baud" audio output on the FT-817.)

Starting with the lower trace (the discriminator output) you might notice something about the pulses:  There is one pulse from each antenna, and the pattern repeats every four pulses.  With this in mind, let's number the pulses 1 through 4, starting from the far left.  You will notice that, in this example, the pair of pulses 1 and 3 have opposite polarities, and the polarity of pulses 2 and 4 are also of the opposite polarity.

It has been observed that, if the signal is "clean" (that is, free of multipath, etc.) that the pulse pair consisting of pulses 1 and 3  will always have polarities opposite each other, and the same is true for the the 2/4 pulse pair.  If this is not the case, it can reasonably be assumed that the received signal is being distorted in some way.  It should be pointed out that in some phase conditions where two antennas are exactly equidistant from the transmitter there will be NO detectable switching pulse (e.g. there was no phase difference due to the two antennas being parallel to the wave front) but this is a special case that may be easily detected and one may safely "assume" the polarity to be opposite its "companion" pulse.  Ideally, not only should the two sets of pulses be of opposite polarity, but these pairs should contain equal amounts of energy (e.g. in the "raw" pulse from the baseband, "un-deemphasized" audio, the sets pulses should contain equal amounts of energy)  - a property that is unfortunately not well illustrated in the oscillograms since Figures 1 and 2 have a slight amount of multipath present:  When I originally made the oscillograms I didn't have a way to get a "pristine" DF signal as those shown in this page were from the limited sources of signals/antennas on my roof, available from my ham shack!
Why do we have pre-emphasis and de-emphasis on "FM"?

Every narrowband "FM" rig made for the amateur radio service (and commercial service) employs "pre-emphasis" on the transmitted audio where the "highs" are boosted at a rate of 6 dB per octave.  What this means, for example, is that a 1000 Hz tone fed into the microphone jack will have twice the deviation as the same amplitude 500 Hz tone. 

Normally, this would make the transmitted audio sound very "tinny" but receivers have a circuit that does the opposite (that is, it "un-boosts" the highs) and restores the audio response.

Why do this?  When an FM signal gets weak, it doesn't get quieter - it gets noisier!  Interestingly, this noise is worse at higher audio frequencies than at lower ones.  By "pre-boosting" the highs on transmit and then "un-boosting" them on receive the amount of noise that one hears on weak signals is perceptibly reduced. 

(It is worth mentioning that with 6 dB "pre" and "de" emphasis on "FM" we are really talking about PM - Phase Modulation.  By tradition, it is, however, referred to as FM by most users.)

Now look at the upper trace of figure 1.  We are receiving exactly the same signal as in the lower trace, but there's a difference:  It has been passed through the de-emphasis stages of the receiver.  All amateur narrowband FM rigs have this property and for voice communications this is a desired trait (see sidebar.)  The "lowpass" nature of the de-emphasis tends to "round off" the pulses and as you can see from the image, it is a bit more difficult to visually analyze the result as the "center line" is no longer as obvious.

On problem with discriminator audio output is that it is not squelched.  For our DF unit, it is actually preferable to have squelched audio as that can be a convenient means to know if the signal we are tracking is present or not:  If the signal goes away, we can "freeze" our display on the last-received bearing.  While it is certainly possible to apply squelch gating to the discriminator signal by another means (by detecting and gating on the "de-emphasized" audio, for example, or simply tapping into the squelch gate line in the receiver) this isn't always convenient.

Is "Restoring the signal" necessary?:

Now, look at Figure 2:  As you can see from the picture, the top trace shows a signal "restored" by an outboard "re-emphasis" network and notice how it compares to the way it originally looked (bottom trace.)  Ignoring the "fuzziness" (an artifact of the way the signal had been fed to the oscilloscope) you can see that the "re-emphasized" version bears a recognizable similarity to the "original" output from the discriminator, aside from slight "baseline" shifting due to highpass filtering.

What is required is to "reconstruct" where the center line actually is and this must be done before we can analyze the pulses and determine their relative polarities:  This may be done a number of ways, typically averaging some aspect of the input signal.

It becomes apparent that the preferred source of audio is, in fact, the discriminator output from the receiver.  While this is available on some radios (like the FT-817) it isn't conveniently available on most other radios without opening up the radio and tapping into the circuit.  Fortunately, at least some of the effects of the de-emphasis can be mitigated by running the audio through a differentiator - a simple circuit that "re-pre-emphasizes" the audio.  Ideally, this would precisely reverse the effects of the de-emphasis circuit, but receivers often contain additional lowpass filters (to remove some of the "hiss" on weaker signals, etc) as well as a highpass filter to remove transmitted subaudible tones.

While it would be ideal to use the discriminator audio, field testing shows that the unit works nearly as well with normal de-emphasized audio from a well-behaved receiver.  This may not be the case for all receivers, however:  Most modern receivers have simple R/C lowpass and highpass filtering using op-amps and these generally tend to have fairly well-behaved frequency response curves, causing minimal excess distortion of the waveform.  Analysis of the de-emphasized audio output of an older receiver showed a waveform with far more phase/frequency distortion.  The culprit seemed to be an L/C-based audio high/lowpass filter that worked fine with audio but was terrible at preserving the pulses's relative amplitude.  While the pre-processor did work with that receiver, it was less-effective at detecting poor quality signals and it tended to "false" on good signals a bit more frequently.
Figure 2:  This shows the antenna switching pulses after "re-emphasizing" (top trace) as compared to the original discriminator output (bottom trace.)  Pardon the "fuzziness" of the top trace as a bit of extraneous noise was picked up by the oscilloscope.  This is from the same source as figure 1, above.


There is yet another property of the pulses that should be observed:  They don't last very long.

You might note that even in the case of the "de-emphasized" switching signal, the "edges" of the waveform are fairly sharp.  You would even be correct if you decided that you need only measure the peaks themselves, rather than trying to analyze the entire waveform.  With this in mind, a technique called "windowing" (which is itself a sort of "highpass" filtering) is employed where the peaks of the amplitude of the waveform are taken as a brief "snapshot" in time and the rest of it is ignored.

In order to do this, however, one must know exactly when the pulses actually happen.  Fortunately, we can use one of the antenna switching pulses to synchronize our pre-processor so that it knows exactly when to take the snapshot of the pulses.

Unfortunately, its not quite as simple as that.  Because of the filtering within the radio, the pulse appears on the audio output some time after the antenna is switched - and this amount of apparent delay varies from radio to radio.  If the "window" is not precisely aligned with the peak of the pulse the result may be meaningless.  To take care of this problem the pre-processor needs to be able to detect the precise location of the peaks of the pulse and align to them.  Once set for a particular radio it stays put and realignment is not necessary unless equipment is changed.

The "windowing" process has an obvious advantage over trying to "average" over the entire waveform:  Most of the audio is ignored.  By "looking" only during a very brief period, one may reject some of the incidental modulation that might be already on the channel.  Note also that windowing is most effective on raw "discriminator audio" where the DC baseline is less-affected by incidental audio and the duration of the pulses is not being stretched by lowpass filtering/de-emphasis.
Figure 3:  These images show examples of the "reconstructed" switching pulses from de-emphasized audio with the top and bottom pairs showing waveforms resulting from different bearings.  In each case, the top signal is the original input waveform and the bottom shows the reconstructed version.  Note that the bottom waveform in each oscillogram is shifted to the right by approximately one division owing to the delay in the pre-processor.  Even though the upper and lower waveforms for each example look quite different from each other, they convey exactly the same signal bearing information.

Reconstructing the signal:

Once we have "captured" the amplitude and polarity of the switching pulses, we can simply regenerate the signal using only the pulse information.  The oscillograms in Figure 3 show two different signals reconstructed in this manner.

Note that we have simply "thrown away" everything between the pulses themselves and that we are left with a "stair step" waveform, with each "step" representing the peak amplitude of the pulse.  Because we have faithfully retained the amplitude and polarity of the pulses we have not lost any of the information relating to the bearing of the signal.

Dealing with "bad" signals:

Detecting the presence of multipath is one thing, but what does one do about it?  Ideally, it would be nice to be able to analyze the distorted signal and somehow figure out what it should have been, but this is not likely to be possible without greatly increasing the overall system complexity.  The next-best solution would be to prevent obviously "bad" readings from ever being detected in the first place and this is done simply by muting the output when a "bad" input signal is detected.

While it might seem as though the ideal situation would be to continue outputting the last "good" signal, this might be misleading as there was no guarantee that this last signal was good to begin with.  By simply muting the signal, we are not contributing bad data to that which is being collected and/or averaged..

The prototype:

A prototype unit was constructed using a PIC16F88 running at 20 MHz.  At the time of this writing, it is in its most basic state of functionality and is awaiting further refinements.

The input signal first buffered, amplified, and then low-pass filtered by U2.  A 10 kHz Gaussian transitional filter was employed to remove some of the highest-frequency noise as while minimizing distortion of the pulses and to guarantee a minimum pulse width to allow windowing.

For synchronization, one of the four antenna switching pulses is applied to RA0, which is configured as a comparator input.  The output of this comparator appears on RA1 and it passes through an R/C network that transforms the pulse into a ramp, using the 1k resistor and diode to more quickly discharge the capacitor at the end of the pulse to "reset" this ramp which is then applied to RA3 which is also configured as a comparator.  Internally, this comparator is used as an reference input for the "software PLL.".

Inside the PIC's program the "software PLL" locks a clock running at 16 times the antenna switching rate.  By selecting one of the 16 periods, we can get "close" to synchronizing our sample window to the timing of the pulse - but with only to within +-1/32nd clock resolution.  To be able to "fine tune" our windowing to the pulse, we use the PIC's adjustable internal comparator voltage reference to change the threshold at which we slice the ramp that we have created on RA3.  With both the "fine tuning" of the comparator ramp and the 1/16th clock period resolution of the internal clock, the window timing can be set to within better than +-10 microseconds of the center of the pulse.  Because of our 10 kHz lowpass filter, we can be assured that we can get "close enough" to the peak on this pulse.
This is the schematic of the prototype of the "DF Preprocessor".
Click on image for a larger version.

Because of the windowing technique, it is required that the PIC's timing be "aligned" to the switching pulses.  This is process is initiated by pressing the button to start a "search" algorithm that locates the switching pulses and synchronizing the windowing to them.  Once this is done for a given receiver/antenna configuration, it need not be done again.

The amplitude of the received pulses is simply passed on to the PIC's onboard PWM generator, which is used as a simple but effective D/A converter:  This output is passed to a lowpass filter consisting of U3 and made available to the DF unit.  An LED indicator (driven by the software) provides warning if the input audio levels getting dangerously close to clipping, and if the "Software PLL" is unlocked.

Internally, the software analyzes the pulses to determine their polarity and amplitude and thus, whether or not the signal being received may be of poor quality.  If the received signal is considered to be bad, the output to the PWM generator is simply muted.

Results of testing:

In actual field testing, this unit worked very well.  For the test, a weak signal was radiated from my house and I drove a circuit around it of several miles in path length, with several runs being made with and without the preprocessor.  Being in a residential area, there were plenty of reflections to be had and with the preprocessor inline, it was interesting to hear the audio being muted where previously one heard obviously distorted switching tones from the monitor speaker.

During the test, bearings were automatically recorded using the GPSS program and later "played back."  With the preprocessor, there were fewer readings that were simply "out in the weeds" due to having been affected by multipath.  It should be noted that for this test bearings were automatically sent to the computer every 5 seconds as I drove around.  During these tests, no obvious degradation was noted in bearing accuracy, but further testing would be necessary to verify this.

A later test was done with and without the preprocessor in which bearings were manually sent only when, based on my experience as to how the switching tone sounded and whether or not there might be multipath, that I thought that I might be receiving a good bearing.  The combination of the preprocessor and manually sending the bearings proved to be the best in terms of minimizing error.  I attribute this partly to the "gray matter DSP" (e.g. brain) being used plus the fact that the Doppler unit's filtering was not being "contaminated" by as many obviously bad bearings.


Additional possibilities:
This is the as-built pre-processor prototype.
Click on image for a larger version.

I expect that, with further refinement, this preprocessor can be made to be even more effective in reducing the number of "bogus" bearings received by the DF unit.  I also believe that this unit could completely replace both the wider "prefilter" and the switched-capacitor Roanoake-type narrow filter used on the DF unit.  Of course, further work will have to wait until I have more time...


The device described on this page is in its very early prototyping stages and as such, it has not undergone extensive testing and refinement.

Although good faith efforts have been made to make certain that the operation of the hardware/firmware is as described, it is possible that "undocumented features" (bugs) may be present:  It is through testing, use, and feedback from the users that projects such as this may be improved, and the user is asked to be understanding of this fact.  This firmware is strictly intended only for non-commercial amateur-radio use and any other use is in violation of applicable laws.

Also note that this page is page is independent of those pages or work done by Jacques, VE2EMM and he cannot be expected to answer questions asked about the contents of this page.

Do you have any questions on this or other DF-related topics?  Go here.

Return to the KA7OEI ARDF Page.

KA7OEI - Originally posted 20050630, last updated on 20060619

Since 12/2010: