前向纠错(英语:forward error correction,缩写FEC)或信道编码(英语:channel coding)是一种在单向通信系统中控制传输错误的技术,通过连同数据发送额外的信息进行错误恢复,以降低比特误码率。FEC又分为带内FEC和带外FEC。FEC的处理往往发生在早期阶段处理后的数字信号是第一次收到。也就是说,纠错电路往往是不可分割的一部分的模拟到数字的转换过程中,还涉及数字调制解调,或线路编码和解码。
FEC是通过添加冗余信息的传输采用预先确定的算法。1949年汉明(Hamming)提出了可纠正单个随机差错的汉明码。1960年Hoopueghem、Bose和Chaudhum发明了BCH码,Reed与Solomon又提出ReedSolomon(RS)编码,纠错能力很强,后来称之为里德-所罗门误码校正编码(The reed-solomon error correction code,即后来的附加的前向纠错)。ITU-T G.975/G.709规定了“带外FEC”是在SDH层下面增加一FEC层,专门处理FEC的问题。带外FEC编码冗余度大,纠错能力较强。FEC有别于ARQ,发现错误无须通知发送方重发。一旦系统丢失了原始的数据包,FEC机制可以以冗余报文加以补入。例如有一数据包为“10”,分成二个报文,分别为“1”和“0”,有一冗余报文“0”,收到任意两个报文就能组装出原始的包。但这些冗余报文也会产生额外负担。