aboutsummaryrefslogtreecommitdiffstats
path: root/src/TII.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/TII.cpp')
-rw-r--r--src/TII.cpp9
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;
}
}
}