diff --git a/dfm/README.md b/dfm/README.md new file mode 100644 index 0000000..85be751 --- /dev/null +++ b/dfm/README.md @@ -0,0 +1,44 @@ + +## Radiosonde DFM-06/DFM-09 + +#### Files + + * `dfm06ptu.c` + +#### Compile + `gcc dfm06ptu.c -lm -o dfm06ptu` + +#### Usage + `./dfm06ptu [options] `
+ * ``: FM-demodulated signal, recorded as wav audio file + * `options`:
+ `-i`: invert signal/polarity (DFM-09)
+ `-b`, `-b2`: integrate rawbit-/symbol-samples
+ `-r`: output raw data
+ `-v`: additional info
+ `--ecc`: Hamming code error correction
+ `--ptu`: temperature
+ + +#### Examples + * `./dfm06ptu --ecc --ptu -v dfm-audio.wav` + + FSK-demodulation is kept very simple. If the signal quality is low and (default) zero-crossing-demod is used, + a lowpass filter is recommended: + * `sox dfm-audio.wav -t wav - lowpass 2000 2>/dev/null | ./dfm06ptu --ecc --ptu -v` + + If timing/sync is not an issue, integrating the symbol-samples (option `-b2`) is better for error correction: + * `./dfm06ptu -b2 --ecc --ptu -v dfm-audio.wav` + + For DFM-09 or if the signal is inverted + (depends on sdr-software and/or audio-card/settings), try option `-i`. + + +#### Error correction + Use error correction `--ecc` together with option `-b2`. + The codewords are 8-bit long and the \[8,4\] extended Hamming code can correct one-bit errors + and detect two-bit errors. If there are more than two errors, it is possible that the codeword is + corrected to a different codeword closer to the received word. The minimum distance is 4. + Thus if the signal level is low, the decoding can go wrong. + A high number of codewords with bit-errors in a frame could indicate unreliable decoding. +