diff --git a/radio/tests/interpolation/farrow/test.cpp b/radio/tests/interpolation/farrow/test.cpp index c4a0de7..0165a09 100644 --- a/radio/tests/interpolation/farrow/test.cpp +++ b/radio/tests/interpolation/farrow/test.cpp @@ -78,8 +78,8 @@ void wavSave(const char *pName, WAVEHEADER const &format, CVec &iq) } -const radio_float_t STR_GAIN_LEAD_AQU = (radio_float_t)2.00E-3; // 2E-3 -const radio_float_t STR_GAIN_LAG_AQU = (radio_float_t)5.00E-7; // 5E-7 +const radio_float_t STR_GAIN_LEAD_AQU = (radio_float_t)2.00E-2; // 2E-3 +const radio_float_t STR_GAIN_LAG_AQU = (radio_float_t)5.00E-4; // 5E-7 const radio_float_t STR_GAIN_LEAD_TRK = (radio_float_t)4.00E-6; // 8E-4 const radio_float_t STR_GAIN_LAG_TRK = (radio_float_t)1.00E-9; // 1E-6 @@ -92,23 +92,18 @@ class TimingGeneratorGardner : public Interpolation::TimingGenerator // Gardner Symbol Timing Recovery str_t m_SymbolTimingRevovery; bool is_time; - radio_float_t m_omega; + radio_float_t m_dOmega; public: TimingGeneratorGardner() : Interpolation::TimingGenerator() { - LeadLagInit(&loop_filter_str, 1.0); + LeadLagInit(&loop_filter_str, 0.01); LeadLagSetCoeff(&str_loopfilter_coeff, STR_GAIN_LEAD_AQU, STR_GAIN_LAG_AQU); STRGardnerInit(&m_SymbolTimingRevovery); is_time = true; } - void setOmega(radio_float_t omega) - { - LeadLagInit(&loop_filter_str, omega); - m_omega = omega; - } virtual ~TimingGeneratorGardner() = default; void process(ComplexScalar const &iq) @@ -116,16 +111,15 @@ class TimingGeneratorGardner : public Interpolation::TimingGenerator // @2 x symbolrate // Symbol timing recovery radio_float_t vd = STRGardnerProcess(&m_SymbolTimingRevovery, toCpx(iq)); - if (is_time) { // @1 x symbolrate - cout << "Vd = " << vd << ", omega = " << m_omega << ", mu = " << getMu() << endl; - m_omega = LeadLagProcess(&loop_filter_str, &str_loopfilter_coeff, vd); + cout << "Vd = " << vd << ", omega = " << m_dOmega << ", mu = " << getMu() << endl; + m_dOmega = LeadLagProcess(&loop_filter_str, &str_loopfilter_coeff, vd); } is_time = not is_time; - update(m_omega); + update(m_dOmega); } };