Hamming-koodi: Esimerkkejä virheiden korjaamisesta

Sisällysluettelo:

Anonim

Mikä on virhe?

Lähetetyt tiedot voivat vioittua viestinnän aikana. Ulkoinen melu tai muut fyysiset viat vaikuttavat todennäköisesti siihen. Tällaisessa tilanteessa syöttötiedot eivät voi olla samat kuin lähtötiedot. Tämä ristiriita tunnetaan nimellä "virhe".

Tietovirheet voivat johtaa tärkeiden tai suojattujen tietojen menetykseen. Suurin osa digitaalisten järjestelmien tiedonsiirrosta tapahtuu bittisiirron muodossa. Jopa pieni muutos voi vaikuttaa koko järjestelmän suorituskykyyn. Jos 1 muutetaan arvoksi 0 tai 0 muutetaan arvoksi 1, datasekvenssissä sitä kutsutaan "bittivirheeksi".

Tässä Hamming-koodin opetusohjelmassa opit:

  • Mikä on virhe?
  • Virheiden tyypit
  • Mikä on virheen havaitseminen ja korjaaminen?
  • Mikä on Hamming-koodi?
  • Hamming-koodin historia
  • Hemming-koodin käyttö:
  • Hamming-koodin edut
  • Hamming-koodin haitat
  • Viestin koodausprosessi Hamming-koodilla
  • Viestin salauksen purku Hamming-koodissa

Virheiden tyypit

Tiedonsiirrossa lähettäjältä vastaanottimelle tapahtuu pääasiassa kolmenlaisia ​​bittivirheitä.

  • Yksibittiset virheet
  • Useita bittivirheitä
  • Räjähdysvirheet

Yksittäiset bittivirheet

Yhdellä bitillä koko datasekvenssissä tehty muutos tunnetaan nimellä "yhden bitin virhe". Yksibittisten virheiden esiintyminen ei kuitenkaan ole niin yleistä. Lisäksi tämä virhe esiintyy vain rinnakkaisessa viestintäjärjestelmässä, koska data siirretään bittiviivalla yhdellä rivillä. Siksi on enemmän mahdollisuuksia, että yksi rivi voi olla meluisa.

Useita bittivirheitä

Datasekvenssissä, jos lähettimen ja vastaanottimen datasekvenssin kahdessa tai useammassa bitissä tapahtuu muutos, se tunnetaan nimellä "monibittivirheet".

Tämän tyyppinen virhe esiintyy enimmäkseen sekä sarja- että rinnakkaistyyppisissä tiedonsiirtoverkoissa.

Sarjavirheet

Bittijoukon muutos datasekvenssissä tunnetaan nimellä "purskevirhe". Tämän tyyppinen datavirhe lasketaan ensimmäisen bitin muutoksesta viimeisen bitin muutokseen.

Mikä on virheen havaitseminen ja korjaaminen?

Digitaalisessa viestintäjärjestelmässä virhe siirtyy yhdestä viestintäjärjestelmästä toiseen. Jos näitä virheitä ei havaita ja korjata, tiedot menetetään. Tehokasta viestintää varten järjestelmän tietojen tulisi siirtyä erittäin tarkasti. Tämä tehdään tunnistamalla ensin virheet ja korjaamalla ne.

Virheentunnistus on menetelmä virheiden havaitsemiseksi, jotka esiintyvät lähettimeltä vastaanottimelle välitetyssä datassa dataviestintäjärjestelmässä.

Tässä voit käyttää redundanssikoodeja näiden virheiden löytämiseen lisäämällä tietoihin, kun ne lähetetään lähteestä. Näitä koodeja kutsutaan "Virhe koodien havaitsemisessa".

Kolme virhetunnistuskoodityyppiä ovat:

  • Pariteetin tarkistus
  • Syklinen redundanssitarkistus (CRC)
  • Pitkittäinen redundanssitarkistus (LRC)

Pariteetin tarkistus:

  • Se tunnetaan myös pariteettitarkastuksena.
  • Siinä on kustannustehokas mekanismi virheen havaitsemiseksi.
  • Tässä tekniikassa redundantti bitti tunnetaan pariteettibitinä. Se on liitetty jokaiselle datayksikölle. 1: n kokonaismäärän yksikössä tulisi olla tasainen, mikä tunnetaan pariteettibitinä.

Pitkittäinen redundanssitarkistus

Tässä virheentunnistustekniikassa bittilohko on järjestetty taulukkomuodossa. LRC-menetelmä auttaa sinua laskemaan pariteettibitin jokaiselle sarakkeelle. Tämän pariteetin joukko lähetetään myös alkuperäisten tietojen kanssa. Pariteettilohko auttaa sinua tarkistamaan redundanssin.

