Vad är blockkodning?

En del av kodteorin, blockkodning är en form av forward error correction (FEC), även känd som en kanalkod, som omvandlar meddelanden till specifika koder och skickar informationen som ett datablock med en förutbestämd längd. Större datablock gör det lättare för den mottagande datorn att avkoda informationen och korrigera fel som uppstår under överföringen. Blockkoder och faltningskoder är två kodtyper som vanligtvis används i FEC. Dessa typer av kod gör att ett meddelande kan skickas över en opålitlig anslutning och fortfarande vara dechiffreerbar när det kommer.

Användningen av blockkodning är nödvändig på grund av brus som uppstår när ett meddelande skickas. När data behöver resa en lång sträcka eller över en opålitlig anslutning, används Hamming-vikten och avståndet för att bestämma sannolikheten för fel. Hammingvikt är antalet siffror som behövs för att uttrycka alla möjliga kodkombinationer, och hammingsavståndet är hur många fel som skulle behöva inträffa innan en bit representerade en legitim, men felaktig, information.

Till exempel, om en avsändare som använder blockkodning vill skicka ett meddelande som bara kan använda tre möjliga koder som var tre siffror långa, skulle Hamming-vikten vara tre. Koderna kan vara 000, 010 och 011. Om ett fel resulterade i att någon siffra ändrades, till exempel 000 ändrades till 010, skulle koden läsas som en legitim kod (010) men inte den kod som avsändaren avsåg (000) . Således är Hamming-avståndet för denna kod ett eftersom endast en siffra behöver ändras för att orsaka ett fel som datorn inte kan fixa.

För att minska Hamming-avståndet och minska fel skickas data som ett kodblock som kodas till specifika kodord av en viss längd. De ursprungliga meddelandedatabitarna hänvisas till som k bitar. De k bitarna översätts till motsvarande n bitar, vilket är koder som har valts ut att stå i som längre koder för varje k bit. Ettor eller nollor läggs till för att göra bitarna till en enhetlig längd och minska Hamming-avståndet. Sedan sänds dessa block med n bitar till den mottagande datorn.

Att tänka på blockkodning är enklast när man jämför det med två personer som har en konversation. När man pratar i ett bullrigt rum eller skriker över långa avstånd finns det mer utrymme för fel i vad den mottagande personen hör. Om meningen är lång kan personen rätta till fler fel genom att ta hela meningen i sitt sammanhang, men korta meningar har en högre felfrekvens eftersom det är svårare att tyda vad personen säger.

Som ett exempel, om en person ropar ”Röd katt” och den andra personen hör ”Fed katt”, avbryter de meningen felaktigt. Men om den första personen sa: ”Jag har en röd färgad katt” och den andra personen hörde ”Jag har en färgad katt som matas”, gör meningen i sammanhanget det lätt att avgöra vem som faktiskt sa ”röd” och inte ”matad”. Detta är grundprincipen bakom blockkodning och användningen av längre, enhetliga koder för att hjälpa datorer att korrekt översätta ett informationsblock.