Forward error correction uses complicated mathematical algorithms to identify and correct bad bits. These methods add a substantial amount of data to the payload and require much more powerful processors to perform the calculations in a timely manner. These are primarily used in systems where data integrity is critical.