I try to detect some FSK signals made by audio in near real time. I know that I will get some latency. In the start I try to detect some tones of 10Khz in a duration of 75ms. That is achieved by a Goertzel filter. What is the prefered technique for that issue? I thought of making a little buffer that will always be detected by the Goertzel, but this sounds bad because I don't know when the the signal starts. Can you give me some help or idea ? Thanks


People have been decoding FSK signals for ages with very weak microprocessors. The usual method is called zero crossing detection.

You basically just measure time (count the number of samples) between the times when the signal crosses the zero volt line.
The number of samples multiplied by the sampling rate tells you the rate as a time period. One divided by that number is the frequency of your signal.

That works well enough with clean signals. If your signal has noise mixed in with it, then you use a band pass filter to just pass the frequencies you are interested in.

I'd work up an FSK demodulator using zero crossing that works for clean signals. Once that works, you can worry about filters and improving the performance.

| improve this answer | |

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.