Saturday, December 4, 2010

I/Q-SDR Local Oscillator

Just an idea, have not tried it yet... Inspired by YU1LM, I thought of a frequency independent method for creating the I/Q phase shift of 90 degrees.
You may remember my sub-harmonic approach at half the operating frequency. Here a RC network took care about the 45 degrees phase shift. An RC network is ideal for a 45 degrees shift, since R=XC; this was the trick in the sub-harmonic case. However, such an RC network is only accurate in a narrow stretch of frequency.
In YU1LM's designs, a similar RC network is used for oscillators on the operating frequency and on twice the operating frequency.

Twice the operating frequency is a very appealing thing actually. Frequencies are not so terribly high in comparison to the traditional four times the operating frequency method. However, said last mentioned method creates exactly the shift required, due to the purely digital character of the design.

So, why are twice the operating frequency local oscillator so interesting? Very simple, we have QRP crystals for every band. The QRP frequencies are traditionally on the higher end of the CW portion of a band. Divide that such a frequency by 2 will get us about in the middle of the "regular" CW range of the band one octave lower. Examples:
  1. 28.060 / 2 = 14.030
  2. 14.060 / 2 = 7.030 (here we actually hit the QRP frequency)
  3. 7.030 / 2 = 3.515
  4. 7.040 / 2 = 3.520
  5. 3.686 / 2 = 1.432 (3.686MHz is a cheap standard crystal)
With a sampling rate of 48kbps, this will cover approximately +/- 24kHz about the center operating frequency, and thereby a substantial portion of the CW ranges.

I hope, that I could come up with a pure digital design that will function independently of the frequency it is used at, i.e. no analogue frequency shifting.
Have a look at the concept (there may be details missing in the schematics!):

How is it supposed to work?
U1A (XOR) forms the typical Pierce type crystal oscillator.
U1B is wired as "driver" and is supposed to provide some pulse shaping. Could be that U1B better should be an inverter, meaning, the input which is grounded here, could be wired to 5V.
U1C is an inverter, thereby creating a phase shift of 180 degrees.
U1D is a driver, keeping the original phase. It seems not necessary on the first glance to have this driver, however, it is important to compensate for the delay created in U1C.
U2A (D-type flip flop) and U2B are configured to divide the incoming frequency by 2. Dividing the signal frequencies by 2 means that the 180 degrees phase shift created by U1C and U1D will be just 90 degrees at the frequency divided signals.

Added bonus: I/Q reversal could easily be realized by swapping the roles of U1C and U1D by means of a simple dual toggle switch.

I figure, this design could actually be relatively universal, since Pierce type oscillators are rather forgiving what required passive components is concerned. All the rest is just digital ups and downs, ergh, highs and lows, I wanted to write.


  1. This should be able to work.

    Surely the 90 deg shift is there.

    However, I think an initial known condition for the FFs could be unknown, so the phase shift could go any direction +/- 90 deg. This may be ok, if the starting condition of the FFs are identical, but is this sure to be the case ?

    An initial setting of the FFs could be needed - essentially a reset pulse at startup.

    Could be nice for using the DDS60 up to 30 MHz SDR

  2. I did not show this, but I believe this can be solve by grounding all unused inputs of the FFs.
    One of the details I was writing about ;-)