- Use C++ Equalizer DFE and CMA

git-svn-id: http://moon:8086/svn/software/trunk/projects/mpsk_rx_gui@91 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
2014-12-20 17:57:31 +00:00
parent 2bf059a84a
commit 8943af5976
3 changed files with 111 additions and 115 deletions
+17 -23
View File
@@ -14,6 +14,11 @@
#include "JuceHeader.h"
#include "LogComponent.h"
#include <radio/FirComplex.hpp>
#include <radio/Equalizer.hpp>
using namespace Radio;
// ---------------------------------------------------
#define NUM_PASSBAND_SAMPLES_PER_SYM 4
#define NUM_BASEBAND_SAMPLES_PER_SYM 2
@@ -241,10 +246,8 @@ public:
virtual void dfeReset() = 0;
virtual void dfeOffUpdateFromCma() = 0;
virtual void dfeOnUpdateFromDfeOff() = 0;
virtual const uint32_t getNumWeightsCMA() = 0;
virtual const cpx_t* getWeightsCMA() = 0;
virtual const uint32_t getNumWeightsDFE() = 0;
virtual const cpx_t* getWeightsDFE() = 0;
virtual const CVec& getWeightsCMA() = 0;
virtual const CVec& getWeightsDFE() = 0;
};
@@ -334,13 +337,15 @@ private:
// Equalizer
// Decision directed EQ
dfe_cpx_t m_dfe_on;
dfe_cpx_t m_dfe_off;
Equalizer::Dfe m_dfe_on2;
Equalizer::Dfe m_dfe_off2;
cpx_t m_dfe_e_cpx;
// Blind EQ
cma_t m_cma;
Equalizer::Cma m_cma2;
// Symbol demapper
sym_map_t *m_pSymMapper;
@@ -423,27 +428,16 @@ private:
(void)size;
}
const uint32_t getNumWeightsCMA() override
const CVec& getWeightsCMA() override
{
return m_cma.eq.N;
return m_cma2.getWeights();
}
const cpx_t* getWeightsCMA() override
const CVec& getWeightsDFE() override
{
return m_cma.eq.pW;
return m_dfe_off2.getWeights();
}
const uint32_t getNumWeightsDFE() override
{
return m_dfe_off.eq.N;
}
const cpx_t* getWeightsDFE() override
{
return m_dfe_off.eq.pW;
}
trace_t m_trace;
};