Kas yra Hammingo kodas: istorija, darbas ir jo taikymai

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Skaitmeninėse sistemose perduodami duomenys bendravimas gali būti sugadintas dėl išorinio triukšmo ir kitų fizinių gedimų. Jei perduodami duomenys neatitinka pateiktų įvesties duomenų, tai vadinama „klaida“. Duomenų klaidos gali ištrinti gyvybiškai svarbius duomenis skaitmeninėse sistemose. Duomenys bus perduodami bitais (0 ir 1) skaitmeninėse sistemose. Jei kas nors iš bitų yra pakeistas, tai gali turėti įtakos visos sistemos veikimui. Jei bitas „1“ pakeičiamas į „0“ arba atvirkščiai, tai vadinama bitų klaida. Yra įvairių klaidų rūšys kaip vieno bito klaidos, daugybinės klaidos ir serijos klaidos. Šiame straipsnyje aptariame klaidų taisymą ir aptikimą bei kodo kenkimą.

Kas yra klaidų aptikimas ir taisymas?

Skaitmeniniame ryšyje duomenys bus prarasti, jei bus klaida perduodant informaciją iš vienos sistemos / tinklo į kitą sistemą / tinklą. Taigi, svarbu rasti ir ištaisyti klaidas. Kažkokia klaida aptikimas efektyvaus bendravimo klaidoms nustatyti ir ištaisyti naudojami taisymo metodai. Jei naudojami šie metodai, duomenis galima perduoti didesniu tikslumu.




Klaidų aptikimas apibrėžiamas kaip metodas, naudojamas aptikti klaidas, perduodamas iš siųstuvo / siuntėjo į imtuvą skaitmeninėse sistemose. Perkėlimo metu prie duomenų pridedami perteklių kodai, kad būtų galima rasti klaidas. Tai vadinama klaidų aptikimo kodais.

Klaidų taisymas yra duomenų, perduotų iš siųstuvo į imtuvą, taisymas. Klaidų taisymas gali būti dviejų tipų.



Klaidų taisymas atgal

Šio tipo klaidų taisymo metu imtuvas prašo siuntėjo pakartotinai perduoti duomenis, jei imtuvas aptinka klaidą.

Persiųsti klaidų taisymą

jei imtuvo gauti duomenys nustato klaidą, jis įvykdo klaidas taisančius kodus, kad duomenis ištaisytų ir atkurtų automatiškai.


Jei yra „m“ duomenų bitų ir „r“ nereikalingų bitų, tada informacijos deriniai bus 2r.

2r> = m + r + 1

Klaidų aptikimo kodų tipai

Gautų duomenų klaidas galima aptikti naudojant 3 tipų klaidų aptikimo kodus. Tai yra pariteto patikrinimas, ciklinio pertekliaus patikrinimas (CRC) ir išilginis pertekliaus patikrinimas.

Pariteto patikrinimas

Pridedamas nereikalingas bitas, vadinamas pariteto bitu, kad bitų skaičius būtų lygus ar nelyginis, jei lyginis paritas ar nelyginis paritetas. Imtuvas suskaičiuoja kadrų skaičių (1) rėmelyje, kad pridėtų pariteto bitą. Tai vadinama pariteto tikrinimu. Jei kadrų skaičius Nr. 1 yra lyginis, tada naudojamas lyginis paritetas, pridedant bitą „1“ su nuline verte. Panašiai iš „no.of“ yra nelyginis, tada naudojamas nelyginis paritetas, pridedant bitą su verte „1“.

Klaidų aptikimas

klaidų nustatymas

Taigi jis naudojamas užtikrinti, kad rėmelis / data, kurį imtuvas gauna iš šaltinio, nebus sugadintas. Šio tipo klaidų aptikimo atveju „no.of 1“ turėtų būti net gautame kadre. Tai yra labai pigesnė tarp visų tipų klaidų aptikimo.

Išilginio pertekliaus patikrinimas (LRC)

Organizuojant bitų rinkinį / bloką, tada LRC metodą galima naudoti pariteto bitui patikrinti kiekviename kadre. Tai padeda nusiųsti pariteto bitų rinkinį kartu su pradiniais duomenimis ir patikrina perteklių.

