note: is very restrictive would like more flexibility in determining the length if we shorten the...
TRANSCRIPT
• Note: is very restrictive
• Would like more flexibility in determining the length
• If we shorten the length of the message to
Shortened Reed Solomon Codes
€
2m −ary, n = 2m −1
€
c(x) =m(x)g(x)
c0 + c1x+...+ cn−1xn−1 =
(m0 +m1x+...+mk−1xk−1)(g0 + g1x+...+ gn−kx
n−k )
€
m = (m0 ,...,mk−1)
€
m = (m0 ,...,mk−l−1)
€
c0 + c1x+...+ cn−l−1xn−l−1 =
(m0 +m1x+...+mk−l−1xk−l−1 + 0xk−l +...+ 0xk−1)(g0 + g1x+...+ gn−kx
n−k )
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-ROMProduct Reed Solomon Codes
0.4 μm
: 680CD MB: 4.7 DVD GB
Case study: Error control coding in DVD-ROMProduct Reed Solomon Codes
0.4 μm
: 680CD MB: 4.7 DVD GB
1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0Physical bitsstored
Format
1 0 0 1 0 0 1 0 0 0 0 1 0 0 0 0
• • •
33k bytes of data (e.g. video)
8-bits
16-bits
• • •
parity
RS encoder
EFM+
RS Encoder
• • •
33k bytes of data (e.g. video)
• • •
parity
RS encoder
172 bytes
192 rows
Read in by row
RS Encoder
• • •
33k bytes of data (e.g. video)
• • •
parity
RS encoder
172 bytes
192 rows
Read in by row
172 bytes
Read out by row
RS Encoder
• • •
33k bytes of data (e.g. video)
• • •
parity
RS encoder
172 bytes
192 rows
10 bytes(182,172) RS code over GF(256)(182,172) RS code over GF(256)
(182,172) RS code over GF(256)
(182,172) RS code over GF(256)
192 times
RS Encoder
• • •
• • •
parity
RS encoder
172 bytes
192 rows
10 bytes
16 bytes (208,192) RS code over GF(256)
182 times
RS Encoder
• • •
• • • parity
RS encoder
172 bytes
192 rows
10 bytes
16 bytes
172*182 = 31kbytes 10*192 + 182*16
n=37856k=31304
R=k/n = 0.82
RS Encoder
172 bytes
192 rows
10 bytes
16 bytes
RS Encoder
172 bytes
192 rows
10 bytes
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
192 rows
10 bytes
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
192 rows
10 bytes
16 bytes
How long of a burst of errors is correctible?
RS Encoder
172 bytes
192 rows
10 bytes
16 bytes
How long of a burst of errors is correctible?
RS Encoder
172 bytes
192 rows
10 bytes
16 bytes
How long of a burst of errors is correctible?
RS Encoder
172 bytes
192 rows
10 bytes
16 bytes
Burst error correcting capability:- any burst of errors that extends for no morethan 8 rows is correctible (182*8 = 1456 bytes)
RS Encoder
172 bytes
192 rows
10 bytes
16 bytes
Burst error correcting capability: - a max burst of errors that extends for no morethan 8 rows is correctible (182*8 = 1456 bytes)
RS Encoder
172 bytes
192 rows
10 bytes
16 bytes
Burst error correcting capability:- a max burst of errors that extends for no morethan 8 rows is correctible (182*8 = 1456 bytes)
max width of scratch: (1456byte*2.13 microns/byte = 3mm )
Issues
172 bytes
192 rows
10 bytes
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
192 rows
10 bytes
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
RowDecode
Issues
172 bytes
192 rows
10 bytes
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
RowDecode
Issues
172 bytes
192 rows
10 bytes
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
RowDecode
Column decode
Issues
172 bytes
192 rows
10 bytes
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
RowDecode
Column decode
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€
25610 = 280
€
25616 = 2128
Error Control Coding in Fiber Optic Transmission systems
• This is done at about 5 Mbps - not bad this is cheap to implement
• 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?
Transmitting and Detecting bits
T
1 1 1 1 00 0 0 0 0
Time t
Decide 1 Decide 0
0 Volts
A Volts A Volts
0 Volts
• Detector can be wrong
Performance
€
Q =B
(σ 1 +σ 2 ) /2
B€
σ1
€
σ 2
“signal to noise ratio”
• Detector can be wrong
Performance
6 8 10 12 14 16 1810 -15
10 -10
10 -5
100
20log(Q)
BER
Uncoded BER vs Q, Capacities for R=0.9249
Bit error rate as a function of SNR
• 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
Degradation of Q
B€
σ1
€
σ 2
“signal to noise ratio”
€
Q =B
(σ 1 +σ 2 ) /2
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
Bandwidth expansion and Rate
T
1 1 1 1 00 0 0 0 0
Time t
RT
1 1 1 1 00 0 0 0 0
Time t
Information bits only: k bits
Information bits (k) and parity ‘overhead’ bits (r)
1 1 10 11
k r
True data rate is same in both (information data rate)
Let R =k/(k+r), channel bit rate expands by a factor 1/R
Issues
• Is error correction worth it?
•Channel bandwidth goes up - noise increases as a function of bandwidth (causes Q to decrease, BER goes up), e.g.
•But FEC can correct errors that occur
•Which wins?
• How is FEC done?
€
Q =B
1/4R(σ 1 +σ 2 )=
4RB(σ 1 +σ 2 )
• G.975: 10 Gbps data rate
• n=255 bytes, k=239 bytes, corrects 3 byte errors• 25 year old technology• Optical fiber products only last 5-7 years• R = 239/255, 7% overhead
• Line rate = n/k*10Gbps=10.7Gbps •Standard specifies 16 of these codes in parallel•Processing rate = 10 Gbps/16 = 625 Mbps
G.975 Reed Solomon Code
Enc 1
Enc 2
Enc 16
••
239 bytes
239 bytes
239 bytes
255 bytes
255 bytes
255 bytes
MUX
10.7 Gbps
FEC BERin vs BERout