Re: [PIC] FSK demodulation
Dave Tweed <[email protected]> Thu, 24 Jul 2025 20:07:47 -0400
| Newsgroups | gmane.comp.hardware.microcontrollers.pic |
|---|---|
| Organization | Embedded Computer Engineering |
| Message-ID | <[email protected]> |
Harold -- > I've been playing with AFSK demodulation (project at > https://w6iwi.org/rtty/DspTU3/ ). I'm currently using biquad bandpass > filters for mark and space, then comparing the level out of each to > determine whether I am receiving mark or space. I also adjust the > mark/space threshold based on the last received mark or space level > to allow for selective fading. > > I've also heard of using the Goertzel algorithm to detect the mark and > space tones. > > Is there an advantage to one or the other? The biquad filters seem pretty > simple and operate on a sample by sample basis (instead of a block of > samples). Goertzel is basically a one-channel DFT converted to recursive form, which makes it pretty much equivalent to any IIR filter as far as implementation. It will generally be significantly more selective (narrow passband) compared to the biquads, which may or may not be an advantage in your application. But to avoid the limitation of working only on blocks of samples, there's no reason not to do the sliding-window DFT calculation directly, which gives you a result on every sample. If you only care about two or three frequencies, it's quite doable. I was messing around with this stuff myself some 30 years ago, trying to decode the time signals from radio station CHU in Canada (their equivalent of WWV). One element of their signal is a Bell-103 compatible burst of data that I wanted to capture. I wrote up some of my efforts for Circuit Cellar -- issues 83 and 84, June and July 1997. I was using an ADSP-2101 evaluation board and was focusing mainly on FIR-based techniques. -- Dave Tweed