discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] USRP TX and quadrature mixing


From: Jonathan Jacky
Subject: [Discuss-gnuradio] USRP TX and quadrature mixing
Date: Wed, 9 Nov 2005 16:16:33 -0800 (PST)


I'm trying to understand how the USRP TX-A and TX-B outputs (on the
Basic TX daughterboards) are generated, and how they are related to
each other.  This has been discussed here before [1] but I think that
diagram and explanation were not quite complete.  I think I've got it
now. Can anyone here confirm my understanding?

When I run usrp_siggen with -f1e5 -c1M flags to modulate a 1 MHz
carrier with a 100 kHz signal, I get a 1.1 MHz cos wave on
TX-A and a 1.1 MHZ sine wave on TX-B (shown on a scope, or by
usrp_fft.py with RX-A connected to TX-A or TX-B).  That is, the I get
the sum of the carrier and the signal frequencies on both A and B,
but B is shifted 90 degrees after A.

As I understand it, here's what's going on in the USRP (actually in
the AD9862).  This is the standard way to do quadrature modulation,
which is mentioned in the data sheet [2] and explained in an article
[3].  It's a way to do single sideband modulation (so we get only the
sum frequency 1.1 MHz but not the difference)

                                      cos x * cos y
    cos x        cos x * cos y      - sin x * sin y = cos(x + y)
 I  ------->(X)----------------->(-)--------->  TX-A
             ^                   ^
             | cos y            /
from         |                 /
 USB       [ NCO ]            /   .
             |               /     .
             | sin y        /       \
             v             /         v
 Q  ------->(X)------------      ... (+)------>  TX-B
     sin x       sin x * sin y         sin x * cos y
                                    +  cos x * sin y = sin(x + y)

This diagram shows the complete path for TX-A.  It is similar to the
TX-A path diagram in [1], except there is an additional block
after the multiplier to compute the difference cos x*cos y - sin x * sin y,
to get cos(x + y). Moreover, in the TX-B path there are (in effect) two
more multipliers to compute sin x * cos y and cos * sin y, and an
adder to compute the sum sin x * cos y + cos x * sin y to get sin (x + y).
To reduce clutter I haven't shown these two multipliers in my diagram either.

This explanation is also consistent with other observations.  For
example running usrp_siggen with flags -a0 -o9999 -c1M to send no
modulating signal but just a constant offset of 9999 (or whatever) on
I and zero on Q, TX-A and TX-B produce cosine and sine waves at the
carrier frequency with amplitudes proportional to the value of
the -o flag (replace cos x with 9999 and sin x with 0 in the formulas above).

Is this correct?  Is there anything I've overlooked?

Jon Jacky

[1] Block diagram of FPGA interface (thread in discuss-gnuradio)
    http://lists.gnu.org/archive/html/discuss-gnuradio/2005-04/msg00201.html

[2] AD9862 data sheet (get PDF data sheet linked to this summary page)
    http://www.analog.com/en/prod/0%2C2877%2CAD9862%2C00.html

[3] Fundamentals of digital quadrature modulation (get PDF version w/figures)
    http://rfdesign.com/mag/radio_fundamentals_digital_quadrature/index.html




reply via email to

[Prev in Thread] Current Thread [Next in Thread]