- added test button

- added sample slip for performance investigation
This commit is contained in:
2022-07-09 12:02:13 +02:00
parent 9bb585fc88
commit 9641608efc
4 changed files with 64 additions and 9 deletions
+13
View File
@@ -270,6 +270,11 @@ ControlComponent::ControlComponent (ReceiverInterface *pReceiverControlListener,
m_buttonResetReset->setButtonText (TRANS("Reset")); m_buttonResetReset->setButtonText (TRANS("Reset"));
m_buttonResetReset->addListener (this); m_buttonResetReset->addListener (this);
addAndMakeVisible (m_buttonTest = new TextButton ("Test"));
m_buttonTest->setTooltip (TRANS("Test button"));
m_buttonTest->setButtonText (TRANS("Test"));
m_buttonTest->addListener (this);
addAndMakeVisible (m_entryAgcMu_0 = new TextEditor ("AGC Adaption Rate 0")); addAndMakeVisible (m_entryAgcMu_0 = new TextEditor ("AGC Adaption Rate 0"));
m_entryAgcMu_0->setTooltip (TRANS("AGC Adaption Rate 0")); m_entryAgcMu_0->setTooltip (TRANS("AGC Adaption Rate 0"));
m_entryAgcMu_0->setMultiLine (false); m_entryAgcMu_0->setMultiLine (false);
@@ -782,6 +787,7 @@ ControlComponent::~ControlComponent()
m_labelNoiseStr = nullptr; m_labelNoiseStr = nullptr;
m_labelSymbolReceivedCount = nullptr; m_labelSymbolReceivedCount = nullptr;
m_buttonResetReset = nullptr; m_buttonResetReset = nullptr;
m_buttonTest = nullptr;
m_entryAgcMu_0 = nullptr; m_entryAgcMu_0 = nullptr;
toggleButtonCmaTrainingEnable = nullptr; toggleButtonCmaTrainingEnable = nullptr;
toggleButtonDfeTrainingEnable = nullptr; toggleButtonDfeTrainingEnable = nullptr;
@@ -1200,6 +1206,7 @@ void ControlComponent::resized()
m_labelNoiseStr->setBounds (576, 624, 58, 24); m_labelNoiseStr->setBounds (576, 624, 58, 24);
m_labelSymbolReceivedCount->setBounds (544, 288, 90, 24); m_labelSymbolReceivedCount->setBounds (544, 288, 90, 24);
m_buttonResetReset->setBounds (512, 792, 64, 24); m_buttonResetReset->setBounds (512, 792, 64, 24);
m_buttonTest->setBounds (512, 692, 64, 24);
m_entryAgcMu_0->setBounds (560, 104, 64, 24); m_entryAgcMu_0->setBounds (560, 104, 64, 24);
toggleButtonCmaTrainingEnable->setBounds (24, 320, 64, 24); toggleButtonCmaTrainingEnable->setBounds (24, 320, 64, 24);
toggleButtonDfeTrainingEnable->setBounds (280, 320, 64, 24); toggleButtonDfeTrainingEnable->setBounds (280, 320, 64, 24);
@@ -1329,6 +1336,12 @@ void ControlComponent::buttonClicked (Button* buttonThatWasClicked)
m_pReceiverControlListener->reset(); m_pReceiverControlListener->reset();
//[/UserButtonCode_m_buttonResetReset] //[/UserButtonCode_m_buttonResetReset]
} }
else if (buttonThatWasClicked == m_buttonTest)
{
//[UserButtonCode_m_buttonResetReset] -- add your button handler code here..
m_pReceiverControlListener->test();
//[/UserButtonCode_m_buttonResetReset]
}
else if (buttonThatWasClicked == toggleButtonCmaTrainingEnable) else if (buttonThatWasClicked == toggleButtonCmaTrainingEnable)
{ {
//[UserButtonCode_toggleButtonCmaTrainingEnable] -- add your button handler code here.. //[UserButtonCode_toggleButtonCmaTrainingEnable] -- add your button handler code here..
+1
View File
@@ -115,6 +115,7 @@ private:
ScopedPointer<Label> m_labelNoiseStr; ScopedPointer<Label> m_labelNoiseStr;
ScopedPointer<Label> m_labelSymbolReceivedCount; ScopedPointer<Label> m_labelSymbolReceivedCount;
ScopedPointer<TextButton> m_buttonResetReset; ScopedPointer<TextButton> m_buttonResetReset;
ScopedPointer<TextButton> m_buttonTest;
ScopedPointer<TextEditor> m_entryAgcMu_0; ScopedPointer<TextEditor> m_entryAgcMu_0;
ScopedPointer<ToggleButton> toggleButtonCmaTrainingEnable; ScopedPointer<ToggleButton> toggleButtonCmaTrainingEnable;
ScopedPointer<ToggleButton> toggleButtonDfeTrainingEnable; ScopedPointer<ToggleButton> toggleButtonDfeTrainingEnable;
+35 -9
View File
@@ -51,6 +51,7 @@ Receiver::Receiver(LogHandler *pLogHandler)
, m_frameReceiver() , m_frameReceiver()
, m_pSymMapper(0) , m_pSymMapper(0)
, m_tracker(1.0 - 5.0/EQ_UPD_INTERVAL) , m_tracker(1.0 - 5.0/EQ_UPD_INTERVAL)
, m_is_slip(0)
{ {
m_params.numBitsPerSymbol = 2; m_params.numBitsPerSymbol = 2;
m_params.samplerate = 48000; m_params.samplerate = 48000;
@@ -344,12 +345,6 @@ void Receiver::timerCallback()
m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this); m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this);
} }
// printf("CMA\n");
// cout << m_cma2.getWeights() << endl;
printf("m_timingGenerator\n");
cout << m_timingGenerator.getMu() << endl;
cout << m_timingGenerator.getMuVar() << endl;
} }
void Receiver::processPassband(RVec const &rf, size_t len) void Receiver::processPassband(RVec const &rf, size_t len)
@@ -391,15 +386,30 @@ void Receiver::processPassband(RVec const &rf, size_t len)
} }
#ifndef DISABLE_UNUSED_STATISTICS #ifndef DISABLE_UNUSED_STATISTICS
SlidingVarProcessV(&m_statistics.RF, rf_noise.data(), len); SlidingVarProcessV(&m_statistics.RF, rf_noise.data(), rf_noise.size());
#endif #endif
// Digital Down Converter // Digital Down Converter
// @samplerate // @samplerate
m_nco_ddc.mixRealComplexV(m_passbandBuffer, rf_noise, RealScalar(2)/*m_params.agcGain[0]*/, len); m_nco_ddc.mixRealComplexV(m_passbandBuffer, rf_noise, RealScalar(2)/*m_params.agcGain[0]*/, rf_noise.size());
CVec rf_duc;
rf_duc.reserve(m_passbandBuffer.size());
size_t len_eff = 0;
for (auto sample : m_passbandBuffer)
{
if (is_slip())
{
printf("isSlip()\n");
continue;
}
rf_duc.resize(len_eff+1);
rf_duc[len_eff++] = sample;
}
// Arm Filtering and downsampling // Arm Filtering and downsampling
len_down = m_firArmDown.process(m_basebandBuffer, m_passbandBuffer, len); len_down = m_firArmDown.process(m_basebandBuffer, rf_duc, rf_duc.size());
processBaseband(m_basebandBuffer, len_down); processBaseband(m_basebandBuffer, len_down);
@@ -878,6 +888,22 @@ void Receiver::reset()
m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this); m_statusListeners.call(&ReceiverStatusListener::receiverStatusChanged, this);
} }
void Receiver::test()
{
const ScopedLock sl (m_lock);
printf("CMA\n");
cout << m_cma2.getWeights() << endl;
printf("m_timingGenerator\n");
cout << "MU: " << m_timingGenerator.getMu() << endl;
cout << "Var: " << m_timingGenerator.getMuVar() << endl;
m_ReceiverEnable = false;
m_is_slip = 1;
m_ReceiverEnable = true;
}
void Receiver::statisticsReset() void Receiver::statisticsReset()
{ {
m_frameReceiver.resetStats(); m_frameReceiver.resetStats();
+15
View File
@@ -246,6 +246,7 @@ public:
virtual const status_t& getStatus() = 0; virtual const status_t& getStatus() = 0;
virtual cpx_t getTracker(uint32 index) = 0; virtual cpx_t getTracker(uint32 index) = 0;
virtual void reset() = 0; virtual void reset() = 0;
virtual void test() = 0;
virtual void statisticsReset() = 0; virtual void statisticsReset() = 0;
virtual void strReset() = 0; virtual void strReset() = 0;
virtual void cprReset() = 0; virtual void cprReset() = 0;
@@ -412,6 +413,7 @@ private:
params_t& getParams() override; params_t& getParams() override;
status_t& getStatus() override; status_t& getStatus() override;
void reset() override; void reset() override;
void test() override;
void strReset() override; void strReset() override;
void cprReset() override; void cprReset() override;
void dfeReset() override; void dfeReset() override;
@@ -430,6 +432,19 @@ private:
{ {
return m_dfe_off2.getWeights(); return m_dfe_off2.getWeights();
} }
size_t m_is_slip;
bool is_slip()
{
bool result = m_is_slip;
if (m_is_slip)
{
m_is_slip--;
}
return result;
}
}; };
#endif // _RECEIVER_H_ #endif // _RECEIVER_H_