## Framåtriktad felrättning (FEC) * Om mottagaren upptäcker ett fel (t.ex. med kontrollbitar) kan den be om omsändning * Vid framåtriktad felrättning läggs extra redundans till (t.ex. fler kontrollbitar) * Då upptäcks inte bara att ett fel föreligger, utan också var $\rightarrow$ den felaktiga biten kan rättas * På engelska talar man om Forward Error Correction (FEC) --- ## Hamming-kod – felrättning i detalj * Hamming-koden använder flera paritetsbitar för att inte bara upptäcka fel utan också rätta dem * Mål: Ett enskilt bitfel ska lokaliseras och rättas --- [picture:683:hamming1:Överföring av 11 bitar] * Exempel: Överföring av ett dataord på 11 bitar * Mål: Felupptäckt och felrättning vid ett bitfel --- [picture:682:hamming2:Bokstavsnamn på bitpositionerna] * Bitarnas positioner ges bokstavsnamn i alfabetisk ordning för att identifiera de olika områdena --- [picture:684:hamming3:Omordning med extra bitar] * Databitarna ordnas med extra bitpositioner för paritetsbitar --- [picture:685:hamming4:Fyra paritetsbitar i Hamming-koden] * I stället för en enda kontrollbit används fyra paritetsbitar ($p_1$–$p_4$) * De täcker olika områden av databitarna – ungefär som ett korsord --- [picture:686:hamming5:Fördelning av paritetsområdena] * Varje paritetsbit säkrar ett bestämt område av data --- [picture:687:hamming6:Beräkning av paritetsbitarna (jämn paritet)] * För varje område beräknas paritetsbiten med jämn paritet * Om ett fel uppstår kan de felaktiga områdena identifieras och rättas --- [picture:687:hamming6:Beräkning av paritetsbitarna (jämn paritet)] * Genom att kombinera paritetsområdena kan den felaktiga bitens plats bestämmas * Exempel: Om en viss bit (t.ex. bit $k$) ändras under överföringen misslyckas alla tillhörande paritetskontroller – felet ligger alltså i bit $k$