2021-12-15 22:09:47 +01:00
|
|
|
#ifndef _COSTAS_
|
|
|
|
#define _COSTAS_
|
|
|
|
|
|
|
|
#include <complex>
|
2021-12-15 23:43:41 +01:00
|
|
|
|
2021-12-15 22:09:47 +01:00
|
|
|
#include <liquid/liquid.h>
|
|
|
|
|
|
|
|
class CostasBeaconSync {
|
2021-12-15 23:24:42 +01:00
|
|
|
private:
|
|
|
|
float alpha;
|
|
|
|
float beta;
|
2021-12-15 22:09:47 +01:00
|
|
|
|
2021-12-15 23:24:42 +01:00
|
|
|
float min_freq;
|
|
|
|
float max_freq;
|
2021-12-15 22:09:47 +01:00
|
|
|
|
2021-12-15 23:24:42 +01:00
|
|
|
float loop_freq;
|
|
|
|
float loop_phase;
|
2021-12-15 22:09:47 +01:00
|
|
|
|
2021-12-15 23:24:42 +01:00
|
|
|
firfilt_crcf bandpass;
|
2021-12-15 22:09:47 +01:00
|
|
|
|
2021-12-29 14:21:10 +01:00
|
|
|
bool locked;
|
|
|
|
|
2021-12-15 22:09:47 +01:00
|
|
|
public:
|
2021-12-28 16:13:04 +01:00
|
|
|
CostasBeaconSync(float, float, float);
|
|
|
|
~CostasBeaconSync();
|
2021-12-15 22:09:47 +01:00
|
|
|
|
|
|
|
std::complex<float> work(liquid_float_complex);
|
2021-12-29 14:21:10 +01:00
|
|
|
|
|
|
|
bool has_lock();
|
2021-12-15 22:09:47 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|