I found that (255,223,32) RS code where
255 = output symbols of RS encoder
223 = input symbols to the RS encoder
and each symbol is of 8 bit width is the most widely used one and it can correct upto 16 (255-223/2) symbols errors; where a symbol error occurs if at-least one bit among 8 bits of a symbol is corrupted, even all 8 bits can be corrupted in the worst case. I have the following doubts
1) Does the above mentioned RS code has the capability to correct all 16 error symbols, where in each error symbol all 8 bits are corrupted ?
2) The (255,223,32) RS code has a error correction capability of 6.27% (16/255 *100). If my code is (255,16,239) can I consider that it has a error correction capability of 46.86% ?
I request you to kindly help me with these doubts.
You're absolutely right, the RS(255,223,32) corrects all error patterns that affect 16 (or less) of the 255 bytes - no matter how they are corrupted. If you know in advance which bytes have been corrupted then the capability is even higher. This type of error is called erasure.
The RS(255, 255-k) decoder corrects all byte error/erasure patterns bounded by:
(2*errorCount + erasureCount) <= k
You can take look at my C-implementation which is available from my homepage. It handles both errors and erasures.