Syklinen redundanssitarkistus

Syklinen redundanssitarkistus on sarja redundantteja, jotka on liitettävä yksikön päähän. Siksi tuloksena olevan tietoyksikön pitäisi tulla jaettavaksi toisella, ennalta määrätyllä binääriluvulla.

Kohteessa saapuvat tiedot on jaettava samalla numerolla. Jos jäännöstä ei ole, datayksikön oletetaan olevan oikea ja hyväksytty. Muussa tapauksessa se osoittaa, että datayksikkö on vaurioitunut lähetyksessä, ja siksi se on hylättävä.

Mikä on Hamming-koodi?

Hamming-koodi on linjakoodi, joka on hyödyllinen virheiden havaitsemiseen jopa kahteen välittömään bittivirheeseen. Se pystyy yhden bittisiin virheisiin.

Hamming-koodissa lähde koodaa viestin lisäämällä tarpeettomia bittejä viestiin. Nämä redundantit bitit lisätään ja generoidaan enimmäkseen tietyissä viestin paikoissa virheen havaitsemisen ja korjaamisen suorittamiseksi.

Hamming-koodin historia

  • Hamming-koodi on RWHammingin rakentama tekniikka virheiden havaitsemiseksi.
  • Hamming-koodia tulisi soveltaa minkä tahansa pituisiin tietoyksikköihin, ja se käyttää datan ja redundanssibittien välistä suhdetta.
  • Hän työskenteli virheenkorjausmenetelmän ongelman parissa ja kehitti yhä tehokkaamman joukon algoritmeja nimeltä Hamming-koodi.
  • Vuonna 1950 hän julkaisi Hamming-koodin, jota käytetään nykyään laajalti sovelluksissa, kuten ECC-muisti.

Hamming-koodin käyttö

Tässä on joitain yleisiä sovelluksia Hemming-koodin käytöstä:

  • Satelliitit
  • Tietokoneen muisti
  • Modeemit
  • PlasmaCAM
  • Avaa liittimet
  • Suojakaapeli
  • Sulautettu prosessori

Hamming-koodin edut

  • Hamming-koodimenetelmä on tehokas verkoissa, joissa datavirrat annetaan yhden bitin virheille.
  • Hamming-koodi ei vain havaitse bittivirhettä, vaan myös auttaa sinua sisennyttämään virheitä sisältävän bitin sisään, jotta se voidaan korjata.
  • Koodien yhdistämisen helppous tekee niistä parhaiten sopivia käytettäväksi tietokoneen muistissa ja yhden virheen korjauksessa.

Hamming-koodin haitat

  • Yksibittinen virheentunnistus ja korjauskoodi. Kuitenkin, jos useita bittejä on perusteltu virhe, tulos voi johtaa toiseen bittiin, jonka pitäisi olla oikea muuttaa. Tämä voi aiheuttaa tietojen virheellisyyden edelleen.
  • Hamming-koodialgoritmi voi ratkaista vain yhden bitin ongelmat.

Viestin koodausprosessi Hamming-koodilla

Lähettäjän viestin koodaamiseen käyttämä prosessi sisältää seuraavat kolme vaihetta:

  • Lasketaan redundanttien bittien kokonaismäärä.
  • Redundanttien bittien sijainnin tarkistaminen.
  • Viimeiseksi näiden redundanttien bittien arvojen laskeminen.

Kun yllä olevat redundantit bitit upotetaan viestiin, se lähetetään käyttäjälle.

Vaihe 1) Lasketaan redundanttien bittien kokonaismäärä.

Oletetaan, että viesti sisältää:

  • n - databittien lukumäärä
  • p - siihen lisättyjen redundanttien bittien lukumäärä, jotta np voi osoittaa vähintään (n + p + 1) erilaista tilaa.

Tässä (n + p) kuvaa virheen sijainnin kussakin (n + p) bittipaikassa ja yksi ylimääräinen tila ei osoita virhettä. Koska p-bitit voivat osoittaa 2 p- tilaa, 2 p: n on oltava vähintään yhtä suuri kuin (n + p + 1).

Vaihe 2) Aseta redundantit bitit oikeaan asentoonsa.

P-redundantit bitit tulisi sijoittaa 2: n bittiasemiin. Esimerkiksi 1, 2, 4, 8, 16 jne. Niihin viitataan nimellä p 1 (kohdassa 1), p 2 (paikassa 2) , p 3 (kohdassa 4) jne.

