6.2 Channel Coding

6.2 Channel Coding

The radio link is a quickly varying link, often suffering from great interference. Channel coding, whose main tasks are to prevent and to correct the transmission errors of wireless systems, must have a very good performance in order to maintain high data rates. The 802.16 channel coding chain is composed of three steps: randomiser, Forward Error Correction (FEC) and interleaving. They are applied in this order at transmission. The corresponding operations at the receiver are applied in reverse order. Error detection is realised with HCS and CRC (see Chapter 8).

6.2.1 Randomisation

Randomisation introduces protection through information-theoretic uncertainty, avoiding long sequences of consecutive ones or consecutive zeros. It is also useful for avoiding non-centred data sequenes. Data randomisation is performed on each downlink and uplink burst of data. If the amount of data to transmit does not fit exactly the amount of data allocated, padding of 0×FF (‘ones’ only) is added to the end of the transmission block. The Pseudo-Random Binary Sequence (PRBS) generator used for randomisation is shown in Figure 6.3. Each data byte to be transmitted enters sequentially into the randomiser, with the Most Significant Byte (MSB) first. Preambles are not randomised. The randomiser sequence is applied only to information bits.

Image from book
Figure 6.3: PRBS generator used for data randomisation in OFDM and OFDMA PHY. (From IEEE Std 802.16-2004 [1]. Copyright IEEE 2004, IEEE. All rights reserved.)

The shift-register of the randomiser is initialised for each new burst allocation. For OFDM PHY, on the downlink, the randomiser is reinitialised at the start of each frame with the sequence: 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0. The randomiser is not reset at the start of burst 1. At the start of subsequent bursts (starting from burst 2), the randomiser is initialised with the vector shown in Figure 6.4. This PRBS generates a Pseudo-Noise (PN) sequence of length 215 1. The frame number used for initialisation refers to the frame in which the downlink burst is transmitted. BSID is the BS identity and DIUC the burst profile indicator (see Chapter 9). For other cases (uplink, OFDMA), the details can be found in the standard. The bits issued from the randomiser are then applied to the FEC encoder.

Image from book
Figure 6.4: OFDM randomiser downlink initialisation vector for burst 2,,N. (From IEEE Std 802.16-2004 [1]. Copyright IEEE 2004, IEEE. All rights reserved.)

6.2.2 Forward Error Correction (FEC) Codes

For OFDM PHY, the FEC encodings are:

  • Concatenated Reed–Solomon Convolutional Code (RS-CC). This code is mandatory on both the uplink and downlink. It consists of the concatenation of a Reed–Solomon outer code and a rate-compatible convolutional inner code (see below).

  • Convolutional Turbo Codes (CTC) (optional).

  • Block Turbo Coding (BTC) (optional). For Turbo Coding, see Section 6.3 below.

The most robust burst profile or, equivalently, the most robust coding mode must be used when requesting access to the network and in the FCH burst (see Chapter 9 for FCH burst). For OFDMA PHY, the FEC encodings are:

  • (Tail-biting) Convolutional Code (CC). This code is mandatory according to the 802.16 standard. According to WiMAX profiles, only the Zero-Tailing Convolutional Code (ZT CC) is mandatory.

  • Convolutional Turbo Codes (CTC). This code is optional according to the 802.16 standards [1],[2]. Yet, according to mobile WiMAX profiles, the CTC is mandatory.

  • Block Turbo Coding (BTC) (optional).

  • Low Density Parity Check (LDPC) codes (optional).

RS-CC encoding will now be described. WiMAX Turbo coding, BTC and CTC, will be described in the following section. RS-CC (Reed–Solomon Convolution Code)

For OFDM PHY, the RS-CC encoding is performed by first passing the data in block format through the RS encoder and then passing it through a convolutional encoder (see Figure 6.5).

Image from book
Figure 6.5: Illustration of the RS-CC encoder of OFDM PHY

Reed–Solomon codes are used in many communications systems and other applications. The RS error correction works by adding some redundant bits to a digital data sequence. This is done by oversampling a polynomial constructed from the uncoded data. The polynomial is evaluated at several points and then these values are sent (or recorded). By sampling the polynomial more often than needed, the receiver can recover the original polynomial in the presence of a relatively low number of errors.

