Physical Downlink Control Channel (PDCCH)
This module implements the physical downlink control channel. The implementation of these modules is based on [3GPPTS38211pdcch].
PDCCH Transmitter
![Alternative text](../../../_images/PDCCHE2E.png)
- class toolkit5G.PhysicalChannels.PDCCH(K, E, rnti, nID)[source]
Generates the QPSK symbols processed by PBCH chain as per Section 7.3.2.5 of [3GPPTS38211pdcch]. The PBCH symbols generated by the chain can be directly inserted into SSB Grid.
- Parameters:
K (int) – Size of payload input to the PDCCH chain.
E (int) – Number of target bits for PDCCH chain (output of the Polar rate matcher).
rnti (int) – It defines the radio network temporary identifier (RNTI) \(\in \{1,2,..,65519\}\).
nID (int) – It is defined by pdcch-DMRS-ScramblingID \(\in \{0,1,2,..,65535\}\).
Important
All the parameters (
K
,E
,rnti
andnID
) are same for all the N payload vectors.- Input:
dciPayload ([N, K], np.int - denoting N PDCCH payload vectors each of size K.)
- Output:
[N, E/2], np.complex64 - denoting N PDCCH coded vectors of \(\frac{\text{E}}{2}\) QPSK symbols each.
- property dciBIL
Defines the output of Sub Block Interleaver. This is passed as input to Bit Selection.
- property dciCRC
Defines the output of Cyclic Redundancy Check. This is passed as input to RNTI Masking.
- property dciIBI
Defines the output of Input Block Interleaver. This is passed as input to Polar Encoder.
- property dciRM
Defines the output of Bit Selection. This is passed as input to PDCCH Scrambler.
- property dciRNTI
Defines the output of RNTI Masking. This is passed as input to Input Block Interleaver.
- property dciSCR
Defines the output of PDCCH Scrambler. This is passed as input to QPSK Symbol Mapper.
- property encBits
Defines the output of Polar Encoder. This is passed as input to Sub Block Interleaver.
PDCCH Receiver
![Alternative text](../../../_images/PDCCHRxE2E.png)
- class toolkit5G.PhysicalChannels.PDCCHDecoder(K, E, rnti, nID, decoderType='SC', demappingMethod='maxlog')[source]
Generates the QPSK symbols processed by PBCH chain as per Section 7.3.2.5 of [3GPPTS38211pdcch]. The PBCH symbols generated by the chain can be directly inserted into SSB Grid.
- Parameters:
K (int) – Size of payload input to the PDCCH chain.
E (int) – Number of target bits for PDCCH chain (output of the Polar rate matcher).
rnti (int) – It defines the radio network temporary identifier (RNTI) \(\in \{1,2,..,65519\}\).
nID (int) – It is defined by pdcch-DMRS-ScramblingID \(\in \{0,1,2,..,65535\}\).
polarDecType (str) – Defines the Polar Decoder Type used in PBCH receiver chain.
symbolDemapperType (str) – Defines the Symbol Demapper Type used for demapping QPSK symbols.
Important
All the parameters (
K
,E
,rnti
andnID
) are same for all the N payload vectors.- Input:
equalizedSymbols ([N, E/2], np.int - denoting N PDCCH vectors each having \(\frac{\text{E}}{2}\) equalized QPSK symbols.)
snr (float - Signal to noise ratio (SNR).)
- Output:
[N, K], np.complex64 - denoting N PDCCH decoded payload vectors of K bits each.
- property check
Defines the output of CRC Decoder and indicates whether DCI information is erroneous or not!
- property dciBits
Defines the output of CRC Decoder and PDCCH Decoder.
- property decodedBits
Defines the output of Polar Decoder. This is passed as input to Input Bit De-Interleaver.
- property dematchedBits
Defines the output of Bit De-Selection. This is passed as input to Input Bit De-Interleaver.
- property descrambledLLRs
Defines the output of Descrambler. This is passed as input to Input Block Interleaver.
- property ibDILBits
Defines the output of Input Bit De-Interleaver. This is passed as input to RNTI De-Masking.
- property llr
Defines the output of Log Likelihood Ratio (LLR). This is passed as input to Descrambler.
- property sbdBits
Defines the output of Sub Block De-Interleaver. This is passed as input to Polar Decoder.
- property unmaskedBits
Defines the output of RNTI De-Masking. This is passed as input to Cyclic Redundancy Check Decoder.
PDCCH Components
![Alternative text](../../../_images/PDCCHTxBlocks.png)
![Alternative text](../../../_images/PDCCHRxBlocks.png)
- References: