>
HomeLTE 4GPHY โ€” Physical LayerModulation & MCS
๐Ÿ“ถ PHY โ€” Physical LayerIntermediate

Modulation, MCS & CQI in LTE 4G

QPSK through 256QAM, the MCS and CQI tables, and how modulation order and code rate are chosen.

📚 3GPP-basedTS 36.211TS 36.213

A good radio channel can carry more bits per symbol than a bad one, so LTE never fixes the data rate — it adapts. The UE measures the channel and reports a CQI; the eNB turns that into an MCS that names a modulation order and (indirectly) a code rate; and those, together with the number of resource blocks, decide exactly how many bits ride each transport block. This page is grounded in TS 36.211 (physical channels and modulation) and TS 36.213 (physical-layer procedures), and walks the whole chain from constellation points to transport block size.

Introduction

Modulation and coding is the part of the LTE physical layer that decides how densely bits are packed onto the air. Every downlink transport block on PDSCH and every uplink transport block on PUSCH is carried by a modulation-and-coding scheme — an MCS — that the eNB picks fresh for that grant. It sits at the heart of the scheduler: once the channel quality is known, choosing the MCS is the single act that converts “this channel is worth x dB of SINR” into “send this many bits this millisecond.”

You meet this machinery constantly in the field. It runs on every scheduled subframe, for every connected UE, in both directions; it is what makes a cell-edge phone fall back to slow-but-robust QPSK while a phone next to the tower streams on 64QAM or 256QAM. Three linked quantities carry the whole story — CQI (what the UE recommends), MCS (what the eNB commands), and the transport block size TBS (how many bits actually result) — and getting the direction and role of each one straight is what separates a clear answer from a muddled one.

Because the relationship is a chain of table look-ups rather than a single formula, it is easy to blur the steps together. This page keeps them separate: constellation → modulation order, MCS → (Qm, I_TBS), then (I_TBS, N_PRB) → TBS, with CQI feeding the front of it all through the eNB’s link-adaptation logic.

Why modulation & MCS matter

💡

In plain words: think of the modulation order as how many words you cram into one breath, and the code rate as how much you repeat yourself to be understood. Standing next to someone in a quiet room you can speak fast and never repeat — that is 64QAM at a high code rate. Shouting across a noisy street you slow right down and repeat every word — that is QPSK at a low code rate. The eNB is constantly guessing how noisy the “room” is for each UE and setting the pace accordingly.

Concretely, radio conditions swing with distance, fading and interference, sometimes by tens of dB within the same cell. A single fixed data rate would be wrong almost everywhere: too fast for the cell edge (endless errors) and too slow for the cell centre (wasted spectrum). Link adaptation solves this by turning one dial — the MCS — that jointly sets how many bits each symbol carries and how much of the transmission is error-protection rather than payload. Turn it up on a clean channel for throughput; turn it down on a noisy one to keep the error rate under control.

The reason this deserves its own page is that the dial is not a free-form number: it is a standardised index that resolves, through TS 36.213 tables, into a precise modulation order, code rate and transport block size that both ends must agree on bit-for-bit. Miscount the steps and the UE demodulates the wrong constellation or assumes the wrong block size, and nothing decodes.

The big idea: match the bits to the channel

Every LTE transmission packs data onto modulation symbols. How many bits each symbol carries, and how much of the transmission is protection (coding) rather than payload, is a dial the eNB turns subframe by subframe. Turn it up when the channel is clean and you get throughput; turn it down when the channel is noisy and you keep the errors under control. That whole dial is captured by three linked quantities — CQI, MCS and the transport block size TBS — and getting the relationship straight is what this page is about.

What

A chain of choices: the UE reports channel quality as a CQI (0–15); the eNB picks a modulation-and-coding scheme MCS (0–28 for new data) and signals it in the DCI; the MCS yields a modulation order Qm and a TBS index I_TBS, and I_TBS with the RB count gives the transport block size.

Why

Radio conditions swing with distance, fading and interference. A single fixed rate would either waste a good channel or drown in a bad one. Adapting modulation and coding — link adaptation — is how LTE keeps roughly constant reliability while chasing peak throughput.

How

The UE feeds back CQI on PUCCH/PUSCH; the eNB's link-adaptation logic maps that (plus its own history via an outer loop) to an MCS; lookup tables in TS 36.213 convert MCSQm+I_TBS, then I_TBS+N_PRBTBS.

It is worth fixing the direction of each quantity before the detail arrives. CQI flows uplink and is only a recommendation. MCS flows downlink inside the scheduling grant and is a command. The two are never the same field and are related only through an algorithm running inside the eNB. Everything else on this page hangs off that distinction, so keep it in view.

Modulation schemes — bits per symbol

Modulation decides how many bits are stamped onto one resource element. LTE uses a family of QAM constellations: the more points in the constellation, the more bits per symbol — but the points sit closer together, so a noisy channel confuses them more easily. That is the fundamental trade-off behind everything on this page. The modulation order Qm is simply the number of bits per symbol, so the constellation has 2Qm points.

ModulationModulation order QmBits / symbolConstellation pointsTypical SINR to sustainIntroduced
QPSK224≈ −3 to +6 dBRel-8
16QAM4416≈ 7 to 15 dBRel-8
64QAM6664≈ 15 to 23 dBRel-8
256QAM88256≈ 22 dB and aboveRel-12

QPSK is the robust workhorse for cell-edge or fading conditions — only four points, hard to mistake even in poor SINR. 16QAM and 64QAM step up throughput for mid-cell and near-cell users. 256QAM (added in Rel-12) squeezes 8 bits per symbol but demands a very clean channel, a good receiver (low EVM) and typically an excellent, near-line-of-sight or small-cell environment, so it is enabled only for near-cell UEs with strong SINR and signalled through a separate 256QAM MCS table and a separate 256QAM CQI table. The SINR figures above are indicative operating points, not hard thresholds — the exact switching points depend on the receiver, the target BLER and the code rate in use. The mapping of bit groups to constellation points (Gray-coded so adjacent points differ by one bit) is defined in TS 36.211.

The higher the order, the more the demodulator relies on an accurate channel estimate and on receiver linearity: 256QAM points are packed so tightly that a fraction of a dB of noise, phase error or amplifier distortion collapses the decision regions. This is why 256QAM in LTE is almost always a downlink-only, good-conditions feature and why the network guards it behind a capability bit and a dedicated table rather than simply extending the ordinary MCS range.

🔀

LTE ↔ NR: the constellation family is identical (QPSK/16QAM/64QAM/256QAM, same Qm = 2/4/6/8), and NR adds π/2-BPSK (Qm = 1) on the uplink for very low PAPR at the cell edge. The bigger change is downstream: LTE reads the transport block size from a fixed table, whereas NR computes it from Qm, the code rate R and the number of resource elements per TS 38.214, so in NR the modulation order feeds the size calculation directly.

QPSK · 4 points · 2 bits 16QAM · 16 points · 4 bits 64QAM · 64 points · 6 bits
Figure 1. As the constellation grows, bits/symbol rise but the points crowd together — more throughput, less noise tolerance. (256QAM omitted for clarity: 256 points, 8 bits.)

The MCS index — one number, two lookups

The eNB does not signal modulation and code rate separately on the air. It signals a single 5-bit MCS field in the DCI (values 0–31). The grant itself rides PDCCH in the UE-specific search space, CRC-scrambled by the C-RNTI (a DCI format 1/1A/2/2A-family message for downlink PDSCH, or DCI format 0 for uplink PUSCH), and it is inside that grant that the MCS field lives. Values 0–28 select new-data schemes; 29–31 are reserved to carry only a modulation order for retransmissions, where the TBS is already known from the first transmission and must not be re-derived. The UE takes the received MCS and reads TS 36.213 Table 7.1.7.1-1 to recover two things: the modulation order Qm, and a TBS index I_TBS.

