Interleaving in communication is a process by which the ordering sequence of the encoded bits is changed so that the burst of errors gets distributed across various codewords present in the data rather than being bound to a single codeword. The process of interleaving is a crucial aspect of data communication.
In other words, interleaving can be stated as, changing the order of transmitted data so that the consecutive data bytes can be distributed to large sequence thereby decreasing the chances of burst errors within the data. Interleaving offers the decoding of a burst of errors as random errors by spreading them out in time.
Need for Interleaving
During communication over a satellite channel, due to channel impairments like fading and multipath, there will be statistical dependence among successive transmission of symbols that results in errors in bursts. Fading is generally regarded as a slow variation in time in received signal power when transmission medium or path changes. While multipath is the distortion in the received signal due to difference in phase which is the result of signals coming at the receiver from multiple paths of non-identical lengths.
Generally, data blocks or convolution codes do not permit random independent errors within them but fading and multipath lead to the chances of a burst of errors. Here the term burst of errors corresponds to the group of consecutive code symbols containing errors due to which bursty nature is displayed. Interleaving helps to transform the burst errors into random errors that facilitate easy error correction.
Block Interleaving – Operation
Interleaving acts as a method to deal with the burst of errors as here the code symbols are repositioned in order to distribute the burst of errors over various codewords. Once this is achieved, by using any error-correcting codes, the errors can be corrected.
As far as data communication is concerned, the errors generated due to various factors are corrected using various error-correcting codes (ECC) so that accurate and precise data may reach the destination. Generally, there are two types of error-correcting codes namely, block codes and convolution codes. As it is already clear to you that burst corresponds to consecutive error bits thus the transmitting channel has memory.
A bursty channel is the one in which the errors occur in bursts and do not occur randomly. Due to this reason, random error correction code is not suitable to deal with a burst of errors thereby showing inefficiency and leading to wastage of resources. So, to apply random error correction techniques interleaving is done that helps in spreading the errors within the codewords so that these can be corrected by simple random error correction code.
Let us understand how interleaving takes place by considering an example.
Suppose we have a code of 16 symbols distributed in 4 codewords where each codeword is consisting of 4 symbols. This is clearly shown below:
Here each code exhibit one random error correction ability, this means a single symbol error correction in one codeword can be done. In the above-shown figure, it is clearly represented that the 4 codewords are a1 to a4, b1 to b4, c1 to c4, and d1 to d4. Here we are discussing block interleaving for 1D interleaving where a block interleaver of 4*4 arrangement i.e., the 2D array is formed. This is clearly given below:
Here each codeword consisting of 4 symbols of the complete 16 symbols code is sequentially arranged in 4 columns. Thus, we can see that column1 has codeword from a1 to a4, column2 has codeword from b1 to b4, column3 has codeword c1 to c4, and column4 has codeword from d1 to d4. Now, in the next step, the interleaved data can be obtained by reading out the 2D array in a row-wise fashion, this is clearly represented below:
So, from the figure shown above it is clear that now the symbols from each codeword are present in a distributed manner instead of being present as an individual codeword. So, suppose a burst of error that has 4 consecutive symbols has occurred then spreading of symbols will automatically spread the burst of errors also.
Consider for the above-given example error burst is represented by symbols c2d2a3b3 i.e., the uncolored (transparent) one. Once de-interleaving is done then this consecutive error symbols will automatically be distributed codeword wise and will get the data sequence with random errors as shown below:
As each codeword here possesses one random error correction ability then such an error burst can be easily corrected in a random manner.
In this way, through interleaving, the distribution of code symbols over multiple codewords can be achieved so that burst of errors can be changed into random-like errors. Thus, we can say, a combination of interleaving and de-interleaving offers conversion of the bursty channel into a random-like channel. Hence, one can use random error correction code for bursty error correction.
The advantages of interleaving are as follows:
- The data rate remains unchanged as only the bit sequence is varied during the process.
- A burst noise channel can be easily changed into random-like errors hence random error correction code can be easily applied to burst errors.
- The overall performance of the system has been improved.
So, from this discussion, it is clear that through interleaving, one can easily get time diversity when a digital data communication system is taken into consideration. An error-correcting code is a crucial component involved in interleaving operation.