discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Discuss-gnuradio] Decoding CPFSK


From: Johnathan Corgan
Subject: Re: [Discuss-gnuradio] Decoding CPFSK
Date: Tue, 23 Oct 2007 08:59:01 -0700
User-agent: Thunderbird 1.5.0.13 (X11/20070824)

Andrew Rose wrote:

> 2. 1200Hz/1800Hz continuous-phase FSK encoding 1200 bits per second.
> i.e. each output bit is either 1 cycle of a 1200Hz wave (1-bit) or 1.5
> cycles of an 1800Hz wave (0-bit).  The start of each bit is at a
> zero-crossing (although there are obviously zero-crossings which aren't
> the start of a bit).

This modulation is known as Fast-Frequency-Shift-Keying (FFSK) or more
accurately as Minimum Shift Keying (MSK).

A nice description of the algorithm is contained in a 1990 masters
thesis by Tim Wescott:

http://www.wescottdesign.com/articles/MSK/mskTop.html

The decoder in that project was written for a DSP chip, but you should
be able follow the theory enough to figure out the right signal chain in
GNU Radio.  Since you're using the audio output of a scanner, you'll be
doing something slightly different, as the typical way to decode FFSK
starts with the complex baseband, and doesn't use FM demodulation.

FFSK is a popular modem for low speed bursty data, and is very commonly
used in public safety transmitter identification.  That "braap" you hear
at the start or end of many police and fire radio transmissions is
usually an FFSK modulated burst of the radio serial number.  Some
ambulance rigs have a set of push-buttons for the driver to indicate
they have arrived, or are driving with lights and sirens, or other
status updates, and these go out over a channel as FFSK bursts.

Another source of documentation for this protocol are the various
chipsets used in the above radios.  You'll get far more hits Googling
for FFSK than for MSK, though, as FFSK is the "marketing" name while MSK
is the more accurate term.

When you get this working, we'd love to incorporate it as a standard
block or hierarchical block in GNU Radio, if you're willing.

-- 
Johnathan Corgan
Corgan Enterprises LLC
http://corganenterprises.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]