MCS indexModulationModulation order QmTBS index I_TBS
0QPSK20
1 – 8QPSK21 – 8
9QPSK29
1016QAM49
11 – 1616QAM410 – 15
1764QAM615
18 – 2864QAM616 – 26
29QPSK (reserved, retx)2
3016QAM (reserved, retx)4
3164QAM (reserved, retx)6

Notice the overlap at the boundaries: MCS 9 and 10 both map to I_TBS 9, and MCS 16 and 17 both map to I_TBS 15. At those crossover points the eNB is choosing to carry the same block size with a higher-order modulation but a lower code rate (more coding protection) — a subtle way to trade robustness for the same payload. So the MCS index is really a joint knob over modulation and coding, not two independent settings. As MCS climbs within one modulation region, only the effective code rate rises (via a larger I_TBS); when it crosses a boundary the modulation order jumps but the code rate resets lower.

The reserved trio 29/30/31 deserves emphasis because it is a common interview trap. On a HARQ retransmission the transport block size was already fixed by the original grant, so the eNB must not re-signal a TBS index that could change it. Instead it sends 29, 30 or 31 to convey only which modulation to use for that retransmission (QPSK, 16QAM or 64QAM respectively), and the UE keeps the stored TBS. The 256QAM feature replaces this whole table with TS 36.213 Table 7.1.7.1-1A, whose top rows reach Qm=8 and whose I_TBS range extends to 33.

🎯

Remember: MCS in, two things out — Qm (which modulation) and I_TBS (which row of the TBS table). Only I_TBS feeds the transport block size; Qm tells the UE how to demodulate. On a retransmission (MCS 29–31) only Qm is signalled and the stored TBS is reused.

🔀

LTE ↔ NR: NR keeps the 5-bit MCS field but reinterprets the table (TS 38.214) so each entry gives a modulation order and a target code rate R directly, not an I_TBS into a fixed TBS table. NR also selects among multiple MCS tables (up to 64QAM, up to 256QAM, and a low-spectral-efficiency table for URLLC) via RRC and the RNTI/search space, giving finer control than LTE’s single-table-plus-256QAM-alternate scheme.

From I_TBS + RBs to transport block size

The TBS index on its own is not a byte count — it becomes one only when combined with how much bandwidth the grant allocates. The eNB tells the UE the number of physical resource blocks N_PRB in the same DCI. The UE then looks up TS 36.213 Table 7.1.7.2.1-1, a two-dimensional table indexed by (I_TBS, N_PRB), and reads off the transport block size in bits for that transmission's PDSCH (or PUSCH). This is deliberately a table, not a closed-form formula: the values were chosen to align with turbo-code block sizes and to produce clean, byte-aligned payloads.

TBS = f( I_TBS , N_PRB )  — a lookup, not a formula  |  higher I_TBS or more RBs → bigger block

The two-step nature is the thing to hold onto. Step one is MCS → (Qm, I_TBS) from the MCS table. Step two is (I_TBS, N_PRB) → TBS from the TBS table. The modulation order Qm takes no part in step two at all — it never appears in the TBS lookup. That is why two different MCS values that share an I_TBS (the boundary pairs above) produce the identical transport block size for the same N_PRB, differing only in how aggressively that block is modulated and coded. A few illustrative values from that table show how both dimensions push the size up:

I_TBSTBS at 25 RBs (bits)TBS at 50 RBs (bits)TBS at 100 RBs (bits)
0 (QPSK, low rate)68013842792
6 (QPSK, mid)2664516010296
9 (QPSK / 16QAM edge)4008799215840
15 (16QAM / 64QAM edge)77361526430576
26 (64QAM, top)141123057675376

These are the per-TTI (1 ms subframe) block sizes for a single spatial layer. Multiply by the number of MIMO layers/codewords and by 1000 subframes per second to get the throughput figure, which is where LTE's headline peak rates come from — for example, I_TBS 26 at 100 RBs is 75376 bits per TTI, i.e. about 75 Mbit/s per layer, roughly 150 Mbit/s over two layers with 64QAM. The point to internalise is that I_TBS and N_PRB together fix the payload; the modulation order Qm and the coding are what make that payload physically deliverable over the granted resources. If the resulting code rate would exceed a sensible ceiling (for instance a very small N_PRB forced against a very high I_TBS), the eNB simply would not schedule that combination.

