On Fri, Mar 20, 2009 at 10:11 AM, Brian Padalino <bpadal...@gmail.com> wrote:
> FSK is all about delta phase shifts. If a mark is a + frequency, and > a space is a - frequency (or vice versa, your choice), then I would > think it would be easy to keep track of how large the deltas between > phases were and when they happened. A common, non-coherent method for FSK demodulation and baud rate detection is to multiply each succeeding sample by the complex conjugate of the preceding sample, then take the phase of the product. This turns the sample series into baseband "level" shifts. If you are at zero IF, then the sample stream will be roughly symmetrical about zero (frequency offsets are turned into DC offsets, though). >From here you can use zero crossings to estimate baud rate and integration between transitions to improve noise performance. The success of this technique relies on sufficient zero crossing density, and has a higher bit error rate than coherent detection and demodulation. GNU Radio has a block, gr.quadrature_demod_cf, that does the first portion of this, taking a complex baseband stream, doing the conjugate multiply and arctan, and outputting a float stream of demodulated samples. An example is in gr-pager, where the FLEX pager protocol's 4-level FSK is first processed by it. Johnathan _______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org http://lists.gnu.org/mailman/listinfo/discuss-gnuradio