## detect radiosonde type #### Files * `dft_detect.c` #### Compile `gcc dft_detect.c -lm -o dft_detect` #### Usage `./dft_detect [options] `
options:
     `--IQ `  :  IQ data input, where `` is the relative frequency in `-0.5..0.5`
     `-v`  :  sample count
     `-c`  :  continuous output
     `-t `  :  time limit
(input `` can be `stdin`)
FM data:
`./dft_detect `
IQ data:
`./dft_detect --IQ `
For IQ data (i.e. 2 channels) it is possible to read raw data (without wav header):
`./dft_detect --IQ - `
where
     ``  :  sample rate
     `=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 `: ` 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 ```