Mercury - intermodulation (IMD) tests

From HPSDRwiki
Jump to: navigation, search

The use by Amateurs of receivers that use Digital Down Conversion (DDC), where the antenna is effectively connected directly to an Analogue to Digital Converter (ADC), is relatively new.

DDC based receivers perform differently to conventional analogue receiver particularly when intermodulation (IMD) testing is performed. Unlike an analogue receiver the IMD varies with the level of input signals. This renders the value of conventional 3rd order intercept (IP3) meaningless.

The reason for the variation of IP3 with signal level is that for small input signals only a small number of the available ADC bits are actually used. Also since these are near the origin of the ADC transfer curve there are often imperfections that degrade the IP3 performance.

We can reduce the effect of the limited number of bits and ADC non-linearity by deliberately adding additional signal(s) into the input of the ADC such that our low level signals are added to the (larger) additional signal(s). In effect the larger signal sweeps our small signal over a wider portion of the ADC transfer curve. This means that our combined signal spends less time over any non-linear portions and also uses more ADC bits.

You can perhaps think of the additional signal giving the small signal a ‘piggy back ride’ across the ADC transfer curve.

As long as the instantaneous sum of the additional signal(s) and our wanted signal does not overload our ADC then the overall effect is beneficial.

So here is a significant difference between our existing analogue receivers and a DDC based receiver. In the former case we go to a lot of trouble to keep large out of band signals out of the input of the receiver. In the latter case, up to a certain level, they actually are an advantage!

The additional signal(s) can come from a number of sources. The LT2208 ADC that is used in Mercury has the facility to inject pseudo random noise into its input. This noise can then be subtracted at the output. This technique is known as ‘dithering’.

By subtracting the noise at the output of the ADC we only degrade the overall signal to noise ratio of the ADC by a few dB. Alternatively, we could inject an out-of-band signal into the antenna socket and use this as a source of dithering. Or perhaps there are enough strong signals already present at the input of the ADC to perform the dithering function so there is no need to either inject random noise or a specific out of band signal.

So is the effect of poor IMD performance at low signal levels a real life issue or just something we see in the non real world of lab testing? So far the poor IMD at low signal levels does not seem to be a major issue amongst users of DDC based receivers. I am sure we would have heard by now it this wasn’t the case!

So exactly what is happening when we expose a DDC to a band full of strong and weak signals and how should we make use of the dither facility of the LT2208?

Test Introduction

What follows is an excellent evaluation of this effect by HB9AJG and is quite possibly the first time such comprehensive measurements have been made on an Amateur DDC receiver.

There is an additional test that HB9AJG has done which is as follows. The LT2208 is a very small chip with one side of the device accepting uV signals (i.e. the input) and the other producing 3.3v digital signals (i.e. the digitally converted output). Stray capacitance across the chip + PCB, etc will mean that some of these digital signals will find their way to the input.

This has the effect of raising the noise floor of the receiver and also introducing spurs at certain frequencies as the receiver is tuned.

The way that the LT2208 overcomes this problem is to scramble the digital output so the energy is dispersed over a wider band. This is what the 'Random’ control in PowerSDR does. The ADC output is first descrambled in the Mercury FPGA before processing further.

I would have expected that the scrambler would have little effect on the IMD performance of Mercury. As we can see from the results this is not the case.

I’d like to congratulate HP9AJG on an excellent series of measurements that go a long way to increasing our understanding as to how our new DDC receivers perform with real-world signals.

Phil Harman, VK6APH, 1 September 2009

Test Setup


MERCURY IM3DR 1.gif

Attenuation between generators: 74.8dB (terminated with 50 Ohms)
Attenuation from HP8640B to output: 36.2dB
Attenuation from HP8657A to output: 16.2dB

This test setup was verified with an EK070 RX by Rohde+Schwarz from 80m to 10m, CW, 600Hz bandwidth:

with it's 20dB input attenuator enabled, MDS was -114dBm
at -13dBm input (each signal) no IM was audible, i.e IM3DR > 101dB
without attenuator, MDS was -134dBm
at -25dBm input (each signal) IM was audible, i.e IM3DR = 109dB (on 80m, 40m 15m, 10m)
at -30dBm input (each signal) IM was audible, i.e IM3DR = 104dB (on 20m)

So the test setup has an IM3DR of >101dB with inputs up to -13dBm, and an IM3DR of 104dBm at -30dBm for 20m, and an IM3DR of 109dBm at -25dBm for 80m, 40m, 15m, 10m.

MERCURY 3rd Order Intermodulation Free Dynamic Range IM3DR

May/June 2009/HB9AJG

Configuration:

Mercury v2.6, Ozy v1.2, Penny v1.1
Dither & Random enabled (RX sensitivity reduced by 4dB)
Clocks from Penelope
PowerSDR v1.10.4+BaseSVN 2025
PowerSDR RX-Meter calibrated to HP8657A
Bandwidth 48kHz, Buffer size 2048Bits
CWL, 500Hz

