Transport Block Processing

Transport Block Processing: Transmitter

Example

#tbLen ---> Transport Block Size
numBatch = 5 #Number of User equipments
tblock   = np.random.randint(2,
                          size  = (numBatch, tbLen),
                          dtype = int) # Generate the bits for transport block

tbProcess  = TransportBlockTxProcessing() # Object for processing the transport blocks
crcTBlock  = tbProcess(tblock) # Attach the CRC based on 38.212
class toolkit5G.PhysicalChannels.PDSCH.TransportBlockTxProcessing[source]

This class performs Transport block CRC Attachment.

Input:

tBlock ([…, A], np.float32) – Transport Block of size A.

Output:

[…,B], np.float32 – CRC attached transport block of size A + L where L is the number of CRC bits.

Parameters:

crcType (str) – CRC type.

Transport Block Processing: Receiver

Example

#rTBwithCRC ---> Block of bits after Code Block Aggregation

rtbProcess     = TransportBlockRxProcessing() # Object for processing the transport blocks
rTBlock1, chk1 = rtbProcess(rTBwithCRC) # Remove the CRC based on 38.212
class toolkit5G.PhysicalChannels.PDSCH.TransportBlockRxProcessing[source]

This class performs CRC check and CRC parity removal from the decoded CRC attached transport block generated by codeblock aggregation.

Input:
  • rtBlock ([…, B], np.float32) – Transport Block of size B = A + L where A is the size of transport block and L is the size of CRC parity bits.

  • dtype, data type – Defaults to None. Defines the datatype for internal calculations and the output dtype.

Output:

[…,A], np.float32 – transport block of size A.

Parameters:

crcType (str) – CRC type.