- fixed crash
git-svn-id: http://moon:8086/svn/software/trunk/projects/mpsk_rx_gui@282 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -132,7 +132,7 @@ void IQPlaneComponent::trackerPointEnable(uint32_t id, juce::Colour color, cpx_t
|
|||||||
m_trackerPoints[id].point.setX(pos.real);
|
m_trackerPoints[id].point.setX(pos.real);
|
||||||
m_trackerPoints[id].point.setY(pos.imag);
|
m_trackerPoints[id].point.setY(pos.imag);
|
||||||
m_trackerPoints[id].size = size;
|
m_trackerPoints[id].size = size;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IQPlaneComponent::trackerPointDisable(uint32_t id)
|
void IQPlaneComponent::trackerPointDisable(uint32_t id)
|
||||||
|
|||||||
@@ -136,7 +136,9 @@ void MainComponent::run()
|
|||||||
{
|
{
|
||||||
const RVec &data = m_rxBuf.read();
|
const RVec &data = m_rxBuf.read();
|
||||||
|
|
||||||
|
m_lock.enter();
|
||||||
m_pReceiver->processPassband(data, data.size());
|
m_pReceiver->processPassband(data, data.size());
|
||||||
|
m_lock.exit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,6 +170,7 @@ void MainComponent::audioDeviceAboutToStart (AudioIODevice* device)
|
|||||||
|
|
||||||
m_pReceiver->setBufSize(bufferSize);
|
m_pReceiver->setBufSize(bufferSize);
|
||||||
m_pReceiverControl->setSamplerate(m_samplerate);
|
m_pReceiverControl->setSamplerate(m_samplerate);
|
||||||
|
m_rxBuf.resize(bufferSize);
|
||||||
startThread();
|
startThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-6
@@ -39,7 +39,7 @@ const uint32_t EQ_GROUP_DELAY = 16; // 16
|
|||||||
const radio_float_t DFE_MU = (radio_float_t)1E-3; // 1E-3
|
const radio_float_t DFE_MU = (radio_float_t)1E-3; // 1E-3
|
||||||
const radio_float_t CMA_MU = (radio_float_t)8E-2; // 8E-2
|
const radio_float_t CMA_MU = (radio_float_t)8E-2; // 8E-2
|
||||||
|
|
||||||
const radio_float_t TRACKER_MU = (radio_float_t)2E-2;
|
const radio_float_t TRACKER_MU = (radio_float_t)1E-2;
|
||||||
const radio_float_t TRACKER_EPS = (radio_float_t)1E-3;
|
const radio_float_t TRACKER_EPS = (radio_float_t)1E-3;
|
||||||
|
|
||||||
/***************************************************************/
|
/***************************************************************/
|
||||||
@@ -363,7 +363,6 @@ void Receiver::timerCallback()
|
|||||||
|
|
||||||
void Receiver::processPassband(RVec const &rf, uint32_t len)
|
void Receiver::processPassband(RVec const &rf, uint32_t len)
|
||||||
{
|
{
|
||||||
Eigen::internal::set_is_malloc_allowed(false);
|
|
||||||
const ScopedLock sl (m_lock);
|
const ScopedLock sl (m_lock);
|
||||||
|
|
||||||
uint32_t len_down;
|
uint32_t len_down;
|
||||||
@@ -400,7 +399,6 @@ void Receiver::processPassband(RVec const &rf, uint32_t len)
|
|||||||
len_down = m_firArmDown.process(m_basebandBuffer, m_passbandBuffer, len);
|
len_down = m_firArmDown.process(m_basebandBuffer, m_passbandBuffer, len);
|
||||||
processBaseband(m_basebandBuffer, len_down);
|
processBaseband(m_basebandBuffer, len_down);
|
||||||
|
|
||||||
Eigen::internal::set_is_malloc_allowed(true);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -517,11 +515,14 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len)
|
|||||||
{
|
{
|
||||||
if (m_params.agcMu_index == agc_state_acquisition)
|
if (m_params.agcMu_index == agc_state_acquisition)
|
||||||
{
|
{
|
||||||
AGC_Process(&agcBlind, CpxMagS(IQ_cpr), m_params.agcMu[m_params.agcMu_index], 1.0);
|
// AGC_Process(&agcBlind, CpxMagS(IQ_cpr), m_params.agcMu[m_params.agcMu_index], 1.0);
|
||||||
|
e_agc = m_pSymMapper->R2_cma - CpxMagS(m_trackers[0]);
|
||||||
|
AGC_Train(&agcBlind, e_agc, m_params.agcMu[m_params.agcMu_index]);
|
||||||
}
|
}
|
||||||
if (m_params.agcMu_index == agc_state_track)
|
if (m_params.agcMu_index == agc_state_track)
|
||||||
{
|
{
|
||||||
e_agc = CpxMagS(IQ_hard_last) - CpxMagS(IQ_cpr);
|
e_agc = m_pSymMapper->R2_cma - CpxMagS(m_trackers[0]);
|
||||||
|
// e_agc = CpxMagS(IQ_hard_last) - CpxMagS(IQ_cpr);
|
||||||
AGC_Train(&agcBlind, e_agc, m_params.agcMu[m_params.agcMu_index]);
|
AGC_Train(&agcBlind, e_agc, m_params.agcMu[m_params.agcMu_index]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -645,7 +646,7 @@ void Receiver::processBaseband(CVec const &iq, uint32_t len)
|
|||||||
m_trackers_[winner_i] = CpxAddS(m_trackers_[winner_i], CpxScaleRealS(winner_diff, winner_d*TRACKER_MU+TRACKER_EPS));
|
m_trackers_[winner_i] = CpxAddS(m_trackers_[winner_i], CpxScaleRealS(winner_diff, winner_d*TRACKER_MU+TRACKER_EPS));
|
||||||
for (int i=0; i < 4; i++)
|
for (int i=0; i < 4; i++)
|
||||||
{
|
{
|
||||||
m_trackers[i] = CpxAddS(CpxScaleRealS(m_trackers[i], 0.995f), CpxScaleRealS(m_trackers_[i], 0.005f));
|
m_trackers[i] = CpxAddS(CpxScaleRealS(m_trackers[i], 0.998f), CpxScaleRealS(m_trackers_[i], 0.002f));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Statistics
|
// Statistics
|
||||||
|
|||||||
Reference in New Issue
Block a user