Lower frequency = HP8657A
Upper frequency = HP8640B
All dBm readings as displayed on the RX-Meter of PowerSDR (rounded to the next dB)
Signals 3dB above the Noise Floor are considered MDS.
Maximum input signals possible with this Test Setup: -13dBm

* = Artifacts from the ADC (very nonlinearly dependent on the input signals)
** = ADC Overload @ -20dBm
80m: 3680kHz + 3700kHz
Preamp OFF: Noise Floor = -115dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -110 - - - - -112* -
IM @ +∆f dBm -113 - - - - -113* -
IM3DR dB 96.5 52.5
Preamp ON: Noise Floor = -134dBm
Inputs each dBm -20 -25 -30 -35 -40 -50 -60 -70 -80 -90
IM @ - ∆f dBm -108 -125 -125 -131 - - - -134* -132* -
IM @ +∆f dBm -108 -128 -126 -132 - - - -134* -132* -
IM3DR dB 88 101.5 95.5 96.5 64 52
40m: 7000kHz + 7020kHz
Preamp OFF: Noise Floor = -115dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -109 - - - - -114* -
IM @ +∆f dBm -112 - - - - -114* -
IM3DR dB 95.5 54
Preamp ON: Noise Floor = -134dBm
Inputs each dBm -20 -25 -30 -35 -40 -50 -60 -70 -80 -90
IM @ - ∆f dBm -111 -127 -123 -130 - - - - - -
IM @ +∆f dBm -109 - -126 -133 - - - - - -
IM3DR dB 90 102 94.5 96.5
20m: 14080kHz + 14100kHz
Preamp OFF: Noise Floor = -114dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -113 - - - - - -
IM @ +∆f dBm -114 - - - - - -
IM3DR dB 98.5
Preamp ON: Noise Floor = -134dBm
Inputs each dBm -21** -25 -30 -35 -40 -50 -60 -70 -80 -90
IM @ - ∆f dBm -116 -125 -126 -131 - - - - - -
IM @ +∆f dBm -112 -125 -123 -134 - - - - - -
IM3DR dB 93 100 94.5 97.5
15m: 21080kHz + 21100kHz
Preamp OFF: Noise Floor = -114dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f -107 -113* -114* -113* -113* -112* -
IM @ +∆f dBm -106 -114* -114* -114* -113* -112* -
IM3DR dB 91.5 93.5 84 73.5 63 52
Preamp ON: Noise Floor = -133dBm
Inputs each dBm -21** -25 -30 -35 -40 -50 -60 -70 -80 -90
IM @ - ∆f -104 -115 -122 -129 -133* -133* -132* -132* -
IM @ +∆f dBm -103 -116 -120 -130 -132* -131* -131* -
IM3DR dB 82.5 90.5 91 94.5 -93 82.5 71.5 61.5
10m: 28080kHz + 28100kHz
Preamp OFF: Noise Floor = -113dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f -107 -113* -113* -113* -111* -110* -
IM @ +∆f dBm -107 -113* -113* -112* -111* -110* -
IM3DR dB 92 93 83 72.5 61 50
Preamp ON: Noise Floor = -134dBm
Inputs each dBm -21** -25 -30 -35 -40 -50 -60 -70 -80 -90
IM @ - ∆f -96 -108 -120 -131 -131* -128* -128* -128* -128* -
IM @ +∆f dBm -95 -107 -120 -134 -134* -131* -131* -129* -129* -
IM3DR dB 74.5 82.5 90 97.5 92.5 79.5 69.5 58.5 48.5
6m: 49080kHz + 49100kHz
Preamp OFF: Noise Floor = -113dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f -97 -111 - - - - -
IM @ +∆f dBm -95 -107 - - - - -
IM3DR dB 81 89
Preamp ON: Noise Floor = -133dBm
Inputs each dBm -21** -25 -30 -35 -40 -50 -60 -70 -80 -90
IM @ - ∆f -76 -89 -104 -120 -131 -130* -132* -132* - -
IM @ +∆f dBm -75 -88 -103 -118 -127 -130* -132* -132* - -
IM3DR dB 54.5 63.5 73.5 84 89 80 72 62

Effect of "Dither" and "Random"

(August 2009 / HB9AJG)

Even slight imperfections of the ADC transfer curve will result in unwanted signals. The Dither signal random­izes the location of the input signal on the ADC transfer curve, resulting in an improved IMD perform­ance. Part of the Dither signal will leak through to the output, causing a rise of the noise floor.

Due to the small size of the ADC, and depending on the PCB layout, coupling from the output to the input may occur. The Random signal is to prevent such interferences from appearing as regular spectral lines. So it would not be expected to have much effect on the IMD performance.

The tests below show that both signals are required to achieve the best IM3DR.

IM3 signals 3db above the noise floor are considered MDS.

