Quadrature Mixer Corrections

Analog Mixers

Software defined radios often use an analog quadrature mixer to convert RF to "baseband"; that is, to a lower frequency that can be sampled by a PC sound card.  The mixer produces two outputs that have equal amplitude, but that differ in phase by 90 degrees.  Subsequent processing in the PC filters and demodulates the signal, and results in radio sound output.  Examples of such radios are the SoftRock series, and the FlexRadio products.

Other software defined radios avoid analog mixers by sampling the antenna voltage directly.  Subsequent processing is identical to radios based on quadrature mixers, but the mixers are digital instead of analog.  Examples of this type of radio are the SDR-IQ by RfSpace, the Mercury and Hermes projects from the Open HPSDR Group and my (James Ahlstrom) SDR transceiver.

Other radios use conventional mixers and crystal filters, and add digital signal processing at the IF.  Examples are the K3 from Elecraft, and many other radios by leading manufacturers.

Here we are concerned with the problems that arise in radios based on analog quadrature mixers when the amplitudes of the two channels are not exactly equal, or the phases do not differ by exactly 90 degrees.  These errors result in an undesired image response at the negative of the receive frequency.  That is, if the radio receives a signal 10 kHz above the center frequency, the operator will see and hear a false signal 10 kHz below the center frequency.  Careful analog design can reduce these errors, and then a correction can be made in the software to reduce them further.  For a description of the software correction see http://www.qsl.net/ik1xpv/dsp/pdf/aiqben.pdf and the pages for the various SDR softwares such as Linrad.

Measurements -1

January 2011

Here are some measurements of the amplitude and phase errors of a SoftRock Rx/Tx Ensemble given to my by Sid Boyce (thanks Sid).  I did these measurements to improve the amplitude and phase corrections in my Quisk software.  This SoftRock has a VFO based on an Si570, so there are two tuning variables, the frequency of the VFO and the tuning frequency as an offset from the center of the audio band.  For example, you could tune in a signal at 7.101 kHz by setting the VFO to 7.070 kHz and tuning to 31 kHz, or you could set the VFO to 7.080 kHz and tune to 21 kHz.

The sample rate for all these measurements is 96000 samples per second, and the sound card is an M-Audio Audiophile 24/96, an excellent card.  The corrections are made in the time domain;  that is, each imaginary (Quadrature) sample is corrected for amplitude, and a small amount of the real sample is added to it.

I first set my homebrew AD9953 signal generator to 7.101 kHz, and varied the VFO from 7.060 to 7.090 kHz.  I used my Quisk software to adjust the amplitude and phase to null the image.  The range of the corrections were:

    Amplitude -0.0478 to -0.0467     Phase -8.878 to -8.524

At a VFO of 7.100 and a tuning frequency of 1 kHz I got an anomalous result:

    Amplitude -0.0600                      Phase -8.407

The response of the audio path at DC (zero Hertz) is zero, so for frequencies near zero the amplitude and phase vary greatly, and we can't expect a good correction.

Next I set the VFO to 7.080 kHz and varied the signal from 7.091 to 7.121 kHz corresponding to a tuning frequency of 11 to 41 kHz.  The corrections needed to null the image were:

    Amplitude -0.0472 to -0.0461      Phase -8.669 to -8.520


Next I varied the VFO from 7.040 to 7.240 and set the signal 21 kHz above the VFO (tuning frequency 21 kHz).  The corrections to null the image were:

    Amplitude -0.0492 to -0.0339      Phase -9.302 to -6.508


The larger range of corrections is expected because the frequency changed by 200 kHz instead of 30 kHz.  The average change in phase when varying the VFO is (-6.508 + 9.302) / 200 or 0.0140 degree per kilohertz.  When varying the tuning frequency it is (-8.520 + 8.669) / 30 or 0.005 degrees per kilohertz.  Apparently the phase shifts are produced by different mechanisms.

Conclusions-1

Transmission

The above focuses on the receive path, but my SoftRock can also transmit, and the same corrections are necessary.  The transmit corrections are different from the receive corrections, so a separate set of corrections must be measured.  To measure the transmit corrections, we would connect the SoftRock to a spectrum analyzer and null the image as before.  While we were at it, we would adjust the audio drive for a clean signal.  Lacking a spectrum analyzer we could use a second receiver tuned to the image.

The transmitter requires much better image rejection than the receiver.  A 40 dB image rejection is probably OK for the receiver, but 42 dB is the minimum FCC requirement for HF.  We want to do much better than that because the image will appear several tens of kilohertz away from our signal, perhaps even outside the amateur bands.

Measurements -2

February 2011

Here are some measurements of the image suppression I can achieve with my SoftRock Rx/Tx Ensemble.  The sample rate is 96 ksps, and the setup is the same as before.  The signal level is -10 dB (below clip).  First I set the VFO to 7050 kHz and the tuning frequency to 7070 kHz, and I then nulled the image (at 7030 kHz).  The corrections were:

    Amplitude -0.049412       Phase -9.186891


I then measured the image rejection relative to the signal at fixed VFO.

Tune kHz        Image dBc

7090                   -59
7080                   -65
7070                   -79
7060                   -67
7055                   -58
7053                   -53
7051                   -42
7047                   -50
7045                   -53
7040                   -57
7030                   -59
7020                   -58
7010                   -56

We see that the center (zero Hertz audio) has a larger image, but even at +1 kHz is still -42 dBc.

Next I checked the image over the rest of the 40 meter band.

 VFO             Tune             Image dBc

7150             7170               -37
7250             7270               -33

We clearly need more rejection, so I set the VFO to 7250 kHz, the tuning to 7270 kHz, and nulled the image.  The corrections were -0.033882 in amplitude and -6.436975 in phase.  When Quisk has more than one correction point, it uses linear interpolation based on VFO frequency to set the corrections.  We now get:


 VFO             Tune             Image dBc

7050             7070               -67
7150             7170               -55
7250             7270               -100

This is much better, and perhaps good enough, but I added a third correction point at a VFO of 7150 to get the following:

                       Image dBc              Image dBc
 VFO               Tune +20 kHz        Tune -20 kHz

7050                -69                          -61
7100                -64                          -70
7140                -74                          -65
7170                -72                          -67
7200                -68                          -72
7230                -71                          -71
7250                -85                          -67

Based on this, I believe that three correction points are sufficient for this case, but that the operator must avoid the center and far edges of the sample band.  Perhaps the correction point should be made at a tuning frequency closer to the center of the sampled spectrum, but it is a bother to avoid the area at the exact center.  This makes me wonder just how cheaply we could make an SDR  that avoids analog mixers.

Jim Ahlstrom