mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2025-09-07 15:47:49 -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.
273
external/liquid-dsp/include/liquid/liquid.h
vendored
273
external/liquid-dsp/include/liquid/liquid.h
vendored
@ -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,9 +2704,12 @@ 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 */ \
|
||||||
@ -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. */ \
|
||||||
@ -4359,25 +4478,47 @@ LIQUID_MSRESAMP_DEFINE_API(LIQUID_MSRESAMP_MANGLE_CCCF,
|
|||||||
#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 */ \
|
||||||
|
/* _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, \
|
DDS() DDS(_create)(unsigned int _num_stages, \
|
||||||
float _fc, \
|
float _fc, \
|
||||||
float _bw, \
|
float _bw, \
|
||||||
float _As); \
|
float _As); \
|
||||||
\
|
\
|
||||||
/* destroy digital synthesizer object */ \
|
/* Destroy digital synthesizer object */ \
|
||||||
void DDS(_destroy)(DDS() _q); \
|
int DDS(_destroy)(DDS() _q); \
|
||||||
\
|
\
|
||||||
/* print synthesizer object internals to stdout */ \
|
/* Print synthesizer object internals */ \
|
||||||
void DDS(_print)(DDS() _q); \
|
int DDS(_print)(DDS() _q); \
|
||||||
\
|
\
|
||||||
/* reset synthesizer object internals */ \
|
/* Reset synthesizer object internals */ \
|
||||||
void DDS(_reset)(DDS() _q); \
|
int DDS(_reset)(DDS() _q); \
|
||||||
\
|
\
|
||||||
void DDS(_decim_execute)(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, \
|
TI * _x, \
|
||||||
TO * _y); \
|
TO * _y); \
|
||||||
void DDS(_interp_execute)(DDS() _q, \
|
\
|
||||||
|
/* 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, \
|
TI _x, \
|
||||||
TO * _y); \
|
TO * _y); \
|
||||||
|
|
||||||
@ -4513,30 +4654,30 @@ 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. */ \
|
||||||
@ -4546,7 +4687,7 @@ 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); \
|
||||||
@ -4557,14 +4698,14 @@ 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); \
|
||||||
\
|
\
|
||||||
@ -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 */ \
|
||||||
|
18
external/liquid-dsp/makefile.mingw32
vendored
18
external/liquid-dsp/makefile.mingw32
vendored
@ -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 \
|
||||||
|
18
external/liquid-dsp/makefile.mingw64
vendored
18
external/liquid-dsp/makefile.mingw64
vendored
@ -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 \
|
||||||
|
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();
|
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());
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
int cons;
|
int cons;
|
||||||
modem demodSQAM;
|
modemcf demodSQAM;
|
||||||
modem demodSQAM32;
|
modemcf demodSQAM32;
|
||||||
modem demodSQAM128;
|
modemcf demodSQAM128;
|
||||||
};
|
};
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user