mirror of
https://github.com/g4klx/MMDVM.git
synced 2026-05-07 13:37:48 +00:00
Add new interpolation for most modes and start positioning for P25 and YSF.
This commit is contained in:
parent
18ec4bafb6
commit
1bb474dfef
10 changed files with 212 additions and 136 deletions
|
|
@ -84,16 +84,28 @@ void CDMRIdleRX::processSample(q15_t sample)
|
|||
q15_t max = -16000;
|
||||
q15_t min = 16000;
|
||||
|
||||
uint32_t mask = 0x00800000U;
|
||||
for (uint8_t i = 0U; i < DMR_SYNC_LENGTH_SYMBOLS; i++, mask >>= 1) {
|
||||
bool b = (DMR_MS_DATA_SYNC_SYMBOLS & mask) == mask;
|
||||
for (uint8_t i = 0U; i < DMR_SYNC_LENGTH_SYMBOLS; i++) {
|
||||
q15_t val = m_buffer[ptr];
|
||||
|
||||
if (m_buffer[ptr] > max)
|
||||
max = m_buffer[ptr];
|
||||
if (m_buffer[ptr] < min)
|
||||
min = m_buffer[ptr];
|
||||
if (val > max)
|
||||
max = val;
|
||||
if (val < min)
|
||||
min = val;
|
||||
|
||||
corr += b ? -m_buffer[ptr] : m_buffer[ptr];
|
||||
switch (DMR_MS_DATA_SYNC_SYMBOLS_VALUES[i]) {
|
||||
case +3:
|
||||
corr -= (val + val + val);
|
||||
break;
|
||||
case +1:
|
||||
corr -= val;
|
||||
break;
|
||||
case -1:
|
||||
corr += val;
|
||||
break;
|
||||
default: // -3
|
||||
corr += (val + val + val);
|
||||
break;
|
||||
}
|
||||
|
||||
ptr += DMR_RADIO_SYMBOL_LENGTH;
|
||||
if (ptr >= DMR_FRAME_LENGTH_SAMPLES)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue