## 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$