CQI — what the UE recommends

The eNB cannot see the downlink channel; only the UE can. So the UE measures reference signals, estimates the SINR it is experiencing, and reports a CQI (Channel Quality Indicator) — a 4-bit value from 0 to 15. The definition is specific and worth memorising: the reported CQI is the highest index whose corresponding modulation and code rate the UE could decode with a transport block error rate (BLER) no greater than 10%. TS 36.213 gives the CQI-to-scheme mapping in Table 7.2.3-1 (the standard 15-entry table).

CQI indexModulationCode rate × 1024Efficiency (bits/sym)
0out of range (no reliable transmission possible)
1QPSK780.1523
2QPSK1200.2344
3QPSK1930.3770
4QPSK3080.6016
5QPSK4490.8770
6QPSK6021.1758
716QAM3781.4766
816QAM4901.9141
916QAM6162.4063
1064QAM4662.7305
1164QAM5673.3223
1264QAM6663.9023
1364QAM7724.5234
1464QAM8735.1152
1564QAM9485.5547

Reading up the table: low CQI means a weak channel, so the UE recommends QPSK with heavy coding (a small code rate like 78/1024); high CQI means a strong channel, so it recommends 64QAM with light coding (948/1024, almost no protection). The efficiency column is simply modulation order times code rate, and it is what actually translates to bits per resource element. This baseline table stops at 64QAM. When 256QAM is configured, the UE instead uses the extended CQI Table 7.2.3-2, whose top four entries introduce 256QAM:

CQI indexModulationCode rate × 1024Efficiency (bits/sym)
0out of range
1QPSK780.1523
2QPSK1930.3770
3QPSK4490.8770
416QAM3781.4766
516QAM4901.9141
616QAM6162.4063
764QAM4662.7305
864QAM5673.3223
964QAM6663.9023
1064QAM7724.5234
1164QAM8735.1152
12256QAM7115.5547
13256QAM7976.2266
14256QAM8856.9141
15256QAM9487.4063

The two tables share the same 4-bit index range but pack very different schemes into it: the 256QAM table compresses the QPSK and 16QAM steps to make room for four 256QAM entries at the top, pushing peak efficiency from 5.5547 to 7.4063 bits/symbol. Which table the UE uses is an RRC-configured choice tied to whether 256QAM is enabled, so both ends must agree — a UE reporting CQI 15 means something quite different under each table. Whether the UE sends one wideband CQI or several sub-band values is controlled by the reporting mode configured over PUCCH/PUSCH (periodic vs aperiodic reporting).

CQI to MCS — recommendation, decision, and the OLLA offset

This is the distinction interviewers love: CQI is what the UE recommends; MCS is what the eNB decides. They are related but not the same field, and one does not blindly become the other. The UE reports a CQI that would hit ≈10% BLER; the eNB's link-adaptation algorithm reads that, folds in its own information — HARQ ACK/NACK history, an outer-loop BLER correction, load, the UE category and buffer — and then chooses the MCS it actually signals in the DCI.

The mapping happens in two conceptual stages. First, an inner loop converts the reported CQI (which names a modulation and code rate, hence an efficiency) into an equivalent MCS whose spectral efficiency is closest to, but not exceeding, that of the reported CQI. Because both the CQI table and the MCS/TBS table are expressed in bits per symbol, this is essentially an efficiency-matching lookup: find the highest MCS whose (Qm, code rate) sits at or below the CQI's efficiency. This is why a mid-range CQI around 7–9 tends to land on a 16QAM MCS, and a high CQI of 13–15 lands on a high 64QAM MCS.

Second, an outer loopOLLA, Outer Loop Link Adaptation — corrects for the fact that the raw CQI is optimistic or pessimistic and often stale by the time it is used. The eNB keeps a per-UE SINR offset, sometimes called delta_offset or the OLLA margin. Every HARQ NACK nudges that offset in the conservative direction (subtract a large step, lowering the effective SINR and hence the chosen MCS); every HARQ ACK nudges it back the other way by a smaller step. The effective quality driving the MCS choice is the CQI-derived SINR plus this offset.

