Wednesday, 8 October 2014

LTE data transmissions.

We have seen a lot of terms around when we discuss LTE data transmissions, especially when we get into some of the details of sending data over the PDSCH using multiple antenna techniques. We describe transport blocks as holding the data we're trying to send, but how do they relate to codewords? Assigning bits to different layers can be used to improve reliability or throughput, but are layers the same as antenna ports? Let's have a closer look at what's going on down in the Physical (PHY) Layer.

User data and signaling messages are processed by the PDCP, RLC and MAC layers before being passed down to the PHY layer to be sent over the air. A lot happens to a data packet before PHY gets it, but for the moment, let's just treat the MAC PDU (Protocol Data Unit) that PHY receives from MAC as "data". To PHY, it's just a string of bits anyway. This will be our transport block.

Transport Blocks to Codewords

Query: What does PHY do with a transport block? 

First, it converts the transport block into a codeword. There are a number of steps involved in this process, depending on the length of the transport block:
  • Append a 24 bit checksum (CRC) to the transport block. This CRC is used to determine whether the transmission was successful or not, and triggers Hybrid ARQ to send an ACK or NACK, as appropriate
  • Segment the transport block into code blocks. A code block must be between 40 and 6144 bits long. If the transport block is too small, it is padded up to 40 bits; if the TB is too big, it is divided into smaller pieces, each of which gets an additional 24 bit CRC.
  • Process each code block with a 1/3 turbo coder
  • Reassemble the resulting code blocks into a single codeword

A codeword, then, is essentially a transport block with error protection. Note that a UE may be configured to receive one or two transport blocks (and hence one or two codewords) in a single transmission interval.

Codewords to Layers

PHY then converts each codeword into modulation symbols. For each codeword, PHY must:
  • Scramble the contents of each codeword, using a sequence based on the UE's C-RNTI and the cell's Physical Cell ID (PCI) 
  • Convert the bit sequences into the corresponding modulation symbols (using QPSK, 16QAM or 64QAM) 
  • Assign the modulation symbols to one or more layers, depending on the specific transmission scheme being used

In the case of a single transmit antenna, the last step is pretty simple: the contents of the codeword are mapped to a single layer. For transmit diversity, it's almost as easy: the symbols from the codeword are distributed evenly across the 2 or 4 layers in a round-robin fashion.

In spatial multiplexing situations, things get a little more complicated, since one or two codewords may be distributed across 1, 2, 3 or 4 layers. In brief, here's how the mapping is handled:


The number of layers used in any particular transmission depends (at least in part) on the Rank Indication (RI) feedback from the UE, which identifies how many layers the UE can discern.

Layers to Antenna Ports

The final steps apply any required precoding adjustments and assign the modulation symbols to the physical resources:
  • Apply the required precoding factors to the modulation symbols in each layer
  • Map the precoded symbols to the appropriate antenna ports
  • Assign the modulation symbols to be transmitted on each antenna port to specific resource elements (the subcarriers and symbols within the resource blocks)
  • Generate the final time-domain OFDM signal for each antenna port

Note that the number of layers is always less than or equal to the number of antenna ports (transmit antennas). If there's only one antenna port, then it carries just a single layer. In multiple (2 or 4) antenna situations, though, each antenna port may end up carrying a complicated combination of the symbols from multiple layers. 

for more info you can check out spec 36.211, section 6.3.4 if you really want to dig into the details.

Conclude? One transport block -> one codeword -> one or two layers -> one or more antenna ports. Fortunately, the eNodeB and the UE always know what's going on, even if I have trouble keeping it all straight sometimes.

2 comments:

Nicely explained.
Thanks for publishing !

Post a Comment