DSPRelated.com
Forums

phase tracking algorithm

Started by rbb October 30, 2009
I'm trying to implement a BPSK demodulator in Matlab.  Everything works
fine as expected if my modulator & demodulator are at the exact same
frequency.  However if my modulator is off slightly, the phase rotates as
expected.  

Does anybody have any papers or references for tracking this phase
rotation, such that frequency offset doesn't kill my demodulator?

Thanks,


>I'm trying to implement a BPSK demodulator in Matlab. Everything works >fine as expected if my modulator & demodulator are at the exact same >frequency. However if my modulator is off slightly, the phase rotates
as
>expected. > >Does anybody have any papers or references for tracking this phase >rotation, such that frequency offset doesn't kill my demodulator? > >Thanks, > > >
I should mention that the signal I want to track is already at baseband, so I'm not sure if a Costas loop is applicable??
On Oct 30, 10:48&#4294967295;am, "rbb" <Rory.Bucha...@onsemi.com> wrote:
> >I'm trying to implement a BPSK demodulator in Matlab. &#4294967295;Everything works > >fine as expected if my modulator & demodulator are at the exact same > >frequency. &#4294967295;However if my modulator is off slightly, the phase rotates > as > >expected. &#4294967295; > > >Does anybody have any papers or references for tracking this phase > >rotation, such that frequency offset doesn't kill my demodulator? > > >Thanks, > > I should mention that the signal I want to track is already at baseband, > so I'm not sure if a Costas loop is applicable??
What you need depends on your situation. If you have good SNR and a constant frequency offset, you can square the signal to remove the modulation, locate the resulting constant frequency, and downmix the signal by half of that frequency to remove the offset (the offset gets doubled in the squaring operation). If the frequency offset isn't constant, then you can use a phase-locked loop; a Costas loop is typically used for BPSK demodulation, even at baseband. Jason
>On Oct 30, 10:48=A0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: >> >I'm trying to implement a BPSK demodulator in Matlab. =A0Everything
work=
>s >> >fine as expected if my modulator & demodulator are at the exact same >> >frequency. =A0However if my modulator is off slightly, the phase
rotates
>> as >> >expected. =A0 >> >> >Does anybody have any papers or references for tracking this phase >> >rotation, such that frequency offset doesn't kill my demodulator? >> >> >Thanks, >> >> I should mention that the signal I want to track is already at
baseband,
>> so I'm not sure if a Costas loop is applicable?? > >What you need depends on your situation. If you have good SNR and a >constant frequency offset, you can square the signal to remove the >modulation, locate the resulting constant frequency, and downmix the >signal by half of that frequency to remove the offset (the offset gets >doubled in the squaring operation). If the frequency offset isn't >constant, then you can use a phase-locked loop; a Costas loop is >typically used for BPSK demodulation, even at baseband. > >Jason >
The frequency offset won't be constant, and I want my SNR to approach the theoretical limit for BPSK. So it sounds like a Costas loop is the approach I should take? And the Costas loop will even work when the incoming signal is at baseband? Do you have any good reference papers?
On Oct 30, 11:52=A0am, "rbb" <Rory.Bucha...@onsemi.com> wrote:
> >On Oct 30, 10:48=3DA0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: > >> >I'm trying to implement a BPSK demodulator in Matlab. =3DA0Everything > work=3D > >s > >> >fine as expected if my modulator & demodulator are at the exact same > >> >frequency. =3DA0However if my modulator is off slightly, the phase > rotates > >> as > >> >expected. =3DA0 > > >> >Does anybody have any papers or references for tracking this phase > >> >rotation, such that frequency offset doesn't kill my demodulator? > > >> >Thanks, > > >> I should mention that the signal I want to track is already at > baseband, > >> so I'm not sure if a Costas loop is applicable?? > > >What you need depends on your situation. If you have good SNR and a > >constant frequency offset, you can square the signal to remove the > >modulation, locate the resulting constant frequency, and downmix the > >signal by half of that frequency to remove the offset (the offset gets > >doubled in the squaring operation). If the frequency offset isn't > >constant, then you can use a phase-locked loop; a Costas loop is > >typically used for BPSK demodulation, even at baseband. > > >Jason > > The frequency offset won't be constant, and I want my SNR to approach the > theoretical limit for BPSK. =A0So it sounds like a Costas loop is the > approach I should take? =A0And the Costas loop will even work when the > incoming signal is at baseband? > Do you have any good reference papers?
I've learned a lot from this data sheet: http://www.intersil.com/products/deviceinfo.asp?pn=3DHSP50210 John
>On Oct 30, 11:52=A0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: >> >On Oct 30, 10:48=3DA0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: >> >> >I'm trying to implement a BPSK demodulator in Matlab.
=3DA0Everything
>> work=3D >> >s >> >> >fine as expected if my modulator & demodulator are at the exact
same
>> >> >frequency. =3DA0However if my modulator is off slightly, the phase >> rotates >> >> as >> >> >expected. =3DA0 >> >> >> >Does anybody have any papers or references for tracking this phase >> >> >rotation, such that frequency offset doesn't kill my demodulator? >> >> >> >Thanks, >> >> >> I should mention that the signal I want to track is already at >> baseband, >> >> so I'm not sure if a Costas loop is applicable?? >> >> >What you need depends on your situation. If you have good SNR and a >> >constant frequency offset, you can square the signal to remove the >> >modulation, locate the resulting constant frequency, and downmix the >> >signal by half of that frequency to remove the offset (the offset
gets
>> >doubled in the squaring operation). If the frequency offset isn't >> >constant, then you can use a phase-locked loop; a Costas loop is >> >typically used for BPSK demodulation, even at baseband. >> >> >Jason >> >> The frequency offset won't be constant, and I want my SNR to approach
the
>> theoretical limit for BPSK. =A0So it sounds like a Costas loop is the >> approach I should take? =A0And the Costas loop will even work when the >> incoming signal is at baseband? >> Do you have any good reference papers? > >I've learned a lot from this data sheet: > >http://www.intersil.com/products/deviceinfo.asp?pn=3DHSP50210 > >John >
Bad link???
On Nov 1, 4:45 pm, "rbb" <Rory.Bucha...@onsemi.com> wrote:
> >On Oct 30, 11:52=A0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: > >> >On Oct 30, 10:48=3DA0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: > >> >> >I'm trying to implement a BPSK demodulator in Matlab. > =3DA0Everything > >> work=3D > >> >s > >> >> >fine as expected if my modulator & demodulator are at the exact > same > >> >> >frequency. =3DA0However if my modulator is off slightly, the phase > >> rotates > >> >> as > >> >> >expected. =3DA0 > > >> >> >Does anybody have any papers or references for tracking this phase > >> >> >rotation, such that frequency offset doesn't kill my demodulator? > > >> >> >Thanks, > > >> >> I should mention that the signal I want to track is already at > >> baseband, > >> >> so I'm not sure if a Costas loop is applicable?? > > >> >What you need depends on your situation. If you have good SNR and a > >> >constant frequency offset, you can square the signal to remove the > >> >modulation, locate the resulting constant frequency, and downmix the > >> >signal by half of that frequency to remove the offset (the offset > gets > >> >doubled in the squaring operation). If the frequency offset isn't > >> >constant, then you can use a phase-locked loop; a Costas loop is > >> >typically used for BPSK demodulation, even at baseband. > > >> >Jason > > >> The frequency offset won't be constant, and I want my SNR to approach > the > >> theoretical limit for BPSK. =A0So it sounds like a Costas loop is the > >> approach I should take? =A0And the Costas loop will even work when the > >> incoming signal is at baseband? > >> Do you have any good reference papers? > > >I've learned a lot from this data sheet: > > >http://www.intersil.com/products/deviceinfo.asp?pn=3DHSP50210 > > >John > > Bad link???
Select red highlighted "Data Sheets..." Select red highlighted "Digital Costas Loop" Dale B. Dalrymple
On Sun, 01 Nov 2009 18:45:07 -0600, "rbb" <Rory.Buchanan@onsemi.com>
wrote:

