I am having trouble understanding exactly how the matrix interleaver. I have read the following page from MathWorks. In it, it gives the following example where "123456" is interleaved as "142536." Basically, it split every pair. Now, send the first packet as "123456" and 2nd packet as "142536" will allow one to correct any single deletions in each packet with the lower bound being 6 undecodable combinations(i.e. the same character is deleted in both packets).

  • Now, this is fine for a single deletion, but what if there are more than one deletion in each packet, will the matrix interleaver take this into account and generate a different pattern?
  • Is there a benefit to having one pattern over another? It seems interleaving is just increasing the entropy.

So, consider the following 2 patterns: 142536 and 531642. I would argue that the 2nd pattern has more entropy as every 3 bits have no adjacent characters(e.g. 531, 316, 164, 642).


1 Answer 1


We have different interleaving techniques, and matrix interleaving is one of them. But at the end all of them do one thing: interleaving is a technique to protect against burst errors (no matter how we do it).

To make it more clear, you should consider the reason a packet cannot be decoded (and is failed at the receiver). Each packet usually contains a number of codewords (for example of length $N$). These codewords are actually generated by encoding messages of length $K$ by an $[N,K]$ forward error correction (FEC) code. A given FEC code has a limited correction capability (usually denoted by $t$) meaning that it cannot correct more than $t$ errors in each codeword.

When a packet experiences fading, a large segment of packet might get corrupted. Eventually, there might be some codewords untouched by the fading while some others are fully influenced (which is called burst error). In such case, the codewords that experience fading might have more than $t$ errors. Since the packet is only accepted if all codewords have less than $t$ errors, this results in a packet failure.

The objective by performing itrerleaving before FEC encoding and after FEC decoding is to distribute the errors evenly among different codewords. Hence, it becomes more likely for a packet to get accepted even if it experiences a "deep" fade. So Interleaving by itself is not used for error correction. It cannot change anything regarding the entropy either (since it only applies a permutation to the same random variables). It only helps to get a better efficiency from the FEC code when it faces burst errors.

  • $\begingroup$ Can you please provide a source to where I can learn about the different types of interleavers? $\endgroup$
    – user23040
    Sep 12, 2016 at 7:17
  • $\begingroup$ Also, how exactly is the matrix interleaver decoded? Is it just done by solving a set of linear equations generated by plugging the received data back into a matrix? $\endgroup$
    – user23040
    Sep 12, 2016 at 7:28
  • $\begingroup$ I think you can find out more by referring to the textbooks of communications systems such as "Digital Communications" by Proakis. $\endgroup$
    – msm
    Sep 12, 2016 at 7:31
  • $\begingroup$ Interleaving is just a permutation. So the inverse operation which is called deinterleaving is also a permutation. In the matrix case, if you wrote column-wise and read row-woise at the interleaver, then you should write row-wise and read column-wise for deinterleaving. $\endgroup$
    – msm
    Sep 12, 2016 at 7:39
  • $\begingroup$ Is there any benefit of changing the pattern of reading or writing the bits? $\endgroup$
    – Simmi
    Jan 19, 2018 at 15:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.