- Sections and slides rewritten in Swedish; German law and institutions replaced by Swedish/CEPT/ITU equivalents (PTS, SSA, PTSFS 2025:1, SSMFS 2008:18), unverified statements marked "% TODO VERIFY" - New toc: INSTEG, HAREC, UPPGRADERING; section idents are Swedish (see ident-map.tsv) - Exam-question tags, BNetzA question pool, solutions and the German SWL course removed - Static pages, snippets, applets, READMEs and image alt-texts translated - TikZ labels translated; SVG drawings regenerated (drawing 689 still fails to build upstream: it references a missing photo) - Changed from the original: not endorsed by DARC e.V., SSA or PTS Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2.7 KiB
Om mottagaren upptäcker ett överföringsfel, till exempel med hjälp av kontrollbitar, kan den be sändaren överföra data på nytt. Vid framåtriktad felrättning behövs däremot ofta ingen omsändning. Då läggs extra information till nyttodata, till exempel flera kontrollbitar. Under vissa förutsättningar kan mottagaren då inte bara se att ett fel har uppstått utan också avgöra vilken bit som är felaktig och rätta den. På engelska kallas metoden Forward Error Correction (FEC).
Hur det kan fungera i detalj visas i fördjupningen bredvid med en Hamming-kod som exempel. Den exakta metoden behöver du inte kunna utantill.
Hamming-koden är en felrättningsmetod som använder flera paritetsbitar. Anta att vi vill överföra följande $\num{11}$ databitar:[picture:683:hamming1: ]
För att ett enskilt bitfel inte bara ska kunna upptäckas utan också rättas måste vi kunna avgöra var felet har uppstått. Därför tittar vi först på de enskilda bitarnas positioner och ger dem bokstavsnamn i alfabetisk ordning:
[picture:682:hamming2: ]
Nu ordnar vi databitarna lite annorlunda och lägger till fyra extra paritetsbitar p_1 till p_4:
[picture:684:hamming3: ]
De fyra paritetsbitarna kontrollerar olika, överlappande grupper av bitar:
[picture:685:hamming4: ]
Varje paritetsbit säkrar en bestämd grupp:
[picture:686:hamming5: ]
För var och en av dessa grupper beräknar vi nu den tillhörande paritetsbiten med jämn paritet:
[picture:687:hamming6: ]
Om ett enskilt bitfel uppstår vid överföringen misslyckas vissa paritetskontroller. Av kombinationen av de misslyckade kontrollerna går det att avgöra på vilken position felet har uppstått. Den felaktiga biten kan sedan vändas och därmed rättas.
Om till exempel bit k blir en \num{0} vid överföringen misslyckas alla fyra paritetskontrollerna p_1 till p_4. Endast bit k tillhör alla fyra kontrollerade grupper. Felet måste därför ligga i bit k.
Uppstår i stället ett fel i bit a misslyckas bara kontrollerna för p_1 och p_2, medan kontrollerna för p_3 och p_4 lyckas. Av detta mönster kan mottagaren se att bit a är felaktig.
Även ett fel i själva paritetsbiten kan upptäckas och rättas. Om till exempel p_1 är felaktig misslyckas bara den paritetskontroll som hör till p_1, medan kontrollerna för p_2, p_3 och p_4 lyckas. Felet måste därför ligga i p_1.
Hamming-koden som visas här är avsedd för att rätta ett enskilt bitfel. Om flera bitfel uppstår samtidigt går det inte längre att på ett tillförlitligt sätt avgöra den verkliga felpositionen utifrån paritetskontrollerna. Utökade Hamming-koder kan dessutom till exempel säkert upptäcka två samtidiga bitfel.