mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-02 06:04:39 -04:00
FCD: implemented decimation
This commit is contained in:
@@ -59,6 +59,11 @@ void FCDProPlusThread::stopWork()
|
||||
wait();
|
||||
}
|
||||
|
||||
void FCDProPlusThread::setLog2Decimation(unsigned int log2_decim)
|
||||
{
|
||||
m_log2Decim = log2_decim;
|
||||
}
|
||||
|
||||
void FCDProPlusThread::run()
|
||||
{
|
||||
m_running = true;
|
||||
@@ -78,6 +83,27 @@ void FCDProPlusThread::work(unsigned int n_items)
|
||||
{
|
||||
uint32_t nbRead = m_fcdFIFO->read((unsigned char *) m_buf, n_items); // number of samples
|
||||
SampleVector::iterator it = m_convertBuffer.begin();
|
||||
m_decimators.decimate1(&it, m_buf, 2*nbRead);
|
||||
|
||||
switch (m_log2Decim)
|
||||
{
|
||||
case 0:
|
||||
m_decimators.decimate1(&it, m_buf, 2*nbRead);
|
||||
break;
|
||||
case 1:
|
||||
m_decimators.decimate2_cen(&it, m_buf, 2*nbRead);
|
||||
break;
|
||||
case 2:
|
||||
m_decimators.decimate4_cen(&it, m_buf, 2*nbRead);
|
||||
break;
|
||||
case 3:
|
||||
m_decimators.decimate8_cen(&it, m_buf, 2*nbRead);
|
||||
break;
|
||||
case 4:
|
||||
m_decimators.decimate16_cen(&it, m_buf, 2*nbRead);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
m_sampleFifo->write(m_convertBuffer.begin(), it);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user