I encounter a problem that a 7k bit length code have several error (mostly 3 bit error). And the 3 bit error are burst error(i.e. they are nearby in a small region).
How to correct this 3 error in 7k length code? And should I seperate the 7k code to smaller length code or combine it into larger length code? What error correction method should I choose?
I encounter a problem that a 7k bit length code have several error (mostly 3 bit error). And the 3 bit error are burst error(i.e. they are nearby in a small region).
Only 3 bits in 7 kilobits are wrong? That is very easy to correct. Worst case would be 2 bytes that are wrong. Just arrange the 7K over a block, and use some parity bytes on rows and columns to detect and correct errors.
The method of row and column check bits will work if you first break the initial data into many sections and arrange into a matrix and make the check bits. Then scramble together the new set of data so that the errors that occur in groups are spread out one each in the original set of rectangles with parity bits. (For instance sent the first bit of each matrix in turn, then the second bit etc.) At the receive end sort out the bits to the proper matrix. Do the parity check and the place where the row and column check bit is wrong is the defective bit.
There is probably a more elegant solution. You should find out why the errors occur to start with and fix the problem at the transmission system.
Break 7k data into several block. Before sending a block, sum all data in the block and save it in checksum register. After sending last byte of block, send checksum register immediately. The receiver checks the checksum value if it is correct. It it is ok, go on. Otherwise, no acknowledge can be send.