Hi everbody, I'm new in the field of "synchonization" concerning all-digital receivers. At the moment I'm working at the problem of "frequency offset correction". While there is a frequency offset between the LO of the transmitter and the LO of the receiver, I've to determine the offset due to perform a proper convertion of the received signal into complex baseband for demodulation. (I'd like to implement the system for simulation purposes on Matlab/Simulink first.) Can anybody give me a hint about books/links/papers were I may find appropriate information on how to solve this problem? I've just read a lot of papers - but most of them are dealing with PSK-Type signals. I would be very thankful if anybody could help me :o) kind regards, Steffen This message was sent using the Comp.DSP web interface on www.DSPRelated.com

# Carrier recovery for FSK demodulation

Started by ●March 9, 2005

Reply by ●March 9, 20052005-03-09

steffen wrote:> Hi everbody, > > I'm new in the field of "synchonization" concerning all-digital > receivers. > > At the moment I'm working at the problem of "frequency offset > correction". > While there is a frequency offset between the LO of the transmitterand> the LO of the receiver, I've to determine the offset due to perform a > proper convertion of the received signal into complex baseband for > demodulation. > (I'd like to implement the system for simulation purposes on > Matlab/Simulink first.) > > Can anybody give me a hint about books/links/papers were I may find > appropriate information on how to solve this problem? > I've just read a lot of papers - but most of them are dealing with > PSK-Type signals. > I would be very thankful if anybody could help me :o) > > kind regards, > > Steffen > > > > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.comHere's a good FSK reference: http://www.wj.com/pdf/technotes/FSK_signals_demod.pdf I have worked with FSK a great deal over the years, and have found that it is demodulated noncoherently most of the time. The two most common methods are discriminator detection and mark and space filters. The frequency offset can often be extracted from the bias at the output of the detector. To get at the bias, positive and negative peak detectors can be used. One exception that is usually demodulated coherently is the special case of GMSK as used in GSM mobile phones. Hope that helps. John PS - The old WJ tech notes are a great resource. There is another one on PSK.

Reply by ●March 10, 20052005-03-10

> >steffen wrote: >> Hi everbody, >> >> I'm new in the field of "synchonization" concerning all-digital >> receivers. >> >> At the moment I'm working at the problem of "frequency offset >> correction". >> While there is a frequency offset between the LO of the transmitter >and >> the LO of the receiver, I've to determine the offset due to perform a >> proper convertion of the received signal into complex baseband for >> demodulation. >> (I'd like to implement the system for simulation purposes on >> Matlab/Simulink first.) >> >> Can anybody give me a hint about books/links/papers were I may find >> appropriate information on how to solve this problem? >> I've just read a lot of papers - but most of them are dealing with >> PSK-Type signals. >> I would be very thankful if anybody could help me :o) >> >> kind regards, >> >> Steffen >> >> >> >> >> >> This message was sent using the Comp.DSP web interface on >> www.DSPRelated.com > >Here's a good FSK reference: > >http://www.wj.com/pdf/technotes/FSK_signals_demod.pdf > >I have worked with FSK a great deal over the years, and have found that >it is demodulated noncoherently most of the time. The two most common >methods are discriminator detection and mark and space filters. The >frequency offset can often be extracted from the bias at the output of >the detector. To get at the bias, positive and negative peak detectors >can be used. > >One exception that is usually demodulated coherently is the special >case of GMSK as used in GSM mobile phones. > >Hope that helps. > >John > >PS - The old WJ tech notes are a great resource. There is another one >on PSK. > >Thanks for your fast reply John :o) I will check out the link and the non-coherent demodulation scheme you've mentioned. Do you have some further hints concerning "especially" frequency offset correction based on the sampled IF signal (which leads to a feedforward solution) or the samples of the I- and Q-branch of the complex baseband-signal (which leads to a feedback solution)? It would be great if you could take me a step further :o) Steffen This message was sent using the Comp.DSP web interface on www.DSPRelated.com

Reply by ●March 10, 20052005-03-10

