[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