diff options
-rw-r--r-- | src/TII.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/TII.cpp b/src/TII.cpp index b329cdb..2d7429f 100644 --- a/src/TII.cpp +++ b/src/TII.cpp @@ -189,6 +189,8 @@ int TII::process(Buffer* dataIn, Buffer* dataOut) complexf* in = reinterpret_cast<complexf*>(dataIn->getData()); complexf* out = reinterpret_cast<complexf*>(dataOut->getData()); + constexpr float normalisation = 0.144337f; // 1/sqrt(48); + /* Normalise the TII carrier power according to ETSI TR 101 496-3 * Clause 5.4.2.2 Paragraph 7: * @@ -196,8 +198,7 @@ int TII::process(Buffer* dataIn, Buffer* dataOut) * > is 1:48 for all Modes, so that the signal power in a TII symbol is * > 16 dB below the signal power of the other symbols. * - * This is because we only enable 32 out of 1536 carriers, not because - * every carrier is lower power. + * Divide by sqrt(48) because I and Q are separately normalised. */ for (size_t i = 0; i < m_Acp.size(); i++) { /* See header file for an explanation of the old variant. @@ -218,8 +219,8 @@ int TII::process(Buffer* dataIn, Buffer* dataOut) * and fuse the two conditionals together: */ if (m_Acp[i]) { - out[i] = in[i]; - out[i+1] = (m_conf.old_variant ? in[i+1] : in[i]); + out[i] = in[i] * normalisation; + out[i+1] = (m_conf.old_variant ? in[i+1] : in[i]) * normalisation; } } } |