From 44815e7dc1bc4adfa2a5062faf149357f8a0500d Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Wed, 22 Jun 2022 05:59:05 +0000 Subject: [PATCH] - removed SymClock - Tracker tracks pre-eq data - ACQ and TRK state are now set manually by GUI git-svn-id: http://moon:8086/svn/software/trunk/projects/mpsk_rx_gui@1053 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- Source/Receiver.cpp | 53 ++++++++++++++++++++++++++++++--------------- Source/Receiver.hpp | 1 - 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/Source/Receiver.cpp b/Source/Receiver.cpp index c92d762..12e1401 100644 --- a/Source/Receiver.cpp +++ b/Source/Receiver.cpp @@ -184,9 +184,6 @@ void Receiver::init() initDefaultParams(); m_ReceiverEnable = false; - ClockInit(&m_symClock, NUM_BASEBAND_SAMPLES_PER_SYM); - ClockSetPhase(&m_symClock, 1); - // FIR Arm filters initFilterArm(); @@ -524,6 +521,12 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len) IQ_eq_in = IQ_cpr; + // ----------------------------------------------------- + // Peak-Amplitude Tracker + // @1 x symbolrate + // ----------------------------------------------------- + m_tracker.process(toComplexScalar(IQ_eq_in)); + // ----------------------------------------------------- // Equalizer Process samples // @1 x symbolrate @@ -627,11 +630,18 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len) // Update IQ_H IQ_hard_last = IQ_hard; - // ----------------------------------------------------- - // Lock-detector development - // @1 x symbolrate - // ----------------------------------------------------- - m_tracker.process(toComplexScalar(IQ_soft)); + // Call frame receiver with current symbol + m_frameReceiver.process((symbol_t)sym); + + // Feed symbol buffer + m_pSymbolBuffer[m_numSymsInBuffer++] = sym_err; + + // Update per-symbol statistic + SymStatUpDate(&m_sym_stat, sym, &sym_err); + if (m_pDataListener) + { + m_pDataListener->receiverDataChanged(this); + } // Statistics #ifndef DISABLE_UNUSED_STATISTICS @@ -657,15 +667,6 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len) SlidingVarProcess(&m_statistics.noise_dfe_on, e_dfe_on); SlidingVarProcess(&m_statistics.noise_dfe_off, e_dfe_off); - // ----------------------------------------------------- - m_pSymbolBuffer[m_numSymsInBuffer++] = sym_err; - // Update per-symbol statistic - SymStatUpDate(&m_sym_stat, sym, &sym_err); - m_frameReceiver.process((symbol_t)sym); - if (m_pDataListener) - { - m_pDataListener->receiverDataChanged(this); - } } } @@ -806,6 +807,24 @@ void Receiver::setParams(const params_t ¶ms) initSymbolMapper(); } m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this); + + m_params.cprState = cpr_state_acquisition; + if (params.cpr_loopfilter_coeff_index == 1) + { + m_params.cprState = cpr_state_track; + } + + m_params.strState = str_state_acquisition; + if (params.str_loopfilter_coeff_index == 1) + { + m_params.strState = str_state_track; + } + + m_params.agc_state = agc_state_acquisition; + if (params.agcMu_index == 1) + { + m_params.agc_state = agc_state_track; + } } params_t& Receiver::getParams() diff --git a/Source/Receiver.hpp b/Source/Receiver.hpp index 7c2bde3..6a6cae4 100644 --- a/Source/Receiver.hpp +++ b/Source/Receiver.hpp @@ -355,7 +355,6 @@ private: uint32_t m_numSymsInBuffer; uint32_t m_bufsize; bool m_ReceiverEnable; - sample_clock_t m_symClock; pfd_t m_pfdCpr; // Filter