Files
mpsk_rx_gui/Source/TimingGeneratorGardner.hpp
T
2022-07-08 14:39:06 +02:00

40 lines
826 B
C++

#ifndef TIMINGGENERATORGARDNER_HPP
#define TIMINGGENERATORGARDNER_HPP
#pragma once
#include <cpp/radio/interpolation/TimingGenerator.hpp>
#include <radio/synchronization.h>
#include <radio/statistics.h>
namespace Radio
{
// Symbol timing recovery
class TimingGeneratorGardner : public Interpolation::TimingGenerator
{
public:
TimingGeneratorGardner();
virtual ~TimingGeneratorGardner() = default;
void reset();
void loopFilterSetup(lead_lag_filter_t *pFilter, lead_lag_coeff_t *pCoeff);
bool process(ComplexScalar const &iq);
radio_float_t getMuVar();
private:
// Loop-Filter
lead_lag_filter_t *filter;
lead_lag_coeff_t *coeff;
// Gardner Symbol Timing Recovery
str_t m_SymbolTimingRevovery;
sl_var_t sl_var;
bool is_time;
radio_float_t m_omega;
};
} // Radio
#endif // TIMINGGENERATORGARDNER_HPP