In coding theory, burst error-correcting codes employ methods of correcting burst errors, which are errors that occur in many consecutive bits rather than occurring in bits independently of each other.
Many codes have been designed to correct random errors. Sometimes, however, channels may introduce errors which are localized in a short interval. Such errors occur in a burst (called burst errors) because they occur in many consecutive bits. Examples of burst errors can be found extensively in storage mediums. These errors may be due to physical damage such as scratch on a disc or a stroke of lightning in case of wireless channels. They are not independent; they tend to be spatially concentrated. If one bit has an error, it is likely that the adjacent bits could also be corrupted. The methods used to correct random errors are inefficient to correct burst errors.
A burst of length [1]
Say a codeword
C
Y=C+E.
E
\ell
E
\ell
E=(0bf{1000011}0)
\ell=7.
Although this definition is sufficient to describe what a burst error is, the majority of the tools developed for burst error correction rely on cyclic codes. This motivates our next definition.
A cyclic burst of length
An error vector
E
\ell
\ell
E=(010000110)
\ell=5
6
1
0
0
For the remainder of this article, we will use the term burst to refer to a cyclic burst, unless noted otherwise.
It is often useful to have a compact definition of a burst error, that encompasses not only its length, but also the pattern, and location of such error. We define a burst description to be a tuple
(P,L)
P
L
For example, the burst description of the error pattern
E=(010000110)
D=(1000011,1)
D'=(11001,6)
E
w
E
w
E
Definition. The number of symbols in a given error pattern
y,
length(y).
A corollary of the above theorem is that we cannot have two distinct burst descriptions for bursts of length
\tfrac{1}{2}(n+1).
Cyclic codes are defined as follows: think of the
q
Fq
Fq,
Codewords are polynomials of degree
\leqslantn-1
g(x)
r
\leqslantn-1
g(x)
g(x)
\leqslantn-1-r
qn-r
k=n-r
Cyclic codes can detect all bursts of length up to
\ell=n-k=r
(n,k)
\ell\leqslantn-k
The above proof suggests a simple algorithm for burst error detection/correction in cyclic codes: given a transmitted word (i.e. a polynomial of degree
\leqslantn-1
g(x)
g(x)
g(x)
By the upper bound on burst error detection (
\ell\leqslantn-k=r
\ell>r
>r
g(x)
2\ell-2
\ell
2\ell-2-r
g(x)
2-r
\ell
We now consider a fundamental theorem about cyclic codes that will aid in designing efficient burst-error correcting codes, by categorizing bursts into different cosets.
By upper bound, we mean a limit on our error detection ability that we can never go beyond. Suppose that we want to design an
(n,k)
\leqslant\ell.
n
k
\ell
\ell
(n,k)
Now, we repeat the same question but for error correction: given
n
k
\ell
(n,k)
A stronger result is given by the Rieger bound:
Definition. A linear burst-error-correcting code achieving the above Rieger bound is called an optimal burst-error-correcting code.
There is more than one upper bound on the achievable code rate of linear block codes for multiple phased-burst correction (MPBC). One such bound is constrained to a maximum correctable cyclic burst length within every subblock, or equivalently a constraint on the minimum error free length or gap within every phased-burst. This bound, when reduced to the special case of a bound for single burst correction, is the Abramson bound (a corollary of the Hamming bound for burst-error correction) when the cyclic burst length is less than half the block length.[2]
Remark.
r=n-k
r\geqslant\lceillog2(n+1)\rceil+\ell-1.
While cyclic codes in general are powerful tools for detecting burst errors, we now consider a family of binary cyclic codes named Fire Codes, which possess good single burst error correction capabilities. By single burst, say of length
\ell
\ell
Let
p(x)
m
F2
p
p(x)
p(x)
r
p(x)|xr-1.
\ell
\ell\leqslantm
2\ell-1
p
m
p
p(x)
G
We will show that
G
\ell
If we can show that all bursts of length
\ell
Let
xia(x)
xjb(x)
\ell1-1
\ell2-1
\ell1
\ell2
\ell1,\ell2\leqslant\ell.
i,j
xia(x)
xjb(x)
v(x)=xia(x)+xjb(x)
i\leqslantj
j-i=g(2\ell-1)+r,
g
r,0\leqslantr<2\ell-1
v(x)
Notice that at the second manipulation, we introduced the term
2xi+rb(x)
F2
v(x)
g(x)
g(x)
v(x)
x2\ell+1
v(x)
xg(2\ell+1
x2\ell+1
a(x)+xbb(x)
x2\ell+1
0
d(x)
\delta
Then we may write:
Equating the degree of both sides, gives us
b=2\ell-\ell2+\delta.
\ell1,\ell2\leqslant\ell
b\geqslant\ell+\delta,
b>\ell-1
b>\delta
xb
\delta<b<2\ell-1
d(x)(x2\ell+1)
xb
d(x)=0
a(x)+xbb(x)=0.
b=0
a(x)=b(x)
j-i
g(2\ell-1)
b=0,
v(x)
Since
\deg(b(x))=\ell2-1<\ell
\deg(b(x))<\deg(p(x))=m
p(x)
b(x)
p(x)
v(x)
xj-1+1
p(x)
x2\ell+1
j-i
p
2\ell-1
n=lcm(2\ell-1,p)
j-i
n
n
v(x)
xia(x)
xjb(x)
With the theory presented in the above section, consider the construction of a
5
p(x)
\ell
2\ell-1
p(x)
p(x)=1+x2+x5
\ell=5
p(x)
25-1=31
2\ell-1=9
31
p
2\ell-1
n=lcm(9,31)=279
5
Certain families of codes, such as Reed–Solomon, operate on alphabet sizes larger than binary. This property awards such codes powerful burst error correction capabilities. Consider a code operating on
F | |
2m |
m
C
(n,k)
F | |
2m |
C
[mn,mk]2
F2
The reason such codes are powerful for burst error correction is that each symbol is represented by
m
m
m
Notice that a burst of
(m+1)
2
2m+1
3
tm+1
t+1
t
(t-1)m+1
In general, a
t
F | |
2m |
l
t
Let
G
[255,223,33]
F | |
28 |
\lfloor33/2\rfloor=16
G'
G
\lceillog2(255)\rceil=8
[2040,1784,33]2
l=121
Interleaving is used to convert convolutional codes from random error correctors to burst error correctors. The basic idea behind the use of interleaved codes is to jumble symbols at the transmitter. This leads to randomization of bursts of received errors which are closely located and we can then apply the analysis for random channel. Thus, the main function performed by the interleaver at transmitter is to alter the input symbol sequence. At the receiver, the deinterleaver will alter the received sequence to get back the original unaltered sequence at the transmitter.
The figure below shows a 4 by 3 interleaver.
The above interleaver is called as a block interleaver. Here, the input symbols are written sequentially in the rows and the output symbols are obtained by reading the columns sequentially. Thus, this is in the form of
M x N
N
Capacity of block interleaver: For an
M x N
\ell,
\tfrac{\ell}{M}.
M
t,
Mt.
Mt+1
Efficiency of block interleaver (
\gamma
\gamma
Drawbacks of block interleaver : As it is clear from the figure, the columns are read sequentially, the receiver can interpret single row only after it receives complete message and not before that. Also, the receiver requires a considerable amount of memory in order to store the received symbols and has to store the complete message. Thus, these factors give rise to two drawbacks, one is the latency and other is the storage (fairly large amount of memory). These drawbacks can be avoided by using the convolutional interleaver described below.
Cross interleaver is a kind of multiplexer-demultiplexer system. In this system, delay lines are used to progressively increase length. Delay line is basically an electronic circuit used to delay the signal by certain time duration. Let
n
d
nd
\leqslantn.
\ell
nd,
\tfrac{\ell}{nd+1}.
t
(nd+1)(t-1).
(nd+1)(t-1)+1,
Efficiency of cross interleaver (
\gamma
Thus, we can formulate
\gamma
Performance of cross interleaver : As shown in the above interleaver figure, the output is nothing but the diagonal symbols generated at the end of each delay line. In this case, when the input multiplexer switch completes around half switching, we can read first row at the receiver. Thus, we need to store maximum of around half message at receiver in order to read first row. This drastically brings down the storage requirement by half. Since just half message is now required to read first row, the latency is also reduced by half which is good improvement over the block interleaver. Thus, the total interleaver memory is split between transmitter and receiver.
Without error correcting codes, digital audio would not be technically feasible.[6] The Reed–Solomon codes can correct a corrupted symbol with a single bit error just as easily as it can correct a symbol with all bits wrong. This makes the RS codes particularly suitable for correcting burst errors. By far, the most common application of RS codes is in compact discs. In addition to basic error correction provided by RS codes, protection against burst errors due to scratches on the disc is provided by a cross interleaver.
Current compact disc digital audio system was developed by N. V. Philips of The Netherlands and Sony Corporation of Japan (agreement signed in 1979).
A compact disc comprises a 120 mm aluminized disc coated with a clear plastic coating, with spiral track, approximately 5 km in length, which is optically scanned by a laser of wavelength ~0.8 μm, at a constant speed of ~1.25 m/s. For achieving this constant speed, rotation of the disc is varied from ~8 rev/s while scanning at the inner portion of the track to ~3.5 rev/s at the outer portion. Pits and lands are the depressions (0.12 μm deep) and flat segments constituting the binary data along the track (0.6 μm width).[7]
The CD process can be abstracted as a sequence of the following sub-processes:
The process is subject to both burst errors and random errors. Burst errors include those due to disc material (defects of aluminum reflecting film, poor reflective index of transparent disc material), disc production (faults during disc forming and disc cutting etc.), disc handling (scratches – generally thin, radial and orthogonal to direction of recording) and variations in play-back mechanism. Random errors include those due to jitter of reconstructed signal wave and interference in signal. CIRC (Cross-Interleaved Reed–Solomon code) is the basis for error detection and correction in the CD process. It corrects error bursts up to 3,500 bits in sequence (2.4 mm in length as seen on CD surface) and compensates for error bursts up to 12,000 bits (8.5 mm) that may be caused by minor scratches.
Encoding: Sound-waves are sampled and converted to digital form by an A/D converter. The sound wave is sampled for amplitude (at 44.1 kHz or 44,100 pairs, one each for the left and right channels of the stereo sound). The amplitude at an instance is assigned a binary string of length 16. Thus, each sample produces two binary vectors from
16 | |
F | |
2 |
8 | |
F | |
2 |
Input for the encoder consists of input frames each of 24 8-bit symbols (12 16-bit samples from the A/D converter, 6 each from left and right data (sound) sources). A frame can be represented by
L1R1L2R2\ldotsL6R6
Li
Ri
ith
Initially, the bytes are permuted to form new frames represented by
L1L3L5R1R3R5L2L4L6R2R4R6
Li,Ri
i
Next, these 24 message symbols are encoded using C2 (28,24,5) Reed–Solomon code which is a shortened RS code over
F256
P1P2
L1L3L5R1R3R5P1P2L2L4L6R2R4R6
R=24/32
Decoding: The CD player (CIRC decoder) receives the 32 output symbol data stream. This stream passes through the decoder D1 first. It is up to individual designers of CD systems to decide on decoding methods and optimize their product performance. Being of minimum distance 5 The D1, D2 decoders can each correct a combination of
e
f
2e+f<5
Performance of CIRC: CIRC conceals long bust errors by simple linear interpolation. 2.5 mm of track length (4000 bits) is the maximum completely correctable burst length. 7.7 mm track length (12,300 bits) is the maximum burst length that can be interpolated. Sample interpolation rate is one every 10 hours at Bit Error Rate (BER)
=10-4
10-3
10-3
10-4