RS-tracker/scan
Zilog80 77a0c0f6ec from test branch: add weathex 2023-10-02 22:55:10 +02:00
..
README.md dft_detect: option -d2, detect twice 2023-06-22 23:13:17 +02:00
dft_detect.c from test branch: add weathex 2023-10-02 22:55:10 +02:00
plot_fft_pow.py scan: rtl_sdr multi rs 2019-02-22 22:13:57 +01:00
plot_fft_simple.py scan/plot iq-data 2019-03-23 16:42:38 +01:00
reset_usb.c
rs_detect.c detect m10-preamble/header <-> rs41-preamble 2019-01-15 17:09:56 +01:00
rtlsdr_scan.pl scan: decoder args update 2017-02-23 11:38:30 +01:00
scan_fft_pow.c scan_fft: sum of dB -> avg dB, i.e. dB(sum FFT) 2021-03-13 16:59:46 +01:00
scan_fft_simple.c scan_fft: sum of dB -> avg dB, i.e. dB(sum FFT) 2021-03-13 16:59:46 +01:00
scan_multi.sh scan/decode: update to IQ decoders, sync test-branch 2023-02-17 16:54:16 +01:00
scan_multi_rs.pl scan/decode: update to IQ decoders, sync test-branch 2023-02-17 16:54:16 +01:00

README.md

detect radiosonde type

Files

  • dft_detect.c

Compile

gcc dft_detect.c -lm -o dft_detect

Usage

./dft_detect [options] <file>
options:
     --IQ <fq>  :  IQ data input, where <fq> is the relative frequency in -0.5..0.5
     -v  :  sample count
     -c  :  continuous output
     -t <sec>  :  time limit

(input <file> can be stdin)

FM data:
./dft_detect <fm_audio.wav>

IQ data:
./dft_detect --IQ <fq> <iq_data.wav>
For IQ data (i.e. 2 channels) it is possible to read raw data (without wav header):
./dft_detect --IQ <fq> - <sr> <bs> <iq_data.raw>
where
     <sr>  :  sample rate
     <bs>=8,16,32  :  bits per (real) sample (u8, s16 or f32)

dft_detect stops, if a (potential) radiosonde signal is detected, or if a time limit is set with option -t.
With option -c detection is continued, but a time limit can be set with -t.

Output is of the form <TYPE>: <score> where the correlation score is a normalized value in -1..+1.

Examples

Ex.1

$ ./dft_detect fm_audio.wav
sample_rate: 48000
bits       : 8
channels   : 1
RS41: 0.9885

Ex.2

$ ./dft_detect -c fm_audio.wav 2>/dev/null
RS41: 0.9885
RS41: 0.9851
RS41: 0.9784
RS41: 0.9869
RS41: 0.9845
RS41: 0.9828
RS41: 0.9814
RS41: 0.9821
RS41: 0.9823
RS41: 0.9882
[...]

Ex.3

$ ./dft_detect -c -t 4 fm_audio.wav 2>/dev/null
RS41: 0.9885
RS41: 0.9851
RS41: 0.9784
RS41: 0.9869
RS41: 0.9845

Ex.4

$ ./dft_detect -v -c -t 2 fm_audio.wav 2>/dev/null
sample: 39801
RS41: 0.9885
sample: 87824
RS41: 0.9851
sample: 135831
RS41: 0.9784

Ex.5
Some radiosonde types have similar signals, false detection is possible.

$ ./dft_detect -c -t 4 fm_meisei.wav 2>/dev/null
MEISEI: 0.9802
MRZ: -0.9720
MEISEI: 0.9829

Here a Meisei radiosonde seems to be more likely.

Ex.6
Confirmed detection (two hits):

$ ./dft_detect -d2 -t 4 fm_meisei.wav 2>/dev/null
MEISEI: 0.9829