HARQ stands for Hybrid Automatic Repeat Request. HARQ = ARQ + FEC (Forward Error Correction)/Soft Combining.
ARQ refers to Automatic Repeat Request i.e. if sender doesn’t receive Acknowledgement (ACK) before timeout, the receiver discards the bad packet and sender shall re-transmits the packet. ARQ procedure is illustrated below :
Soft Combining is an error correction technique in which the bad packets are not discarded but stored in a buffer. The basic idea is that 2 or more packets received with insufficient information can be combined together in such a way that total signal can be decoded. HARQ procedure is as follows
Hybrid Automatic Repeat Request (HARQ) Types
It can be of following two types:-
- Chase Combining also know as Type #1 HARQ
- Incremental Redundancy also know as Type #2 or Type #3 HARQ
1. Chase Combining (Type 1 HARQ)-
Information = Data + Error Detection Bits (ED)+ Forward Error Correction bits (FEC).
FEC bits are added to each message before sending. If the channel quality is good, errors are detected and corrected. But if channel quality is bad, not all errors may be corrected and receiver asks for re-transmission (similar to ARQ). FEC adds a large overhead.
2. Incremental Redundancy (Type #2 HARQ/ Type #3 HARQ)-
Here also Information = Data + Error Detection Bits (ED)+ Forward Error Correction bits (FEC).
But, a different subset of data, a different subset of ED and a different subset of FEC is sent on each re-transmission. For example, in the first transmission a subset of information is sent. Re-transmissions are made with a different set of data, ED and FEC.
- In Type #2 HARQ, redundancy is added on each re-transmission and receiver needs to decode each of them to obtain packet.
- In Type 3 HARQ, each re-transmission is sufficient to decode data and re-transmission is made only if the channel conditions are not good and data was not decoded correctly.
HARQ process relies upon receiving ACK for the packets. If the sender sends a packet and then waits for the ACK to send another packet, it is called a SAW(stop and wait) process. It increases the round trip time ( sender and receiver processing time + propagation delays). Hence, multiple SAW processes are used in LTE i.e. when 1 SAW process is waiting for ACK, another SAW process can send the data. These SAW processes are also known as HARQ processes.
In LTE, in FDD, RTT is 8 msec. The question arises why 8 HARQ processes? The answer is- consider the case of downlink, when eNodeB sends data, UE takes 3msec as processing time, therefore, it sends ACK/NACK 4 msec later, similarly after receiving ACK/NACK, eNodeB takes 3msec processing time and sends a new transmission/ re-transmission in a total of 8 msec. Hence, in FDD there are 8 HARQ processes so that it takes 8 msec for a process to send data and receive ACK/NACK followed by a new transmission/re-transmission 8 msec later, corresponding to RTT of 8 msec. Max number of re-transmissions for a MAC PDU is 4.
A HARQ entity and HARQ processes are maintained at both eNodeB and UE. During downlink assignment, eNodeB sends a NDI (New Data Indicator) bit through PDCCH (DCI) to information UE whether this data is new or a re-transmission. If NDI bit is toggled i.e. different from the one sent in previous transmission, then, it means new data is transmitted in downlink for the given HARQ process. If DCI 0 i.e. uplink grant is sent in PDCCH and NDI bit is toggled, this means that UE should transmit new data.
HARQ for LTE Uplink and Downlink
- Synchronous HARQ – used in LTE Uplink transmission.
- Asynchronous HARQ – used in LTE Downlink transmission.
Synchronous HARQ: In this, receiver has knowledge of the packet which is about to come in this subframe i.e. eNodeB knows exactly which HARQ no. and RV UE is going to send. eNodeB determines them from transmission time.
Asynchronous HARQ: In this HARQ process, the sender provides details about which HARQ process it is using. This gives flexibility because re-transmissions does not have to be scheduled during every subframe but it increases signalling overhead because sender has to send the information on a channel.
Asynchronous and synchronous HARQ w.r.t. downlink and uplink is explained in further paragraphs.
HARQ Re-transmissions Types
HARQ Re-transmissions are also of 2 types:-
- Adaptive re-transmission,
- Non-adaptive re-transmission.
Here, the transmission attributes like Modulation Coding Scheme (MCS), Redundancy Version (RV), sub-carrier on which transmission is going to occur, does not remain same during each re-transmission but are notified by the sender. These attributes can be changed according to radio channel conditions, hence, it again provides flexibility but increases overhead.
Here, the transmission attributes remains same during each re-transmission.
HARQ Procedure During Downlink Transmission
When eNodeB sends data to UE through PDSCH, UE determines it’s correctness by checking CRC and report it to eNodeB through ACK/NACK bit. If UE also has data to send and it gets a grant, it’ll send ACK/NACK on PUSCH along with data, otherwise it’ll send it on PUCCH. eNodeB can use 8 HARQ processes in any order (asynchronous HARQ) i.e. re-transmissions can occur any time relative to the initial transmission.
Therefore, it needs to send HARQ id for the UE to determine the original transmission corresponding to which the re-transmission is happening. HARQ id is sent in PDCCH. Downlink supports adaptive transmission i.e. resources are allocated afresh each time and sent on PDCCH. RV, MCS are notified in DCI 0. RV values are predefined in specifications (0,2,3,1). CURRENT_IRV is an index into this sequence.
Work of HARQ entity includes-
- Maintain a number of HARQ processes.
- Analyze search space to find a downlink grant on PDCCH.
- Send HARQ information to UE through PDSCH , send HARQ Process Id and RV on PDCCH.
- UE receives the data and finds the HARQ process no. from PDCCH. If it were a retransmission, it performs soft combining of this data with the data stored in buffer last time. If it were a new transmission, it buffers the data and check CRC. It requires 3 msec for processing, after 4 msec. If it has data to send and it has a grant it’ll send ul data alongwith ACK/NACK on PUSCH, otherwise it sends ACK/NACK on PUCCH.
HARQ Procedure During Uplink Transmission
When UE sends data in uplink through PUSCH, eNB has to determine it’s correctness using CRC and inform UE about the ACK/NACK. eNodeB sends ACK/NACK through PHICH. Each HARQ processes use Round Robin fashion to transmit HARQ, hence, each transmission and re-transmission can be determined from SFN and SF. UE does not need to send information of RV (synchronous HARQ).
Uplink can use adaptive or non-adaptive re-transmission. In adaptive uplink transmission, MCS and RV are determined from DCI 0. In non-adaptive uplink transmission, the transmission attributes remain same as in the previous transmission. RV are assigned according to a predefined sequence- 0,2,3,1. Variable CURRENT_IRV is an index into this sequence. When eNB does not send a DCI 0 but sends a NACK on PHICH, then UE performs non-adaptive re-transmission.
Work of HARQ entity includes-
- Maintain a number of HARQ processes.
- Analyze search space to find an uplink grant i.e. DCI 0 on PDCCH.
- Calculate HARQ process no. corresponding to this subframe
- Route HARQ information to it.
- eNB receives the data on PUSCH and calculates the HARQ process no. from tti. If it were a retransmission, it performs soft combining of this data with the data stored in buffer last time. If it were a new transmission, it buffers the data and check CRC. It requires 3 msec for processing, after 4 msec, it sends ACK/NACK on PHICH.
Article is submitted by Neha Katyal