Table of Contents

szdc

szdc is a receiver for a specific inverse tone coded squelch used by a certain railway network. It uses FCL, a fast spectrum channelizer to get baseband channels and then some code with FFTW to detect presence of the IDLE tone. If IDLE tone is not present, the channel is assumed to be active and is dumped to a file.

If the channel is active for too long (see guard in constants.h), it is presumed that signal is lost or something and it is disabled (and appears in mask).

Edit run.sh to suit your needs. Edit constants.h (number of channels, SNR).

$ make
$ ./run.sh
Using Volk machine: avx_666
snr: 54 31 51 58 60 61 59 32 58 57 61 mask: 
snr: 54 30 50 58 61 62 59 32 60 58 62 mask: 
Opening new file 2016-08-09-02-47-13.8.cfile
snr: 42 29 52 57 60 62 50 37 4 50 52 mask: 
snr: 53 29 50 57 60 62 59 32 3 53 53 mask: 
snr: 46 27 52 58 61 62 57 50 55 51 58 mask: 
snr: 53 28 51 58 61 62 59 48 55 57 61 mask: 
snr: 53 32 50 57 59 61 59 36 56 56 59 mask: 
closing 8
snr: 37 26 53 57 61 62 46 33 59 53 61 mask: 
...

To decode audio, you can use for example mfm.py from Kukuruku, an interactive SDR client.

cat foo.cfile | mfm.py -r 0.520833 # 25/48 kHz

Obtaining szdc