Suppose I have a signal which varies between two frequencies (which represent a stream of binary data). I think this is called BFSK. I have the entire signal already sampled. Let's say each 'bit' lasts 10ms. My plan was to have bins of 10ms, and do FFT to find the dominant frequency, and deduce the bit from that.

My problem is finding the start position of the sequency. The signal is garbled with noise, and has a significant RMS white noise. I have attached a picture of what I'm trying to convey. Note that the actual signal's amplitude won't be as differentiable between the unwanted noise and the wanted frequencies.

How can I find where the 'wanted' signal starts? Should I be trying a binary search tree (halving each window or something), or is there a more direct approach?

enter image description here

  • $\begingroup$ This is an issue common to most digital communications receivers. You need to handle "symbol timing synchronization." This is a process in the receiver that estimates the proper times to sample the state of the input signal in order to make a symbol decision. There are numerous techniques for timing recovery, but the issue isn't often covered well in introductions to communications (they often say "assume perfect synchronization," which glosses over the hardest parts). $\endgroup$ – Jason R May 11 '15 at 13:15
  • $\begingroup$ There are entire books on synchronization in data communication. $\endgroup$ – hotpaw2 May 11 '15 at 15:41
  • $\begingroup$ Indeed. I would recommend the pricy text by Mengali and D'Andrea. You might be able to find a used copy somewhere that is more reasonable. $\endgroup$ – Jason R May 11 '15 at 18:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.