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, \ DOTPROD() DOTPROD(_create)(TC * _v, \
unsigned int _n); \ 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 */ \ /* Re-create dot product object of potentially a different length with */ \
/* different coefficients. If the length of the dot product object does */ \ /* 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 */ \ /* _q : old dotprod object */ \
/* _v : coefficients array [size: _n x 1] */ \ /* _v : coefficients array [size: _n x 1] */ \
/* _n : dotprod length, _n > 0 */ \ /* _n : dotprod length, _n > 0 */ \
@ -810,6 +816,17 @@ DOTPROD() DOTPROD(_recreate)(DOTPROD() _q, \
TC * _v, \ TC * _v, \
unsigned int _n); \ 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 */ \ /* Destroy dotprod object, freeing all internal memory */ \
void DOTPROD(_destroy)(DOTPROD() _q); \ void DOTPROD(_destroy)(DOTPROD() _q); \
\ \
@ -2687,10 +2704,13 @@ void FIRFILT(_execute_block)(FIRFILT() _q, \
unsigned int FIRFILT(_get_length)(FIRFILT() _q); \ unsigned int FIRFILT(_get_length)(FIRFILT() _q); \
\ \
/* Get pointer to coefficients array */ \ /* Get pointer to coefficients array */ \
const TC * FIRFILT(_get_coefficients)(FIRFILT() _q); \
\
/* Copy internal coefficients to external buffer */ \
/* _q : filter object */ \ /* _q : filter object */ \
/* _h : pointer to output coefficients array [size: _n x 1] */ \ /* _h : pointer to output coefficients array [size: _n x 1] */ \
int FIRFILT(_get_coefficients)(FIRFILT() _q, \ int FIRFILT(_copy_coefficients)(FIRFILT() _q, \
TC * _h); \ TC * _h); \
\ \
/* Compute complex frequency response of filter object */ \ /* Compute complex frequency response of filter object */ \
/* _q : filter object */ \ /* _q : filter object */ \
@ -2721,6 +2741,93 @@ LIQUID_FIRFILT_DEFINE_API(LIQUID_FIRFILT_MANGLE_CCCF,
liquid_float_complex, liquid_float_complex,
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 // FIR Hilbert transform
// 2:1 real-to-complex decimator // 2:1 real-to-complex decimator
@ -3851,6 +3958,18 @@ void RESAMP2(_reset)(RESAMP2() _q); \
/* Get resampler filter delay (semi-length m) */ \ /* Get resampler filter delay (semi-length m) */ \
unsigned int RESAMP2(_get_delay)(RESAMP2() _q); \ 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 */ \ /* Execute resampler as half-band filter for a single input sample */ \
/* \(x\) where \(y_0\) is the output of the effective low-pass filter, */ \ /* \(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. */ \ /* 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 DDS_MANGLE_CCCF(name) LIQUID_CONCAT(dds_cccf,name)
#define LIQUID_DDS_DEFINE_API(DDS,TO,TC,TI) \ #define LIQUID_DDS_DEFINE_API(DDS,TO,TC,TI) \
typedef struct DDS(_s) * DDS(); \ typedef struct DDS(_s) * DDS(); \
\ \
/* create digital synthesizer object */ \ /* Create digital synthesizer object */ \
DDS() DDS(_create)(unsigned int _num_stages, \ /* _num_stages : number of half-band stages, _num_stages > 0 */ \
float _fc, \ /* _fc : signal relative center frequency, _fc in [-0.5,0.5] */ \
float _bw, \ /* _bw : signal relative bandwidth, _bw in (0,1) */ \
float _As); \ /* _As : filter stop-band attenuation (dB), _As > 0 */ \
\ DDS() DDS(_create)(unsigned int _num_stages, \
/* destroy digital synthesizer object */ \ float _fc, \
void DDS(_destroy)(DDS() _q); \ float _bw, \
\ float _As); \
/* print synthesizer object internals to stdout */ \ \
void DDS(_print)(DDS() _q); \ /* Destroy digital synthesizer object */ \
\ int DDS(_destroy)(DDS() _q); \
/* reset synthesizer object internals */ \ \
void DDS(_reset)(DDS() _q); \ /* Print synthesizer object internals */ \
\ int DDS(_print)(DDS() _q); \
void DDS(_decim_execute)(DDS() _q, \ \
TI * _x, \ /* Reset synthesizer object internals */ \
TO * _y); \ int DDS(_reset)(DDS() _q); \
void DDS(_interp_execute)(DDS() _q, \ \
TI _x, \ /* Get number of half-band states in DDS object */ \
TO * _y); \ 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_DDS_DEFINE_API(DDS_MANGLE_CCCF,
liquid_float_complex, liquid_float_complex,
@ -4513,31 +4654,31 @@ FIRFARROW() FIRFARROW(_create)(unsigned int _h_len, \
float _As); \ float _As); \
\ \
/* Destroy firfarrow object, freeing all internal memory */ \ /* Destroy firfarrow object, freeing all internal memory */ \
void FIRFARROW(_destroy)(FIRFARROW() _q); \ int FIRFARROW(_destroy)(FIRFARROW() _q); \
\ \
/* Print firfarrow object's internal properties */ \ /* Print firfarrow object's internal properties */ \
void FIRFARROW(_print)(FIRFARROW() _q); \ int FIRFARROW(_print)(FIRFARROW() _q); \
\ \
/* Reset firfarrow object's internal state */ \ /* Reset firfarrow object's internal state */ \
void FIRFARROW(_reset)(FIRFARROW() _q); \ int FIRFARROW(_reset)(FIRFARROW() _q); \
\ \
/* Push sample into firfarrow object */ \ /* Push sample into firfarrow object */ \
/* _q : firfarrow object */ \ /* _q : firfarrow object */ \
/* _x : input sample */ \ /* _x : input sample */ \
void FIRFARROW(_push)(FIRFARROW() _q, \ int FIRFARROW(_push)(FIRFARROW() _q, \
TI _x); \ TI _x); \
\ \
/* Set fractional delay of firfarrow object */ \ /* Set fractional delay of firfarrow object */ \
/* _q : firfarrow object */ \ /* _q : firfarrow object */ \
/* _mu : fractional sample delay, -1 <= _mu <= 1 */ \ /* _mu : fractional sample delay, -1 <= _mu <= 1 */ \
void FIRFARROW(_set_delay)(FIRFARROW() _q, \ int FIRFARROW(_set_delay)(FIRFARROW() _q, \
float _mu); \ float _mu); \
\ \
/* Execute firfarrow internal dot product */ \ /* Execute firfarrow internal dot product */ \
/* _q : firfarrow object */ \ /* _q : firfarrow object */ \
/* _y : output sample pointer */ \ /* _y : output sample pointer */ \
void FIRFARROW(_execute)(FIRFARROW() _q, \ int FIRFARROW(_execute)(FIRFARROW() _q, \
TO * _y); \ TO * _y); \
\ \
/* Execute firfarrow filter on block of samples. */ \ /* Execute firfarrow filter on block of samples. */ \
/* In-place operation is permitted (the input and output arrays may */ \ /* 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] */ \ /* _x : input array, [size: _n x 1] */ \
/* _n : input, output array size */ \ /* _n : input, output array size */ \
/* _y : output array, [size: _n x 1] */ \ /* _y : output array, [size: _n x 1] */ \
void FIRFARROW(_execute_block)(FIRFARROW() _q, \ int FIRFARROW(_execute_block)(FIRFARROW() _q, \
TI * _x, \ TI * _x, \
unsigned int _n, \ unsigned int _n, \
TO * _y); \ TO * _y); \
\ \
/* Get length of firfarrow object (number of filter taps) */ \ /* Get length of firfarrow object (number of filter taps) */ \
unsigned int FIRFARROW(_get_length)(FIRFARROW() _q); \ unsigned int FIRFARROW(_get_length)(FIRFARROW() _q); \
@ -4557,16 +4698,16 @@ unsigned int FIRFARROW(_get_length)(FIRFARROW() _q); \
/* Get coefficients of firfarrow object */ \ /* Get coefficients of firfarrow object */ \
/* _q : firfarrow object */ \ /* _q : firfarrow object */ \
/* _h : output coefficients pointer, [size: _h_len x 1] */ \ /* _h : output coefficients pointer, [size: _h_len x 1] */ \
void FIRFARROW(_get_coefficients)(FIRFARROW() _q, \ int FIRFARROW(_get_coefficients)(FIRFARROW() _q, \
float * _h); \ float * _h); \
\ \
/* Compute complex frequency response */ \ /* Compute complex frequency response */ \
/* _q : filter object */ \ /* _q : filter object */ \
/* _fc : frequency */ \ /* _fc : frequency */ \
/* _H : output frequency response */ \ /* _H : output frequency response */ \
void FIRFARROW(_freqresponse)(FIRFARROW() _q, \ int FIRFARROW(_freqresponse)(FIRFARROW() _q, \
float _fc, \ float _fc, \
liquid_float_complex * _H); \ liquid_float_complex * _H); \
\ \
/* Compute group delay [samples] */ \ /* Compute group delay [samples] */ \
/* _q : filter object */ \ /* _q : filter object */ \
@ -4944,6 +5085,10 @@ int framesync64_debug_enable(framesync64 _q);
int framesync64_debug_disable(framesync64 _q); int framesync64_debug_disable(framesync64 _q);
int framesync64_debug_print(framesync64 _q, const char * _filename); 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 // frame data statistics
int framesync64_reset_framedatastats(framesync64 _q); int framesync64_reset_framedatastats(framesync64 _q);
framedatastats_s framesync64_get_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; typedef struct gmskframegen_s * gmskframegen;
// create GMSK frame generator // 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_destroy (gmskframegen _q);
int gmskframegen_is_assembled (gmskframegen _q); int gmskframegen_is_assembled (gmskframegen _q);
int gmskframegen_print (gmskframegen _q); int gmskframegen_print (gmskframegen _q);
@ -5242,9 +5392,10 @@ int gmskframegen_assemble (gmskframegen _q,
crc_scheme _check, crc_scheme _check,
fec_scheme _fec0, fec_scheme _fec0,
fec_scheme _fec1); 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); unsigned int gmskframegen_getframelen(gmskframegen _q);
int gmskframegen_write_samples(gmskframegen _q,
liquid_float_complex * _y);
// write samples of assembled frame // write samples of assembled frame
// _q : frame generator object // _q : frame generator object
@ -5262,9 +5413,15 @@ int gmskframegen_write(gmskframegen _q,
typedef struct gmskframesync_s * gmskframesync; typedef struct gmskframesync_s * gmskframesync;
// create GMSK frame synchronizer // create GMSK frame synchronizer
// _k : samples/symbol
// _m : filter delay (symbols)
// _BT : excess bandwidth factor
// _callback : callback function // _callback : callback function
// _userdata : user data pointer passed to 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); void * _userdata);
int gmskframesync_destroy(gmskframesync _q); int gmskframesync_destroy(gmskframesync _q);
int gmskframesync_print(gmskframesync _q); int gmskframesync_print(gmskframesync _q);
@ -5279,12 +5436,6 @@ int gmskframesync_reset_framedatastats(gmskframesync _q);
framedatastats_s gmskframesync_get_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 // DSSS frame generator
// //
@ -5670,6 +5821,9 @@ int qdetector_cccf_reset (qdetector_cccf _q);
void * qdetector_cccf_execute(qdetector_cccf _q, void * qdetector_cccf_execute(qdetector_cccf _q,
liquid_float_complex _x); 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) // set detection threshold (should be between 0 and 1, good starting point is 0.5)
int qdetector_cccf_set_threshold(qdetector_cccf _q, int qdetector_cccf_set_threshold(qdetector_cccf _q,
float _threshold); float _threshold);
@ -5769,6 +5923,18 @@ int SYMSTREAM(_reset)(SYMSTREAM() _q); \
int SYMSTREAM(_set_scheme)(SYMSTREAM() _q, \ int SYMSTREAM(_set_scheme)(SYMSTREAM() _q, \
int _ms); \ 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 */ \ /* Get internal linear modulation scheme */ \
int SYMSTREAM(_get_scheme)(SYMSTREAM() _q); \ int SYMSTREAM(_get_scheme)(SYMSTREAM() _q); \
\ \
@ -5779,6 +5945,9 @@ int SYMSTREAM(_set_gain)(SYMSTREAM() _q, \
/* Get internal linear gain (before interpolation) */ \ /* Get internal linear gain (before interpolation) */ \
float SYMSTREAM(_get_gain)(SYMSTREAM() _q); \ float SYMSTREAM(_get_gain)(SYMSTREAM() _q); \
\ \
/* Get delay in samples */ \
unsigned int SYMSTREAM(_get_delay)(SYMSTREAM() _q); \
\
/* Write block of samples to output buffer */ \ /* Write block of samples to output buffer */ \
/* _q : synchronizer object */ \ /* _q : synchronizer object */ \
/* _buf : output buffer [size: _buf_len x 1] */ \ /* _buf : output buffer [size: _buf_len x 1] */ \
@ -5826,6 +5995,18 @@ int SYMSTREAMR(_print)(SYMSTREAMR() _q); \
/* Reset symstream internal state */ \ /* Reset symstream internal state */ \
int SYMSTREAMR(_reset)(SYMSTREAMR() _q); \ 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 */ \ /* Set internal linear modulation scheme, leaving the filter parameters */ \
/* (interpolator) unmodified */ \ /* (interpolator) unmodified */ \
int SYMSTREAMR(_set_scheme)(SYMSTREAMR() _q, \ int SYMSTREAMR(_set_scheme)(SYMSTREAMR() _q, \
@ -5841,6 +6022,9 @@ int SYMSTREAMR(_set_gain)(SYMSTREAMR() _q, \
/* Get internal linear gain (before interpolation) */ \ /* Get internal linear gain (before interpolation) */ \
float SYMSTREAMR(_get_gain)(SYMSTREAMR() _q); \ float SYMSTREAMR(_get_gain)(SYMSTREAMR() _q); \
\ \
/* Get delay in samples */ \
float SYMSTREAMR(_get_delay)(SYMSTREAMR() _q); \
\
/* Write block of samples to output buffer */ \ /* Write block of samples to output buffer */ \
/* _q : synchronizer object */ \ /* _q : synchronizer object */ \
/* _buf : output buffer [size: _buf_len x 1] */ \ /* _buf : output buffer [size: _buf_len x 1] */ \
@ -6074,12 +6258,30 @@ int SYMTRACK(_print)(SYMTRACK() _q); \
/* Reset symtrack internal state */ \ /* Reset symtrack internal state */ \
int SYMTRACK(_reset)(SYMTRACK() _q); \ 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 */ \ /* Set symtrack modulation scheme */ \
/* _q : symtrack object */ \ /* _q : symtrack object */ \
/* _ms : modulation scheme, _ms(LIQUID_MODEM_BPSK) */ \ /* _ms : modulation scheme, _ms(LIQUID_MODEM_BPSK) */ \
int SYMTRACK(_set_modscheme)(SYMTRACK() _q, \ int SYMTRACK(_set_modscheme)(SYMTRACK() _q, \
int _ms); \ int _ms); \
\ \
/* Get symtrack internal bandwidth */ \
float SYMTRACK(_get_bandwidth)(SYMTRACK() _q); \
\
/* Set symtrack internal bandwidth */ \ /* Set symtrack internal bandwidth */ \
/* _q : symtrack object */ \ /* _q : symtrack object */ \
/* _bw : tracking bandwidth, _bw > 0 */ \ /* _bw : tracking bandwidth, _bw > 0 */ \
@ -7177,7 +7379,7 @@ int liquid_unpack_soft_bits(unsigned int _sym_in,
// Linear modem // Linear modem
// //
#define LIQUID_MODEM_MANGLE_FLOAT(name) LIQUID_CONCAT(modem,name) #define LIQUID_MODEM_MANGLE_FLOAT(name) LIQUID_CONCAT(modemcf,name)
// Macro : MODEM // Macro : MODEM
// MODEM : name-mangling macro // MODEM : name-mangling macro
@ -7786,6 +7988,15 @@ int FIRPFBCH2(_reset)(FIRPFBCH2() _q); \
/* print firpfbch2 object internals */ \ /* print firpfbch2 object internals */ \
int FIRPFBCH2(_print)(FIRPFBCH2() _q); \ 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 */ \ /* execute filterbank channelizer */ \
/* LIQUID_ANALYZER: input: M/2, output: M */ \ /* LIQUID_ANALYZER: input: M/2, output: M */ \
/* LIQUID_SYNTHESIZER: input: M, output: M/2 */ \ /* LIQUID_SYNTHESIZER: input: M, output: M/2 */ \

View File

@ -443,6 +443,7 @@ filter_objects := \
filter_includes := \ filter_includes := \
src/filter/src/autocorr.c \ src/filter/src/autocorr.c \
src/filter/src/dds.c \ src/filter/src/dds.c \
src/filter/src/fdelay.c \
src/filter/src/fftfilt.c \ src/filter/src/fftfilt.c \
src/filter/src/firdecim.c \ src/filter/src/firdecim.c \
src/filter/src/firfarrow.c \ src/filter/src/firfarrow.c \
@ -485,6 +486,7 @@ src/filter/src/rrcos.o : %.o : %.c $(include_headers)
filter_autotests := \ filter_autotests := \
src/filter/tests/fdelay_rrrf_autotest.c \
src/filter/tests/fftfilt_xxxf_autotest.c \ src/filter/tests/fftfilt_xxxf_autotest.c \
src/filter/tests/filter_crosscorr_autotest.c \ src/filter/tests/filter_crosscorr_autotest.c \
src/filter/tests/firdecim_xxxf_autotest.c \ src/filter/tests/firdecim_xxxf_autotest.c \
@ -665,10 +667,14 @@ framing_autotests := \
src/framing/tests/detector_autotest.c \ src/framing/tests/detector_autotest.c \
src/framing/tests/flexframesync_autotest.c \ src/framing/tests/flexframesync_autotest.c \
src/framing/tests/framesync64_autotest.c \ src/framing/tests/framesync64_autotest.c \
src/framing/tests/gmskframe_autotest.c \
src/framing/tests/ofdmflexframe_autotest.c \ src/framing/tests/ofdmflexframe_autotest.c \
src/framing/tests/qdetector_cccf_autotest.c \ src/framing/tests/qdetector_cccf_autotest.c \
src/framing/tests/qpacketmodem_autotest.c \ src/framing/tests/qpacketmodem_autotest.c \
src/framing/tests/qpilotsync_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 := \ framing_benchmarks := \
@ -822,7 +828,7 @@ modem_objects := \
src/modem/src/fskmod.o \ src/modem/src/fskmod.o \
src/modem/src/gmskdem.o \ src/modem/src/gmskdem.o \
src/modem/src/gmskmod.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_utilities.o \
src/modem/src/modem_apsk_const.o \ src/modem/src/modem_apsk_const.o \
src/modem/src/modem_arb_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/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/gmskmod.o : %.o : %.c $(include_headers)
src/modem/src/gmskdem.o : %.o : %.c $(include_headers) src/modem/src/gmskdem.o : %.o : %.c $(include_headers)
src/modem/src/ampmodem.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_autotest.c \
src/modem/tests/modem_demodsoft_autotest.c \ src/modem/tests/modem_demodsoft_autotest.c \
src/modem/tests/modem_demodstats_autotest.c \ src/modem/tests/modem_demodstats_autotest.c \
src/modem/tests/modem_utilities_autotest.c \
modem_benchmarks := \ modem_benchmarks := \
@ -1343,7 +1350,7 @@ clean-check:
## ##
readme.c.example.c : README.md 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} readme.c.example.o : %.o : %.c ${include_headers}
${CC} ${CPPFLAGS} ${CFLAGS} $< -c -o $@ ${CC} ${CPPFLAGS} ${CFLAGS} $< -c -o $@
@ -1352,7 +1359,7 @@ readme.c.example : % : %.o ${ARCHIVE_LIB}
${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS} ${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS}
readme.cc.example.cc : README.md 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} readme.cc.example.o : %.o : %.cc ${include_headers}
${CXX} ${CPPFLAGS} ${CXXFLAGS} $< -c -o $@ ${CXX} ${CPPFLAGS} ${CXXFLAGS} $< -c -o $@
@ -1488,6 +1495,7 @@ example_programs := \
examples/error_handling_example \ examples/error_handling_example \
examples/fec_example \ examples/fec_example \
examples/fec_soft_example \ examples/fec_soft_example \
examples/fdelay_rrrf_example \
examples/fft_example \ examples/fft_example \
examples/fftfilt_crcf_example \ examples/fftfilt_crcf_example \
examples/firdecim_crcf_example \ examples/firdecim_crcf_example \
@ -1608,7 +1616,9 @@ example_programs := \
examples/symsync_crcf_example \ examples/symsync_crcf_example \
examples/symsync_crcf_full_example \ examples/symsync_crcf_full_example \
examples/symsync_crcf_kaiser_example \ examples/symsync_crcf_kaiser_example \
examples/symstreamcf_delay_example \
examples/symstreamcf_example \ examples/symstreamcf_example \
examples/symstreamrcf_delay_example \
examples/symstreamrcf_example \ examples/symstreamrcf_example \
examples/symtrack_cccf_example \ examples/symtrack_cccf_example \
examples/wdelayf_example \ examples/wdelayf_example \

View File

@ -443,6 +443,7 @@ filter_objects := \
filter_includes := \ filter_includes := \
src/filter/src/autocorr.c \ src/filter/src/autocorr.c \
src/filter/src/dds.c \ src/filter/src/dds.c \
src/filter/src/fdelay.c \
src/filter/src/fftfilt.c \ src/filter/src/fftfilt.c \
src/filter/src/firdecim.c \ src/filter/src/firdecim.c \
src/filter/src/firfarrow.c \ src/filter/src/firfarrow.c \
@ -485,6 +486,7 @@ src/filter/src/rrcos.o : %.o : %.c $(include_headers)
filter_autotests := \ filter_autotests := \
src/filter/tests/fdelay_rrrf_autotest.c \
src/filter/tests/fftfilt_xxxf_autotest.c \ src/filter/tests/fftfilt_xxxf_autotest.c \
src/filter/tests/filter_crosscorr_autotest.c \ src/filter/tests/filter_crosscorr_autotest.c \
src/filter/tests/firdecim_xxxf_autotest.c \ src/filter/tests/firdecim_xxxf_autotest.c \
@ -665,10 +667,14 @@ framing_autotests := \
src/framing/tests/detector_autotest.c \ src/framing/tests/detector_autotest.c \
src/framing/tests/flexframesync_autotest.c \ src/framing/tests/flexframesync_autotest.c \
src/framing/tests/framesync64_autotest.c \ src/framing/tests/framesync64_autotest.c \
src/framing/tests/gmskframe_autotest.c \
src/framing/tests/ofdmflexframe_autotest.c \ src/framing/tests/ofdmflexframe_autotest.c \
src/framing/tests/qdetector_cccf_autotest.c \ src/framing/tests/qdetector_cccf_autotest.c \
src/framing/tests/qpacketmodem_autotest.c \ src/framing/tests/qpacketmodem_autotest.c \
src/framing/tests/qpilotsync_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 := \ framing_benchmarks := \
@ -822,7 +828,7 @@ modem_objects := \
src/modem/src/fskmod.o \ src/modem/src/fskmod.o \
src/modem/src/gmskdem.o \ src/modem/src/gmskdem.o \
src/modem/src/gmskmod.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_utilities.o \
src/modem/src/modem_apsk_const.o \ src/modem/src/modem_apsk_const.o \
src/modem/src/modem_arb_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/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/gmskmod.o : %.o : %.c $(include_headers)
src/modem/src/gmskdem.o : %.o : %.c $(include_headers) src/modem/src/gmskdem.o : %.o : %.c $(include_headers)
src/modem/src/ampmodem.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_autotest.c \
src/modem/tests/modem_demodsoft_autotest.c \ src/modem/tests/modem_demodsoft_autotest.c \
src/modem/tests/modem_demodstats_autotest.c \ src/modem/tests/modem_demodstats_autotest.c \
src/modem/tests/modem_utilities_autotest.c \
modem_benchmarks := \ modem_benchmarks := \
@ -1343,7 +1350,7 @@ clean-check:
## ##
readme.c.example.c : README.md 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} readme.c.example.o : %.o : %.c ${include_headers}
${CC} ${CPPFLAGS} ${CFLAGS} $< -c -o $@ ${CC} ${CPPFLAGS} ${CFLAGS} $< -c -o $@
@ -1352,7 +1359,7 @@ readme.c.example : % : %.o ${ARCHIVE_LIB}
${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS} ${CC} ${CFLAGS} ${LDFLAGS} $^ -o $@ ${LIBS}
readme.cc.example.cc : README.md 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} readme.cc.example.o : %.o : %.cc ${include_headers}
${CXX} ${CPPFLAGS} ${CXXFLAGS} $< -c -o $@ ${CXX} ${CPPFLAGS} ${CXXFLAGS} $< -c -o $@
@ -1488,6 +1495,7 @@ example_programs := \
examples/error_handling_example \ examples/error_handling_example \
examples/fec_example \ examples/fec_example \
examples/fec_soft_example \ examples/fec_soft_example \
examples/fdelay_rrrf_example \
examples/fft_example \ examples/fft_example \
examples/fftfilt_crcf_example \ examples/fftfilt_crcf_example \
examples/firdecim_crcf_example \ examples/firdecim_crcf_example \
@ -1608,7 +1616,9 @@ example_programs := \
examples/symsync_crcf_example \ examples/symsync_crcf_example \
examples/symsync_crcf_full_example \ examples/symsync_crcf_full_example \
examples/symsync_crcf_kaiser_example \ examples/symsync_crcf_kaiser_example \
examples/symstreamcf_delay_example \
examples/symstreamcf_example \ examples/symstreamcf_example \
examples/symstreamrcf_delay_example \
examples/symstreamrcf_example \ examples/symstreamrcf_example \
examples/symtrack_cccf_example \ examples/symtrack_cccf_example \
examples/wdelayf_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(); return currentDemodLock.load();
} }
void ModemDigital::updateDemodulatorLock(modem mod, float sensitivity) { void ModemDigital::updateDemodulatorLock(modemcf mod, float sensitivity) {
setDemodulatorLock(modem_get_demodulator_evm(mod) <= 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(); size_t bufSize = input->data.size();
if (demodOutputDataDigital.size() != bufSize) { 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 ENABLE_DIGITAL_LAB
if (digitalOut && outStream.str().length()) { if (digitalOut && outStream.str().length()) {
digitalOut->write(outStream.str()); digitalOut->write(outStream.str());

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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