SINR_eff = SINR(CQI) + OLLA_offset  → MCS  |  on NACK: offset −= step_down  ·  on ACK: offset += step_up

The step sizes are chosen so the loop converges to the target error rate. A common design sets the ratio of the up-step to the down-step so that, at equilibrium, the fraction of NACKs equals the target BLER: step_up / step_down = BLER_target / (1 − BLER_target), e.g. roughly 1:9 for a 10% target. The result is that OLLA quietly drives the true, measured BLER toward 10% regardless of whether a particular UE's CQI reports run high or low. This is why the eNB may signal an MCS noticeably lower than the reported CQI implies (a UE whose CQI is consistently optimistic accumulates a negative offset), or occasionally higher.

UE measures SINR → CQI 0–15 report eNB decides CQI + OLLA → MCS DCI MCS lookup Qm + I_TBS +N_PRB TBS lookup payload bits outer loop (OLLA): HARQ NACK → offset down → lower MCS  ·  ACK streak → offset up → higher MCS  (target ≈ 10% BLER)
Figure 2. The link-adaptation chain: CQI is the UE's recommendation; the eNB's inner loop matches it to an MCS and the OLLA outer loop corrects it with HARQ feedback, finally driving Qm, I_TBS and the transport block size.
📘

Do not confuse the ranges: CQI is 0–15 (4 bits, a UE report). MCS is 0–31 (5 bits in the DCI, an eNB decision; 0–28 for new data, 29–31 for retransmission). Different fields, different directions, related only through the eNB's inner-loop mapping and the OLLA outer loop.

Modulation on the control channels

Everything above concerns the data channels — PDSCH downlink and PUSCH uplink — which are the only ones that adapt their modulation. The control channels are different: because they must be decodable by UEs in poor conditions and carry the very scheduling information needed to receive anything at all, they use fixed, robust, low-order modulation. There is no MCS, no CQI-driven adaptation, and no 256QAM on control; they lean on aggregation and coding for robustness instead.

ChannelDirectionModulationAdapts?Carries
PDSCHDLQPSK / 16QAM / 64QAM / 256QAMYes (MCS)User data (transport blocks)
PUSCHULQPSK / 16QAM / 64QAM / 256QAMYes (MCS)User data + UCI
PBCHDLQPSKNoMIB
PDCCHDLQPSKNo (uses aggregation level)DCI (scheduling)
PCFICHDLQPSKNoCFI (number of control symbols)
PHICHDLBPSKNoHARQ ACK/NACK for uplink
PUCCHULBPSK / QPSK (format-dependent)NoUCI (CQI, ACK/NACK, SR)

The pattern is clear: control uses QPSK almost everywhere (PDCCH, PBCH, PCFICH), drops to BPSK where maximum robustness matters most (PHICH, and the low PUCCH formats 1/1a/1b), and never rises above QPSK. The PDCCH compensates for its fixed low-order modulation by varying its aggregation level — spending more control channel elements (CCEs) on the same DCI for cell-edge UEs — which is the control-channel analogue of the data channel lowering its MCS. So control channels do adapt to the channel, just through coding and aggregation rather than through constellation size.

🎯

One-liner: data channels (PDSCH/PUSCH) adapt modulation via MCS; control channels use fixed QPSK or BPSK and adapt robustness through coding and aggregation instead.

⚠ Common pitfalls / gotchas

  • Confusing CQI range with MCS range. CQI is 0–15 (a 4-bit UE report); MCS is 0–31 (a 5-bit eNB command). They are different fields in different directions — never interchangeable.
  • Assuming CQI 15 always means the same thing. Its meaning depends on which table is configured: 64QAM at 948/1024 in the baseline table, but 256QAM at 948/1024 in the extended table. If the two ends disagree on 256QAM configuration, the mapping breaks.
  • Feeding Qm into the TBS lookup. Only I_TBS and N_PRB set the transport block size; Qm merely tells the UE how to demodulate. This is exactly why boundary MCS pairs (9/10, 16/17) give identical TBS.
  • Re-deriving TBS on a retransmission. MCS 29/30/31 carry only a modulation order; re-computing a fresh TBS corrupts HARQ soft combining. The stored block size from the initial transmission must be reused.
  • Expecting CQI to become MCS one-to-one. The OLLA offset routinely shifts the chosen MCS below (or above) what the raw CQI implies; a systematically optimistic UE will be scheduled well under its reported CQI.

