[sdiy] What is a quadrature oscillator good for?

Andre Majorel amajorel at teaser.fr
Wed Sep 10 01:42:10 CEST 2003


On 2003-09-09 10:48 -0500, Cornutt, David K wrote:
> From: Andre Majorel [mailto:amajorel at teaser.fr]
> > 
> > Would that be FM or AM ? Is the switch instantaneous, and how
> > often does it occur ?
> 
> In the applications that I'm familiar with, the
> modulation rate is quite a bit lower than the
> carrier frequency; for example, an 11 GHz carrier
> modulated at 48 MHz.  I'm assuming that the switch
> is discrete and instantaneous at each bit time,
> but I'm not totally sure about that.  Basically,
> the system generates an in-phase carrier (they
> refer to this as the I channel) and a quadrature
> phase carrier (referred to as the Q channel), and
> the modulation causes switches back and forth
> between the inverted and non-inverted carrier on
> the I and Q channels to do the modulation.  Also,
> the amplitude of the channels isn't always the
> same; in some signals the I channel will have more
> power than the Q channel or vice versa.  
> 
> I think it's more akin to FM than AM, but not 
> quite the same.

OK. Here's a sample that sounds like what I think you mean :

  http://www.teaser.fr/~amajorel/misc/qpsk.mp3

The carrier is a 1 kHz sine. The modulator is swept from 1 Hz up.
The modulator does not directly appear in the output, except that
every time it goes through a cycle, the phase of the carrier is
increased by 90°.

As the frequency of the modulator goes above the carrier
frequency, the spectrum gets pretty nasty ; the aliasing madness
your can hear from 18" on survived x1000 oversampling.

  for (;;)
  {
    frame = 0.5 * sin (carrier_phase_r);
    output.write (frame);

    carrier_phase_r += carrier_omega_rpf;
    mod_phase_r += mod_omega_rpf;
    if (mod_phase_r >= TWOPI)
    {
      carrier_phase_r += TWOPI / 4;    // Advance 90°
      mod_phase_r -= TWOPI;
    }
    mod_omega_rpf *= 1.00000001;                // Sweep
    if (mod_omega_rpf >= mod_omega_rpf_max)
      break;
  }

-- 
André Majorel <amajorel at teaser.fr>
http://www.teaser.fr/~amajorel/



More information about the Synth-diy mailing list