Sådan beregnes Hamming-koden

Forfatter: Annie Hansen
Oprettelsesdato: 6 April 2021
Opdateringsdato: 19 November 2024
Anonim
Sådan beregnes Hamming-koden - Elektronik
Sådan beregnes Hamming-koden - Elektronik

Indhold

Hamming-koder bruges til at indsætte fejlkorrektionsoplysninger i datastrømme. Koderne er designet, så en fejl ikke kun opdages, men også rettes. Tilføjelse af fejlkorrektionsoplysninger øger mængden af ​​data, men det øger også pålideligheden af ​​kommunikation over medier med høje fejlfrekvenser.

Hamming-kodning kan være kompliceret at implementere, men det kan gøres meget hurtigt ved hjælp af bit-niveau aritmetiske tricks. Dette gør det muligt at oprette et nyttigt og højhastighedsfejlkorrektionssystem, der kan bruges i indlejrede applikationer.

Trin 1

Opret dataordet. Enhver bit med en position, der er en styrke på to (første, anden, fjerde osv.) Skal reserveres til paritetsinformation. Brug så længe det er nødvendigt for ordet at have de originale data og paritetsbits.


Eksempel:

1 1 0 1 0 0 1 0 bliver _ _ 1 _ 1 0 1 _ 0 0 1 0

De originale bits forbliver i samme rækkefølge, men blev spredt ud for at indsætte paritetsbitene.

Trin 2

Beregn den første paritetsbit. Startende med den første bit læses en bit, og derefter springes en bit over, og proceduren gentages indtil slutningen. I mellemtiden tælles antallet af fundne. Paritetsbits tæller ikke med i denne proces.

Hvis antallet af dem er lige, skal du indstille den første bit til nul. Ellers skal du indstille den til en.

Eksempel:

Bits 1, 3, 5, 7, 9 og 11 i _ _ 1 _ 1 0 1 _ 0 0 1 0, _11101, indeholder fire. Dette er jævnt, så den første bit er sat til nul: 0 _ 1 _ 1 0 1 _ 0 0 1 0

Trin 3

Beregn de resterende paritetsbits. Startende med den anden bit læses to bits, og derefter springes to bits over, og proceduren gentages indtil slutningen. Den fjerde bit læser fire bits, springer yderligere fire over og starter med bit fire. Det samme mønster følges af alle paritetsbits, indtil de alle beregnes.


Eksempel:

Bit 2: 0 _ 1 _ 1 0 1 _ 0 0 1 0 kontrollerer _1, 01, 01, som indeholder tre, så bit 2 er sat til en. Bit 4: _ 0 1 1 1 0 1 _ 0 0 1 0 kontrollerer _101, 0, som indeholder to, så bit 4 er sat til nul. Bit 8: 0 1 1 0 1 0 1 _ 0 0 1 0 kontrollerer _0010, som kun indeholder en, så bit 8 er sat til en.

Ordet er derfor kodet som 011010110010.

Trin 4

Bekræft ordet. Hvis et ord er ødelagt, vil paritetsbitene ikke matche det, der forventes. For at bekræfte, at ordet ikke er ødelagt, skal du bare beregne paritetsbitene ved hjælp af trin to og tre. Hvis bits ikke er de samme, skal du registrere deres positioner.

Trin 5

Ret den forkerte bit. Hvis du finder forkerte paritetsbits, skal du blot tilføje biternes positioner. Summen er positionen for den forkerte bit. Skift bitværdien i denne position.

For eksempel, hvis de forkerte paritetsbits er en og fire, vil fejlen korrigeres ved at ændre værdien af ​​den femte bit.