1.05k likes | 1.2k Views
Shortened Reed Solomon Codes. • Note: is very restrictive • Would like more flexibility in determining the length • If we shorten the length of the message to. Properties of Shortened Reed Solomon Codes.
E N D
Shortened Reed Solomon Codes • Note: is very restrictive • Would like more flexibility in determining the length • If we shorten the length of the message to
Properties of Shortened Reed Solomon Codes • For a (n,k) Reed Solomon code that is shortened to (n-l,k-l) the minimum distance is (n-l-(k-l)-1) = n-k-1 (shortening does not change the minimum distance) • Code is no longer cyclic, but it is maximum distance separable • e.g. (255,245) RS code and shortened (182,172) code over GF(256) both correct t=5 errors. • It is very common to use codes over GF(256) and then shorten the message to get the desired codeword length
Case study: Error control coding in DVD-ROM Product Reed Solomon Codes
Case study: Error control coding in DVD-ROM Product Reed Solomon Codes Physical bits stored 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0
Format 33k bytes of data (e.g. video) • • • RS encoder • • • parity 8-bits EFM+ 16-bits 1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0
RS Encoder 33k bytes of data (e.g. video) • • • Read in by row RS encoder • • • parity 172 bytes 192 rows
RS Encoder 33k bytes of data (e.g. video) • • • Read in by row RS encoder • • • parity 172 bytes 172 bytes 192 rows Read out by row
RS Encoder 33k bytes of data (e.g. video) • • • RS encoder • • • parity 172 bytes 10 bytes (182,172) RS code over GF(256) (182,172) RS code over GF(256) (182,172) RS code over GF(256) 192 rows 192 times (182,172) RS code over GF(256)
RS Encoder • • • RS encoder • • • parity 172 bytes 10 bytes 192 rows 182 times 16 bytes (208,192) RS code over GF(256)
RS Encoder • • • RS encoder • • • parity 172*182 = 31kbytes 10*192 + 182*16 172 bytes 10 bytes n=37856 k=31304 R=k/n = 0.82 192 rows 16 bytes
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes Row code: Shortened RS code (182,172) with 10 parity bytes: Each row can correct up t=5 byte errors in that row
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes Column code: Shortened RS code (208,192) with 16 parity bytes: Each column can correct up tp t=8 byte errors for that column
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes How long of a burst of errors is correctible?
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes How long of a burst of errors is correctible?
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes How long of a burst of errors is correctible?
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes Burst error correcting capability: - any burst of errors that extends for no more than 8 rows is correctible (182*8 = 1456 bytes)
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes Burst error correcting capability: - a max burst of errors that extends for no more than 8 rows is correctible (182*8 = 1456 bytes)
RS Encoder 172 bytes 10 bytes 192 rows 16 bytes Burst error correcting capability: - a max burst of errors that extends for no more than 8 rows is correctible (182*8 = 1456 bytes) max width of scratch: (1456byte*2.13 microns/byte = 3mm )
Issues 172 bytes 10 bytes 192 rows 16 bytes • Unfortunately there are random errors that occur too - at a rate of about 1 in1000 bits -- about 20-30 other random errors sprinkled in
Issues 172 bytes 10 bytes 192 rows Row Decode 16 bytes • Unfortunately there are random errors that occur too - at a rate of about 1 in1000 bits -- about 20-30 other random errors sprinkled in
Issues 172 bytes 10 bytes 192 rows Row Decode 16 bytes • Unfortunately there are random errors that occur too - at a rate of about 1 in1000 bits -- about 20-30 other random errors sprinkled in
Issues Column decode 172 bytes 10 bytes 192 rows Row Decode 16 bytes • Unfortunately there are random errors that occur too - at a rate of about 1 in1000 bits -- about 20-30 other random errors sprinkled in
Issues Column decode 172 bytes 10 bytes 192 rows Row Decode 16 bytes • Unfortunately there are random errors that occur too - at a rate of about 1 in1000 bits -- about 20-30 other random errors sprinkled in
Comments • This is done at about 5 Mbps - not bad this is cheap to implement • Can be done on an ASIC - some general purpose DSP’s have this built in now Now decoding…. • Row code: different syndromes • Col code: different syndromes
Error Control Coding in Fiber Optic Transmission systems • This is done at about 5 Mbps - not bad this is cheap to implement
Transmitting and Detecting bits • 1 bit transmitted every T seconds: data rate 1/T bits/sec • Detector at receiving end is a threshold device: was 0 or 1 sent? 1 1 0 1 0 0 1 0 0 0 T Time t Decide 1 Decide 0 A Volts A Volts 0 Volts 0 Volts
Performance • Detector can be wrong B “signal to noise ratio”
Performance • Detector can be wrong Bit error rate as a function of SNR
Degradation of Q • Q degrades as a function of • Distance • Transmitted power • Data rate • Traditional (but not best design): • Design system with significant margin to keep error rate < 1e-15 B “signal to noise ratio”
Option: Forward Error Correction • Send “information” bits and overhead “parity” bits to correct for the the errors that result from • Distance,Transmitted power, Data rate • Overhead bits allow for correction of errors during transmission • But overhead bits result in bandwidth expansion • Have to account for this
History and numbers • Error control coding: History • First codes in 30s: Hamming • Promise of error free communications in the presence of any noise: Shannon 1948 • Common applications • > 4 Billion CD/DVDs produced each year • > 400 million CD/DVD players • > every hard drive • > every cell phone, many pagers, digital TV, DSL, cable modems • GT courses • ECE6605 Information Theory • ECE6606 Error Control Coding