Sie sind auf Seite 1von 6

Interleavers and deinterleavers

Interleavers and Deinterleavers are designed and used in the context of


characteristics of the errors that might occur when the message bits are
transmitted through a noisy channel. To understand the functions of an
interleaver/deinterleaver, understanding of error characteristics is essential. Two
types are errors concern communication system design engineer. They are burst
error and random error

Random Errors:
Error locations are independent of each other. Error on one location will not
affect the errors on other locations. Channels that introduce these types of
errors are called channels without memory (since the channel has no knowledge
of error locations since the error on location does not affect the error on another
location).

Burst Errors:
Errors are depended on each other. For example, in channels with deep fading
characteristics, errors often occur in bursts (affecting consecutive bits). That is,
error in one location has a contagious effect on other bits. In general, these
errors are considered to be dependent and such channels are considered to be
channels with memory.

Interleaver/Deinterleaver :
One of the most popular ways to correct burst errors is to take a code that works
well on random errors and interleave the bursts to spread out the errors so
that they appear random to the decoder. There are two types of interleavers
commonly in use today, block interleavers and convolutional interleavers.
The block interleaver is loaded row by row with L codewords, each of length n
bits. These L codewords are then transmitted column by column until the
interleaver is emptied. Then the interleaver is loaded again and the cycle
repeats. At the receiver, the codewords are deinterleaved before they are

decoded. A burst of length L bits or less will cause no more than 1 bit error in
any one codeword. The random error decoder is much more likely to correct this
single error than the entire burst.The parameter L is called the interleaver
degree, or interleaver depth. The interleaver depth is chosen based on worst
case channel conditions. It must be large enough so that the interleaved code
can handle the longest error bursts expected on the channel. The main
drawback of block interleavers is the delay introduced with each row-by-row fill
of the interleaver.
Convolutional interleavers eliminate the problem except for the delay associated
with the initial fill. Convolutional interleavers also reduce memory requirements
over block interleavers by about one-half [1]. The big disadvantage of either
type of interleaver is the interleaver delay introduced by this initial fill. The delay
is a function of the interleaver depth and the data rate and for some channels it
can be several seconds long. This long delay may be unacceptable for some
applications. On voice circuits (as in GSM), for example, interleaver delays
confuse the unfamiliar listener by introducing long pauses between speaker
transitions. Even short delays of less than one second are sufficient to disrupt
normal conversation. Another disadvantage of interleavers is that a smart
jammer can choose the appropriate time to jam to cause maximum damage.
This problem is overcome by randomizing the order in which the interleaver is
emptied.
In practice, interleaving is one of the best burst-error correcting techniques. In
theory, it is the worst way to handle burst errors. Why? From a strict probabilistic
sense, we are converting good errors into bad errors. Burst errors have
structure and that structure can be exploited. Interleavers randomize the
errors and destroy the structure. Theory differs from reality,however.
Interleaving may be the only technique available to handle burst errors
successfully.
For example, Viterbi [2] showed that, for a channel impaired by a pulse jammer,
exploiting the burst structure is not enough. Interleaving is still required. This
does not mean that we should be careless about our choice of code and take up
the slack with long interleavers. Codes designed to correct burst errors can
achieve the same performance with much shorter interleavers. Until the coding

theorists discover a better way, interleaving will be an essential error control


coding technique for bursty channels.

References :
[1]B. Sklar, Digital Communications Fundamentals and Applications, Englewood
Cliffs, New Jersey: Prentice Hall, 1988.
[2]A. J. Viterbi, Spread Spectrum Communications Myths and Realities, IEEE
Communications Magazine, vol. 17, No. 5, pp. 11-18, May 1979.

See also:
[1] Block Interleaver Design for Reed Solomon Codes
[2] Random Interleavers

Design Example:
Consider a (255,235) Reed Solomon coding system. This code can correct
upto t=nk2=10 symbols errors. Lets assume that the channel that we are going to use,
is expected to cause b=253 symbols. Then the interleaver depth (d) is calculated as

d>bt=25310=25.3
In this case , an interleaver depth of 26 is enough to combat the burst errors introduced by
the channel. The block interleaver dimensions would be dn=26255 (26 rows by
255 columns).

