HSDPA works because the Node B knows, every few milliseconds, how good the downlink is for each UE. The CQI is how the UE tells it. Let's look at what the CQI means, how 25.214 defines it, how a CQI value maps to a transport block, and how often the UE sends it.
- What does the HSDPA CQI tell the network ?
- How does the UE decide which CQI to report ?
- How does a CQI value map to a transport block ?
- How often does the UE send the CQI ?
- Reference
What does the HSDPA CQI tell the network ?
In Release 99, the network adapts the downlink mainly with power control. HSDPA uses a shared channel with fixed power instead, so the Node B adapts the transport block size and the modulation. For that, it needs a short feedback from each UE, and the CQI is that feedback.
CQI stands for Channel Quality Indicator. As the name implies, it is an indicator carrying the information on how good/bad the communication channel quality is. This CQI is for HSDPA. (LTE also has CQI for its own purpose).
CQI is the information that UE sends to the network and practically it implies the following two
i) Current Communication Channel Quality is this-and-that..
ii) I (UE) wants to get the data with this-and-that transport block size, which in turn can be directly converted into throughput
In HSDPA, the CQI value ranges from 0 ~ 30. 30 indicates the best channel quality and 0,1 indicates the poorest channel quality. Depending which value UE reports, network transmit data with different transport block size. If network gets high CQI value from UE, it transmit the data with larger transport block size and vice versa.
What if network sends a large transport block even though UE reports low CQI, it is highly probable that UE failed to decode it (cause CRC error on UE side) and UE send NACK to network and the network have to retransmit it which in turn cause waste of radio resources.
What if UE report high CQI even when the real channel quality is poor ? In this case, network would send a large transport block size according to the CQI value and it would become highly probable that UE failed to decode it (cause CRC error on UE side) and UE send NACK to network and the network have to retransmit it which in turn cause waste of radio resources.
The two lowest values need a precise note. In the 25.214 CQI tables, CQI 0 means out of range, so it carries no transport block at all. CQI 1 is the lowest usable value, with a 137 bit transport block on one HS-PDSCH code. Also keep in mind that the CQI is a recommendation. The Node B scheduler may send a smaller block than the CQI suggests, for example when other UEs share the codes and the power of the cell.
CQI is a transport format request : it names a transport block size, a number of codes and a modulation, not a raw SNR.CQI 0 means out of range : the usable range for scheduling starts at CQI 1.Both errors waste resources : a CQI that is too high causes NACKs and retransmissions, and a CQI that is too low wastes capacity.
How does the UE decide which CQI to report ?
Here the page moves from what the CQI means to how the UE chooses it. The specification and the chipset share this job. 25.214 defines the target that the reported value must meet, and the UE vendor decides how to reach it.
How UE can measure CQI ? This is the most unclear topic to me. As far as I know, there is no explicit description in any standard on the mechanism by which the CQI is calculated, but it is pretty obvious that the following factors play important roles to CQI measurement.
- signal-to-noise ratio (SNR)
- signal-to-interference plus noise ratio (SINR)
- signal-to-noise plus distortion ratio (SNDR)
It is unclear how these factors are used and whether there is any other factors being involved. I was told the detailed CQI measurement algorithm is up UE implementation (chipset implementation).
What the standard does define is the target. In 25.214 subclause 6A.2.1, the UE reports the highest tabulated CQI value that meets one condition. Take a single HS-DSCH subframe with the transport block size, the number of HS-PDSCH codes and the modulation of that CQI. The UE must be able to receive it with a transport block error probability of no more than 0.1. The UE judges this over a 3 slot reference period that ends 1 slot before the CQI transmission starts.
The UE also needs a power to assume, because the real HS-PDSCH power depends on the scheduler. So 25.214 tells the UE to assume a total received HS-PDSCH power equal to the received CPICH power plus two offsets. The first is the measurement power offset, which RRC signals in measurementPowerOffset. The second is the reference power adjustment from the CQI table. This makes the reported CQI a statement about a known reference, so the value does not depend on the power that the scheduler happens to use.
Put simply, a CQI is a promise of about 10 percent BLER on the first transmission. If the Node B follows the reported CQI in a stable channel, the first transmission BLER should stay near that value. A much higher or much lower BLER means the UE reports its CQI incorrectly.
The algorithm is proprietary : the SNR, SINR or SNDR estimate and its filtering are left to the chipset.The target is standardised : the reported CQI must give a transport block error probability of 0.1 or less.The CPICH is the reference : the UE predicts HS-PDSCH quality from the CPICH plus the signalled measurement power offset.
How does a CQI value map to a transport block ?
A CQI value means nothing until you know which table the UE uses. 25.214 has several CQI mapping tables, and the HS-DSCH category of the UE selects one of them. The table below is Table 7A, which categories 1 to 6 use.
CQI value | Transport Block Size | Number of HS-PDSCH | Modulation | Reference power adjustment - dB |
0 | N/A | - | Out of range | - |
1 | 137 | 1 | QPSK | 0 |
2 | 173 | 1 | QPSK | 0 |
3 | 233 | 1 | QPSK | 0 |
4 | 317 | 1 | QPSK | 0 |
5 | 377 | 1 | QPSK | 0 |
6 | 461 | 1 | QPSK | 0 |
7 | 650 | 2 | QPSK | 0 |
8 | 792 | 2 | QPSK | 0 |
9 | 931 | 2 | QPSK | 0 |
10 | 1262 | 3 | QPSK | 0 |
11 | 1483 | 3 | QPSK | 0 |
12 | 1742 | 3 | QPSK | 0 |
13 | 2279 | 4 | QPSK | 0 |
14 | 2583 | 4 | QPSK | 0 |
15 | 3319 | 5 | QPSK | 0 |
16 | 3565 | 5 | 16-QAM | 0 |
17 | 4189 | 5 | 16-QAM | 0 |
18 | 4664 | 5 | 16-QAM | 0 |
19 | 5287 | 5 | 16-QAM | 0 |
20 | 5887 | 5 | 16-QAM | 0 |
21 | 6554 | 5 | 16-QAM | 0 |
22 | 7168 | 5 | 16-QAM | 0 |
23 | 7168 | 5 | 16-QAM | -1 |
24 | 7168 | 5 | 16-QAM | -2 |
25 | 7168 | 5 | 16-QAM | -3 |
26 | 7168 | 5 | 16-QAM | -4 |
27 | 7168 | 5 | 16-QAM | -5 |
28 | 7168 | 5 | 16-QAM | -6 |
29 | 7168 | 5 | 16-QAM | -7 |
30 | 7168 | 5 | 16-QAM | -8 |
Let's read the table from top to bottom. Up to CQI 15, the UE stays on QPSK and adds codes as the quality improves. From CQI 16, it switches to 16-QAM with 5 codes. At CQI 22, the transport block reaches 7168 bits on 5 codes. Above CQI 22, the block does not grow any more in this table. So the table expresses the better channel as a negative reference power adjustment, from -1 dB at CQI 23 to -8 dB at CQI 30.
A quick calculation shows the link to throughput. One HS-DSCH TTI is 2 ms, so CQI 22 in Table 7A gives 7168 bits every 2 ms, or about 3.6 Mbps. A category 10 UE uses Table 7D instead, where CQI 30 gives 25558 bits on 15 codes, or about 12.8 Mbps. The same CQI number therefore means different throughput for different UE categories. Table 7a of 25.214 lists which table applies to each category, with and without 64QAM and MIMO.
Regarding the influce of CQI on total throughput, refer to CQI vs Throughput in "Throughput" page.
Check the category before reading a CQI : the UE category selects the table, and the table gives the CQI its meaning.CQI 22 is the ceiling of Table 7A : higher values keep 7168 bits and only lower the reference power.TBS divided by 2 ms gives the peak rate : it assumes the UE is scheduled in every TTI and needs no retransmission.
How often does the UE send the CQI ?
A CQI is useful only while it is fresh, but every report costs uplink power. RRC sets this balance with a few parameters in Measurement-Feedback-Info. Let's see where the report travels and how often.
The CQI travels on the HS-DPCCH, the uplink control channel of HSDPA. Each HS-DPCCH subframe is 2 ms long and has 3 slots. The HARQ-ACK uses the first slot, and the CQI uses the second and third slots. The UE sends one CQI report every k ms, where k is the CQI feedback cycle. With k = 0, the UE sends no CQI at all. In Feedback-cycle-r7, k takes the values 0, 2, 4, 8, 10, 16, 20, 32, 40, 64, 80 and 160 ms.
Two more fields shape the report. The field cqi-RepetitionFactor, from 1 to 4, makes the UE repeat the same CQI in consecutive subframes, which makes the report more robust. The field deltaCQI sets the power offset of the CQI field relative to the uplink DPCCH. The same IE also carries measurementPowerOffset, the offset from the previous section. Its actual value is the IE value x 0.5 dB, so it ranges from -6 to 13 dB.
Two later features change the timing. With CPC, the UE sends a CQI only where the reporting pattern overlaps a DPCCH transmission. With dual cell and multiflow operation, the UE sends CQI reports for several cells on the same HS-DPCCH. The CPC page explains the first case.
CQI shares the HS-DPCCH with HARQ-ACK : the ACK is in slot 1 and the CQI in slots 2 and 3 of each subframe.k = 0 switches CQI reporting off : a log with no CQI reports is often a configuration issue, not a UE fault.A short k tracks fading better : but it costs more uplink power and adds more noise at the Node B.
Reference
- 3GPP TS 25.214 v19.0.0 - subclause 6A.1.2 CQI reporting procedure, 6A.2.1 CQI definition, 6A.2.3 CQI tables, Table 7a and Table 7A
- 3GPP TS 25.211 v19.0.0 - HS-DPCCH frame structure
- 3GPP TS 25.331 v19.0.1 - Measurement-Feedback-Info, Feedback-cycle-r7, CQI-RepetitionFactor, MeasurementPowerOffset