Forums

carrier synchronization for CPFSK demodulation

Started by gobruins March 22, 2010
I was wondering how to do carrier synchronization for CPFSK signals? 

I want to decode the CPFSK signal by computing the phase difference. The
shape of the phase difference is similar to the following plot
      |---|   |---|       fc+fd/2
 - - -|- -| - | - | - - - fc
   ---|   |---|   |---    fc-fd/2

where fc is the carrier, fd is the peak frequency deviation.

Before send this demodulated data into the soft slicer, I have to build the
sample clock and recover the carrier frequency. 

I plan to use the Gardner (or similar) detector to do the timing
synchronization. The input to the TED is just the phase difference as shown
above.
 
But I am not sure how to do the carrier synchronication. Can
anyone point me a method how to do this? 

Thanks a lot!
On Mar 22, 1:20&nbsp;pm, "gobruins" <chunmei.kang@n_o_s_p_a_m.gmail.com>
wrote:
> I was wondering how to do carrier synchronization for CPFSK signals? > > I want to decode the CPFSK signal by computing the phase difference. The > shape of the phase difference is similar to the following plot > &nbsp; &nbsp; &nbsp; |---| &nbsp; |---| &nbsp; &nbsp; &nbsp; fc+fd/2 > &nbsp;- - -|- -| - | - | - - - fc > &nbsp; &nbsp;---| &nbsp; |---| &nbsp; |--- &nbsp; &nbsp;fc-fd/2 > > where fc is the carrier, fd is the peak frequency deviation. > > Before send this demodulated data into the soft slicer, I have to build the > sample clock and recover the carrier frequency. > > I plan to use the Gardner (or similar) detector to do the timing > synchronization. The input to the TED is just the phase difference as shown > above. > > But&#12288;&#65321;&#12288;&#65345;&#65357;&#12288;&#65358;&#65359;&#65364;&#12288;&#65363;&#65365;&#65362;&#65349;&#12288;&#65352;&#65359;&#65367;&#12288;&#65364;&#65359;&#12288;&#65348;&#65359;&#12288;&#65364;&#65352;&#65349;&#12288;&#65347;&#65345;&#65362;&#65362;&#65353;&#65349;&#65362;&#12288;&#65363;&#65369;&#65358;&#65347;&#65352;&#65362;&#65359;&#65358;&#65353;&#65347;&#65345;&#65364;&#65353;&#65359;&#65358;&#65294;&#12288;Can > anyone point me a method how to do this? > > Thanks a lot!
Search for "costas loop" if you must do coherent demodulation. If non- coherent (i.e., no carrier recovery needed) demodulation is adequate, search for "differential detector."
>Search for "costas loop" if you must do coherent demodulation. If non- >coherent (i.e., no carrier recovery needed) demodulation is adequate, >search for "differential detector." >
The reason I choose coherent demodulation is because I thought it has improved SNR performance than noncoherent demodulator, am I right on this? For my project the minimum SNR for detection is 3dB, does this limit my decision on choosing demodulator? any recommendation? If I use a Costas loop for the carrier recovery, what is the error signal feed into the loop?&#12288;If it is the phase&#65292;&#12288;the phase is&#12288;&#65298;*&#65360;&#65353;*fc*t+integral(m(t)), how do I remove integral(m(t))? That is the part confuses me, I definitely need some advise on that. Thank.
On Mar 22, 5:05&nbsp;pm, "gobruins" <chunmei.kang@n_o_s_p_a_m.gmail.com>
wrote:
> >Search for "costas loop" if you must do coherent demodulation. If non- > >coherent (i.e., no carrier recovery needed) demodulation is adequate, > >search for "differential detector." > > The reason I choose coherent demodulation is because I thought it has > improved SNR performance than noncoherent demodulator, am I right on this? > > For my project the minimum SNR for detection is 3dB, does this limit my > decision on choosing demodulator? any recommendation? > > If I use a Costas loop for the carrier recovery, what is the error signal > feed into the loop?&#12288;If it is the phase&#65292;&#12288;the phase > is&#12288;&#65298;*&#65360;&#65353;*fc*t+integral(m(t)), how do I remove integral(m(t))? That > is the part confuses me, I definitely need some advise on that. > > Thank.
What BER do you expect at 3 dB SNR? There are a number of options, including multi-bit (sequence) detection. Look for this paper: Coherent and Noncoherent Detection of CPFSK, Osborne & Luntz Also the book Digital Phase Modulation by Sundberg is good, pretty much the bible on CPFSK. John
>What BER do you expect at 3 dB SNR? > >There are a number of options, including multi-bit (sequence) >detection. Look for this paper: > >Coherent and Noncoherent Detection of CPFSK, Osborne & Luntz > >Also the book Digital Phase Modulation by Sundberg is good, pretty >much the bible on CPFSK. > >John >
I do not know right now what BER I am expected, but I guess we want to approach as close as possible to the theoretical curve. I will take a look at the book you advised. I just tried some simulations with Matlab/Simulink, I am using discriminator method, w/o noise, it performs great, even with large carrier offset and timing offset. However, when I add noise, the performance degrades rapidly, and especially when modulation index h is small, say h=0.5. Can I say the discriminator method has good performance for passband demodulation with large frequency separation? In my case, I need to deal with also small h. My carrier fc=1KHz, Baud rate=50Hz, h=0.5 and other possible values, what demodulation technique should I use? I kind of still prefer using Costas loop, since it is going to be a nice fit to the PSK demodulator we developed earlier. I searched around this afternoon, but I am still not sure how I should use a PLL to recover the carrier. What should be the phase error? Once locked is my VCO output the demodulated signal or the carrier?
On Mar 22, 8:38&#2013266080;pm, "gobruins" <chunmei.kang@n_o_s_p_a_m.gmail.com>
wrote:
> >What BER do you expect at 3 dB SNR? > > >There are a number of options, including multi-bit (sequence) > >detection. Look for this paper: > > >Coherent and Noncoherent Detection of CPFSK, Osborne & Luntz > > >Also the book Digital Phase Modulation by Sundberg is good, pretty > >much the bible on CPFSK. > > >John > > I do not know right now what BER I am expected, but I guess we want to > approach as close as possible to the theoretical curve. > > I will take a look at the book you advised. > > I just tried some simulations with Matlab/Simulink, I am using > discriminator method, w/o noise, it performs great, even with large carrier > offset and timing offset. However, when I add noise, the performance > degrades rapidly, and especially when modulation index h is small, say > h=0.5. > > Can I say the discriminator method has good performance for passband > demodulation with large frequency separation? > > In my case, I need to deal with also small h. My carrier fc=1KHz, Baud > rate=50Hz, h=0.5 and other possible values, what demodulation technique > should I use? > > I kind of still prefer using Costas loop, since it is going to be a nice > fit to the PSK demodulator we developed earlier. > > I searched around this afternoon, but I am still not sure how I should use > a PLL to recover the carrier. What should be the phase error? Once locked > is my VCO output the demodulated signal or the carrier?
The phase error detector has to take into account the phase change over a bit period. For h = 0.5, the phase changes 90 degrees over a bit period. If you establish timing recovery first, then look at the phase change from the start of a bit to the middle of a bit. It should be +45 for positive frequency shift or -45 for negative frequency shift. By adding or subtracting 45, you can get a phase error for your PLL. John
>The phase error detector has to take into account the phase change >over a bit period. For h =3D 0.5, the phase changes 90 degrees over a >bit period. If you establish timing recovery first, then look at the >phase change from the start of a bit to the middle of a bit. It should >be +45 for positive frequency shift or -45 for negative frequency >shift. By adding or subtracting 45, you can get a phase error for your >PLL. > >John >
I see, now it is clear to me, thank you so much. And one more question, is there a 'universal' lower bound of BER for FSK and MSK? When I develop my PSK demodulator, I have a mathematical equations to compute the theoretical BER curve like: http://en.wikipedia.org/wiki/File:PSK_BER_curves.svg, so I compared my measurements with this curve to understand the performance my demodulator. Could you please point me some articles about CPFSK and MSK BER derivative? Thanks again!
>The phase error detector has to take into account the phase change >over a bit period. For h =3D 0.5, the phase changes 90 degrees over a >bit period. If you establish timing recovery first, then look at the >phase change from the start of a bit to the middle of a bit. It should >be +45 for positive frequency shift or -45 for negative frequency >shift. By adding or subtracting 45, you can get a phase error for your >PLL. > >John >
I see, now it is clear to me, thank you so much. And one more question, is there a 'universal' lower bound of BER for FSK and MSK? When I develop my PSK demodulator, I have a mathematical equations to compute the theoretical BER curve like: http://en.wikipedia.org/wiki/File:PSK_BER_curves.svg, so I compared my measurements with this curve to understand the performance my demodulator. Could you please point me some articles about CPFSK and MSK BER derivative? Thanks again!
gobruins wrote:
>> The phase error detector has to take into account the phase change >> over a bit period. For h =3D 0.5, the phase changes 90 degrees over a >> bit period. If you establish timing recovery first, then look at the >> phase change from the start of a bit to the middle of a bit. It should >> be +45 for positive frequency shift or -45 for negative frequency >> shift. By adding or subtracting 45, you can get a phase error for your >> PLL. >> >> John >> > > > I see, now it is clear to me, thank you so much. > > And one more question, is there a 'universal' lower bound of BER for FSK > and MSK? > > When I develop my PSK demodulator, I have a mathematical equations to > compute the theoretical BER curve like: > http://en.wikipedia.org/wiki/File:PSK_BER_curves.svg, so I compared my > measurements with this curve to understand the performance my demodulator. > > > Could you please point me some articles about CPFSK and MSK BER > derivative?
Well, the most universal lower bound is 0.5 -- but I don't think that's what you meant. If you make some simplifying assumptions you can find an optimal detector, and it's BER vs. noise performance. I think this is what you meant. A good book on communications systems will get you those curves. For some modulation schemes and channels* the reality will closely reflect the theory; for other modulation schemes and channels** the math is simply intractable, and at best you can find bounds that you know you'll never approach. * E.g. MSK in a channel with Gaussian noise ** E.g. MSK in a channel with impulsive noise, or FM radio (with output SNR substituted for BER) in any noisy channel. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com