Ciklinė perteklinė kontrolė

jo tipas naudojamas aptikti iš šaltinio gautus duomenis / kadrą, galioja ar ne. Tai apima dvejetainį duomenų, kurie turėtų būti siunčiami, padalijimą ir naudoja polinomus (dalikliui sukurti). Anksčiau perdavimo , siuntėjas atlieka duomenų / bitų / rėmelio padalijimo operaciją, kad apskaičiuotų likutį.

Ciklinė perteklinė kontrolė

ciklinė perteklinė kontrolė

Perduodant faktinius duomenis iš siuntėjo, faktinių duomenų pabaigoje jis prideda likutį. Faktinių duomenų ir likusio derinys vadinamas kodiniu žodžiu. Duomenys perduodami kodinių žodžių pavidalu. Šiame procese, jei duomenys yra sugadinti, imtuvas juos atmes, kitaip jie bus priimti.

Kas yra Hammingo kodas?

Hammingo kodas apibrėžiamas kaip tiesinis kodas, naudojamas klaidų aptikimo procese iki 2 tarpinių klaidų. Jis taip pat gali aptikti vieno bitų klaidas. Šiuo metodu siuntėjas prideda nereikalingus bitus prie duomenų / pranešimo, kad užkoduotų duomenis. Kad būtų galima aptikti ir ištaisyti klaidas, šie nereikalingi bitai pridedami tam tikrose klaidų taisymo proceso vietose.

Hammingas-kodas

hamming-kodas

Hammingo kodų istorija

1950 m. Richardas W. Hammingas išrado Hammingo kodus, kad aptiktų ir ištaisytų duomenų klaidas. Po didesnio patikimumo kompiuterių evoliucijos jis įvedė 1 klaidos taisymo kodų sukūrimo kodus ir vėliau išplėtė iki 2 klaidų aptikimo kodus. Hammingo kodai yra sukurti, nes pariteto patikrinimas negali aptikti ir ištaisyti duomenų klaidų. Hammingo kodai įterpiami į bet kurį duomenų bloko ilgį tarp faktinių duomenų ir perteklinių bitų. Jis sukūrė algoritmų masyvą, skirtą klaidų taisymo metodų problemoms spręsti, ir šie kodai yra plačiai naudojami ECC atmintyje.

Pranešimo kodavimo procesas naudojant Hammingo kodą

Siuntėjo koduojamas pranešimas, naudojant siuntėjo kodą, apima 3 veiksmus.

1 žingsnis: Pirmiausia reikia apskaičiuoti pranešime nereikalingų bitų skaičių

  • Pvz., Jei pranešime yra „n“ bitų Nr. Ir „p“ nereikalingų bitų pridedama prie pranešimo, tai „np“ nurodo (n + p + 1) skirtingas būsenas.
  • Kur (n + p) žymi klaidos vietą kiekvienoje bitų pozicijoje
  • 1 (papildoma būsena) reiškia klaidą.
  • Kadangi ‘p’ žymi 2 ^ p (2p) būsenas, kurios yra lygios (n + p + 1) būsenoms.

2 žingsnis: Padėkite nereikalingus antgalius tikslioje / teisingoje padėtyje

„p“ bitai įterpiami į bitų pozicijas, kurių galia yra 2, pvz., 1, 2, 4, 8, 16 ir kt. Šios bitų pozicijos nurodomos kaip p1 (1 padėtis), p2 (2 padėtis), p3 (padėtis) 4) ir kt.

3 žingsnis: Apskaičiuokite nereikalingų bitų vertes

  • Čia pariteto bitai naudojami nereikalingų bitų vertėms apskaičiuoti.
  • Pariteto bitai gali padaryti pranešime skaičių Nr. 1 lyginį arba keistą.
  • Jei bendras pranešime esančių 1 skaičius yra lyginis, naudojamas net paritetas
  • Jei bendras pranešime esančių 1 skaičius yra nelyginis, naudojamas nelyginis paritetas.

Pranešimo iššifravimo procesas Hammingo kode