steffen wrote:> > > >steffen wrote: > >> Hi everbody, > >> > >> I'm new in the field of "synchonization" concerning all-digital > >> receivers. > >> > >> At the moment I'm working at the problem of "frequency offset > >> correction". > >> While there is a frequency offset between the LO of thetransmitter> >and > >> the LO of the receiver, I've to determine the offset due toperform a> >> proper convertion of the received signal into complex baseband for > >> demodulation. > >> (I'd like to implement the system for simulation purposes on > >> Matlab/Simulink first.) > >> > >> Can anybody give me a hint about books/links/papers were I mayfind> >> appropriate information on how to solve this problem? > >> I've just read a lot of papers - but most of them are dealing with > >> PSK-Type signals. > >> I would be very thankful if anybody could help me :o) > >> > >> kind regards, > >> > >> Steffen > >> > >> > >> > >> > >> > >> This message was sent using the Comp.DSP web interface on > >> www.DSPRelated.com > > > >Here's a good FSK reference: > > > >http://www.wj.com/pdf/technotes/FSK_signals_demod.pdf > > > >I have worked with FSK a great deal over the years, and have foundthat> >it is demodulated noncoherently most of the time. The two mostcommon> >methods are discriminator detection and mark and space filters. The > >frequency offset can often be extracted from the bias at the outputof> >the detector. To get at the bias, positive and negative peakdetectors> >can be used. > > > >One exception that is usually demodulated coherently is the special > >case of GMSK as used in GSM mobile phones. > > > >Hope that helps. > > > >John > > > >PS - The old WJ tech notes are a great resource. There is anotherone> >on PSK. > > > > > > Thanks for your fast reply John :o) > I will check out the link and the non-coherent demodulation schemeyou've> mentioned. > > Do you have some further hints concerning "especially" frequencyoffset> correction based on the sampled IF signal (which leads to afeedforward> solution) or the samples of the I- and Q-branch of the complex > baseband-signal (which leads to a feedback solution)? > > It would be great if you could take me a step further :o) > > Steffen > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.comGive me some details. Deviation? Data rate? Expected frequency error? John

Reply by ●March 11, 20052005-03-11

Steffen In a continuous phase FSK signal, subtracting the phases of successive IQ data samples [z(n)z(n-1)*] gives you the signal component plus a linear ramp function due to the carrier frequency offset. If the transmity symbols are assumed to be random, the mean value of the derivative of the phase yields the carrier frequency offset. The reasoning is that continuous phase FSK demodulation is the digital equivalent of analog FM demodulation. Regards Vikram steffen wrote:> Hi everbody, > > I'm new in the field of "synchonization" concerning all-digital > receivers. > > At the moment I'm working at the problem of "frequency offset > correction". > While there is a frequency offset between the LO of the transmitterand> the LO of the receiver, I've to determine the offset due to perform a > proper convertion of the received signal into complex baseband for > demodulation. > (I'd like to implement the system for simulation purposes on > Matlab/Simulink first.) > > Can anybody give me a hint about books/links/papers were I may find > appropriate information on how to solve this problem? > I've just read a lot of papers - but most of them are dealing with > PSK-Type signals. > I would be very thankful if anybody could help me :o) > > kind regards, > > Steffen > > > > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com

Reply by ●March 12, 20052005-03-12

@John Here are some details: deviation: 1k...40kHz data rate: 1k...20kbaud expected frequency error: as little as possible ;o), but less accurate algorithms are of great interrest also. @Vikram Many thanks for your hint. I really appreciate your help :o) I'm not sure whether I've understood your suggestion correctly. I've read the following (principle) procedure out of your posting: x[n] = argtan(Q[n]/I[n]) - argtan(Q[n-1]/I[n-1]) = w0 + werr*n offset = 1/N * sum[0...N-1] (x[n]-x[n-1]) where N:= number of values considered for calculation of mean Am I right or wrong? regards Steffen This message was sent using the Comp.DSP web interface on www.DSPRelated.com

Reply by ●March 12, 20052005-03-12

steffen wrote:> @John > > Here are some details: > > deviation: 1k...40kHz > data rate: 1k...20kbaud > expected frequency error: as little as possible ;o), but lessaccurate> algorithms are of great interrest also. > > > > @Vikram > Many thanks for your hint. I really appreciate your help :o) > I'm not sure whether I've understood your suggestion correctly. > I've read the following (principle) procedure out of your posting: > > x[n] = argtan(Q[n]/I[n]) - argtan(Q[n-1]/I[n-1]) = w0 + werr*n > > offset = 1/N * sum[0...N-1] (x[n]-x[n-1]) where N:= number ofvalues> considered for > calculation of > mean > Am I right or wrong? > > regards > Steffen > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.comIf possible, filter and decimate the input to match the bandwidth of the signal in advance. Look up Carson's Rule for a bandwidth estimate, and be sure to add you expected frequency error. Then you can use the instantaneous frequency detector that you mentioned to convert frequency to amplitude. The next task will be to establish a slicing threshold, which is equivalent to removing the frequency error. I would suggest averaging the peak positive and negative values from the IF detector to do this. After you have a threshold, you need to find the bit centers and sample once per bit. Look up "timing recovery" for ways to do this. If the SNR drops below a threshold, you will get spikes out of the IF detector. Don't let these throw off the threshold estimate. John

