sinbble
Newbie level 1
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, http://the-art-of-ecc.com/3_Cyclic_BCH/bch_bm.c,
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.
Do I have a wrong understanding for BCH code?
And is the C program's result reasonable?
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, http://the-art-of-ecc.com/3_Cyclic_BCH/bch_bm.c,
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.
Do I have a wrong understanding for BCH code?
And is the C program's result reasonable?