>>On Oct 30, 11:52=A0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: >>> >On Oct 30, 10:48=3DA0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: >>> >> >I'm trying to implement a BPSK demodulator in Matlab. >=3DA0Everything >>> work=3D >>> >s >>> >> >fine as expected if my modulator & demodulator are at the exact >same >>> >> >frequency. =3DA0However if my modulator is off slightly, the phase >>> rotates >>> >> as >>> >> >expected. =3DA0 >>> >>> >> >Does anybody have any papers or references for tracking this phase >>> >> >rotation, such that frequency offset doesn't kill my demodulator? >>> >>> >> >Thanks, >>> >>> >> I should mention that the signal I want to track is already at >>> baseband, >>> >> so I'm not sure if a Costas loop is applicable?? >>> >>> >What you need depends on your situation. If you have good SNR and a >>> >constant frequency offset, you can square the signal to remove the >>> >modulation, locate the resulting constant frequency, and downmix the >>> >signal by half of that frequency to remove the offset (the offset >gets >>> >doubled in the squaring operation). If the frequency offset isn't >>> >constant, then you can use a phase-locked loop; a Costas loop is >>> >typically used for BPSK demodulation, even at baseband. >>> >>> >Jason >>> >>> The frequency offset won't be constant, and I want my SNR to approach >the >>> theoretical limit for BPSK. =A0So it sounds like a Costas loop is the >>> approach I should take? =A0And the Costas loop will even work when the >>> incoming signal is at baseband? >>> Do you have any good reference papers? >> >>I've learned a lot from this data sheet: >> >>http://www.intersil.com/products/deviceinfo.asp?pn=3DHSP50210 >> >>John >> > >Bad link???
The correct link has no '3D' after the '=' sign. http://www.intersil.com/products/deviceinfo.asp?pn=HSP50210 -- Muzaffer Kal DSPIA INC. ASIC/FPGA Design Services http://www.dspia.com
On Nov 1, 5:21 pm, Muzaffer Kal <k...@dspia.com> wrote:
> On Sun, 01 Nov 2009 18:45:07 -0600, "rbb" <Rory.Bucha...@onsemi.com> > wrote: > > > > >>On Oct 30, 11:52=A0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: > >>> >On Oct 30, 10:48=3DA0am, "rbb" <Rory.Bucha...@onsemi.com> wrote: > >>> >> >I'm trying to implement a BPSK demodulator in Matlab. > >=3DA0Everything > >>> work=3D > >>> >s > >>> >> >fine as expected if my modulator & demodulator are at the exact > >same > >>> >> >frequency. =3DA0However if my modulator is off slightly, the phase > >>> rotates > >>> >> as > >>> >> >expected. =3DA0 > > >>> >> >Does anybody have any papers or references for tracking this phase > >>> >> >rotation, such that frequency offset doesn't kill my demodulator? > > >>> >> >Thanks, > > >>> >> I should mention that the signal I want to track is already at > >>> baseband, > >>> >> so I'm not sure if a Costas loop is applicable?? > > >>> >What you need depends on your situation. If you have good SNR and a > >>> >constant frequency offset, you can square the signal to remove the > >>> >modulation, locate the resulting constant frequency, and downmix the > >>> >signal by half of that frequency to remove the offset (the offset > >gets > >>> >doubled in the squaring operation). If the frequency offset isn't > >>> >constant, then you can use a phase-locked loop; a Costas loop is > >>> >typically used for BPSK demodulation, even at baseband. > > >>> >Jason > > >>> The frequency offset won't be constant, and I want my SNR to approach > >the > >>> theoretical limit for BPSK. =A0So it sounds like a Costas loop is the > >>> approach I should take? =A0And the Costas loop will even work when the > >>> incoming signal is at baseband? > >>> Do you have any good reference papers? > > >>I've learned a lot from this data sheet: > > >>http://www.intersil.com/products/deviceinfo.asp?pn=3DHSP50210 > > >>John > > >Bad link??? > > The correct link has no '3D' after the '=' sign.http://www.intersil.com/products/deviceinfo.asp?pn=HSP50210 > -- > Muzaffer Kal > > DSPIA INC. > ASIC/FPGA Design Services > > http://www.dspia.com
Maybe a newsreader situation. John's link appears the same to me as yours and takes me to the same page. No '3D' involved. Dale B. Dalrymple
I really don't see how you can utilize a Costas loop if the incoming data
is already at baseband.  It makes sense if the incoming data is at IF, but
I don't see how this could possibly work at baseband.  
So what options do I have...
1) Some other phase tracking algorithm that can work on baseband data
2) Re-Upconvert my baseband data to some IF (seems like a waste)
3) Or do the recovery pre-baseband down conversion.  This would hamper my
system, so I would prefer not to do it.
4) ??? I open to suggestions.

I'd really be interested in #1 if anybody had any ideas.