discuss-gnuradio
[Top][All Lists]
Advanced

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

Re: [Discuss-gnuradio] USRP Complex Demodulation


From: James Humphries
Subject: Re: [Discuss-gnuradio] USRP Complex Demodulation
Date: Fri, 13 Nov 2015 22:40:49 -0500

Hi Roee,

That's a great question! There are lots of explanations on the topic, but I'll try to show just some basics of the USRP (and is applicable to any direct conversion transceiver). For completeness sake, I'm going to include a lot more information than you probably need here. I've just copied over some figures from my thesis work to help explain some things.

Since the USRP is operating as a direct conversion transceiver, converting from RF to baseband (and vice versa), we need a way to be able to determine both the negative and positive frequency components of our signal. As you know, with only real samples, you cannot distinguish between the positive and negative frequency components due to the ambiguity in phase. To fix this, we need to decompose our signal into an In-Phase (Real, I) and Quadrature (Complex, Q) components. With these components, we can form a phase vector on a complex plane. Each sample in this system will consist of an In-Phase and Quadrature component. These components are 90 degrees out of phase, as shown on the complex plane below:




With this method to represent our signal, we can determine the negative and positive frequency components of the signal and perform complex phase modulation techniques (among many other advantages). Luckily, we already have two functions that are in quadrature, sine and cosine.

Let's say we do have a complex signal, s(t), that we want to transmit. This signal is composed of the I/Q components, so we'll say s(t) = I(t) + Q(t). The key here is that the I component is multiplied by a cosine term and the Q component is multiplied by a sine term. I've included a diagram below to illustrate:



The two terms are then added into a single output and transmitted. For example, let's say we want to transmit a cosine signal, cos(wmt). The I component is cos(wmt), but the Q component is sin(wmt). When we mix our signals up, we end up with:

sout(t) = cos(wmt)*cos(wot) - sin(wmt)*sin(wot)  (minus sign due to -90 degree phase shift from LO) (wm is signal frequency, wo is oscillator frequency)

Using some trig identities, this expands to:

sout(t) = 1/2 * [ cos(wmt-wot) + cos(wmt+wot) ] - 1/2 * [ cos(wmt-wot) - cos(wmt+wot) ]

The first and third cosine terms cancel, leaving you with just the signal you wanted to output, but offset by your LO frequency:

sout(t) = cos(wmt+wot)

Receiving is just the opposite. Here is the receiver diagram:


Multiply the incoming signal by a cosine and sine term to down-convert to baseband and also generate your I and Q components. The math is exactly the same in this case. Now, say we are receiving that cosine signal that we just transmitted. This gets decomposed into its I and Q components and you end up just where we started above. I think you can work it out from here to get the answer you were looking for.

Here is a nice site I like to use since it has good diagrams and illustrations:

http://whiteboard.ping.se/SDR/IQ

And a paper on direct conversion architecture (advantages/disadvantages):

http://www.seas.ucla.edu/brweb/papers/Journals/RTCAS97.pdf

Hopefully that points you in the right direction, let me know if you need any more info (or any USRP specific info).

-Trip


On Fri, Nov 13, 2015 at 9:25 PM, Roee Bar <address@hidden> wrote:
Hello,

I am trying to understand how the USRP performs the modulation/demodulation to/from higher frequencies.

Let's say I have a complex signal s(t). When I feed it to the USRP block, my understanding is that the USRP performs something like s(t)*exp(i*w*t), and transmit the real part of it, i.e.,
r(t) = 1/2 * (s(t)*exp(i*w*t) + s_c(t)*exp(-i*w*t)),
where s_c is the complex conjugate of s(t).

However, I couldn't find any explanation how the receiver brings the signal back to its original representation. My experiments show that it's not just multiplication with exp(-i*w*t) followed by low pass filter, but something else. The USRP source complex output is not the original s(t). Can someone please clarify this issue?

Thanks in advance!
Roee


_______________________________________________
Discuss-gnuradio mailing list
address@hidden
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


reply via email to

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