Patent ID: 7734991

Claim:
A method of encoding a signal on a computer, comprising the steps of: a) selecting a user-definable binary cyclic code, the user-definable binary cyclic code having a user-definable length n and a user-definable dimension k; b) establishing a generator polynomial g(x) having coefficients (g 0 , g 1 , g 2 . . . , g n-k ); c) setting h ⁡ ( x ) = ( x n - 1 ) g ⁡ ( x ) with coefficients (h 0 , h 1 , h 2 , . . . , h k ) and forming ⁢ ⁢ H = [ h k h k - 1 h k - 2 … h 0 0 0 … 0 0 h k h k - 1 … h 1 h 0 0 … 0 … … … … … … 0 0 0 … h k h k - 1 h k - 2 … h 0 0 0 0 … 0 h k h k - 1 … h 1 h 0 ] ; d) receiving data to be encoded, the data having the coefficients (a 1 , a 2 , . . . , a k ); e) appending (n−k) zeros to the received data forming an n-long vector, {right arrow over (r)}=(0, 0, . . . , a 1 , a 2 , . . . , h k ); f) calculating the binary syndrome {right arrow over (s)}=H{right arrow over (r)} t on the computer by performing an exclusive-OR function of (n−k) segments of (r 0 , r 1 , r 2 , . . . , r n-i ) according to the coefficients (h 0 , h 1 , h 2 , . . . , h k ); g) calculating the (n−k) check values L{right arrow over (s)} t , where L = [ g n - k g n - k - 1 g n - k - 2 … g 1 0 g n - k g n - k - 1 … g 2 0 0 … … 0 0 … g n - k g n - k - 1 0 0 … 0 g n - k ] ; h) appending the received data with the (n−k) check values calculated in step (g); and i) encoding the received data on the computer using the generator polynomial established in step (b).