Hey,

In fact, the mapped complex symbol will go into two parts, that is,
the real part and the image part will modulate the cos(w_c * t) and
sin(w_c * t), separately.
E.g., complex symbol is denoted, y = a+jb = rcos(theta) +
j
r*sin(theta);

so, acos(w_c * t) - bsin(w_c t)
= r
cos(theta)cos(w_c * t) - jr*sin(theta)sin(w_c * t)
= r
cos(w_c * t + theta)

This is the final transmitted real signals, where w_c is the carrier
frequency, shown in Gnu radio as well.

yup…got it…thanks…

i understood in QPSK how the bits get mapped to constellation space.

One doubt still persists.QPSK modulation theory tells us that we need to
change the phase of the carrier depending upon the incoming data
bits…i.e what we see mapped to the constellation space is the modulated
data.
I cannot see a carrier frequency specified anywhere in bqpsk.y…Where do
i specify the carrier frequency for my transmission…this part is still
a bit hazy…
I can see the incoming bits getting mapped to constellation space not
the modulated data…M i missing something here?

Thanks Manav

Posted via http://www.ruby-forum.com/.

Regards,

Robert

jiqun qi wrote:

Hey,

In fact, the mapped complex symbol will go into two parts, that is,
the real part and the image part will modulate the cos(w_c * t) and
sin(w_c * t), separately.
E.g., complex symbol is denoted, y = a+jb = rcos(theta) + jr*sin(theta);

I would just stick with this representation. Remember, it’s called
phase shift keying. All of the information is stored in the phase of
the signal. You can use the representation above:

y = rcos(theta) + jrsin(theta)

Or the complex baseband formula (remember Euler):
y = rexp(jtheta)

For BPSK, a 1 (or 0) is when theta is 0; a 0 (or 1) is when theta is
pi. The mapping is completely arbitrary as long as both TX and RX sides
know it.

For QPSK, theta can be 0, pi/2, pi, or 3pi/2 (0, 90, 180, 270 degrees).

This is all in complex baseband. We then “modulate” onto the carrier
frequency later using a quadrature upconverter. I’ve seen this confusion
over the word modulate plenty of times in the past; modulate technically
means to multiply a signal with a carrier (see your local Fourier
transform table which will often list the Fourier transform of
x(t)cos(wt) as modulation; Carlson I know does, but unfortunately
Oppenheim and Haykin sitting in front of me don’t use labels for their
pairs).

Does this make sense now? Basically, we do our “modulation” in complex
baseband and then “modulate” it to a carrier. In GNU Radio the carrier
upconversion is done in the USRP.

Follow George’s suggestion of looking in digital/benchmark_loopback.py,
which takes an MPSK modulator and demodulator block through a simulated
channel. We currently support DBPSK, DQPSK, and D8PSK. We use
differentially encoded formats to make it a bit easier on the receiver.
For non-differential modulations, you need to be able to make a decision
on the absolute phase of the signal before you can demodulate it.

I also wish I had my slides finished on the basics of narrowband
communications using GNU Radio examples. It gives nice diagrams to show
all of these principles.

Tom