Reply by tony kirke January 17, 20082008-01-17
On Jan 14, 6:10 am, "Vladimir Vassilevsky"
<antispam_bo...@hotmail.com> wrote:
> "mizer03" <belet_...@hotmail.com> wrote in message > > news:7ZednZAi0aHpZBfanZ2dnUVZ_qSonZ2d@giganews.com... > > > > > > > >> I want to implement QPSK modulation in software. But i know that QPSK > > >> signals can only be detected coherently. i.e knowledge of the carrier > > >> frequency and phase is mandatory for correct detection. > > > >If you can tolerate the loss of 2...3dB, the QPSK can be demodulated > > >incoherently. > > > >> How is possible to > > >> recover the carrier synchronization in software? Is it possible to > > >> implement PLL for carrier recovery and synchronization using software? > > > >Everything is possible. > > > >Thanks for your reply, But my question was: > > 1. How is possible to recover the carrier using software? > > Either a 4th power loop or decision directed. If the data is sufficiently > random, Costas loop would do, too. > > > 2. Is there a code in c++/C# to implement PLL for carrier recovery, > > especially for QPSK detection? > > It certainly is. But not for free. > > Vladimir Vassilevsky > DSP and Mixed Signal Consultantwww.abvolt.com
Did you look at SPUC on sourceforge?
Reply by glen herrmannsfeldt January 17, 20082008-01-17
Someone wrote:

