Single burst error correction
Identifying a burst error is disclosed. Identifying includes computing a syndrome check polynomial corresponding to a burst of length up to 2t−1 in received data and identifying a shortest burst based on the longest consecutive root sequence of the syndrome check polynomial. The received data is corrected based at least in part on the shortest burst.
1. A method of identifying a burst error using an error-correcting code, comprising:
computing a syndrome check polynomial corresponding to a burst of length up to 2t−1 in received data, wherein the syndrome check polynomial, Γ(x), is defined as
Γ
(
x
)
=
∑
t
=
0
2
t
-
1
S
2
t
-
1
-
i
Λ
i
*
·
x
i
wherein t is an error-correction capability corresponding to the error-correcting code, S is a syndrome polynomial, and Λ is an error locator polynomial;
identifying a shortest burst based on the longest consecutive root sequence of the syndrome check polynomial, wherein identifying is performed by a decoder; and
correcting the received data based at least in part on the shortest burst.
2. The method as recited in claim 1 , wherein the roots of the syndrome check polynomial are obtained using a Chien search.
3. The method as recited in claim 1 , wherein identifying includes identifying a burst length.
4. The method as recited in claim 1 , wherein identifying includes identifying a burst location.
5. The method as recited in claim 1 , further including computing a burst magnitude corresponding to the shortest burst.
6. The method as recited in claim 1 , further including using a Forney Formula to obtain the magnitudes of the shortest burst.
7. The method as recited in claim 1 , further including performing a cyclic shift and re-encoding to obtain the magnitude of the shortest burst.
8. The method as recited in claim 1 , wherein the method is performed after an initial Chien search on the error locator polynomial fails.
9. The method as recited in claim 1 , further including returning a failure indication if the shortest burst has a length greater than a prescribed length.
10. The method as recited in claim 1 , wherein the received data is received from a demodulator that is configured to read stored data from a data storage medium.
11. A computer program product for identifying a burst error using an error-correcting code, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:
computing a syndrome check polynomial corresponding to a burst of length up to 2t−1 in received data, wherein the syndrome check polynomial, Γ(x), is defined as
Γ
(
x
)
=
∑
t
=
0
2
t
-
1
S
2
t
-
1
-
i
Λ
i
*
·
x
i
wherein t is an error-correction capability corresponding to the error-correcting code, S is a syndrome polynomial, and Λ is an error locator polynomial;
identifying a shortest burst based on the longest consecutive root sequence of the syndrome check polynomial; and
correcting the received data based at least in part on the shortest burst.
12. The computer program product as recited in claim 11 , wherein the roots of the syndrome check polynomial are obtained using a Chien search.
13. The computer program product as recited in claim 11 , wherein identifying includes identifying a burst length.
14. The computer program product as recited in claim 11 , wherein identifying includes identifying a burst location.
15. The computer program product as recited in claim 11 , the computer program product further comprising computer instructions for computing a burst magnitude corresponding to the shortest burst.
16. A system for identifying a burst error using an error-correcting code, comprising:
a decoder configured to:
compute a syndrome check polynomial corresponding to a burst of length up to 2t−1 in received data, wherein the syndrome check polynomial, Γ(x), is defined as
Γ
(
x
)
=
∑
t
=
0
2
t
-
1
S
2
t
-
1
-
i
Λ
i
*
·
x
i
wherein t is an error-correction capability corresponding to the error-correcting code, S is a syndrome polynomial, and Λ is an error locator polynomial;
identify a shortest burst based on the longest consecutive root sequence of the syndrome check polynomial; and
correct the received data based at least in part on the shortest burst; and
an input interface coupled to the decoder.
17. The system as recited in claim 16 , wherein the roots of the syndrome check polynomial are obtained using a Chien search.
18. The system as recited in claim 16 , wherein the decoder is configured to identify the shortest burst at least in part by identifying a burst length.
19. The system as recited in claim 16 , wherein the decoder is configured to identify the shortest burst at least in part by identifying a burst location.
20. The system as recited in claim 16 , wherein the decoder is further configured to compute a burst magnitude corresponding to the shortest burst.
21. The system as recited in claim 16 , wherein the decoder is further configured to use a Forney Formula to obtain the magnitudes of the shortest burst.
22. The system as recited in claim 16 , wherein the decoder is further configured to perform a cyclic shift and re-encoding to obtain the magnitude of the shortest burst.
23. The system as recited in claim 16 , wherein the decoder is configured to compute the syndrome check polynomial, identify the shortest burst, and correct the received data after an initial Chien search on the error locator polynomial fails.
24. The system as recited in claim 16 , wherein the decoder is further configured to return a failure indication if the shortest burst has a length greater than a prescribed length.
25. The system as recited in claim 16 , further including a demodulator coupled to the input interface and configured to read stored data from a data storage medium.