80m: 3680kHz + 3700kHz, Preamp OFF
Dither enabled, Random enabled: Noise Floor = -115dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -110 - - - - -112 -
IM @ +∆f dBm -112 - - - - -112 -
IM3DR dB 96 52
Dither enabled, Random disabled: Noise Floor = -115dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -102 -102 -99 -99 -98 -98 -110
IM @ +∆f dBm -103 -104 -99 -100 -98 -97 -110
IM3DR dB 87.5 83 69 59.5 48 37.5 40
Dither disabled, Random enabled: Noise Floor = -118dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -106 -110 -98 -102 -112 -113 -
IM @ +∆f dBm -110 -107 -98 -102 -110 -114 -
IM3DR dB 93 88.5 68 62 61 53.5
Dither disabled, Random disabled: Noise Floor = -118dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -101 -105 -94 -97 -100 -113 -116
IM @ +∆f dBm -104 -106 -95 -97 -101 -114 -116
IM3DR dB 87.5 85.5 64.5 57 50.5 53.5 46
20m: 14080kHz + 14100kHz, Preamp OFF
Dither enabled, Random enabled: Noise Floor = -114dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -113 - - - - -112 -
IM @ +∆f dBm -114 - - - - -113 -
IM3DR dB 98.5 52.5
Dither enabled, Random disabled: Noise Floor = -115dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -96 -96 -92 -90 -92 -99 -114
IM @ +∆f dBm -98 -97 -95 -92 -93 -100 -114
IM3DR dB 82 76.5 63.5 51 42.5 39.5 44
Dither disabled, Random enabled: Noise Floor = -117dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -105 -114 -96 -100 -111 -115 -
IM @ +∆f dBm -108 -111 -97 -99 -110 -114 -
IM3DR dB 91.5 92.5 66.5 59.5 60.5 54.5
Dither disabled, Random disabled: Noise Floor = -118dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -97 -94 -91 -91 -95 -100 -116
IM @ +∆f dBm -96 -98 -94 -92 -95 -100 -116
IM3DR dB 81.5 76 62.5 51.5 45 40 46

MERCURY IM3DR with a third signal present

(May/June 2009/ HB9AJG)

In his presentation on the design of MERCURY at the ARRL/TAPR Conference on Digital Communications 2008 Phil Harman explains that other strong signals have the same effect as "Dither enabled". To verify this, a second coupler and a third signal generator were added to the Test Setup:

MERCURY IM3DR 2.gif

"Dither" and "Random" were disabled, and the measurements on 20m were repeated:

20m: 14080kHz + 14100kHz
Random disabled and Dither disabled
Preamp OFF: Noise Floor = -118dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
No third signal
IM @ - ∆f dBm -97 -94 -91 -91 -95 -100 -116
IM @ +∆f dBm -96 -98 -94 -92 -95 -100 -116
IM3DR dB 40 46
Third signal -52dBm*
IM @ - ∆f dBm -94 -91 -92 -100 -114 -
IM @ +∆f dBm -98 -94 -92 -100 -114 -
IM3DR dB 50 54
Third signal -47dBm*
IM @ - ∆f dBm -94 -92 -93 -114 - -
IM @ +∆f dBm -98 -93 -94 -114 - -
IM3DR dB 53 64
Third signal -14dBm*
IM @ - ∆f dBm -112 -112 -114 - - -
IM @ +∆f dBm -112 -112 -114 - - -
IM3DR dB 82 74


Frequency of the third signal: anywhere between 1 and 30MHz (except harmonics and IMs)

*Approximate signal level, the limit is fuzzy: at levels up to about 10dB higher IM signals vary between nil and MDS


With very strong third signals (S9+60dB), an improvement of the IM3DR of approximately 30db is achieved.

However, this is not as much as with "Dither" and "Random" enabled (copy from above):

20m: 14080kHz + 14100kHz
Random enabled and Dither enabled
Preamp OFF: Noise Floor = -114dBm
Inputs each dBm -15 -20 -30 -40 -50 -60 -70
IM @ - ∆f dBm -113 - - - - - -
IM @ +∆f dBm -114 - - - - - -
IM3DR dB 98.5


Now, of course, the next step was to connect my DX-88 8-band trap vertical instead of the third signal generator (no filters between antenna and Mercury):

Random disabled and Dither disabled
Band Preamp Noise floor UTC max gen level
for IM3 < MDS
Comment IM3DR
20m OFF -114dBm 15:30 -50 dBm varies slightly with time 64dB
ON -115dBm -41dBm (fading effects?) 74dB
40m OFF -108dBm 16:0 -40 dBm varies slightly 68dB
ON -108dBm -24dBm 84dB
80m OFF -97dBm 16:10 -34 dBm varies slightly 63dB
ON -97dBm -22dBm just before ADC Overload! 75dB
15m OFF -114dBm 16:20 -46 dBm varies by several dB 68dB
ON -116dBm -40dBm 76dB
10m OFF -116dBm 16:30 -47 dBm varies by several dB 69dB
ON -123dBm -45dBm 78dB
6m OFF -118dBm 16:40 -46 dBm varies slightly 72dB
ON -136dBm -50dBm 86dB

CONCLUSION

The antenna has about the same effect as a third signal generator. Enabling "Dither" and "Random" results in a much higher IM3DR, however. Therefore, I think if a band is heavily congest­ed, it is preferable to enable "Dither" and "Random" and to accept the degradation of sensitivity of 4dB.