Summary

Modulation and coding is LTE’s way of matching the payload to the channel one grant at a time. The UE looks at the downlink, works out the fastest scheme it could decode at ≈10% BLER, and reports it as a 4-bit CQI (0–15) over PUCCH/PUSCH. The eNB treats that as a recommendation only: its inner loop matches the CQI’s efficiency to an MCS, and its OLLA outer loop corrects the CQI’s bias using HARQ ACK/NACK, before it commands a 5-bit MCS (0–31) in the DCI.

From there it is two look-ups. MCS → (Qm, I_TBS) via TS 36.213 Table 7.1.7.1-1, then (I_TBS, N_PRB) → TBS via Table 7.1.7.2.1-1. Only I_TBS and the RB count set the size; Qm just tells the UE how to demodulate, which is why boundary MCS pairs carry the same payload at different robustness. Reserved MCS 29–31 signal modulation only, for retransmissions, so the stored TBS survives HARQ combining. And remember that all of this adaptation is a data-channel story: control channels stay on fixed QPSK/BPSK and adapt through aggregation and coding instead.

Quick Q&A

The questions link-adaptation interviews return to again and again — the field ranges, the two lookups, and the loop that ties CQI to MCS.

Q&A Interview quickfire

Q. What target does the CQI definition assume, and why does that matter?

A. The UE reports the highest CQI it could receive at no more than 10% BLER. That 10% target is what HARQ is sized around — roughly one in ten first transmissions fails and is retransmitted, which is more spectrally efficient than aiming for near-zero errors on the first try.

Q. Given an MCS index, how does the UE find the transport block size?

A. Two lookups. First, MCS → (Qm, I_TBS) via TS 36.213 Table 7.1.7.1-1. Then (I_TBS, N_PRB) → TBS via Table 7.1.7.2.1-1. Only I_TBS and the RB count set the size; Qm just tells it how to demodulate.

Q. Why can the eNB signal an MCS lower than the reported CQI implies?

A. Because CQI is only a recommendation from one (often stale) snapshot. The OLLA outer loop corrects for the UE's optimism/pessimism using actual HARQ ACK/NACK results, applying an SINR offset that backs the MCS off after NACKs and pushes it up after a run of ACKs, holding the real BLER near 10%.

Q. What do MCS values 29, 30 and 31 mean?

A. They are reserved for retransmissions. They signal only a modulation order (QPSK, 16QAM, 64QAM respectively) and no I_TBS; the UE reuses the transport block size stored from the original transmission so HARQ combining stays valid.

Q. QPSK 9 vs 16QAM 10 — both map to I_TBS 9. What is different?

A. The transport block size is identical for the same N_PRB, so the payload is the same. MCS 10 delivers it with 16QAM at a lower code rate (more coding protection); MCS 9 uses QPSK at a higher code rate. It is a robustness-versus-efficiency choice for the same number of bits.

Q. Do the control channels use an MCS or CQI?

A. No. PDCCH, PBCH and PCFICH are fixed QPSK, PHICH is BPSK, and PUCCH is BPSK/QPSK by format. Only PDSCH/PUSCH adapt via MCS; PDCCH instead varies its aggregation level for robustness.

Where modulation, MCS and CQI connect

These quantities are the vocabulary of link adaptation: the UE's feedback, the eNB's decision, and the physical bits that ride the shared channel and get protected by the coding stage.

Link Adaptation — the inner/outer (OLLA) loop that turns CQI into MCSPDSCH — the downlink shared channel the TBS is carried onChannel Coding — the turbo/rate-matching stage the code rate controls