A Reed–Solomon code is specified as RS(N,K) with T-bit symbols. The data points are sent as encoded blocks. The total number of T-bit symbols in an encoded block is N = 2T1. Thus a Reed–Solomon code operating on 8-bit symbols has N = 281 = 255 symbols per coded block. The number K, K < N, of uncoded data symbols in the block is a design parameter. Then, the number of parity symbols added is N K symbols (of T-bits each). The RS decoder can correct up to (N K)/2 symbols that contain an error in the encoded block.

The RS encoder of OFDM PHY is denoted as an (N, K) = (255, 239) code, which is capable of correcting up to eight symbol errors per block. This Reed–Solomon encoding uses GF(28), where GF is the Galois Field operator. The Reed–Solomon encoder and decoder require Galois field arithmethics. The following polynomials are used for the OFDM RS systematic code, an RS code that leaves the data unchanged before adding the parity bits:

Image from book

The coding rate of the OFDM PHY RS encoder is then 239/255 (very close to one). The standard indicates that this code can be shortened and punctured to enable variable block sizes and variable error-correction capabilities.

The convolution code has an original coding rate of 1/2, as shown in Figure 6.6. The convolutional encoder is a zero-terminating convolutional encoder. A single 0 × 00 tail byte is appended to the end of each burst, needed for decoding algorithm normal operation. Puncturing patterns defined in the standard can be used to realise the following different code rates: 2/3, 3/4 and 5/6.

Image from book
Figure 6.6: Convolutional encoder of rate 1/2. (From IEEE Std 802.16-2004 [1]. Copyright IEEE 2004, IEEE. All rights reserved.)

For OFDMA, the convolutional encoder is also the one shown in Figure 6.6. The HARQ procedure (described in Chapter 8), in its IR (Incremental Redundancy) variant, uses four different FEC blocks for each uncoded FEC block. This is realised using different puncture patterns. Each FEC block is identified by an SPID (SubPacket IDentifier).

The tail-biting convolutional code encoder of OFDMA (simply known as CC) works as follows: the convolutional encoder memories are initialised by the (six) last data bits of the FEC block being encoded (the packet data bits numbered bn 5,,bn). This OFDMA PHY convolutional encoder may employ the Zero-Tailing Convolutional Coding (ZT CC) technique. In this case, a single 0 × 00 tail byte is appended at the end of each burst. This tail byte is appended after randomisation.

6.2.3 Interleaving

Interleaving is used to protect the transmission against long sequences of consecutive errors, which are very difficult to correct. These long sequences of error may affect a lot of bits in a row and can then cause many transmitted burst losses. Interleaving, by including some diversity, can facilitate error correction. The encoded data bits are interleaved by a block inter-leaver with a block size corresponding to the number of coded bits per allocated subchannels per OFDM symbol [1]. The interleaver is made of two steps:

  • Distribute the coded bits over subcarriers. A first permutation ensures that adjacent coded bits are mapped on to nonadjacent subcarriers.

  • The second permutation insures that adjacent coded bits are mapped alternately on to less or more significant bits of the constellation, thus avoiding long runs of bits of low reliability.

6.2.4 Repetition

Repetition was added by the 16e amendment for OFDMA PHY. The standard indicates that it can be used to increase the signal margin further over the modulation and FEC mechanisms.

In the case of repetition coding, R = 2, 4 or 6, the number of allocated slots (Ns) will be a whole multiple of the repetition factor R for the uplink. For the downlink, the number of the allocated slots (Ns) will be in the range of R × K, R × K + (R 1), where K is the number of required slots before applying the repetition scheme. For example, when the required number of slots before the repetition is 10 (= K) and the repetition of R = 6 is applied for the burst transmission, then the number of the allocated slots (Ns) for the burst can be from 60 slots to 65 slots.

The binary data that fits into a region that is repetition coded is reduced by a factor R compared to a nonrepeated region of the slots with the same size and FEC code type. After FEC and bit-interleaving, the data are segmented into slots, and each group of bits designated to fit in a slot is repeated R times to form R contiguous slots following the normal slot ordering that is used for data mapping.

This repetition scheme applies only to QPSK modulation. It can be applied in all coding schemes except HARQ with CTC.

[1]IEEE 802.16-2004, IEEE Standard for Local and Metropolitan Area Networks, Air Interface for Fixed Broadband Wireless Access Systems, October 2004.

[2]IEEE 802.16e, IEEE Standard for Local and Metropolitan Area Networks, Air Interface for Fixed Broadband Wireless Access Systems, Amendment 2: Physical and Medium Access Control Layers for Combined Fixed and Mobile Operation in Licensed Bands and Corrigendum 1, February 2006 (Approved: 7 December 2005).