Downlink Shared Channel
The physical downlink shared channel (PDSCH) is used to transmit the downlink shared channel (DL-SCH). The DL-SCH is the transport channel used for transmitting downlink data (a transport block).
DL-SCH Coding
To create the PDSCH payload, a transport block of length A, denoted by , undergoes transport block CRC attachment, code block segmentation and code block CRC attachment, channel coding, rate matching and code block concatenation. The coding steps are illustrated in this block diagram.
Transport Block CRC Attachment
A cyclic redundancy check (CRC) is used for error detection in transport blocks. The entire transport block is used to calculate the CRC parity bits. The transport block is divided by a cyclic generator polynomial, described as in section 5.1.1 of [1], to generate 24 parity bits. These parity bits are then appended to the end of the transport block.
Code Block Segmentation and CRC Attachment
The input block of bits to the code segmentation block is denoted by , where . In LTE, a minimum and maximum code block size is specified, so the block sizes are compatible with the block sizes supported by the turbo interleaver.
The minimum code block size is 40 bits
The maximum code block size, denoted by Z, is 6144 bits
If the length of the input block, B, is greater than the maximum code block size, the input block is segmented.
When the input block is segmented, it is divided into smaller blocks, where L is 24. Therefore, code blocks.
Each code block has a 24-bit CRC attached to the end, calculated as described in Transport Block CRC Attachment, but the generator polynomial, described as in section 5.1.1 of [1] is used.
If required, the algorithm appends filler bits to the start of the segment so that the code block sizes match a set of valid turbo interleaver block sizes. The process is shown in this figure.
If no segmentation is needed, only one code block is produced. If B is less than the minimum size, filler bits (zeros) are added to the beginning of the code block to achieve a total of 40 bits.
Channel Coding
The code blocks undergo turbo coding. Turbo coding is a form of forward error correction that improves the channel capacity by adding redundant information. The turbo encoder scheme used is a Parallel Concatenated Convolutional Code (PCCC) with two recursive convolutional coders and a “contention-free” Quadratic Permutation Polynomial (QPP) interleaver, as shown in this figure.
The output of the encoder is three streams, , , and , to achieve a code rate of 1/3.
Constituent Encoders. The input to the first constituent encoder is the input bit stream to the turbo coding block. The input to the second constituent encoder is the output of the QPP interleaver, a permutation of the input sequence.
Each encoder outputs two sequences, called the systematic sequence and the parity sequence. The systematic sequences are denoted by and the parity sequences are denoted by . Only one of the systematic sequences () is used as an output because the other () is simply a permutation of the chosen systematic sequence. The transfer function for each constituent encoder is given by the following equation.
The first element, 1, represents the systematic output transfer function. The second element, , represents the recursive convolutional output transfer function.
The output for each sequence can be calculated using the transfer function.
The encoder is initialized with all zeros. If the code block
to be encoded is the 0-th and filler bits (F) are
used, the input to the encoder ()
is set to zero and the output ()
and ()
set to <NULL>
for .
Trellis Termination for Turbo Encoder. In a normal convolutional coder, the coder is driven to an all zeros state upon termination by appending zeros to the end of the input data stream. Since the decoder knows the start and end state of the encoder, it can decode the data. Driving a recursive coder to an all zeros state using this method is not possible. To overcome this problem, trellis termination is used.
Upon termination, the tail bits are fed back to the input of each encoder using a switch. The first three tail bits are used to terminate each encoder.
The QPP Interleaver. The role of the interleaver is to spread the information bits such that in the event of a burst error, the two code streams are affected differently, allowing data to still be recovered.
The output of the interleaver is a permutation of the input data, as shown in these equations.
The variable K is the input length. The variables f1 and f2 are coefficients chosen depending on K, in table 5.1.3-3 of [1]. For example, K=40, f1=3, and f2=10, yields the following sequence.
Rate Matching
The rate matching block creates an output bitstream with a desired code rate. Since the number of bits available for transmission depends on the available resources, the rate matching algorithm is capable of producing any rate. The three bitstreams from the turbo encoder are interleaved, followed by bit collection, to create a circular buffer. Bits are selected and pruned from the buffer to create an output bitstream with the desired code rate. The process is illustrated in this figure.
Sub-block Interleaver. The three sub-block interleavers used in the rate matching block are identical. An interleaver permutes the bits it receives. This makes burst errors easier to correct by preventing consecutive corrupt bits.
The sub-block interleaver reshapes the encoded bit sequence, row-by-row, to form a matrix with columns and rows. The variable is determined by finding the minimum integer such that the number of
encoded input bits is . If , ND
<NULL>
’s are appended to the front of the encoded sequence. In
this case, .
For blocks and , inter-column permutation is performed on the matrix to reorder the columns as shown in this pattern.
0, 16, 8, 24, 4, 20, 12, 28, 2, 18, 10, 26, 6, 22, 14, 30, 1, 17, 9, 25, 5, 21, 13, 29, 3, 19, 11, 27, 7, 23, 15, 31 |
The output of the block interleaver for blocks and is the bit sequence read out column-by-column from the inter-column permuted matrix to create a stream bits long.
For block , the elements of the matrix are permuted separately based on the permutation pattern shown above, but modified to create a permutation which is a function of the variables , , k, and . This process creates three interleaved bitstreams.
Bit Collection, Selection, and Transmission. The bit collection stage creates a virtual circular buffer by combining the three interleaved encoded bit streams.
The sequences and are combined by interlacing successive values from each sequence. This combination is then appended to the end of to create the circular buffer shown in this figure.
Interlacing allows equal levels of protection for each parity sequence.
The algorithm then selects and prunes bits from the circular buffer to create an output sequence length that meets the desired code rate.
The Hybrid Automatic Repeat Request (HARQ) error correction scheme is incorporated into the
rate-matching algorithm of LTE. For any desired code rate the coded bits are output
serially from the circular buffer from a starting location, given by the redundancy
version (RV), wrapping around to the beginning of the buffer if the end of the buffer is
reached. NULL
bits are discarded. Different RVs, and hence starting
points, allow for the retransmission of selected data. The ability to select different
starting points enables the following two main methods of recombining data at the
receiver in the HARQ process.
Chase combining — retransmissions contain the same data and parity bit.
Incremental redundancy — retransmissions contain different information, so the receiver gains knowledge on each retransmission.
Code Block Concatenation
At this stage, the rate-matched code blocks are combined again. This is done by sequentially concatenating the blocks to create the output of the channel coding, for .
PDSCH Processing
One or two coded transport blocks (codewords) can be transmitted simultaneously on the PDSCH, depending on the precoding scheme used. The DL-SCH codewords undergo scrambling, modulation, layer mapping, precoding and resource element mapping as shown in this figure.
PDSCH Scrambling
The codewords are bit-wise multiplied with an orthogonal sequence and a UE-specific scrambling sequence to create the following sequence of symbols for each codeword, q.
The variable is the number of bits in codeword q.
The scrambling sequence is pseudo-random, created using a length-31 Gold sequence generator and initialized at the start of each subframe using four parameters:
the slot number within the radio network temporary identifier associated with the PDSCH transmission,
the cell ID,
the slot number within the radio frame,
the codeword index, .
The initial scrambler state is given by this equation.
Scrambling with a cell-specific sequence serves the purpose of intercell interference rejection. When a UE descrambles a received bitstream with a known cell-specific scrambling sequence, interference from other cells will be descrambled incorrectly and therefore only appear as uncorrelated noise.
Modulation
The scrambled codewords undergo QPSK, 16-QAM, 64-QAM, or 256-QAM modulation. This choice creates flexibility to allow the scheme to maximize the data transmitted depending on the channel conditions.
Layer Mapping
The complex symbols are mapped to one, two, or four layers depending on the number of transmit antennas used. The complex modulated input symbols, d(i), are mapped onto v layers, .
If a single antenna port is used, only one layer is used. Therefore, .
Layer Mapping for Transmit Diversity. If transmitter diversity is used, the input symbols are mapped to layers based on the number of layers.
Two Layers — Even symbols are mapped to layer 0 and odd symbols are mapped to layer 1, as shown in this figure.
Four Layers — The input symbols are mapped to layers sequentially, as shown in this figure.
If the total number of input symbols is not an integer multiple of four, two null symbols are appended to the end. Since the original number of symbols is always an integer multiple of two, the new total is an integer multiple of four.
Layer Mapping for Spatial Multiplexing. In the case of spatial multiplexing, the number of layers used is always less than or equal to the number of antenna ports used for transmission of the physical channel.
Precoding
Three types of precoding are available in LTE for the PDSCH: spatial multiplexing, transmit diversity, and single antenna port transmission. Within spatial multiplexing, there are two schemes: precoding with large delay cyclic delay diversity (CDD), also known as open loop spatial multiplexing, and precoding without CDD, also known as closed loop spatial multiplexing. The various types of precoding are illustrated in this tree diagram.
The precoder takes a block from the layer mapper, , and generates a sequence for each antenna port, . The variable p is the transmit antenna port number, and can assume values of {0}, {0,1}, or {0,1,2,3}.
Single Antenna Port Precoding. For transmission over a single antenna port, no processing is carried out, as shown in this equation.
Precoding for Large Delay CDD Spatial Multiplexing. CDD operation applies a cyclic shift, which is a delay of samples to each antenna, where is the size of the OFDM FFT. The use of CDD improves the robustness of performance by randomizing the channel frequency response, reducing the probability of deep fading.
Precoding with CDD for spatial multiplexing is defined by the following equation.
Values of the precoding matrix, , of size , are selected from a codebook configured by the eNodeB and user equipment. The precoding codebook is described in Spatial Multiplexing Precoding Codebook. Every group of symbols at index i across all available layers can use a different precoding matrix, if required. The supporting matrices, and U, are given for various numbers of layers in the following table.
Number of layers, | U | |
---|---|---|
2 | ||
3 | ||
4 |
Precoding for Spatial Multiplexing without CDD. Precoding for spatial multiplexing without CDD is defined by the following equation.
Values of the precoding matrix, , of size , are selected from a codebook configured by the eNodeB and user equipment. Every group of symbols at index i across all available layers can use a different precoding matrix if required. For more information on the precoding codebook, see Spatial Multiplexing Precoding Codebook.
Spatial Multiplexing Precoding Codebook. The precoding matrices for antenna ports {0,1} are given in the following table.
Codebook index | Number of layers, | |
---|---|---|
1 | 2 | |
0 | ||
1 | ||
2 | ||
3 | — |
The precoding matrices for antenna ports {0,1,2,3} are given in the following table.
Codebook index | un | Number of layers, v | |||
---|---|---|---|---|---|
1 | 2 | 3 | 4 | ||
0 | |||||
1 | |||||
2 | |||||
3 | |||||
4 | |||||
5 | |||||
6 | |||||
7 | |||||
8 | |||||
9 | |||||
10 | |||||
11 | |||||
12 | |||||
13 | |||||
14 | |||||
15 |
The precoding matrix, , is the matrix defined by the columns in set by the following equation.
In the preceding equation, I is a 4-by-4 identity matrix. The vector is given in the preceding table.
Precoding for Transmit Diversity. Precoding for transmit diversity is available on two or four antenna ports.
Valid Codeword, Layer and Precoding Scheme Combinations
The valid numbers of codewords and layers for each precoding scheme, as described in previous sections, are summarized in these tables.
Single Antenna Port
Codewords | Layers |
---|---|
1 | 1 |
Transmit Diversity
Codewords | Layers |
---|---|
1 | 2 |
1 | 4 |
Spatial Multiplexing
Codewords | Layers |
---|---|
1 | 1 |
1 | 2 |
2 | 2 |
2 | 3 |
2 | 4 |
Mapping to Resource Elements
For each of the antenna ports used for transmission of the PDSCH, the block of complex valued symbols, , are mapped in sequence to resource elements not occupied by the PCFICH, PHICH, PDCCH, PBCH, or synchronization and reference signals. The number of resource elements mapped to is controlled by the number of resource blocks allocated to the PDSCH. The symbols are mapped by increasing the subcarrier index and mapping all available REs within allocated resource blocks for each OFDM symbol as shown in this figure.
References
[1] 3GPP TS 36.212. “Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.
See Also
lteDLSCH
| ltePDSCH
| ltePDSCHIndices
| lteDLResourceGrid
| lteDLSCHInfo
| lteDLSCHDecode
| lteLayerMap
| lteLayerDemap
| lteDLPrecode
| lteDLDeprecode
| lteTurboEncode
| lteTurboDecode
| ltePDSCHPRBS
| lteCRCEncode
| lteCRCDecode
| lteCodeBlockSegment
| lteCodeBlockDesegment
| lteRateMatchTurbo
| lteRateRecoverTurbo