RS-tracker/demod/multi/README.md

1.7 KiB

Radiosonde decoders

simultaneous decoding

Compile

gcc -Ofast -c demod_base.c
gcc -O2 -c bch_ecc_mod.c
gcc -O2 -c rs41base.c
gcc -O2 -c dfm09base.c
gcc -O2 -c m10base.c
gcc -O2 -c m20base.c
gcc -O2 -c lms6Xbase.c
gcc -O2 rs_multi.c demod_base.o bch_ecc_mod.o rs41base.o dfm09base.o m10base.o m20base.o lms6Xbase.o \
     -lm -pthread -o rs_multi

Usage/Examples

$ ./rs_multi --rs41 <fq0> --dfm <fq1> --m10 <fq2> --lms <fq3> <iq_baseband.wav>
$ ./rs_multi --rs41 <fq0> --dfm <fq1> --m10 <fq2> --lms <fq3> - <sr> <bs> <iq_baseband.raw>
where
     -0.5 < fqX < 0.5: (relative) frequency, fq=freq/sr
     <sr>: sample rate
     <bs>=8,16,32: bits per (real) sample (u8, s16 or f32)
decodes up to MAX_FQ=5 (demod_base.h) signals. Decoding more signals than number of CPUs/cores is not recommended.
Note: If the baseband sample rate has no appropriate factors (e.g. if prime), the IF sample rate might be high and IF-processing slow.

Sending add/remove commands via fifo:
[terminal 1]
$ rtl_sdr -f 403.0M -s 1920000 - | ./rs_multi --fifo rsfifo --rs41 <fq0> --dfm <fq1> - 1920000 8
where <fqX> is the (relative) frequency of signal X
[terminal 2]
add M10 on <fq2>:
$ echo "m10 <fq2>" > rsfifo
remove <fq1>:
$ echo "-1" > rsfifo

If there is no decode for SEC_NO_SIGNAL=10 (demod_base.c) seconds, the signal is removed, unless option -c is used.
--json output is also possible.