Iš siuntėjo gauto pranešimo iššifravimo procesas naudojant imitavimo kodą apima šiuos veiksmus. Šis procesas yra ne kas kita, kaip perskaičiavimas, norint aptikti ir ištaisyti pranešimo klaidas.

1 žingsnis: Suskaičiuokite nereikalingų bitų skaičių

Formulė, koduojanti pranešimą naudojant nereikalingus bitus, yra

2p ≥ n + p + 1

2 žingsnis: ištaisykite visų nereikalingų bitų pozicijas

„P“ nereikalingų bitų skaičius yra 2 galios bitų padėtyse, pvz., 1,2,4,8,16,32 ir kt.

3 žingsnis: pariteto tikrinimas (nelyginis paritetas ir lyginis paritetas)

Pariteto bitai apskaičiuojami pagal duomenų bitų ir nereikalingų bitų skaičių.

Pavyzdžiui

P1 lygybė būtų 1, 3, 5, 7, 9, 11,…

P2 lygybė būtų 2, 3, 6, 7, 10, 11,…

P3 paritetas būtų 4–7, 12–15, 20–23,…

Hammingo kodekso privalumai

Pagrindinis „hamming“ kodo naudojimo pranašumas yra ekonomiškas, jei duomenų sraute yra vieno bitų klaidų.

  • Tai gali aptikti klaidas ir nurodo bitą, kuriame yra klaidos taisymui.
  • Hammingo kodus yra labai lengva ir geriausia naudoti kompiuterio atmintyje ir vieno bitų klaidų taisyme bei aptikime.

Hammingo kodekso trūkumai

  • Tai geriausia tik vieno bitų klaidoms taisyti ir aptikti. Jei klaidų yra keli bitai, gali būti sugadinta visa.
  • Hammingo kodo algoritmas gali išspręsti tik vieno bitų klaidas.

Hammingo kodų taikymas

Hammingo kodai naudojami,

  • Skaičiavimas
  • Telekomunikacijos
  • Duomenų glaudinimas
  • Galvosūkių ir turbo kodų sprendimas
  • Palydovai
  • Plazmos CAM
  • Ekranuoti laidai
  • Modemai
  • Kompiuterio atmintis
  • Atviros jungtys
  • Įterptinės sistemos ir procesorius

DUK

1). Ar Hammingo kodas gali aptikti 2 bitų klaidas?

Hammingo kodai gali aptikti ir ištaisyti iki 2 bitų klaidas duomenų sraute

2). Kaip pataisyti Hammingo kodą?

Hammingo kodai dedami į bet kokio ilgio duomenis tarp faktinių duomenų ir nereikalingų bitų. Šie kodai yra vietos, kurių mažiausias atstumas yra 3 bitai

3). Kas yra pariteto kodas?

Pariteto kodas arba paritinis bitas šiek tiek prideda prie gauto rėmelio (duomenyse yra 1 ir 0), kad bendras bitų (1) skaičius būtų lyginis ar nelyginis.

4). Koks Hammingo atstumas tarp duomenų?

Hammingo atstumas tarp dviejų skirtingų vienodo ilgio duomenų srautų yra ne 1.

Kūrybinį atstumą tarp dviejų vienodo ilgio duomenų eilučių galima apskaičiuoti naudojant XOR operaciją.

Pavyzdžiui, a = 11011001

b = 10011101

Hammingo atstumą galima apskaičiuoti kaip

11011001 ⊕ 10011101 = 01000100 (1 bitų skaičius yra 2)

Hammingo atstumas rodo gautų duomenų sraute skaičių Nr. 1

Taigi, d (11011001, 10011101) = 2

Panašiai 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Ar Hammingo kodas yra cikliškas?

Taip, „hamming“ kodai yra lygiaverčiai cikliniams kodams, kurie gali būti naudojami kaip klaidų aptikimo kodai.

Taigi viskas yra apie klaidų taisymą ir aptikimą, klaidų aptikimo tipus, pakenkti kodai , pranešimo užšifravimo ir iššifravimo procesas naudojant „hamming“ kodus, „hamming“ kodų taikymas, „Hamming“ kodų pranašumai ir trūkumai. Štai jums klausimas: „Kokios yra klaidų aptikimo ir taisymo programos?“