Loading in 5 sec....

Forward Error CorrectionPowerPoint Presentation

Forward Error Correction

- 133 Views
- Updated On :
- Presentation posted in: General

Forward Error Correction. Steven Marx CSC457 12/04/2001. Outline. What is FEC? Why do we need it? How does it work? Where is it used?. What is FEC?. Send k packets Reconstruct n packets Such that we can tolerate k-n losses Called an (n, k) FEC code. What is FEC? (2). Why FEC?.

Forward Error Correction

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Forward Error Correction

Steven Marx

CSC457

12/04/2001

- What is FEC?
- Why do we need it?
- How does it work?
- Where is it used?

- Send k packets
- Reconstruct n packets
- Such that we can tolerate k-n losses
- Called an (n, k) FEC code

- Alternatives:
- ARQ (Automatic Repeat reQuest)
- requires feedback
- bad for multicast

- tolerance
- only suitable for some applications

- ARQ (Automatic Repeat reQuest)

- Advantages:
- sometimes no feedback channel necessary
- long delay path
- one-way transmission

- avoids multicast problems

- sometimes no feedback channel necessary
- Disadvantages:
- computationally expensive
- requires over-transmission

An easy example:

(n, k) = (2, 3) FEC code

transmitting two numbers: a and b

Send three packets:

1.a

2.b

3.a + b

Could be represented as matrix multiplication

To encode:

To decode, use subset of rows.

More generally:

y = Gx, where G is a “generator matrix”

G is constructed in such a way that any subset of rows is linearly independent.

A “systematic” generator matrix includes the identity matrix.

- a and b are 8-bit numbers
- a + b may require more bits
- loss of precision means loss of data

- Finite fields:
- field:
- we can add, subtract, multiply, and divide as with integers
- closed over these operations

- finite: finite number of elements

- Specific example:
- “prime field” or “Galois Field” - GF(p)
- elements 0 to p-1
- modulo p arithmeticProblem:
- with the exception of p = 2,log(p)> log(p) bits required
- requires modulo operations

- q = pr elements with p prime, r > 1
- “extension field”, or GF(pr)
- elements can be considered polynomials of degree r - 1
- sum just sum modulo p
- extra simple with p = 2:
- exactly r bits needed
- sums and differences just XORs

- Exists an α whose powers generate all non-zero elements.
- In GF(5), α = 2, whose powers are (1,2,4,3,1,…).
- Powers of α repeat with period q - 1, so αq-1 = α0 = 1

- for all x, x = αl
- l is x’s “logarithm”

An example: GF(5) -> α = 2

3 = 23 mod 5

4 = 22 mod 5

3 * 4 = 23+2 mod 5

= 32 mod 5

= 2 mod 5

3 * 4 = 12 mod 5

= 2 mod 5

- gi,j = xij-1
- xi’s are elements of GF(pr)
- called “Vandermonde Matrices”
- invertible if all xi’s different
- y = Gx
- G-1y = G-1Gx = x

- can be extended with the identity matrix for systematic codes

- for media distribution
- reduces bandwidth requirements of the server
- server transmits to a small number of clients
- while downloading, those clients also transmit packets to other clients
- FEC used to maximize chances of getting useful packets

Star Wars:

Episode Two

Trailer

300Mb/s

100Mb/s

100Mb/s

50Mb/s

100Mb/s

100Mb/s

50Mb/s

50Mb/s

100Mb/s

100Mb/s

- multicast
- streaming media: less “I” frames in MPEGS
- one-way communication
- high delay pathways
- storage

- FEC:
- allows error correction without retransmission
- requires redundancy in transmission
- useful for multicast
- not extensively used at the packet level
- more important with high bandwidth,high latency, as is the trend