# Advanced Forward Error Correction

Forward Error Correction (FEC) is a technique for improving the performance of error-prone channels found in communication systems. The central idea is that the sender encodes their message in a redundant way by using an error-correcting code (ECC). The redundancy allows the receiver to detect a limited number of errors that may occur anywhere in the message, and often to correct these errors without retransmission. Consider the following two examples:

## FEC Compared to Latin Sqaures

Error correction is a set of rules that determine how data has to be received. Hence in this case the rule would be the definition of the Latin Square above. Using the rules, we can then determine what the resulting data should be if we were to be missing the data that was in one square.

A Latin square is *n x n* array filled with *n* different symbols, each occurring exactly once in each
row and exactly once in each column.

A | B | C |

B | C | A |

C | A | B |

* 3 x 3 Latin Square*

## FEC Compared to Sudoko.

If a single number is missing from any location on the sudoko board, then any one of the other relational rules of Sudoko provide information on what the missing number should be. However, the more numbers that are missing, the more rules that you will need to recreate the missing numbers.

The original data to be kept free of corrected of errors is like the numbers that you start with on an incomplete sudoku board, and the additional error correction parity files used to correct errors to the original set are rules you use on a Sudoko board to fill in the missing number sequences back to their intended values.

If too many squares on the Sudoko board are missing (i.e. there are too many erros in the data) then the rulse of Sudoko don't provide enough information to fill in the missing numbers (i.e. the parity files do not have enough information in order to recreate the errors in the data). However, if you had additional Sudoko rules, then these would enable you to recreate the correct set of numbers to complete the Sudoko board, or in this case, you can recreate the correct data to replace the portions of your data which contain errors.

## Common Forward Error Correction Methods

- Turbo Product Codes a.k.a. TPC (Comtech EF Data)
- Turbo Convolutional Codes a.k.a TCC
- Reed Solomon Encoding
- Low-Density Parity-Check Codes (LDPC)
- VersaFEC (Comtech EF Data Proprietary)
- Fastlink LDPC (Paradise Datacom Proprietary)
- 2D 16 State (Idirect Proprietary)

## Measuring the Benefit

### Spectral Efficiency

Commonly referred to as Bits Per Hertz, this is the amount of bits (data) that you can pass through each hertz. This is calculated accrodingly :

### In Dollars

This is the Satcom Resources preferred method of quantifying the result. Using this formula, we factor in the price of the equipment, the bandwidth and then we come up with the cost to send a bit over a period of time. This is how we can determine the optimal approach to procuring a network which is based on equipment costs and operational costs.

## Comparing two approaches, an example

1 MBPS Circuit, Comparing TPC FEC to LDPC FEC | ||
---|---|---|

Data Rate (kbps) |
1024 | 1024 |

FEC |
Turbo Product Codes | LDPC |

Modulation |
QPSK | 8QAM |

FEC Rate |
0.95 | 0.75 |

Eb/No Required (dB) |
6.0 | 4.7 |

Occupied Bandwidth (kHz) |
641 | 541 |

Spectral Efficiency (bps/Hz) |
1.9 | 2.25 |

Assumed Monthly Bandwidth Cost (Mhz) |
$4,000.00 | $4,000.00 |

Annual Bandwidth Cost |
$30,784.00 | $25,995.00 |

Cost of Equipment Upgrade |
N/A | $2000.00 |

Year 1 ROI |
N/A | 239% |

## Notes on the above comparison

- This model is based off of using the Comtech EF Data CDM-625 Satellite Modem with a 0.19 rolloff factor
- The above model ROI does not factor for additional savings that are achieved based on the lower power requirements for the LDPC Carrier