Reply by ●March 12, 20052005-03-12

john wrote:> steffen wrote: > > @John > > > > Here are some details: > > > > deviation: 1k...40kHz > > data rate: 1k...20kbaud > > expected frequency error: as little as possible ;o), but less > accurate > > algorithms are of great interrest also. > > > > > > > > @Vikram > > Many thanks for your hint. I really appreciate your help :o) > > I'm not sure whether I've understood your suggestion correctly. > > I've read the following (principle) procedure out of your posting: > > > > x[n] = argtan(Q[n]/I[n]) - argtan(Q[n-1]/I[n-1]) = w0 + werr*n > > > > offset = 1/N * sum[0...N-1] (x[n]-x[n-1]) where N:= number of > values > > consideredfor> > calculationof> > mean > > Am I right or wrong? > > > > regards > > Steffen > > > > > > This message was sent using the Comp.DSP web interface on > > www.DSPRelated.com > > If possible, filter and decimate the input to match the bandwidth of > the signal in advance. Look up Carson's Rule for a bandwidthestimate,> and be sure to add you expected frequency error. Then you can use the > instantaneous frequency detector that you mentioned to convert > frequency to amplitude. The next task will be to establish a slicing > threshold, which is equivalent to removing the frequency error. Iwould> suggest averaging the peak positive and negative values from the IF > detector to do this. After you have a threshold, you need to find the > bit centers and sample once per bit. Look up "timing recovery" forways> to do this. > > If the SNR drops below a threshold, you will get spikes out of the IF > detector. Don't let these throw off the threshold estimate. > > JohnPS - if you do a little math you'll see that it is possible to do the IF calculation with a single arctan2. If z[n] is the complex FM signal, then z[n].*conj(z[n-1]) has an angle equal to the phase change between z[n] and z[n-1].

Reply by ●March 13, 20052005-03-13

john wrote:> john wrote: > > steffen wrote: > > > @John > > > > > > Here are some details: > > > > > > deviation: 1k...40kHz > > > data rate: 1k...20kbaud > > > expected frequency error: as little as possible ;o), but less > > accurate > > > algorithms are of great interrest also. > > > > > > > > > > > > @Vikram > > > Many thanks for your hint. I really appreciate your help :o) > > > I'm not sure whether I've understood your suggestion correctly. > > > I've read the following (principle) procedure out of yourposting:> > > > > > x[n] = argtan(Q[n]/I[n]) - argtan(Q[n-1]/I[n-1]) = w0 + werr*n > > > > > > offset = 1/N * sum[0...N-1] (x[n]-x[n-1]) where N:= number of > > values > > > considered > for > > >calculation> of > > > mean > > > Am I right or wrong? > > > > > > regards > > > Steffen > > > > > > > > > This message was sent using the Comp.DSP web interface on > > > www.DSPRelated.com > > > > If possible, filter and decimate the input to match the bandwidthof> > the signal in advance. Look up Carson's Rule for a bandwidth > estimate, > > and be sure to add you expected frequency error. Then you can usethe> > instantaneous frequency detector that you mentioned to convert > > frequency to amplitude. The next task will be to establish aslicing> > threshold, which is equivalent to removing the frequency error. I > would > > suggest averaging the peak positive and negative values from the IF > > detector to do this. After you have a threshold, you need to findthe> > bit centers and sample once per bit. Look up "timing recovery" for > ways > > to do this. > > > > If the SNR drops below a threshold, you will get spikes out of theIF> > detector. Don't let these throw off the threshold estimate. > > > > John > > PS - if you do a little math you'll see that it is possible to do the > IF calculation with a single arctan2. If z[n] is the complex FMsignal,> then z[n].*conj(z[n-1]) has an angle equal to the phase changebetween> z[n] and z[n-1].PPS - I neglected to mention that a one bit boxcar filter between the IF detector, although not technically a matched filter since the noise density is quadratic, is a standard thing to include.

Reply by ●March 14, 20052005-03-14

Hallo John, I've just implemented the algorithm with the one arctan2()-solution followed up by a lowpass-filter with passbandedge-frequency at approximately 20 kHz ( which equals the baud-rate of the signal ). -> pretty good result. Right now I've got a signal with a DC offset which is proportional to the frequency-offset to be compensated -> now I'm facing the task of extracting the DC offset, which will then serve as a control-word for the "frequency-shifter". Hope to find a solution -> if not . . . I'll be back for another conversation ;o) regards Steffen This message was sent using the Comp.DSP web interface on www.DSPRelated.com