Here again is our Simulink model of a QSD, consisting of two sample and holds controlled by pulse generators operating at the same frequency. The second pulse generator lags the first by 1/4 of a cycle, or 90 degrees of phase shift. The two pulse generators represent a local oscillator with in-phase (I) and quadrature (Q) outputs. There are at least three ways of generating these two pulse trains, and I will cover each of them in upcoming installments of this series. Today’s installment will show how to physically implement the two sample and holds.
This is a simplified version of the QSD. S1 and S2 are analog switches, controlled by the I and Q LO waveforms which are not shown here. When S1 closes, the capacitor charges up to the voltage at the secondary terminal of T1 very rapidly, then follows the secondary voltage as long as S1 remains closed. When S1 opens, C1 retains a
“snapshot” of the secondary voltage until S1 closes again, and the process repeats. The “sampling” process actually occurs when the switch opens, not when it closes. As long as S2 opens 1/4 cycle after S1 opens, the 90 degree phase relationship exists.
The transformer converts the unbalanced signal from the antenna (via the preselector filter, which will be described in a later installment of this series) to a balanced signal, in effect creating a pair of singly-balanced mixers.
This figure shows the waveforms associated with the I channel. The blue trace is the RF input waveform at 9.9 MHz, while the red trace represents the switching waveform, at 10 MHz. The difference between the signal and the switching waveform (that is, the LO) is 100 kHz. The green trace is the 100 kHz output.
The next figure shows an expanded section of the previous image, to illustrate exactly how the frequency conversion takes place. Again, the blue waveform is the 9.9 MHz RF input, and the red waveform is the 10 MHz. LO. The RF signal frequency is 1% less than the LO frequency, so the signal is sampled one hundredth of a cycle later each cycle. Every 100 RF cycles, it is sampled in the original position. The result is the green waveform, representing the output of the sample and hold
This shows how a sample and hold circuit can be used to perform frequency conversion. It is called undersampling, or bandpass sampling. The signal is sampled with a sample rate which is not much more than the signal frequency, so it is sampled well below the Nyquist rate.
This figure shows the QSD from the first SDR I built, which was a clone of the Softrock40 V5. I am still using this circuit. For switches, an FST3126 quad bus switch is used. The FST3126 includes four switches, but two would be enough. However, all four are used by connecting them in parallel pairs. This reduces the on-resistance and improves performance slightly.
You may have noticed the CX2064 transformer. There’s a story behind it. The first SDR I build was a clone of Tony Parks’s (KB9YIG) Softrock 40, version 5. Tony used a bifilar transformer which was wound by hand on a powdered iron core. I did the same, at first, but when I poked around in the literature I found that Tony had been pretty heavily influenced by Gerald Youngblood’s SDR-1000, which was published in QEX a few years ago. That made me wonder what transformer Youngblood had used. I didn’t think he was spending his evenings winding toroids by hand, and I didn’t want to do that, either. I was able to find out that the transformer in the SDR-1000 was a T4-1-KK81, from Mini Circuits Labs. Unfortunately, Mini Circuits doesn’t sell through distributors, and their minimum order is 100 units.
I remembered finding out from a colleague back in the 1980s that Mini Circuits buys some of their products from other manufacturers (for example, in those days MCL brand microwave amplifier modules were identical to those made by Avantek), so I decided to see if I could identify the real manufacturer of the T4-1-KK81. Guess what? It turned out that Pulse Engineering makes an identical transformer, the CX2064, which is available from Mouser Electronics. Problem solved.
The QSD I’ve just described is simple, but works well. There are other ways to build a QSD, though. I’ll describe another QSD implementation in the next installment.Share on Facebook