multi decode: add M10

pull/18/head
Zilog80 2019-08-24 09:29:21 +02:00
rodzic f6bb7bf35f
commit a0fb85391f
2 zmienionych plików z 1058 dodań i 3 usunięć

1040
demod/multi/m10base.c 100644

Plik diff jest za duży Load Diff

Wyświetl plik

@ -4,10 +4,11 @@ gcc -O2 -c demod_base.c
gcc -O2 -c bch_ecc_mod.c
gcc -O2 -c rs41base.c
gcc -O2 -c dfm09base.c
gcc -O2 rs_multi.c demod_base.o bch_ecc_mod.o rs41base.o dfm09base.o -lm -pthread
gcc -O2 -c m10base.c
gcc -O2 rs_multi.c demod_base.o bch_ecc_mod.o rs41base.o dfm09base.o m10base.o -lm -pthread
./a.out --rs41 <fq0> [--dfm <fq1> ..] baseband_IQ.wav
-0.5 < fq < 0.5
./a.out --rs41 <fq0> --dfm <fq1> --m10 <fq2> baseband_IQ.wav
-0.5 < fq < 0.5 , fq=freq/sr
*/
@ -32,6 +33,7 @@ int rbf1; // extern in demod_base.c
void *thd_rs41(void *);
void *thd_dfm09(void *);
void *thd_m10(void *);
#define IF_SAMPLE_RATE 48000
@ -123,6 +125,19 @@ int main(int argc, char **argv) {
xlt_cnt++;
}
}
else if (strcmp(*argv, "--m10") == 0) {
double fq = 0.0;
++argv;
if (*argv) fq = atof(*argv);
else return -1;
if (fq < -0.5) fq = -0.5;
if (fq > 0.5) fq = 0.5;
if (xlt_cnt < MAX_FQ) {
base_fqs[xlt_cnt] = fq;
rstype[xlt_cnt] = thd_m10;
xlt_cnt++;
}
}
else if (strcmp(*argv, "-") == 0) {
int sample_rate = 0, bits_sample = 0, channels = 0;
++argv;