Fix #926: liquid-dsp master 'modem' changed to 'modemcf' for Digital modems, updates Windows liquid-dsp binaries to master

- Updated Windows bins dependencies to latest MSYS2
- Win32/64 bins liquid-dsp ref: 471f46660ddfab7e6713341324f473b7785da101
- Win32/64 bins using GCC 11.2 (MSYS2)
This commit is contained in:
vsonnier 2021-11-12 11:06:17 +01:00
parent 0248e5aeac
commit 0831aa262c
38 changed files with 5027 additions and 4652 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -800,9 +800,15 @@ void DOTPROD(_run4)( TC * _v, \
DOTPROD() DOTPROD(_create)(TC * _v, \
unsigned int _n); \
\
/* Create vector dot product object with time-reversed coefficients */ \
/* _v : time-reversed coefficients array [size: _n x 1] */ \
/* _n : dotprod length, _n > 0 */ \
DOTPROD() DOTPROD(_create_rev)(TC * _v, \
unsigned int _n); \
\
/* Re-create dot product object of potentially a different length with */ \
/* different coefficients. If the length of the dot product object does */ \
/* not change, not memory reallocation is invoked. */ \
/* not change, no memory reallocation is invoked. */ \
/* _q : old dotprod object */ \
/* _v : coefficients array [size: _n x 1] */ \
/* _n : dotprod length, _n > 0 */ \
@ -810,6 +816,17 @@ DOTPROD() DOTPROD(_recreate)(DOTPROD() _q, \
TC * _v, \
unsigned int _n); \
\
/* Re-create dot product object of potentially a different length with */ \
/* different coefficients. If the length of the dot product object does */ \
/* not change, no memory reallocation is invoked. Filter coefficients */ \
/* are stored in reverse order. */ \
/* _q : old dotprod object */ \
/* _v : time-reversed coefficients array [size: _n x 1] */ \
/* _n : dotprod length, _n > 0 */ \
DOTPROD() DOTPROD(_recreate_rev)(DOTPROD() _q, \
TC * _v, \
unsigned int _n); \
\
/* Destroy dotprod object, freeing all internal memory */ \
void DOTPROD(_destroy)(DOTPROD() _q); \
\
@ -2687,10 +2704,13 @@ void FIRFILT(_execute_block)(FIRFILT() _q, \
unsigned int FIRFILT(_get_length)(FIRFILT() _q); \
\
/* Get pointer to coefficients array */ \
const TC * FIRFILT(_get_coefficients)(FIRFILT() _q); \
\
/* Copy internal coefficients to external buffer */ \
/* _q : filter object */ \
/* _h : pointer to output coefficients array [size: _n x 1] */ \
int FIRFILT(_get_coefficients)(FIRFILT() _q, \
TC * _h); \
int FIRFILT(_copy_coefficients)(FIRFILT() _q, \
TC * _h); \
\
/* Compute complex frequency response of filter object */ \
/* _q : filter object */ \
@ -2721,6 +2741,93 @@ LIQUID_FIRFILT_DEFINE_API(LIQUID_FIRFILT_MANGLE_CCCF,
liquid_float_complex,
liquid_float_complex)
// fdelay : arbitrary delay
#define LIQUID_FDELAY_MANGLE_RRRF(name) LIQUID_CONCAT(fdelay_rrrf,name)
#define LIQUID_FDELAY_MANGLE_CRCF(name) LIQUID_CONCAT(fdelay_crcf,name)
// Macro:
// FDELAY : name-mangling macro
// TO : output data type
// TC : coefficients data type
// TI : input data type
#define LIQUID_FDELAY_DEFINE_API(FDELAY,TO,TC,TI) \
\
/* Finite impulse response (FIR) filter */ \
typedef struct FDELAY(_s) * FDELAY(); \
\
/* Create a delay object with a maximum offset and filter specification */ \
/* _nmax : maximum integer sample offset */ \
/* _m : polyphase filter-bank semi-length, _m > 0 */ \
/* _npfb : number of filters in polyphase filter-bank, _npfb > 0 */ \
FDELAY() FDELAY(_create)(unsigned int _nmax, \
unsigned int _m, \
unsigned int _npfb); \
\
/* Create a delay object with a maximum offset and default filter */ \
/* parameters (_m = 8, _npfb = 64) */ \
/* _nmax : maximum integer sample offset */ \
FDELAY() FDELAY(_create_default)(unsigned int _nmax); \
\
/* Destroy delay object and free all internal memory */ \
int FDELAY(_destroy)(FDELAY() _q); \
\
/* Reset delay object internals */ \
int FDELAY(_reset)(FDELAY() _q); \
\
/* Print delay object internals */ \
int FDELAY(_print)(FDELAY() _q); \
\
/* Get current delay (accounting for _m?) */ \
float FDELAY(_get_delay)(FDELAY() _q); \
int FDELAY(_set_delay)(FDELAY() _q, float _delay); \
int FDELAY(_adjust_delay)(FDELAY() _q, float _delta); \
\
unsigned int FDELAY(_get_nmax)(FDELAY() _q); \
unsigned int FDELAY(_get_m) (FDELAY() _q); \
unsigned int FDELAY(_get_npfb)(FDELAY() _q); \
\
/* Push sample into filter object's internal buffer */ \
/* _q : filter object */ \
/* _x : single input sample */ \
int FDELAY(_push)(FDELAY() _q, \
TI _x); \
\
/* Write a block of samplex into filter object's internal buffer */ \
/* _q : filter object */ \
/* _x : buffer of input samples, [size: _n x 1] */ \
/* _n : number of input samples */ \
int FDELAY(_write)(FDELAY() _q, \
TI * _x, \
unsigned int _n); \
\
/* Execute vector dot product on the filter's internal buffer and */ \
/* coefficients */ \
/* _q : filter object */ \
/* _y : pointer to single output sample */ \
int FDELAY(_execute)(FDELAY() _q, \
TO * _y); \
\
/* Execute the filter on a block of input samples; in-place operation */ \
/* is permitted (_x and _y may point to the same place in memory) */ \
/* _q : filter object */ \
/* _x : pointer to input array, [size: _n x 1] */ \
/* _n : number of input, output samples */ \
/* _y : pointer to output array, [size: _n x 1] */ \
int FDELAY(_execute_block)(FDELAY() _q, \
TI * _x, \
unsigned int _n, \
TO * _y); \
LIQUID_FDELAY_DEFINE_API(LIQUID_FDELAY_MANGLE_RRRF,
float,
float,
float)
LIQUID_FDELAY_DEFINE_API(LIQUID_FDELAY_MANGLE_CRCF,
liquid_float_complex,
float,
liquid_float_complex)
//
// FIR Hilbert transform
// 2:1 real-to-complex decimator
@ -3851,6 +3958,18 @@ void RESAMP2(_reset)(RESAMP2() _q); \
/* Get resampler filter delay (semi-length m) */ \
unsigned int RESAMP2(_get_delay)(RESAMP2() _q); \
\
/* Set output scaling for resampler */ \
/* _q : resampler object */ \
/* _scale : scaling factor to apply to each output sample */ \
int RESAMP2(_set_scale)(RESAMP2() _q, \
TC _scale); \
\
/* Get output scaling for resampler */ \
/* _q : resampler object */ \
/* _scale : scaling factor applied to each output sample */ \
void RESAMP2(_get_scale)(RESAMP2() _q, \
TC * _scale); \
\
/* Execute resampler as half-band filter for a single input sample */ \
/* \(x\) where \(y_0\) is the output of the effective low-pass filter, */ \
/* and \(y_1\) is the output of the effective high-pass filter. */ \
@ -4356,30 +4475,52 @@ LIQUID_MSRESAMP_DEFINE_API(LIQUID_MSRESAMP_MANGLE_CCCF,
#define DDS_MANGLE_CCCF(name) LIQUID_CONCAT(dds_cccf,name)
#define LIQUID_DDS_DEFINE_API(DDS,TO,TC,TI) \
typedef struct DDS(_s) * DDS(); \
\
/* create digital synthesizer object */ \
DDS() DDS(_create)(unsigned int _num_stages, \
float _fc, \
float _bw, \
float _As); \
\
/* destroy digital synthesizer object */ \
void DDS(_destroy)(DDS() _q); \
\
/* print synthesizer object internals to stdout */ \
void DDS(_print)(DDS() _q); \
\
/* reset synthesizer object internals */ \
void DDS(_reset)(DDS() _q); \
\
void DDS(_decim_execute)(DDS() _q, \
TI * _x, \
TO * _y); \
void DDS(_interp_execute)(DDS() _q, \
TI _x, \
TO * _y); \
#define LIQUID_DDS_DEFINE_API(DDS,TO,TC,TI) \
typedef struct DDS(_s) * DDS(); \
\
/* Create digital synthesizer object */ \
/* _num_stages : number of half-band stages, _num_stages > 0 */ \
/* _fc : signal relative center frequency, _fc in [-0.5,0.5] */ \
/* _bw : signal relative bandwidth, _bw in (0,1) */ \
/* _As : filter stop-band attenuation (dB), _As > 0 */ \
DDS() DDS(_create)(unsigned int _num_stages, \
float _fc, \
float _bw, \
float _As); \
\
/* Destroy digital synthesizer object */ \
int DDS(_destroy)(DDS() _q); \
\
/* Print synthesizer object internals */ \
int DDS(_print)(DDS() _q); \
\
/* Reset synthesizer object internals */ \
int DDS(_reset)(DDS() _q); \
\
/* Get number of half-band states in DDS object */ \
unsigned int DDS(_get_num_stages)(DDS() _q); \
\
/* Get delay (samples) when running as interpolator */ \
unsigned int DDS(_get_delay_interp)(DDS() _q); \
\
/* Get delay (samples) when running as decimator */ \
float DDS(_get_delay_decim)(DDS() _q); \
\
/* Run DDS object as decimator */ \
/* _q : synthesizer object */ \
/* _x : input data array, [size: (1<<_num_stages) x 1] */ \
/* _y : output sample */ \
int DDS(_decim_execute)(DDS() _q, \
TI * _x, \
TO * _y); \
\
/* Run DDS object as interpolator */ \
/* _q : synthesizer object */ \
/* _x : input sample */ \
/* _y : output data array, [size: (1<<_num_stages) x 1] */ \
int DDS(_interp_execute)(DDS() _q, \
TI _x, \
TO * _y); \
LIQUID_DDS_DEFINE_API(DDS_MANGLE_CCCF,
liquid_float_complex,
@ -4513,31 +4654,31 @@ FIRFARROW() FIRFARROW(_create)(unsigned int _h_len, \
float _As); \
\
/* Destroy firfarrow object, freeing all internal memory */ \
void FIRFARROW(_destroy)(FIRFARROW() _q); \
int FIRFARROW(_destroy)(FIRFARROW() _q); \
\
/* Print firfarrow object's internal properties */ \
void FIRFARROW(_print)(FIRFARROW() _q); \
int FIRFARROW(_print)(FIRFARROW() _q); \
\
/* Reset firfarrow object's internal state */ \
void FIRFARROW(_reset)(FIRFARROW() _q); \
int FIRFARROW(_reset)(FIRFARROW() _q); \
\
/* Push sample into firfarrow object */ \
/* _q : firfarrow object */ \
/* _x : input sample */ \
void FIRFARROW(_push)(FIRFARROW() _q, \
TI _x); \
int FIRFARROW(_push)(FIRFARROW() _q, \
TI _x); \
\
/* Set fractional delay of firfarrow object */ \
/* _q : firfarrow object */ \
/* _mu : fractional sample delay, -1 <= _mu <= 1 */ \
void FIRFARROW(_set_delay)(FIRFARROW() _q, \
float _mu); \
int FIRFARROW(_set_delay)(FIRFARROW() _q, \
float _mu); \
\
/* Execute firfarrow internal dot product */ \
/* _q : firfarrow object */ \
/* _y : output sample pointer */ \
void FIRFARROW(_execute)(FIRFARROW() _q, \
TO * _y); \
int FIRFARROW(_execute)(FIRFARROW() _q, \
TO * _y); \
\
/* Execute firfarrow filter on block of samples. */ \
/* In-place operation is permitted (the input and output arrays may */ \
@ -4546,10 +4687,10 @@ void FIRFARROW(_execute)(FIRFARROW() _q, \
/* _x : input array, [size: _n x 1] */ \
/* _n : input, output array size */ \
/* _y : output array, [size: _n x 1] */ \
void FIRFARROW(_execute_block)(FIRFARROW() _q, \
TI * _x, \
unsigned int _n, \
TO * _y); \
int FIRFARROW(_execute_block)(FIRFARROW() _q, \
TI * _x, \
unsigned int _n, \
TO * _y); \
\
/* Get length of firfarrow object (number of filter taps) */ \
unsigned int FIRFARROW(_get_length)(FIRFARROW() _q); \
@ -4557,16 +4698,16 @@ unsigned int FIRFARROW(_get_length)(FIRFARROW() _q); \
/* Get coefficients of firfarrow object */ \
/* _q : firfarrow object */ \
/* _h : output coefficients pointer, [size: _h_len x 1] */ \
void FIRFARROW(_get_coefficients)(FIRFARROW() _q, \
float * _h); \
int FIRFARROW(_get_coefficients)(FIRFARROW() _q, \
float * _h); \
\
/* Compute complex frequency response */ \
/* _q : filter object */ \
/* _fc : frequency */ \
/* _H : output frequency response */ \
void FIRFARROW(_freqresponse)(FIRFARROW() _q, \
float _fc, \
liquid_float_complex * _H); \
int FIRFARROW(_freqresponse)(FIRFARROW() _q, \
float _fc, \
liquid_float_complex * _H); \
\
/* Compute group delay [samples] */ \
/* _q : filter object */ \
@ -4944,6 +5085,10 @@ int framesync64_debug_enable(framesync64 _q);
int framesync64_debug_disable(framesync64 _q);
int framesync64_debug_print(framesync64 _q, const char * _filename);
// get/set detection threshold
float framesync64_get_threshold(framesync64 _q);
int framesync64_set_threshold(framesync64 _q, float _threshold);
// frame data statistics
int framesync64_reset_framedatastats(framesync64 _q);
framedatastats_s framesync64_get_framedatastats (framesync64 _q);
@ -5229,7 +5374,12 @@ int fskframesync_debug_export (fskframesync _q, const char * _filename);
typedef struct gmskframegen_s * gmskframegen;
// create GMSK frame generator
gmskframegen gmskframegen_create();
// _k : samples/symbol
// _m : filter delay (symbols)
// _BT : excess bandwidth factor
gmskframegen gmskframegen_create(unsigned int _k,
unsigned int _m,
float _BT);
int gmskframegen_destroy (gmskframegen _q);
int gmskframegen_is_assembled (gmskframegen _q);
int gmskframegen_print (gmskframegen _q);
@ -5242,9 +5392,10 @@ int gmskframegen_assemble (gmskframegen _q,
crc_scheme _check,
fec_scheme _fec0,
fec_scheme _fec1);
// assemble default frame with a particular size payload
int gmskframegen_assemble_default(gmskframegen _q,
unsigned int _payload_len);
unsigned int gmskframegen_getframelen(gmskframegen _q);
int gmskframegen_write_samples(gmskframegen _q,
liquid_float_complex * _y);
// write samples of assembled frame
// _q : frame generator object
@ -5262,9 +5413,15 @@ int gmskframegen_write(gmskframegen _q,
typedef struct gmskframesync_s * gmskframesync;
// create GMSK frame synchronizer
// _k : samples/symbol
// _m : filter delay (symbols)
// _BT : excess bandwidth factor
// _callback : callback function
// _userdata : user data pointer passed to callback function
gmskframesync gmskframesync_create(framesync_callback _callback,
gmskframesync gmskframesync_create(unsigned int _k,
unsigned int _m,
float _BT,
framesync_callback _callback,
void * _userdata);
int gmskframesync_destroy(gmskframesync _q);
int gmskframesync_print(gmskframesync _q);
@ -5279,12 +5436,6 @@ int gmskframesync_reset_framedatastats(gmskframesync _q);
framedatastats_s gmskframesync_get_framedatastats (gmskframesync _q);
// debugging
int gmskframesync_debug_enable(gmskframesync _q);
int gmskframesync_debug_disable(gmskframesync _q);
int gmskframesync_debug_print(gmskframesync _q, const char * _filename);
//
// DSSS frame generator
//
@ -5670,6 +5821,9 @@ int qdetector_cccf_reset (qdetector_cccf _q);
void * qdetector_cccf_execute(qdetector_cccf _q,
liquid_float_complex _x);
// get detection threshold
float qdetector_cccf_get_threshold(qdetector_cccf _q);
// set detection threshold (should be between 0 and 1, good starting point is 0.5)
int qdetector_cccf_set_threshold(qdetector_cccf _q,
float _threshold);
@ -5769,6 +5923,18 @@ int SYMSTREAM(_reset)(SYMSTREAM() _q); \
int SYMSTREAM(_set_scheme)(SYMSTREAM() _q, \
int _ms); \
\
/* Get internal filter type */ \
int SYMSTREAM(_get_ftype)(SYMSTREAM() _q); \
\
/* Get internal samples per symbol */ \
float SYMSTREAM(_get_k)(SYMSTREAM() _q); \
\
/* Get internal filter semi-length */ \
unsigned int SYMSTREAM(_get_m)(SYMSTREAM() _q); \
\
/* Get internal filter excess bandwidth factor */ \
float SYMSTREAM(_get_beta)(SYMSTREAM() _q); \
\
/* Get internal linear modulation scheme */ \
int SYMSTREAM(_get_scheme)(SYMSTREAM() _q); \
\
@ -5779,6 +5945,9 @@ int SYMSTREAM(_set_gain)(SYMSTREAM() _q, \
/* Get internal linear gain (before interpolation) */ \
float SYMSTREAM(_get_gain)(SYMSTREAM() _q); \
\
/* Get delay in samples */ \
unsigned int SYMSTREAM(_get_delay)(SYMSTREAM() _q); \
\
/* Write block of samples to output buffer */ \
/* _q : synchronizer object */ \
/* _buf : output buffer [size: _buf_len x 1] */ \
@ -5826,6 +5995,18 @@ int SYMSTREAMR(_print)(SYMSTREAMR() _q); \
/* Reset symstream internal state */ \
int SYMSTREAMR(_reset)(SYMSTREAMR() _q); \
\
/* Get internal filter type */ \
int SYMSTREAMR(_get_ftype)(SYMSTREAMR() _q); \
\
/* Get internal signal bandwidth (symbol rate) */ \
float SYMSTREAMR(_get_bw)(SYMSTREAMR() _q); \
\
/* Get internal filter semi-length */ \
unsigned int SYMSTREAMR(_get_m)(SYMSTREAMR() _q); \
\
/* Get internal filter excess bandwidth factor */ \
float SYMSTREAMR(_get_beta)(SYMSTREAMR() _q); \
\
/* Set internal linear modulation scheme, leaving the filter parameters */ \
/* (interpolator) unmodified */ \
int SYMSTREAMR(_set_scheme)(SYMSTREAMR() _q, \
@ -5841,6 +6022,9 @@ int SYMSTREAMR(_set_gain)(SYMSTREAMR() _q, \
/* Get internal linear gain (before interpolation) */ \
float SYMSTREAMR(_get_gain)(SYMSTREAMR() _q); \
\
/* Get delay in samples */ \
float SYMSTREAMR(_get_delay)(SYMSTREAMR() _q); \
\
/* Write block of samples to output buffer */ \
/* _q : synchronizer object */ \
/* _buf : output buffer [size: _buf_len x 1] */ \
@ -6074,12 +6258,30 @@ int SYMTRACK(_print)(SYMTRACK() _q); \
/* Reset symtrack internal state */ \
int SYMTRACK(_reset)(SYMTRACK() _q); \
\
/* Get symtrack filter type */ \
int SYMTRACK(_get_ftype)(SYMTRACK() _q); \
\
/* Get symtrack samples per symbol */ \
unsigned int SYMTRACK(_get_k)(SYMTRACK() _q); \
\
/* Get symtrack filter semi-length [symbols] */ \
unsigned int SYMTRACK(_get_m)(SYMTRACK() _q); \
\
/* Get symtrack filter excess bandwidth factor */ \
float SYMTRACK(_get_beta)(SYMTRACK() _q); \
\
/* Get symtrack modulation scheme */ \
int SYMTRACK(_get_modscheme)(SYMTRACK() _q); \
\
/* Set symtrack modulation scheme */ \
/* _q : symtrack object */ \
/* _ms : modulation scheme, _ms(LIQUID_MODEM_BPSK) */ \
int SYMTRACK(_set_modscheme)(SYMTRACK() _q, \
int _ms); \
\
/* Get symtrack internal bandwidth */ \
float SYMTRACK(_get_bandwidth)(SYMTRACK() _q); \
\
/* Set symtrack internal bandwidth */ \
/* _q : symtrack object */ \
/* _bw : tracking bandwidth, _bw > 0 */ \
@ -7177,7 +7379,7 @@ int liquid_unpack_soft_bits(unsigned int _sym_in,
// Linear modem
//
#define LIQUID_MODEM_MANGLE_FLOAT(name) LIQUID_CONCAT(modem,name)
#define LIQUID_MODEM_MANGLE_FLOAT(name) LIQUID_CONCAT(modemcf,name)
// Macro : MODEM
// MODEM : name-mangling macro
@ -7786,6 +7988,15 @@ int FIRPFBCH2(_reset)(FIRPFBCH2() _q); \
/* print firpfbch2 object internals */ \
int FIRPFBCH2(_print)(FIRPFBCH2() _q); \
\
/* get type, either LIQUID_ANALYZER or LIQUID_SYNTHESIZER */ \
int FIRPFBCH2(_get_type)(FIRPFBCH2() _q); \
\
/* get number of channels, M */ \
unsigned int FIRPFBCH2(_get_M)(FIRPFBCH2() _q); \
\
/* get prototype filter sem-length, m */ \
unsigned int FIRPFBCH2(_get_m)(FIRPFBCH2() _q); \
\
/* execute filterbank channelizer */ \
/* LIQUID_ANALYZER: input: M/2, output: M */ \
/* LIQUID_SYNTHESIZER: input: M, output: M/2 */ \

View File

@ -443,6 +443,7 @@ filter_objects := \
filter_includes := \
src/filter/src/autocorr.c \
src/filter/src/dds.c \
src/filter/src/fdelay.c \
src/filter/src/fftfilt.c \
src/filter/src/firdecim.c \
src/filter/src/firfarrow.c \
@ -485,6 +486,7 @@ src/filter/src/rrcos.o : %.o : %.c $(include_headers)
filter_autotests := \
src/filter/tests/fdelay_rrrf_autotest.c \
src/filter/tests/fftfilt_xxxf_autotest.c \
src/filter/tests/filter_crosscorr_autotest.c \
src/filter/tests/firdecim_xxxf_autotest.c \
@ -665,10 +667,14 @@ framing_autotests := \
src/framing/tests/detector_autotest.c \
src/framing/tests/flexframesync_autotest.c \
src/framing/tests/framesync64_autotest.c \
src/framing/tests/gmskframe_autotest.c \
src/framing/tests/ofdmflexframe_autotest.c \
src/framing/tests/qdetector_cccf_autotest.c \
src/framing/tests/qpacketmodem_autotest.c \
src/framing/tests/qpilotsync_autotest.c \
src/framing/tests/symstreamcf_delay_autotest.c \
src/framing/tests/symstreamrcf_delay_autotest.c \
src/framing/tests/symtrack_cccf_autotest.c \
framing_benchmarks := \
@ -822,7 +828,7 @@ modem_objects := \
src/modem/src/fskmod.o \
src/modem/src/gmskdem.o \
src/modem/src/gmskmod.o \
src/modem/src/modemf.o \
src/modem/src/modemcf.o \
src/modem/src/modem_utilities.o \
src/modem/src/modem_apsk_const.o \
src/modem/src/modem_arb_const.o \
@ -846,7 +852,7 @@ modem_includes := \
#src/modem/src/modem_demod_soft_const.c
src/modem/src/modemf.o : %.o : %.c $(include_headers) $(modem_includes)
src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_includes)
src/modem/src/gmskmod.o : %.o : %.c $(include_headers)
src/modem/src/gmskdem.o : %.o : %.c $(include_headers)
src/modem/src/ampmodem.o : %.o : %.c $(include_headers)
@ -864,6 +870,7 @@ modem_autotests := \
src/modem/tests/modem_autotest.c \
src/modem/tests/modem_demodsoft_autotest.c \
src/modem/tests/modem_demodstats_autotest.c \
src/modem/tests/modem_utilities_autotest.c \
modem_benchmarks := \
@ -1343,7 +1350,7 @@ clean-check:
##
readme.c.example.c : README.md
${SED} -n '22,42p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
${SED} -n '23,43p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
readme.c.example.o : %.o : %.c ${include_headers}
${CC} ${CPPFLAGS} ${CFLAGS} $< -c -o $@
@ -1352,7 +1359,7 @@ readme.c.example : % : %.o ${ARCHIVE_LIB}
${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS}
readme.cc.example.cc : README.md
${SED} -n '151,172p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
${SED} -n '152,173p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
readme.cc.example.o : %.o : %.cc ${include_headers}
${CXX} ${CPPFLAGS} ${CXXFLAGS} $< -c -o $@
@ -1488,6 +1495,7 @@ example_programs := \
examples/error_handling_example \
examples/fec_example \
examples/fec_soft_example \
examples/fdelay_rrrf_example \
examples/fft_example \
examples/fftfilt_crcf_example \
examples/firdecim_crcf_example \
@ -1608,7 +1616,9 @@ example_programs := \
examples/symsync_crcf_example \
examples/symsync_crcf_full_example \
examples/symsync_crcf_kaiser_example \
examples/symstreamcf_delay_example \
examples/symstreamcf_example \
examples/symstreamrcf_delay_example \
examples/symstreamrcf_example \
examples/symtrack_cccf_example \
examples/wdelayf_example \

View File

@ -443,6 +443,7 @@ filter_objects := \
filter_includes := \
src/filter/src/autocorr.c \
src/filter/src/dds.c \
src/filter/src/fdelay.c \
src/filter/src/fftfilt.c \
src/filter/src/firdecim.c \
src/filter/src/firfarrow.c \
@ -485,6 +486,7 @@ src/filter/src/rrcos.o : %.o : %.c $(include_headers)
filter_autotests := \
src/filter/tests/fdelay_rrrf_autotest.c \
src/filter/tests/fftfilt_xxxf_autotest.c \
src/filter/tests/filter_crosscorr_autotest.c \
src/filter/tests/firdecim_xxxf_autotest.c \
@ -665,10 +667,14 @@ framing_autotests := \
src/framing/tests/detector_autotest.c \
src/framing/tests/flexframesync_autotest.c \
src/framing/tests/framesync64_autotest.c \
src/framing/tests/gmskframe_autotest.c \
src/framing/tests/ofdmflexframe_autotest.c \
src/framing/tests/qdetector_cccf_autotest.c \
src/framing/tests/qpacketmodem_autotest.c \
src/framing/tests/qpilotsync_autotest.c \
src/framing/tests/symstreamcf_delay_autotest.c \
src/framing/tests/symstreamrcf_delay_autotest.c \
src/framing/tests/symtrack_cccf_autotest.c \
framing_benchmarks := \
@ -822,7 +828,7 @@ modem_objects := \
src/modem/src/fskmod.o \
src/modem/src/gmskdem.o \
src/modem/src/gmskmod.o \
src/modem/src/modemf.o \
src/modem/src/modemcf.o \
src/modem/src/modem_utilities.o \
src/modem/src/modem_apsk_const.o \
src/modem/src/modem_arb_const.o \
@ -846,7 +852,7 @@ modem_includes := \
#src/modem/src/modem_demod_soft_const.c
src/modem/src/modemf.o : %.o : %.c $(include_headers) $(modem_includes)
src/modem/src/modemcf.o : %.o : %.c $(include_headers) $(modem_includes)
src/modem/src/gmskmod.o : %.o : %.c $(include_headers)
src/modem/src/gmskdem.o : %.o : %.c $(include_headers)
src/modem/src/ampmodem.o : %.o : %.c $(include_headers)
@ -864,6 +870,7 @@ modem_autotests := \
src/modem/tests/modem_autotest.c \
src/modem/tests/modem_demodsoft_autotest.c \
src/modem/tests/modem_demodstats_autotest.c \
src/modem/tests/modem_utilities_autotest.c \
modem_benchmarks := \
@ -1343,7 +1350,7 @@ clean-check:
##
readme.c.example.c : README.md
${SED} -n '22,42p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
${SED} -n '23,43p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
readme.c.example.o : %.o : %.c ${include_headers}
${CC} ${CPPFLAGS} ${CFLAGS} $< -c -o $@
@ -1352,7 +1359,7 @@ readme.c.example : % : %.o ${ARCHIVE_LIB}
${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS}
readme.cc.example.cc : README.md
${SED} -n '151,172p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
${SED} -n '152,173p' $< | ${SED} "s/<liquid\/liquid.h>/\"liquid.h\"/g" > $@
readme.cc.example.o : %.o : %.cc ${include_headers}
${CXX} ${CPPFLAGS} ${CXXFLAGS} $< -c -o $@
@ -1488,6 +1495,7 @@ example_programs := \
examples/error_handling_example \
examples/fec_example \
examples/fec_soft_example \
examples/fdelay_rrrf_example \
examples/fft_example \
examples/fftfilt_crcf_example \
examples/firdecim_crcf_example \
@ -1608,7 +1616,9 @@ example_programs := \
examples/symsync_crcf_example \
examples/symsync_crcf_full_example \
examples/symsync_crcf_kaiser_example \
examples/symstreamcf_delay_example \
examples/symstreamcf_example \
examples/symstreamrcf_delay_example \
examples/symstreamrcf_example \
examples/symtrack_cccf_example \
examples/wdelayf_example \

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -48,11 +48,11 @@ int ModemDigital::getDemodulatorLock() {
return currentDemodLock.load();
}
void ModemDigital::updateDemodulatorLock(modem mod, float sensitivity) {
setDemodulatorLock(modem_get_demodulator_evm(mod) <= sensitivity);
void ModemDigital::updateDemodulatorLock(modemcf mod, float sensitivity) {
setDemodulatorLock(modemcf_get_demodulator_evm(mod) <= sensitivity);
}
void ModemDigital::digitalStart(ModemKitDigital * /* kit */, modem /* mod */, ModemIQData *input) {
void ModemDigital::digitalStart(ModemKitDigital * /* kit */, modemcf /* mod */, ModemIQData *input) {
size_t bufSize = input->data.size();
if (demodOutputDataDigital.size() != bufSize) {
@ -63,7 +63,7 @@ void ModemDigital::digitalStart(ModemKitDigital * /* kit */, modem /* mod */, Mo
}
}
void ModemDigital::digitalFinish(ModemKitDigital * /* kit */, modem /* mod */) {
void ModemDigital::digitalFinish(ModemKitDigital * /* kit */, modemcf /* mod */) {
#if ENABLE_DIGITAL_LAB
if (digitalOut && outStream.str().length()) {
digitalOut->write(outStream.str());

View File

@ -42,13 +42,13 @@ public:
ModemKit *buildKit(long long sampleRate, int audioSampleRate) override;
void disposeKit(ModemKit *kit) override;
virtual void digitalStart(ModemKitDigital *kit, modem mod, ModemIQData *input);
virtual void digitalFinish(ModemKitDigital *kit, modem mod);
virtual void digitalStart(ModemKitDigital *kit, modemcf mod, ModemIQData *input);
virtual void digitalFinish(ModemKitDigital *kit, modemcf mod);
virtual void setDemodulatorLock(bool demod_lock_in);
virtual int getDemodulatorLock();
virtual void updateDemodulatorLock(modem mod, float sensitivity);
virtual void updateDemodulatorLock(modemcf mod, float sensitivity);
#if ENABLE_DIGITAL_LAB
void setOutput(ModemDigitalOutput *digitalOutput);

View File

@ -4,13 +4,13 @@
#include "ModemAPSK.h"
ModemAPSK::ModemAPSK() : ModemDigital() {
demodAPSK4 = modem_create(LIQUID_MODEM_APSK4);
demodAPSK8 = modem_create(LIQUID_MODEM_APSK8);
demodAPSK16 = modem_create(LIQUID_MODEM_APSK16);
demodAPSK32 = modem_create(LIQUID_MODEM_APSK32);
demodAPSK64 = modem_create(LIQUID_MODEM_APSK64);
demodAPSK128 = modem_create(LIQUID_MODEM_APSK128);
demodAPSK256 = modem_create(LIQUID_MODEM_APSK256);
demodAPSK4 = modemcf_create(LIQUID_MODEM_APSK4);
demodAPSK8 = modemcf_create(LIQUID_MODEM_APSK8);
demodAPSK16 = modemcf_create(LIQUID_MODEM_APSK16);
demodAPSK32 = modemcf_create(LIQUID_MODEM_APSK32);
demodAPSK64 = modemcf_create(LIQUID_MODEM_APSK64);
demodAPSK128 = modemcf_create(LIQUID_MODEM_APSK128);
demodAPSK256 = modemcf_create(LIQUID_MODEM_APSK256);
demodAPSK = demodAPSK4;
cons = 4;
}
@ -20,13 +20,13 @@ ModemBase *ModemAPSK::factory() {
}
ModemAPSK::~ModemAPSK() {
modem_destroy(demodAPSK4);
modem_destroy(demodAPSK8);
modem_destroy(demodAPSK16);
modem_destroy(demodAPSK32);
modem_destroy(demodAPSK64);
modem_destroy(demodAPSK128);
modem_destroy(demodAPSK256);
modemcf_destroy(demodAPSK4);
modemcf_destroy(demodAPSK8);
modemcf_destroy(demodAPSK16);
modemcf_destroy(demodAPSK32);
modemcf_destroy(demodAPSK64);
modemcf_destroy(demodAPSK128);
modemcf_destroy(demodAPSK256);
}
std::string ModemAPSK::getName() {
@ -103,7 +103,7 @@ void ModemAPSK::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodAPSK, input);
for (size_t i = 0, bufSize = input->data.size(); i < bufSize; i++) {
modem_demodulate(demodAPSK, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodAPSK, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodAPSK, 0.005f);

View File

@ -22,12 +22,12 @@ public:
private:
int cons;
modem demodAPSK;
modem demodAPSK4;
modem demodAPSK8;
modem demodAPSK16;
modem demodAPSK32;
modem demodAPSK64;
modem demodAPSK128;
modem demodAPSK256;
modemcf demodAPSK;
modemcf demodAPSK4;
modemcf demodAPSK8;
modemcf demodAPSK16;
modemcf demodAPSK32;
modemcf demodAPSK64;
modemcf demodAPSK128;
modemcf demodAPSK256;
};

View File

@ -4,14 +4,14 @@
#include "ModemASK.h"
ModemASK::ModemASK() : ModemDigital() {
demodASK2 = modem_create(LIQUID_MODEM_ASK2);
demodASK4 = modem_create(LIQUID_MODEM_ASK4);
demodASK8 = modem_create(LIQUID_MODEM_ASK8);
demodASK16 = modem_create(LIQUID_MODEM_ASK16);
demodASK32 = modem_create(LIQUID_MODEM_ASK32);
demodASK64 = modem_create(LIQUID_MODEM_ASK64);
demodASK128 = modem_create(LIQUID_MODEM_ASK128);
demodASK256 = modem_create(LIQUID_MODEM_ASK256);
demodASK2 = modemcf_create(LIQUID_MODEM_ASK2);
demodASK4 = modemcf_create(LIQUID_MODEM_ASK4);
demodASK8 = modemcf_create(LIQUID_MODEM_ASK8);
demodASK16 = modemcf_create(LIQUID_MODEM_ASK16);
demodASK32 = modemcf_create(LIQUID_MODEM_ASK32);
demodASK64 = modemcf_create(LIQUID_MODEM_ASK64);
demodASK128 = modemcf_create(LIQUID_MODEM_ASK128);
demodASK256 = modemcf_create(LIQUID_MODEM_ASK256);
demodASK = demodASK2;
cons = 2;
}
@ -21,13 +21,13 @@ ModemBase *ModemASK::factory() {
}
ModemASK::~ModemASK() {
modem_destroy(demodASK4);
modem_destroy(demodASK8);
modem_destroy(demodASK16);
modem_destroy(demodASK32);
modem_destroy(demodASK64);
modem_destroy(demodASK128);
modem_destroy(demodASK256);
modemcf_destroy(demodASK4);
modemcf_destroy(demodASK8);
modemcf_destroy(demodASK16);
modemcf_destroy(demodASK32);
modemcf_destroy(demodASK64);
modemcf_destroy(demodASK128);
modemcf_destroy(demodASK256);
}
std::string ModemASK::getName() {
@ -108,7 +108,7 @@ void ModemASK::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodASK, input);
for (size_t i = 0, bufSize = input->data.size(); i < bufSize; i++) {
modem_demodulate(demodASK, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodASK, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodASK, 0.005f);

View File

@ -22,13 +22,13 @@ public:
private:
int cons;
modem demodASK;
modem demodASK2;
modem demodASK4;
modem demodASK8;
modem demodASK16;
modem demodASK32;
modem demodASK64;
modem demodASK128;
modem demodASK256;
modemcf demodASK;
modemcf demodASK2;
modemcf demodASK4;
modemcf demodASK8;
modemcf demodASK16;
modemcf demodASK32;
modemcf demodASK64;
modemcf demodASK128;
modemcf demodASK256;
};

View File

@ -4,7 +4,7 @@
#include "ModemBPSK.h"
ModemBPSK::ModemBPSK() : ModemDigital() {
demodBPSK = modem_create(LIQUID_MODEM_BPSK);
demodBPSK = modemcf_create(LIQUID_MODEM_BPSK);
}
ModemBase *ModemBPSK::factory() {
@ -12,7 +12,7 @@ ModemBase *ModemBPSK::factory() {
}
ModemBPSK::~ModemBPSK() {
modem_destroy(demodBPSK);
modemcf_destroy(demodBPSK);
}
std::string ModemBPSK::getName() {
@ -24,7 +24,7 @@ void ModemBPSK::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodBPSK, input);
for (size_t i = 0, bufSize=input->data.size(); i < bufSize; i++) {
modem_demodulate(demodBPSK, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodBPSK, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodBPSK, 0.005f);

View File

@ -16,5 +16,5 @@ public:
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) override;
private:
modem demodBPSK;
modemcf demodBPSK;
};

View File

@ -4,14 +4,14 @@
#include "ModemDPSK.h"
ModemDPSK::ModemDPSK() : ModemDigital() {
demodDPSK2 = modem_create(LIQUID_MODEM_DPSK2);
demodDPSK4 = modem_create(LIQUID_MODEM_DPSK4);
demodDPSK8 = modem_create(LIQUID_MODEM_DPSK8);
demodDPSK16 = modem_create(LIQUID_MODEM_DPSK16);
demodDPSK32 = modem_create(LIQUID_MODEM_DPSK32);
demodDPSK64 = modem_create(LIQUID_MODEM_DPSK64);
demodDPSK128 = modem_create(LIQUID_MODEM_DPSK128);
demodDPSK256 = modem_create(LIQUID_MODEM_DPSK256);
demodDPSK2 = modemcf_create(LIQUID_MODEM_DPSK2);
demodDPSK4 = modemcf_create(LIQUID_MODEM_DPSK4);
demodDPSK8 = modemcf_create(LIQUID_MODEM_DPSK8);
demodDPSK16 = modemcf_create(LIQUID_MODEM_DPSK16);
demodDPSK32 = modemcf_create(LIQUID_MODEM_DPSK32);
demodDPSK64 = modemcf_create(LIQUID_MODEM_DPSK64);
demodDPSK128 = modemcf_create(LIQUID_MODEM_DPSK128);
demodDPSK256 = modemcf_create(LIQUID_MODEM_DPSK256);
demodDPSK = demodDPSK2;
cons = 2;
}
@ -25,14 +25,14 @@ std::string ModemDPSK::getName() {
}
ModemDPSK::~ModemDPSK() {
modem_destroy(demodDPSK2);
modem_destroy(demodDPSK4);
modem_destroy(demodDPSK8);
modem_destroy(demodDPSK16);
modem_destroy(demodDPSK32);
modem_destroy(demodDPSK64);
modem_destroy(demodDPSK128);
modem_destroy(demodDPSK256);
modemcf_destroy(demodDPSK2);
modemcf_destroy(demodDPSK4);
modemcf_destroy(demodDPSK8);
modemcf_destroy(demodDPSK16);
modemcf_destroy(demodDPSK32);
modemcf_destroy(demodDPSK64);
modemcf_destroy(demodDPSK128);
modemcf_destroy(demodDPSK256);
}
ModemArgInfoList ModemDPSK::getSettings() {
@ -109,7 +109,7 @@ void ModemDPSK::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodDPSK, input);
for (size_t i = 0, bufSize = input->data.size(); i < bufSize; i++) {
modem_demodulate(demodDPSK, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodDPSK, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodDPSK, 0.005f);

View File

@ -22,14 +22,14 @@ public:
private:
int cons;
modem demodDPSK;
modem demodDPSK2;
modem demodDPSK4;
modem demodDPSK8;
modem demodDPSK16;
modem demodDPSK32;
modem demodDPSK64;
modem demodDPSK128;
modem demodDPSK256;
modemcf demodDPSK;
modemcf demodDPSK2;
modemcf demodDPSK4;
modemcf demodDPSK8;
modemcf demodDPSK16;
modemcf demodDPSK32;
modemcf demodDPSK64;
modemcf demodDPSK128;
modemcf demodDPSK256;
};

View File

@ -4,11 +4,11 @@
#include "ModemOOK.h"
ModemOOK::ModemOOK() : ModemDigital() {
demodOOK = modem_create(LIQUID_MODEM_OOK);
demodOOK = modemcf_create(LIQUID_MODEM_OOK);
}
ModemOOK::~ModemOOK() {
modem_destroy(demodOOK);
modemcf_destroy(demodOOK);
}
std::string ModemOOK::getName() {
@ -31,7 +31,7 @@ void ModemOOK::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodOOK, input);
for (size_t i = 0, bufSize=input->data.size(); i < bufSize; i++) {
modem_demodulate(demodOOK, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodOOK, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodOOK, 0.005f);

View File

@ -18,5 +18,5 @@ public:
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) override;
private:
modem demodOOK;
modemcf demodOOK;
};

View File

@ -4,14 +4,14 @@
#include "ModemPSK.h"
ModemPSK::ModemPSK() : ModemDigital() {
demodPSK2 = modem_create(LIQUID_MODEM_PSK2);
demodPSK4 = modem_create(LIQUID_MODEM_PSK4);
demodPSK8 = modem_create(LIQUID_MODEM_PSK8);
demodPSK16 = modem_create(LIQUID_MODEM_PSK16);
demodPSK32 = modem_create(LIQUID_MODEM_PSK32);
demodPSK64 = modem_create(LIQUID_MODEM_PSK64);
demodPSK128 = modem_create(LIQUID_MODEM_PSK128);
demodPSK256 = modem_create(LIQUID_MODEM_PSK256);
demodPSK2 = modemcf_create(LIQUID_MODEM_PSK2);
demodPSK4 = modemcf_create(LIQUID_MODEM_PSK4);
demodPSK8 = modemcf_create(LIQUID_MODEM_PSK8);
demodPSK16 = modemcf_create(LIQUID_MODEM_PSK16);
demodPSK32 = modemcf_create(LIQUID_MODEM_PSK32);
demodPSK64 = modemcf_create(LIQUID_MODEM_PSK64);
demodPSK128 = modemcf_create(LIQUID_MODEM_PSK128);
demodPSK256 = modemcf_create(LIQUID_MODEM_PSK256);
demodPSK = demodPSK2;
cons = 2;
}
@ -25,14 +25,14 @@ std::string ModemPSK::getName() {
}
ModemPSK::~ModemPSK() {
modem_destroy(demodPSK2);
modem_destroy(demodPSK4);
modem_destroy(demodPSK8);
modem_destroy(demodPSK16);
modem_destroy(demodPSK32);
modem_destroy(demodPSK64);
modem_destroy(demodPSK128);
modem_destroy(demodPSK256);
modemcf_destroy(demodPSK2);
modemcf_destroy(demodPSK4);
modemcf_destroy(demodPSK8);
modemcf_destroy(demodPSK16);
modemcf_destroy(demodPSK32);
modemcf_destroy(demodPSK64);
modemcf_destroy(demodPSK128);
modemcf_destroy(demodPSK256);
}
@ -110,7 +110,7 @@ void ModemPSK::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodPSK, input);
for (size_t i = 0, bufSize = input->data.size(); i < bufSize; i++) {
modem_demodulate(demodPSK, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodPSK, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodPSK, 0.005f);

View File

@ -22,14 +22,14 @@ public:
private:
int cons;
modem demodPSK;
modem demodPSK2;
modem demodPSK4;
modem demodPSK8;
modem demodPSK16;
modem demodPSK32;
modem demodPSK64;
modem demodPSK128;
modem demodPSK256;
modemcf demodPSK;
modemcf demodPSK2;
modemcf demodPSK4;
modemcf demodPSK8;
modemcf demodPSK16;
modemcf demodPSK32;
modemcf demodPSK64;
modemcf demodPSK128;
modemcf demodPSK256;
};

View File

@ -4,13 +4,13 @@
#include "ModemQAM.h"
ModemQAM::ModemQAM() : ModemDigital() {
demodQAM4 = modem_create(LIQUID_MODEM_QAM4);
demodQAM8 = modem_create(LIQUID_MODEM_QAM8);
demodQAM16 = modem_create(LIQUID_MODEM_QAM16);
demodQAM32 = modem_create(LIQUID_MODEM_QAM32);
demodQAM64 = modem_create(LIQUID_MODEM_QAM64);
demodQAM128 = modem_create(LIQUID_MODEM_QAM128);
demodQAM256 = modem_create(LIQUID_MODEM_QAM256);
demodQAM4 = modemcf_create(LIQUID_MODEM_QAM4);
demodQAM8 = modemcf_create(LIQUID_MODEM_QAM8);
demodQAM16 = modemcf_create(LIQUID_MODEM_QAM16);
demodQAM32 = modemcf_create(LIQUID_MODEM_QAM32);
demodQAM64 = modemcf_create(LIQUID_MODEM_QAM64);
demodQAM128 = modemcf_create(LIQUID_MODEM_QAM128);
demodQAM256 = modemcf_create(LIQUID_MODEM_QAM256);
demodQAM = demodQAM4;
cons = 4;
}
@ -24,13 +24,13 @@ std::string ModemQAM::getName() {
}
ModemQAM::~ModemQAM() {
modem_destroy(demodQAM4);
modem_destroy(demodQAM8);
modem_destroy(demodQAM16);
modem_destroy(demodQAM32);
modem_destroy(demodQAM64);
modem_destroy(demodQAM128);
modem_destroy(demodQAM256);
modemcf_destroy(demodQAM4);
modemcf_destroy(demodQAM8);
modemcf_destroy(demodQAM16);
modemcf_destroy(demodQAM32);
modemcf_destroy(demodQAM64);
modemcf_destroy(demodQAM128);
modemcf_destroy(demodQAM256);
}
ModemArgInfoList ModemQAM::getSettings() {
@ -102,7 +102,7 @@ void ModemQAM::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodQAM, input);
for (size_t i = 0, bufSize = input->data.size(); i < bufSize; i++) {
modem_demodulate(demodQAM, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodQAM, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodQAM, 0.5f);

View File

@ -22,14 +22,14 @@ public:
private:
int cons;
modem demodQAM;
modem demodQAM4;
modem demodQAM8;
modem demodQAM16;
modem demodQAM32;
modem demodQAM64;
modem demodQAM128;
modem demodQAM256;
modemcf demodQAM;
modemcf demodQAM4;
modemcf demodQAM8;
modemcf demodQAM16;
modemcf demodQAM32;
modemcf demodQAM64;
modemcf demodQAM128;
modemcf demodQAM256;
};

View File

@ -4,7 +4,7 @@
#include "ModemQPSK.h"
ModemQPSK::ModemQPSK() : ModemDigital() {
demodQPSK = modem_create(LIQUID_MODEM_QPSK);
demodQPSK = modemcf_create(LIQUID_MODEM_QPSK);
}
ModemBase *ModemQPSK::factory() {
@ -12,7 +12,7 @@ ModemBase *ModemQPSK::factory() {
}
ModemQPSK::~ModemQPSK() {
modem_destroy(demodQPSK);
modemcf_destroy(demodQPSK);
}
std::string ModemQPSK::getName() {
@ -24,7 +24,7 @@ void ModemQPSK::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodQPSK, input);
for (size_t i = 0, bufSize = input->data.size(); i < bufSize; i++) {
modem_demodulate(demodQPSK, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodQPSK, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodQPSK, 0.8f);

View File

@ -16,5 +16,5 @@ public:
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) override;
private:
modem demodQPSK;
modemcf demodQPSK;
};

View File

@ -4,8 +4,8 @@
#include "ModemSQAM.h"
ModemSQAM::ModemSQAM() : ModemDigital() {
demodSQAM32 = modem_create(LIQUID_MODEM_SQAM32);
demodSQAM128 = modem_create(LIQUID_MODEM_SQAM128);
demodSQAM32 = modemcf_create(LIQUID_MODEM_SQAM32);
demodSQAM128 = modemcf_create(LIQUID_MODEM_SQAM128);
demodSQAM = demodSQAM32;
cons = 32;
}
@ -15,8 +15,8 @@ ModemBase *ModemSQAM::factory() {
}
ModemSQAM::~ModemSQAM() {
modem_destroy(demodSQAM32);
modem_destroy(demodSQAM128);
modemcf_destroy(demodSQAM32);
modemcf_destroy(demodSQAM128);
}
std::string ModemSQAM::getName() {
@ -73,7 +73,7 @@ void ModemSQAM::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *
digitalStart(dkit, demodSQAM, input);
for (size_t i = 0, bufSize = input->data.size(); i < bufSize; i++) {
modem_demodulate(demodSQAM, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodSQAM, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodSQAM, 0.005f);

View File

@ -22,7 +22,7 @@ public:
private:
int cons;
modem demodSQAM;
modem demodSQAM32;
modem demodSQAM128;
modemcf demodSQAM;
modemcf demodSQAM32;
modemcf demodSQAM128;
};

View File

@ -4,7 +4,7 @@
#include "ModemST.h"
ModemST::ModemST() : ModemDigital() {
demodST = modem_create(LIQUID_MODEM_V29);
demodST = modemcf_create(LIQUID_MODEM_V29);
}
ModemBase *ModemST::factory() {
@ -16,7 +16,7 @@ std::string ModemST::getName() {
}
ModemST::~ModemST() {
modem_destroy(demodST);
modemcf_destroy(demodST);
}
void ModemST::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput * /* audioOut */) {
@ -24,7 +24,7 @@ void ModemST::demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput * /
digitalStart(dkit, demodST, input);
for (size_t i = 0, bufSize = input->data.size(); i < bufSize; i++) {
modem_demodulate(demodST, input->data[i], &demodOutputDataDigital[i]);
modemcf_demodulate(demodST, input->data[i], &demodOutputDataDigital[i]);
}
updateDemodulatorLock(demodST, 0.005f);

View File

@ -16,6 +16,6 @@ public:
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) override;
private:
modem demodST;
modemcf demodST;
};