Vaihe 3) Redundantin bitin arvojen laskeminen.

Redundanttien bittien tulisi olla pariteettibittejä, mikä tekee yhden sekunnin luvusta joko parittoman tai parittoman.

Kaksi pariteettityyppiä ovat -

  • Viestissä olevien bittien kokonaismäärä parilliseksi kutsutaan parilliseksi.
  • Sanoman bittien kokonaismäärä parittomaksi kutsutaan parittomaksi pariteetiksi.

Tässä kaikki redundantti bitti pl on laskettava pariteettina. Sen tulisi kattaa kaikki bittiasemat, joiden binäärisen esityksen tulisi sisältää 1 ensimmäisessä asemassa lukuun ottamatta p1: n sijaintia.

P1 on pariteettibitti jokaiselle databitille paikoissa, joiden binäärinen esitys sisältää 1: n vähemmän tärkeässä asemassa ilman 1 Like: ta (3, 5, 7, 9,

…. )

P2 on pariteettibitti jokaiselle databitille paikoissa, joiden binäärinen esitys sisältää 1 sijainnissa 2 oikealta, lukuun ottamatta 2 Like (3, 6, 7, 10, 11,

…)

P3 on pariteettibitti jokaiselle bitille sijainneissa, joiden binäärinen esitys sisältää 1 sijainnissa 3 oikealta, ei sisällä 4 Like (5-7, 12-15,

…)

Viestin salauksen purku Hamming-koodissa

Vastaanotin saa saapuvia viestejä, jotka edellyttävät uudelleenlaskentaa virheiden löytämiseksi ja korjaamiseksi.

Seuraavissa vaiheissa suoritettu uudelleenlaskentaprosessi:

  • Lasketaan redundanttien bittien määrä.
  • Kaikkien redundanttien bittien oikea sijoitus.
  • Pariteettitarkistus

Vaihe 1) Lasketaan redundanttien bittien määrä

Voit käyttää koodauksessa samaa kaavaa, redundanttien bittien lukumäärää

2 p ≥ n + p + 1

Tässä databittien ja p on redundanttien bittien lukumäärä.

Vaihe 2) Postaat kaikki redundantit bitit oikein

Tässä p on redundantti bitti, joka sijaitsee bittiasemissa 2, esimerkiksi 1, 2, 4, 8 jne.

Vaihe 3) Pariteettitarkistus

Pariteettibitit on laskettava databittien ja redundanttien bittien perusteella.

p1 = pariteetti (1, 3, 5, 7, 9, 11

…)

p2 = pariteetti (2, 3, 6, 7, 10, 11

…)

p3 = pariteetti (4-7, 12-15, 20-23

…)

Yhteenveto

  • Lähetetyt tiedot voivat vioittua viestinnän aikana
  • Kolme bittivirhetyyppiä ovat 1) yhden bittivirheet 2) monibittivirhe 3) purskebittivirheet
  • Yhdellä bitillä koko datasekvenssissä tehty muutos tunnetaan nimellä "yhden bitin virhe".
  • Datasekvenssissä, jos lähettimen ja vastaanottimen datasekvenssin kahdessa tai useammassa bitissä tapahtuu muutos, se tunnetaan nimellä "monibittivirheet".
  • Bittijoukon muutos datasekvenssissä tunnetaan nimellä "purskevirhe".
  • Virheentunnistus on menetelmä virheiden havaitsemiseksi, jotka esiintyvät lähettimeltä vastaanottimelle välitetyssä datassa dataviestintäjärjestelmässä
  • Kolme virhetunnistetyyppiä ovat 1) pariteettitarkistus 2) syklisen redundanssin tarkistus (CRC) 3) pitkittäisen redundanssin tarkistus (LRC)
  • Hamming-koodi on linjakoodi, joka on hyödyllinen virheiden havaitsemiseen jopa kahteen välittömään bittivirheeseen. Se pystyy yhden bittisiin virheisiin.
  • Hamming-koodi on RWHammingin rakentama tekniikka virheiden havaitsemiseksi.
  • Hemming-koodin yleisiä sovelluksia ovat satelliittitietokoneen muisti, modeemit, sulautetut prosessorit jne.
  • Hamming-koodimenetelmän suurin hyöty on tehokas verkoissa, joissa datavirrat annetaan yhden bitin virheille.
  • Hamming-koodimenetelmän suurin haittapuoli on, että se pystyy ratkaisemaan vain yhden bitin ongelmat.
  • Voimme suorittaa viestin salauksen ja dekoodauksen koodin avulla.