This is probably as basic a question as it gets, but still the answer eludes me. I have a function from a library that I can use to both modulate, and demodulate an FSK encoded piece of data. For the sake of simplicity, let's just say it's one byte.
From the example provided, it exists in the perfect world of PC memory. The modulate function simply updates the pointer, the receive function takes that and demodulates the buffer. This is on an STM32F4.
In the real world, I need to:
1- Convert the data value to an ADC value (I know how to do this) 2 - Output the data at the sampling interval/rate (pretty sure I have this figured out with a bit more testing) 3 - Output to an amplifier & transmit through antenna (I have this done) 4 - Receive signal into antenna, amplifier and anti-aliasing LPF (OK, I have this) 5 - Process incoming signal through ADC at sampling rate - ideally, the same as transmit. 6 - The data is in a buffer. This is where I am stuck!
The receive amplifier and LPF is continuously processing incoming samples. How do I "look" for the FSK data? How do I know what I am looking for? What would an algorithm be to perform this task?
In analog, I would send out a preamble tone burst of a number of cycles such that the receive would use this to buffer data after that. In the world of DSP, I have no clue how this would happen.
Can someone enlighten me? (Make me clue-ful instead of clue-less?)