Added phase inversion setting to M17 modulator
This commit is contained in:
parent
adc916dbca
commit
e93b461beb
|
|
@ -83,6 +83,13 @@ public:
|
||||||
*/
|
*/
|
||||||
void stop();
|
void stop();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invert baseband signal phase before output.
|
||||||
|
*
|
||||||
|
* @param status: if set to true signal phase is inverted.
|
||||||
|
*/
|
||||||
|
void invertPhase(const bool status);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -113,6 +120,7 @@ private:
|
||||||
streamId outStream; ///< Baseband output stream ID.
|
streamId outStream; ///< Baseband output stream ID.
|
||||||
pathId outPath; ///< Baseband output path ID.
|
pathId outPath; ///< Baseband output path ID.
|
||||||
bool txRunning; ///< Transmission running.
|
bool txRunning; ///< Transmission running.
|
||||||
|
bool invPhase; ///< Invert signal phase
|
||||||
|
|
||||||
#if defined(PLATFORM_MD3x0) || defined(PLATFORM_MDUV3x0)
|
#if defined(PLATFORM_MD3x0) || defined(PLATFORM_MDUV3x0)
|
||||||
PwmCompensator pwmComp;
|
PwmCompensator pwmComp;
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,12 @@ void M17Modulator::stop()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void M17Modulator::invertPhase(const bool status)
|
||||||
|
{
|
||||||
|
invPhase = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void M17Modulator::symbolsToBaseband()
|
void M17Modulator::symbolsToBaseband()
|
||||||
{
|
{
|
||||||
memset(idleBuffer, 0x00, M17_FRAME_SAMPLES * sizeof(stream_sample_t));
|
memset(idleBuffer, 0x00, M17_FRAME_SAMPLES * sizeof(stream_sample_t));
|
||||||
|
|
@ -156,8 +162,8 @@ void M17Modulator::symbolsToBaseband()
|
||||||
elem = M17::rrc_48k(elem * M17_RRC_GAIN) - M17_RRC_OFFSET;
|
elem = M17::rrc_48k(elem * M17_RRC_GAIN) - M17_RRC_OFFSET;
|
||||||
#if defined(PLATFORM_MD3x0) || defined(PLATFORM_MDUV3x0)
|
#if defined(PLATFORM_MD3x0) || defined(PLATFORM_MDUV3x0)
|
||||||
elem = pwmComp(elem);
|
elem = pwmComp(elem);
|
||||||
elem *= -1.0f; // Invert signal phase
|
|
||||||
#endif
|
#endif
|
||||||
|
if(invPhase) elem = 0.0f - elem; // Invert signal phase
|
||||||
idleBuffer[i] = static_cast< int16_t >(elem);
|
idleBuffer[i] = static_cast< int16_t >(elem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue