# Hybrid ARQ

## Summary


A typical communication channel has imperfections. Packets get lost or corrupted. When the receiver detects errors, it discards the erroneous packet and requests the sender to retransmit it. This is called **Automatic Repeat Request (ARQ)**. Error detection is usually done using Cyclic Redundancy Check (CRC) bits. 

However, if errors are within certain limits, the receiver can not only detect but also correct errors. This is possible if the sender employs Error-Correcting Codes (ECCs). These include parity bits that help in correcting errors in information bits. The technique is called **Forward Error Correction (FEC)**. FEC avoids ARQ retransmissions but parity bits are an overhead. 

Hybrid ARQ is a technique the combines both ARQ and FEC. Packet errors are corrected where possible. Where not possible, retransmission is requested. First and subsequent packet transmissions are combined to increase the chance of correct decoding.

## Discussion

### What's the typical HARQ processing pipeline?

The pipeline starts with a packet of information bits coming into the sender's HARQ entity. CRC bits are added to the information bits. Then an FEC encoder uses an ECC and maps its input to a codeword. Multiple such codewords are buffered and interleaved to protect against channel burst errors. Interleaving distributes such errors across codewords so that there's greater chance of recovering all packets. Interleaved bits are finally modulated for transmission on the channel. Modulation type and order are selected according to recent channel conditions. 

At the receiver, the demodulation and deinterleaving are followed by HARQ operation. FEC decoder uses either soft or hard decision decoding. It maps its input to closest valid codewords. A CRC check determines if the FEC decoder has got it right. If CRC check fails, a retransmission is requested. 

Combiner at the receiver combines all transmissions of the packet so that FEC has a better chance of decoding the packet correctly. Sender and receiver buffers are for retransmission and combining respectively. 


### How is Chase Combining different from Incremental Redundancy?

There are two basic ways in which multiple transmissions of a packet can be combined at the receiver. The simpler method is Chase Combining (CC) in which all transmissions contain the same information and parity bits. Each transmission therefore adds to the overall packet energy.

Incremental Redundancy (IR) is a method in which each retransmission pertains to the same information bits but contains a different subset of information and parity bits. Parity bits are also called redundancy bits. IR is therefore about progressively sending more of these bits to help the FEC decoder. Like CC, IR retransmissions add to the overall packet energy. More importantly, IR retransmissions decreases the code rate since each retransmission increases the redundancy. Implementing IR is more complex than implementing CC.

In poor channel conditions (low SNR), CC does well but when the channel is good, parity bits take up bandwidth unnecessarily. IR is a better method since more parity bits are sent only when needed. IR's first transmission can even include only information bits. 


### What are the different types of HARQ?

Researchers refer to three types of HARQ:   

    + **Type-I**: In the simplest case, errors are corrected if possible. Otherwise, erroneous packets are discarded and retransmission is requested. In an alternative case, all packet transmissions are buffered and combined using Maximal Ratio Combining (MRC). The latter case is basically CC.
    + **Type-II**: This is basically IR in which different redundancy bits are sent with each retransmission. This can be realized via bit puncturing that effectively changes the code rate over all transmissions.
    + **Type-III**: In Type-II, apart from first transmission, more than one buffered version of the packet is required for decoding. In Type-III, each transmission is *self-decodable*. Bits common to transmissions can be chase combined. This is also called *partial IR* since each retransmission includes more redundancy bits.Some use the term Repetition Redundancy (RR) instead of Chase Combining. Chase Combining has also been called Packet Combining while Incremental Redundancy has been called Code Combining in literature. 

ARQ protocols called Stop-and-Wait, Go-Back-N and Selective Repeat are applicable to HARQ.  


### What's the difference between truncated and persistent HARQ?

In really bad channel conditions, many HARQ retransmissions may be needed. If there's no limit on the number of retransmissions, we call it **persistent HARQ**. Otherwise we call is **truncated HARQ**.  Truncated HARQ is preferred for real-time applications. The maximum can be selected based on throughput efficiency, packet delay, packet drop rate and buffer space requirements. 

Some systems may specify a deadline or maximum time limit for the retransmissions. Past this deadline, the packet is dropped and retransmissions are stopped. This is called **time-truncated HARQ**. 

5G New Radio doesn't specify a limit on the number of retransmissions.  However, such a limit may be provided by the network equipment vendor and operator configurable. Kawser et al. have proposed truncated HARQ for 4G/LTE for UEs with poor downlink reception. 


### What's the difference between synchronous and asynchronous HARQ?

With synchronous HARQ, the timing is regular and known in advance. For example, the time between a packet transmission and its ACK/NACK could be fixed. The time between a NACK and the next retransmission could be fixed. 

With asynchronous HARQ, timing is configurable and highly dynamic. Scheduling can be based on current channel conditions and resource requirements. Asynchronous HARQ requires additional signalling compared to synchronous HARQ. 

5G NR uses asynchronous HARQ since 5G already has a highly dynamic TDD frame structure. Moreover, 5G can operate in unlicensed spectra where resources can't be assigned in advance to support synchronous HARQ. 


### What's the difference between non-adaptive and adaptive HARQ?

With **non-adaptive HARQ**, the modulation and coding remains the same across all transmissions of a packet. With **adaptive HARQ**, these can change. For example, the first transmission might have used 16-QAM but if channel quality is seen to have worsened, subsequent retransmissions could you QPSK with more radio resources allocated to accommodate the packet in the lower modulation. 

Adaptive HARQ is more common in wireless systems due to the time-varying nature of wireless channels. Adaptation depends on channel feedback from the receiver. Transmission power, modulation, code rate, bandwidth, packet length, maximum number of retransmissions, and allocated resources are some aspects that can be adapted. There are many techniques in adaptive HARQ but their objectives may differ: throughput, delay, spectral efficiency, power or reliability. 

It's been shown that adaptive truncated HARQ is a robust approach for real-time applications. 


### What codes are suitable for detecting or correcting errors in HARQ?

Error detection is commonly done using using Cyclic Redundancy Check (CRC) bits. These are computed based on and appended to the information bits. CRC is often implemented in hardware using Linear Feedback Shift Registers (LFSRs). CRC field is typically 8-64 bits long. Since this overhead reduces overall system capacity, CRC-free alternatives to error detection have been researched. However, 4G, 5G and Wi-Fi standards have adopted CRC. 

Error-Correcting Codes (ECCs) for HARQ are typically Turbo Codes, Turbo Product Codes (TPCs), Low Density Parity Check (LDPC) Codes, and Polar Codes. At least for HARQ, these have replaced an older generation of ECCs such as convolutional, Bose–Chaudhuri–Hocquenghem (BCH) and Reed-Solomon (RS) codes. 


### How have different wireless communication protocol standards adopted HARQ?

HARQ is widely adopted in major wireless systems: 

    + **3G/UMTS**: Asynchronous downlink HARQ. Synchronous uplink HARQ. Stop-and-Wait HARQ with up to 8 parallel processes. Supports both CC and IR.
    + **CDMA2000**: Similar to 3G/UMTS but up to 4 processes and maximum of 3 retransmissions.
    + **4G/LTE**: Similar to 3G/UMTS with 8 processes in FDD and 1-15 processed in TDD. Maximum number of retransmissions can be configured. Uplink HARQ is typically non-adaptive but can be made adaptive. TTI bundling of up to 4 TTIs allows UEs to transmit all redundancy versions without waiting for feedback. HARQ operates at MAC and PHY layers.
    + **5G**: Asynchronous and adaptive in both downlink and uplink. Up to 16 parallel processes, each using Stop-and-Wait.
    + **WiMAX**: Supports both CC and IR. Up to 16 parallel processes each in uplink and downlink, each using Stop-and-Wait. Maximum of 4 retransmissions. Asynchronous adaptive downlink HARQ. Synchronous adaptive downlink HARQ but default operation is non-adaptive HARQ.
    + **IEEE 802.15.4**: HARQ Type-I. Maximum of 0-7 retransmissions with 3 as default. Retransmissions also have a timing constraint.
    + **Bluetooth**: Synchronous HARQ Type-I.

### What are some research initiatives on HARQ?

