[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Discuss-gnuradio] USRP TX and quadrature mixing
From: |
Eric Blossom |
Subject: |
Re: [Discuss-gnuradio] USRP TX and quadrature mixing |
Date: |
Thu, 10 Nov 2005 10:06:49 -0800 |
User-agent: |
Mutt/1.5.6i |
On Wed, Nov 09, 2005 at 04:16:33PM -0800, Jonathan Jacky wrote:
>
> 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?
See also:
http://lists.gnu.org/archive/html/discuss-gnuradio/2005-10/msg00142.html
> 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.
Yes. In effect the device performs a complex multiplication of I/Q on
one input times the NCO cos/sin on the other input. In reality, it's all
munged together in the CORDIC block.
> 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?
A couple of additional details:
We can't control the phase accumulator in the AD9862 digital up
converter. Thus after it's run for a while with a non-zero DUC freq
and then reset to a zero DUC freq, you'll get non-zero outputs on
both channels even with a constant real input signal. This is
because it's performing a fixed rotation based on the contents of
it's phase register.
> Jon Jacky
>
> [1] Block diagram of FPGA interface (thread in discuss-gnuradio)
> http://lists.gnu.org/archive/html/discuss-gnuradio/2005-04/msg00201.html
The block diagram isn't quite right. Needs complex mulitply, not two
real multipliers.
> [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
>
Eric