25#pragma region HEADER_FILES
27#include "LTENR_Spectrum.h"
28#include "LTENR_AMCTable.h"
31#include "LTENR_Multiplexing.h"
32#include "LTENR_Spectrum.h"
37int LTENR_Mutiplexer_LDPC_SelectBaseGraph(
double TBS,
double R)
39 if (TBS <= 292 || (TBS <= 3824 && R <= 0.67) || (R <= 0.25))
return 2;
43void LTENR_Multiplexer_ComputeCodeBlockSize(
int LDPCG, UINT TBS, UINT* C, UINT* cbs, UINT* cbs_)
46 double Kb = 0, K = 0.0, Zc = 384;
56 if (TBS > 640) Kb = 10;
57 else if (TBS > 560) Kb = 9;
58 else if (TBS > 192) Kb = 8;
65 *C = ceil(TBS * 1.0 / (Kcb - L));
71 double K_ = (ceil(TBS / (8.0 * (*C)))) * 8.0;
73 int LDPC_len =
sizeof LDPCLiftingSizeTable /
sizeof LDPCLiftingSizeTable[0];
74 for (
int i = 0; i < LDPC_len; i++)
76 if (Kb * (
double)LDPCLiftingSizeTable[i].LiftingSize > K_)
78 Zc = LDPCLiftingSizeTable[i].LiftingSize;