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.