Differential QPSK modulation details

Hello,

I am using blks2impl dqpsk modulator/demodulator.

Focusing on the qpsk demodulator:

Since “samples_per_symbol” value must be an integer >=2 and USRP samples
at
64 Msamples/s with a 2^(n) possible decimation, if I have a 2100 kbps
carrier (=1050 ksym/s) :

  • How can I possibly obtain a correct “samples_per_symbol” value?
  • Do I need a resampler and if so, how should I use it?

By the way, I might be wrong but I haven’t seen were the Costas loop and
time recovery are implemented in this file…

Regards,
Irene

View this message in context:
http://www.nabble.com/Differential-QPSK-modulation-details-tp17276806p17276806.html
Sent from the GnuRadio mailing list archive at Nabble.com.

Hello,

Just another question concerning the file “gr_mpsk_receiver_cc.cc”.

In the extract of code below, why are phase_error_detector_generic and
decision_generic used for all BPSK, QPSK and other modulations?
Have optimized algorithms for BPSK and QPSK already been implemented?

// Select a phase detector and a decision maker for the modulation order
switch(d_M) {
case 2: // optimized algorithms for BPSK
d_phase_error_detector =
&gr_mpsk_receiver_cc::phase_error_detector_generic; //bpsk;
d_decision = &gr_mpsk_receiver_cc::decision_generic; //bpsk;
break;

case 4: // optimized algorithms for QPSK
d_phase_error_detector =
&gr_mpsk_receiver_cc::phase_error_detector_generic; //qpsk;
d_decision = &gr_mpsk_receiver_cc::decision_generic; //qpsk;
break;

default: // generic algorithms for any M (power of 2?) but not pretty
d_phase_error_detector =
&gr_mpsk_receiver_cc::phase_error_detector_generic;
d_decision = &gr_mpsk_receiver_cc::decision_generic;
break;
}

Regards,
Irene


View this message in context:
http://www.nabble.com/Differential-QPSK-modulation-resampling-tp17276806p17314530.html
Sent from the GnuRadio mailing list archive at Nabble.com.

On May 19, 2008, at 5:42 AM, irene159 [email protected] wrote:

order
d_decision = &gr_mpsk_receiver_cc::decision_generic; //qpsk;
break;

default: // generic algorithms for any M (power of 2?) but not pretty
d_phase_error_detector =
&gr_mpsk_receiver_cc::phase_error_detector_generic;
d_decision = &gr_mpsk_receiver_cc::decision_generic;
break;

This is just a guess based on the block names… But given that the
block names have “generic” in them, I’d guess they are generic enough
to work with psk modulations given some configuration.

  • George