>I want to implement QPSK modulation in software. But i know that QPSK >signals can only be detected coherently. i.e knowledge of the carrier >frequency and phase is mandatory for correct detection.
The method I have seen described squares the signal which generates peaks at the transitions. One can then run a PLL on the squared signal and lock onto the frequency and phase. A scrambler is usually used to generate a high level of phase transitions. Decoding phase difference instead of absolute phase also makes it easier. -- glen
Reply by Vladimir Vassilevsky January 14, 20082008-01-14
"mizer03" <belet_mes@hotmail.com> wrote in message
news:7ZednZAi0aHpZBfanZ2dnUVZ_qSonZ2d@giganews.com...
> > > >> I want to implement QPSK modulation in software. But i know that QPSK > >> signals can only be detected coherently. i.e knowledge of the carrier > >> frequency and phase is mandatory for correct detection. > > > >If you can tolerate the loss of 2...3dB, the QPSK can be demodulated > >incoherently. > > > >> How is possible to > >> recover the carrier synchronization in software? Is it possible to > >> implement PLL for carrier recovery and synchronization using software? > > > >Everything is possible. > > > >Thanks for your reply, But my question was: > 1. How is possible to recover the carrier using software?
Either a 4th power loop or decision directed. If the data is sufficiently random, Costas loop would do, too.
> 2. Is there a code in c++/C# to implement PLL for carrier recovery, > especially for QPSK detection?
It certainly is. But not for free. Vladimir Vassilevsky DSP and Mixed Signal Consultant www.abvolt.com
Reply by mizer03 January 14, 20082008-01-14
> >"mizer03" <belet_mes@hotmail.com> wrote in message >news:wrGdnXP7urnW_RranZ2dnUVZ_jidnZ2d@giganews.com... > >> I want to implement QPSK modulation in software. But i know that QPSK >> signals can only be detected coherently. i.e knowledge of the carrier >> frequency and phase is mandatory for correct detection. > >If you can tolerate the loss of 2...3dB, the QPSK can be demodulated >incoherently. > >> How is possible to >> recover the carrier synchronization in software? Is it possible to >> implement PLL for carrier recovery and synchronization using software? > >Everything is possible. > >> (the programming language i'm using is C++ or C#) > >It doesn't matter. > >Vladimir Vassilevsky >DSP and Mixed Signal Consultant >www.abvolt.com > >Thanks for your reply, But my question was:
1. How is possible to recover the carrier using software? 2. Is there a code in c++/C# to implement PLL for carrier recovery, especially for QPSK detection? Thanks in advance! mizer
> > >
Reply by PARTICLEREDDY (STRAYDOG) January 11, 20082008-01-11
yes it can be implemented,
                                      my suggestion go for second
order lead lag based one..

thanks
particlereddy



On Jan 11, 8:08&#4294967295;pm, Randy Yates <ya...@ieee.org> wrote:
> "mizer03" <belet_...@hotmail.com> writes: > > Hello all! > > I want to implement QPSK modulation in software. But i know that QPSK > > signals can only be detected coherently. i.e knowledge of the carrier > > frequency and phase is mandatory for correct detection. How is possible to > > recover the carrier synchronization in software? > > It's pretty easy for M-ary PSKs when using a complex baseband signal. In > such case mth symbol is modeled (ideally) as > > &#4294967295; S_m = a * exp[j * ((m * 2 * pi / M) + phi + theta)], > > where a is the theoretically irrelevent magnitude, phi is an > arbitrary phase offset (typically pi / M), and theta is the carrier > offset. Thus > > &#4294967295; (S_m)^M = a^M * exp[j * (m * 2 * pi + (M * phi) + (M * theta))] > &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; = a^M * exp[j * ((M * phi) + (M * theta))]. > > Thus > > &#4294967295; phase((S_m)^M) = (M * phi) + (M * theta). > > Since phi is systematic, (M * phi) can be subtracted out, leaving > a multiplied phase error (M * theta). This can be used in to drive > the loop in a PLL. > > > Is it possible to implement PLL for carrier recovery and > > synchronization using software? > > Of course it is. The hard part is coming up with the signal-theoretic > aspects of the PLL, such as the loop bandwidth, overshoot, settling time, > architecture (PI, PID?), etc. The rest is just coding, and perhaps some > fixed-point considerations. > -- > % &#4294967295;Randy Yates &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;% "Rollin' and riding and slippin' and > %% Fuquay-Varina, NC &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;% &#4294967295;sliding, it's magic." > %%% 919-577-9882 &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295;% &#4294967295; > %%%% <ya...@ieee.org> &#4294967295; &#4294967295; &#4294967295; &#4294967295; &#4294967295; % 'Living' Thing', *A New World Record*, ELOhttp://www.digitalsignallabs.com
Reply by Randy Yates January 11, 20082008-01-11
"mizer03" <belet_mes@hotmail.com> writes:

> Hello all! > I want to implement QPSK modulation in software. But i know that QPSK > signals can only be detected coherently. i.e knowledge of the carrier > frequency and phase is mandatory for correct detection. How is possible to > recover the carrier synchronization in software?
It's pretty easy for M-ary PSKs when using a complex baseband signal. In such case mth symbol is modeled (ideally) as S_m = a * exp[j * ((m * 2 * pi / M) + phi + theta)], where a is the theoretically irrelevent magnitude, phi is an arbitrary phase offset (typically pi / M), and theta is the carrier offset. Thus (S_m)^M = a^M * exp[j * (m * 2 * pi + (M * phi) + (M * theta))] = a^M * exp[j * ((M * phi) + (M * theta))]. Thus phase((S_m)^M) = (M * phi) + (M * theta). Since phi is systematic, (M * phi) can be subtracted out, leaving a multiplied phase error (M * theta). This can be used in to drive the loop in a PLL.
> Is it possible to implement PLL for carrier recovery and > synchronization using software?
Of course it is. The hard part is coming up with the signal-theoretic aspects of the PLL, such as the loop bandwidth, overshoot, settling time, architecture (PI, PID?), etc. The rest is just coding, and perhaps some fixed-point considerations. -- % Randy Yates % "Rollin' and riding and slippin' and %% Fuquay-Varina, NC % sliding, it's magic." %%% 919-577-9882 % %%%% <yates@ieee.org> % 'Living' Thing', *A New World Record*, ELO http://www.digitalsignallabs.com
Reply by Vladimir Vassilevsky January 11, 20082008-01-11
"mizer03" <belet_mes@hotmail.com> wrote in message
news:wrGdnXP7urnW_RranZ2dnUVZ_jidnZ2d@giganews.com...

> I want to implement QPSK modulation in software. But i know that QPSK > signals can only be detected coherently. i.e knowledge of the carrier > frequency and phase is mandatory for correct detection.
If you can tolerate the loss of 2...3dB, the QPSK can be demodulated incoherently.
> How is possible to > recover the carrier synchronization in software? Is it possible to > implement PLL for carrier recovery and synchronization using software?
Everything is possible.
> (the programming language i'm using is C++ or C#)
It doesn't matter. Vladimir Vassilevsky DSP and Mixed Signal Consultant www.abvolt.com
Reply by mizer03 January 11, 20082008-01-11
Hello all!
I want to implement QPSK modulation in software. But i know that QPSK
signals can only be detected coherently. i.e knowledge of the carrier
frequency and phase is mandatory for correct detection. How is possible to
recover the carrier synchronization in software? Is it possible to
implement PLL for carrier recovery and synchronization using software?
(the programming language i'm using is C++ or C#)
 Thanks in advance!
  mizer