Adaptive Cross-Packet HARQ (XP-HARQ) is a technique that varies the number of bits with each retransmission. A retransmission can contain bits from two packets and joint decoding happens at the receiver. Sender selects codebooks based on current channel conditions. 

Cooperative HARQ is where retransmissions can happen from a neighbouring node that managed to receive the first transmission correctly. This gives spatial diversity gain at the intended receiving node. A similar but more sophisticated idea encodes packets meant for different receiving nodes into each retransmission. This is called Network Coded HARQ (NC-HARQ). 

Designing HARQ for IoT presents new challenges. IoT devices send short packets and are often battery powered. Some IoT applications require high reliability and low delay. Type-II HARQ outperforms Type-I HARQ though the latter is simpler to implement. 

Wi-Fi uses only ARQ though there have been proposals to introduce HARQ. HARQ is being researched in many other areas as well: 5G's URLLC and mMTC use cases, Cloud RAN, NOMA and Cognitive Radio. 

## Milestones

1940

Van Dureen introduces the **first electronic retransmission** scheme to telegraphy. His method incorporates error detection via even parity. The term "automatic repeat request" itself appears in 1957. In 1961, Van Dureen publishes one of the earliest performance analysis of ARQ. By early 1960s, the term ARQ is widely accepted. 

1960

At the Fourth London Symposium on Information Theory, Wozencraft and Horstein propose HARQ, although they don't use the term "HARQ". In a subsequent MIT Technical Report, they state, "The system is somewhat similar to human communication, in that typical errors are corrected, while grievous ones initiate a request for retransmission." 

1974

Mandelbaum proposes **Incremental Redundancy** in which the first transmission contains a punctured codeword. If in error, each subsequent retransmission brings another increment of redundant bits until the receiver can successfully decode the packet. 

1977

Sindhu proposes a a modification of ARQ in which erroneous packets are buffered at the receiver and later combined with retransmissions to improve the decoding. He calls this **ARQ-with-Memory (MRQ)** and the decoding procedure as Redundancy Repetition Error Correction (RRC). Essentially, this is packet combining or Type-I HARQ with hard-decision decoding. 

1981

Lin and Yu propose the use of two block codes, \(C\_0\) for only error detection and \(C\_1\) for both error correction and detection. In their method, transmissions alternate between message bits and \(C\_0\) parity bits, and \(C\_1\) and \(C\_0\) parity bits. Wang and Lin improve this in 1983. 

1984

In a survey paper on ARQ, Lin et al. name the main **types of HARQ**: Type-I and Type-II. This example shows that this sort of naming was current by the mid-1980s if not earlier. 

1985

Chase proposes **code combining** in which multiple receptions are weighted and combined to offer better error correcting capability. The method does maximum-likelihood decoding and soft-decision packet decoding. The original packet uses a half-rate convolutional code but with every retransmission, the effective code rate drops. 

2003

Cheng et al. propose **adaptive incremental redundancy** in which channel state information can be used to adapt the modulation and coding for each retransmission. They analyze this for a Release 5 3G/UMTS system and find that up to 25% improvement in system throughput can be obtained under certain conditions. 

Sep  
2005

3GPP publishes Release 6 of 3G/UMTS specification. In poor channels where ACK/NACK feedbacks are not coming through (such as for UEs at the cell edge), a variation called **autonomous or blind HARQ** is employed. The sender transmits multiple versions of the packet without waiting for ACK/NACK. 

2015

Kuhn et al. consider many variants of TCP over 4G satellite links in their simulations. They find that in poor channel conditions, HARQ provides up to 22% higher throughput compared to other reliability schemes regardless of the TCP variant used. 

2016

Sassioui et al. analyze the interplay between AMC and HARQ. They note that in fast-fading channels HARQ is beneficial only at low SNR and counterproductive at high SNR. In such cases, ARQ at a higher layer is sufficient. In slow-fading channels, throughput gains due to HARQ are moderate particularly when AMC ignores the presence of HARQ. 

2021

Nadeem et al. study the effectiveness of HARQ for 5G's URLLC use case. Whereas we have large packets in eMBB use case, HARQ for URLLC has to be analyzed in the Finite Blocklength (FBL) regime. They present results for AWGN and Rayleigh fading channels.