1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-04 23:14:47 -04:00

Audio CAT SISO: process mono signals as real signals plus fixes

This commit is contained in:
f4exb
2023-06-18 00:45:13 +02:00
parent 107583759f
commit ef0baa35b7
7 changed files with 65 additions and 47 deletions
@@ -31,8 +31,7 @@ AudioCATInputWorker::AudioCATInputWorker(SampleMIFifo* sampleFifo, AudioFifo *fi
m_log2Decim(0),
m_iqMapping(AudioCATSISOSettings::IQMapping::L),
m_convertBuffer(m_convBufSamples),
m_sampleFifo(sampleFifo),
m_quNCOPhase(0)
m_sampleFifo(sampleFifo)
{
}
@@ -60,31 +59,10 @@ void AudioCATInputWorker::workIQ(unsigned int nbRead)
{
for (uint32_t i = 0; i < nbRead; i++)
{
qint16 r = m_buf[i*2 + (m_iqMapping == AudioCATSISOSettings::IQMapping::R ? 1 : 0)]; // real sample
if (m_quNCOPhase == 0) // 0
{
m_buf[i*2] = r; // 1
m_buf[i*2+1] = 0; // 0
m_quNCOPhase = 1; // next phase
}
else if (m_quNCOPhase == 1) // -pi/2
{
m_buf[i*2] = 0; // 0
m_buf[i*2+1] = -r; // -1
m_quNCOPhase = 2; // next phase
}
else if (m_quNCOPhase == 2) // pi or -pi
{
m_buf[i*2] = -r; // -1
m_buf[i*2+1] = 0; // 0
m_quNCOPhase = 3; // next phase
}
else if (m_quNCOPhase == 3) // pi/2
{
m_buf[i*2] = 0; // 0
m_buf[i*2+1] = r; // 1
m_quNCOPhase = 0; // next phase
if (m_iqMapping == AudioCATSISOSettings::IQMapping::L) {
m_buf[i*2+1] = m_buf[i*2];
} else {
m_buf[i*2] = m_buf[i*2+1];
}
}
}