Forums

Costas Loop for coherent demodulation of GMSK

Started by Sonali Agarwal August 13, 2010
Hello,
   i want do do carrier recovery using costas loop(BPSK based) for
coherent demodulation of GMSK. Has anybody tried it? If  yes, please
help me out.

Thanks and Regards,
Sonali
On Aug 13, 5:10&#2013266080;am, Sonali Agarwal <sonali...@gmail.com> wrote:
> Hello, > &#2013266080; &#2013266080;i want do do carrier recovery using costas loop(BPSK based) for > coherent demodulation of GMSK. Has anybody tried it? If &#2013266080;yes, please > help me out. > > Thanks and Regards, > Sonali
The standard Costas loop will not work for MSK because the phase rotates by pi/2 radians within each symbol. I am sure some regulars here will point to toward a couple of approaches to the problem. John
On 08/13/2010 07:04 AM, John wrote:
> On Aug 13, 5:10 am, Sonali Agarwal<sonali...@gmail.com> wrote: >> Hello, >> i want do do carrier recovery using costas loop(BPSK based) for >> coherent demodulation of GMSK. Has anybody tried it? If yes, please >> help me out. >> >> Thanks and Regards, >> Sonali > > The standard Costas loop will not work for MSK because the phase > rotates by pi/2 radians within each symbol. I am sure some regulars > here will point to toward a couple of approaches to the problem.
You can do a Costas loop with MSK -- I know, because I've done it. Unfortunately I did it over 20 years ago, so the only detail that I remember is that with high noise and a low sampling rate the variant of the Costas loop that I was using tends to acquire a bias in the phase error that overwhelms the actual signal. So I ended up using a square-and-filter loop instead. One of the first two references in this bibliography has some pointers to using a Costas loop with MSK: http://www.wescottdesign.com/articles/MSK/page_81.html. But I can't remember if it just says "use a Costas loop" or if it actually details its use. If you take a real MSK signal and square it, you get two distinct tones centered at twice the carrier frequency, with each tone spaced 1/2 the bit rate away from the center. You can phase lock to these tones, then divide by two, and get a really nice lock for both the bit clock and the carrier. I don't know how this would work for GMSK -- you'd have to play with it a bit. I also don't know how this would work for an I/Q signal -- you'd have to think about how to do the squaring operation such that your result was sensible. I used this "square and filter" approach when I did that project; the next time I needed to demodulate GMSK I was doing it in batches in Scilab, and I used an algorithm that's sort of a sad mutant offspring of the Costas loop that only makes sense when you're demodulating GMSK long after the fact with a processor that has an excess of computational power in a project environment that puts far more stress on controlling engineering cost vs. controlling receiver cost. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
On 08/13/2010 02:10 AM, Sonali Agarwal wrote:
> Hello, > i want do do carrier recovery using costas loop(BPSK based) for > coherent demodulation of GMSK. Has anybody tried it? If yes, please > help me out.
Read this, too, there may be some nuggets you can use: http://www.wescottdesign.com/articles/MSK/mskTop.html. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html
On Fri, 13 Aug 2010 07:04:40 -0700 (PDT), John <sampson164@gmail.com>
wrote:

>On Aug 13, 5:10=A0am, Sonali Agarwal <sonali...@gmail.com> wrote: >> Hello, >> =A0 =A0i want do do carrier recovery using costas loop(BPSK based) for >> coherent demodulation of GMSK. Has anybody tried it? If =A0yes, please >> help me out. >> >> Thanks and Regards, >> Sonali > >The standard Costas loop will not work for MSK because the phase >rotates by pi/2 radians within each symbol. I am sure some regulars >here will point to toward a couple of approaches to the problem. > >John
If you remove the 1/2 symbol offset in the channels prior to the phase detector a Costas Loop works just fine. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.abineau.com
On Aug 13, 5:10&#2013266080;am, Sonali Agarwal <sonali...@gmail.com> wrote:
> Hello, > &#2013266080; &#2013266080;i want do do carrier recovery using costas loop(BPSK based) for > coherent demodulation of GMSK. Has anybody tried it? If &#2013266080;yes, please > help me out. > > Thanks and Regards, > Sonali
You can demodulate it the same as if it were an OQPSK signal. Just configure the matched filter to match the first pulse of Laurent's decomposition and the rest is identical to OQPSK. -Doug
On Aug 13, 12:34&#2013266080;pm, eric.jacob...@ieee.org (Eric Jacobsen) wrote:
> On Fri, 13 Aug 2010 07:04:40 -0700 (PDT), John <sampson...@gmail.com> > wrote: > > >On Aug 13, 5:10=A0am, Sonali Agarwal <sonali...@gmail.com> wrote: > >> Hello, > >> =A0 =A0i want do do carrier recovery using costas loop(BPSK based) for > >> coherent demodulation of GMSK. Has anybody tried it? If =A0yes, please > >> help me out. > > >> Thanks and Regards, > >> Sonali > > >The standard Costas loop will not work for MSK because the phase > >rotates by pi/2 radians within each symbol. I am sure some regulars > >here will point to toward a couple of approaches to the problem. > > >John > > If you remove the 1/2 symbol offset in the channels prior to the phase > detector a Costas Loop works just fine. > > Eric Jacobsen > Minister of Algorithms > Abineau Communicationshttp://www.abineau.com
For MSK, the standard BPSK Costas loop requires a third multiplicative term in the usual I*Q phase detector: I*Q*(Rb/2) where Rb/2 is half- rate recovered bit clock. The math will show you why this is required. In practice it can be tricky to make it work well. John
On Fri, 13 Aug 2010 19:04:44 -0700 (PDT), John <sampson164@gmail.com>
wrote:

>On Aug 13, 12:34=A0pm, eric.jacob...@ieee.org (Eric Jacobsen) wrote: >> On Fri, 13 Aug 2010 07:04:40 -0700 (PDT), John <sampson...@gmail.com> >> wrote: >> >> >On Aug 13, 5:10=3DA0am, Sonali Agarwal <sonali...@gmail.com> wrote: >> >> Hello, >> >> =3DA0 =3DA0i want do do carrier recovery using costas loop(BPSK based)= > for >> >> coherent demodulation of GMSK. Has anybody tried it? If =3DA0yes, plea= >se >> >> help me out. >> >> >> Thanks and Regards, >> >> Sonali >> >> >The standard Costas loop will not work for MSK because the phase >> >rotates by pi/2 radians within each symbol. I am sure some regulars >> >here will point to toward a couple of approaches to the problem. >> >> >John >> >> If you remove the 1/2 symbol offset in the channels prior to the phase >> detector a Costas Loop works just fine. >> >> Eric Jacobsen >> Minister of Algorithms >> Abineau Communicationshttp://www.abineau.com > >For MSK, the standard BPSK Costas loop requires a third multiplicative >term in the usual I*Q phase detector: I*Q*(Rb/2) where Rb/2 is half- >rate recovered bit clock. The math will show you why this is required. >In practice it can be tricky to make it work well. > >John
As Doug mentioned, MSK is essentially OQPSK with a funny pulse shape. It is pretty easy to demodulator MSK/CPM/CQPSK/TFM/etc., etc., with an OQPSK demodulator, as I described. Remove the 1/2 symbol delay before the phase detector. It's been implemented that way successfully hundreds of times over, by me and many others, with no loss of performance. Eric Jacobsen Minister of Algorithms Abineau Communications http://www.abineau.com