Matlab Code:
A sample matlab code that simulates the above mentioned block interleaver design is given
below. The input data is a repeatitive stream of following symbols
THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_. A (255,235) Reed
Solomon decoder (with correction capability of 10 symbols) is used. We assume that the
channel is expected to produce a maximum of consecutive 20 symbols of burst error. The
burst errors are denoted by *.

Simulation Result:
Given : (255,235) Reed Solomon code can correct : 10 symbols
Given : expected burst error length from the channel : 20 symbols
_________________________________________________________________________

___
Interleaving MAY help in this scenario
_________________________________________________________________________
___
Input Data to the Interleaver ->
THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BRO
WN_FOX_JUMPS_OVER_T
HE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_T
HE_QUICK_BROWN_FOX_
JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_TH
E_LAZY_DOG_THE_QUIC
K_BROWN_FOX_JUMPS_OVER_THE_THE_QUICK_BROWN_FOX_JUMPS_OVE
R_THE_LAZY_DOG_THE_
QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_F
OX_JUMPS_OVER_THE_
LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_
QUICK_BROWN_FOX_JU
MPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_
THE_QUICK_BROWN_FOX
_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_T
HE_LAZY_DOG_THE_QUIC
K_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_J
UMPS_OVER_THE_LAZY_
DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK
_BROWN_FOX_JUMPS_O
VER_THE_______________________________________________________________________
______
Interleaver Output after being corrupted by 20 symbols burst error marked by *->
TTTHHHEEE___QQQUUUIIICCC********************N___FFFOOOXXX___JJJUU
UMMMPPPSSS___OOOVV
VEEERRR___TTTHHHEEE___LLLAAAZZZYYY___DDDOOOGGG___TTTHHHEEE
___QQQUUUIIICCCKKK
___BBBRRROOOWWWNNN___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOV
VVEEERRR___TTTHHH
EEE___LLLAAAZZZYYY___DDDOOOGGG___TTTHHHEEE___QQQUUUIIICCCKK
K___BBBRRROOOWWWN
NN___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOVVVEEERRR___TTTHHHEE

E___LLLAAAZZZYYY___
DDDOOOGGG___TTTHHHEEE___QQQUUUIIICCCKKK___BBBRRROOOWWWN
NN___FFFOOOXXX___JJJ
UUUMMMPPPSSS___OOOVVVEEERRR___TTTHHHEEE___LLLAAAZZZYYY___
DDDOOOGGG___TTTHHHEE
E___QQQUUUIIICCCKKK___BBBRRROOOWWWNNN___FFFOOOXXX___JJJUU
UMMMPPPSSS___OOOV
VVEEERRR___TTTHHHEEE___LLLAAAZZZYYY___DDDOOOGGG___TTTHHHEE
E___QQQUUUIIICCCKKK___
BBBRRROOOWWWNNN___FFFOOOXXX___JJJUUUMMMPPPSSS___OOOVVVE
EERRR___TTTHHHEEE__
_____________________________________________________________________________
Deinterleaver Output->
THE_QUIC*******_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN
_FOX_JUMPS_OVER_THE_
LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_
QUICK_BROWN_FOX_JUM
PS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_L
AZY_DOG_THE_QUICK_BR
OWN_FOX_JUMPS_OVER_THE_THE_QUIC*******_FOX_JUMPS_OVER_THE_LA
ZY_DOG_THE_QUICK_BRO
WN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_
OVER_THE_LAZY_DOG_TH
E_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN
_FOX_JUMPS_OVER_THE_
LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_THE_QUIC******N
_FOX_JUMPS_OVER_THE_L
AZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_Q
UICK_BROWN_FOX_JUMPS
_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OVER_THE_LAZY
_DOG_THE_QUICK_BROWN
_FOX_JUMPS_OVER_THE_LAZY_DOG_THE_QUICK_BROWN_FOX_JUMPS_OV
ER_THE________________
_____________________________________________________________
As we can see from the above simulation that, eventhough the channel introduces 20
symbols of consecutive burst error (which is beyond the correction capability of the RS
decoder), the interleaver/deinterleaver operation has effectively distributed the errors and

reduced the maximum burst length to 7 symbols (which is easier to correct by (255,235)
Reed Solomon code.

Das könnte Ihnen auch gefallen