[Top][All Lists]
[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
- [Discuss-gnuradio] USRP TX and quadrature mixing,
Jonathan Jacky <=