mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-03-22 04:08:36 -04:00
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:
parent
0248e5aeac
commit
0831aa262c
BIN
external/liquid-dsp/gcc/32/libliquid.a
vendored
BIN
external/liquid-dsp/gcc/32/libliquid.a
vendored
Binary file not shown.
BIN
external/liquid-dsp/gcc/32/libliquid.dll
vendored
BIN
external/liquid-dsp/gcc/32/libliquid.dll
vendored
Binary file not shown.
BIN
external/liquid-dsp/gcc/64/libliquid.a
vendored
BIN
external/liquid-dsp/gcc/64/libliquid.a
vendored
Binary file not shown.
BIN
external/liquid-dsp/gcc/64/libliquid.dll
vendored
BIN
external/liquid-dsp/gcc/64/libliquid.dll
vendored
Binary file not shown.
323
external/liquid-dsp/include/liquid/liquid.h
vendored
323
external/liquid-dsp/include/liquid/liquid.h
vendored
@ -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 */ \
|
||||
|
18
external/liquid-dsp/makefile.mingw32
vendored
18
external/liquid-dsp/makefile.mingw32
vendored
@ -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 \
|
||||
|
18
external/liquid-dsp/makefile.mingw64
vendored
18
external/liquid-dsp/makefile.mingw64
vendored
@ -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 \
|
||||
|
4506
external/liquid-dsp/msvc/32/libliquid.def
vendored
4506
external/liquid-dsp/msvc/32/libliquid.def
vendored
File diff suppressed because it is too large
Load Diff
BIN
external/liquid-dsp/msvc/32/libliquid.dll
vendored
BIN
external/liquid-dsp/msvc/32/libliquid.dll
vendored
Binary file not shown.
BIN
external/liquid-dsp/msvc/32/libliquid.lib
vendored
BIN
external/liquid-dsp/msvc/32/libliquid.lib
vendored
Binary file not shown.
4506
external/liquid-dsp/msvc/64/libliquid.def
vendored
4506
external/liquid-dsp/msvc/64/libliquid.def
vendored
File diff suppressed because it is too large
Load Diff
BIN
external/liquid-dsp/msvc/64/libliquid.dll
vendored
BIN
external/liquid-dsp/msvc/64/libliquid.dll
vendored
Binary file not shown.
BIN
external/liquid-dsp/msvc/64/libliquid.lib
vendored
BIN
external/liquid-dsp/msvc/64/libliquid.lib
vendored
Binary file not shown.
BIN
external/msvc/x64/libwinpthread-1.dll
vendored
BIN
external/msvc/x64/libwinpthread-1.dll
vendored
Binary file not shown.
BIN
external/msvc/x86/libgcc_s_dw2-1.dll
vendored
BIN
external/msvc/x86/libgcc_s_dw2-1.dll
vendored
Binary file not shown.
BIN
external/msvc/x86/libwinpthread-1.dll
vendored
BIN
external/msvc/x86/libwinpthread-1.dll
vendored
Binary file not shown.
@ -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());
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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);
|
||||
|
||||
|
@ -16,5 +16,5 @@ public:
|
||||
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) override;
|
||||
|
||||
private:
|
||||
modem demodBPSK;
|
||||
modemcf demodBPSK;
|
||||
};
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -18,5 +18,5 @@ public:
|
||||
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) override;
|
||||
|
||||
private:
|
||||
modem demodOOK;
|
||||
modemcf demodOOK;
|
||||
};
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -16,5 +16,5 @@ public:
|
||||
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) override;
|
||||
|
||||
private:
|
||||
modem demodQPSK;
|
||||
modemcf demodQPSK;
|
||||
};
|
||||
|
@ -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);
|
||||
|
||||
|
@ -22,7 +22,7 @@ public:
|
||||
|
||||
private:
|
||||
int cons;
|
||||
modem demodSQAM;
|
||||
modem demodSQAM32;
|
||||
modem demodSQAM128;
|
||||
modemcf demodSQAM;
|
||||
modemcf demodSQAM32;
|
||||
modemcf demodSQAM128;
|
||||
};
|
||||
|
@ -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);
|
||||
|
||||
|
@ -16,6 +16,6 @@ public:
|
||||
void demodulate(ModemKit *kit, ModemIQData *input, AudioThreadInput *audioOut) override;
|
||||
|
||||
private:
|
||||
modem demodST;
|
||||
modemcf demodST;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user