BCH question,decoding error occurs when err number is (t,2t]

Sep 18, 2009 2 Replies

In my understanding, the BCH code can correct "t" errors and detect "2t" errors.



When the error number is [t+1, 2t], the algorithm will always report that errors are found but not correctable.



But the C program, which I think should be golden,

formatting link



shows that when the error number is lager than t, the C program may report an correctable error.



My configurations when running the program are: m=7 length=78 t=2 c(x)=11_1100_1000_1111_0001_1100_0101_0111_0101_0010 _1100_0101_1111_1110_0100_1111_0101_0011_0001_1100



errors: 3 positions: 0, 9, 20. Finally the program report an correctale error and two bit positions are corrected,



which are not the right positions. Anyone can tell me do I have a wrong understanding for BCH code? Whether the C program's result is reasonable?



Thanks!


--------------------------------------- This message was sent using the comp.arch.embedded web interface on

formatting link



No. A BCH code can EITHER correct t errors OR detect 2t errors. Not both.

Vladimir Vassilevsky DSP and Mixed Signal Design Consultant

formatting link

I think the point that the OP is missing is that *beyond* 2t (or t, depending on whether you are looking for detection or correction, respectively), the algorithm gives *incorrect* answers.

Put it in perspective:

Simple parity can detect a one bit error. OTOH, if you have *two* errors, parity reports *none*. I.e., the "parity algorithm" gives incorrect results if the number of errors doesn't fit within its intended scope.

When choosing an ECC algorithm, you have to understand what types of errors are *likely* to occur in your data.

E.g., data recorded on a "CD" is likely to encounter errors that are physically adjacent (i.e., a scratch on the medium) moreso than in large *bursts*.

OTOH, a data communications channel is more likely to encounter errors that are adjacent in *time* (as a dropout or a burst of noise interrupts the communications).

Pick the wrong approach and you will not only fail to get the error detect/correct behavior that you desire but, the algorithm can actually make matters *worse*.

HTH

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required