Ano ang Hamming Code: Kasaysayan, Paggawa at Mga Application nito

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa mga digital na system, ang naihatid na data para sa komunikasyon maaaring masira dahil sa panlabas na ingay at anumang iba pang mga pagkabigo sa pisikal. Kung ang naihatid na data ay hindi tugma sa ibinigay na data ng pag-input, pagkatapos ito ay tinatawag na isang 'error'. Maaaring tanggalin ng mga error sa data ang mahahalagang data sa mga digital system. Ang paglipat ng data ay magiging sa anyo ng mga piraso (0 at 1) sa mga digital system. Kung ang sinuman sa kaunting pagbabago ay nabago, maaaring maapektuhan ang pagganap ng buong system. Kung ang bit na '1' ay binago sa bit '0' o kabaligtaran, pagkatapos ay tinatawag itong bit error. Mayroong iba't ibang mga uri ng pagkakamali tulad ng solong mga error sa bit, maraming mga error at mga error na sumabog. Sa artikulong ito, tinatalakay namin ang pagwawasto at pagkakita ng error, at ang code ng hamming.

Ano ang Pagtuklas ng Error at Pagwawasto?

Sa digital na komunikasyon, mawawala ang data kung mayroong isang error sa paglipat ng impormasyon mula sa isang system / network patungo sa isa pang system / network. Kaya, mahalagang hanapin at iwasto ang mga error. Ang ilang mga error pagkakita at mga pamamaraan ng pagwawasto ay ginagamit upang makita at maitama ang mga pagkakamali para sa mabisang komunikasyon. Kung ginagamit ang mga pamamaraang ito, maaaring mailipat ang data nang may mas mataas na kawastuhan.




Ang pagtuklas ng error ay tinukoy bilang, ang pamamaraang ginamit upang makita ang mga error na nailipat mula sa transmiter / nagpadala sa tatanggap sa mga digital system. Ang mga code ng kalabisan ay idinagdag sa data sa panahon ng paghahatid upang makita ang mga error. Tinatawag itong mga code na nakakakita ng error.

Ang pagwawasto ng error ay ang pagwawasto ng data na naihatid mula sa transmiter patungo sa tatanggap. Ang pagwawasto ng error ay maaaring gawin sa dalawang uri.



Pagwawasto ng Error sa Paatras

Sa ganitong uri ng pagwawasto ng error, hinihiling ng tatanggap ang nagpadala na muling ipadala ang data kung nakita ng tatanggap ang error.

Ipasa ang Pagwawasto ng Error

kung ang data na natanggap ng tatanggap ay natagpuan ang error, pagkatapos ay isinasagawa nito ang mga code sa pagwawasto ng error, upang maitama at awtomatikong mabawi ang data.


Kung mayroong 'm' hindi. Ng mga data bits at 'r' no. Ng mga kalabisan na piraso, kung gayon ang mga kumbinasyon ng impormasyon ay magiging 2r.

2r> = m + r + 1

Mga uri ng Mga Code ng Pagkakita ng Error

Ang mga error sa natanggap na data ay maaaring napansin sa pamamagitan ng paggamit ng 3 uri ng mga code ng pagkakita ng error. Ang mga ito ay, check ng parity, cyclic redundancy check (CRC) at tsek longhitudinal redundancy.

Parity Check

Ang kalabisan na bit na tinatawag na parity bit ay idinagdag upang gawin ang hindi. Ng mga piraso kahit o kakaiba sa kaso ng pantay na pagkakapareho o kakaibang pagkakapareho. Binibilang ng tatanggap ang mga no.of bits (1's) sa isang frame upang idagdag ang parity bit. Tinatawag itong parity check. Kung ang no.of 1's sa isang frame ay pantay, pagkatapos ay kahit ang pagkakapantay-pantay ay ginagamit sa pamamagitan ng pagdaragdag ng bit '1'sa zero na halaga. Katulad nito, sa mga hindi. Ng 1 ay kakaiba, kung gayon ang kakaibang pagkakapareho ay ginagamit sa pamamagitan ng pagdaragdag ng kaunti sa halagang '1'.

Pagkakita ng Error

pagtuklas ng error

Samakatuwid, ginagamit ito upang matiyak na ang frame / petsa na natanggap ng tatanggap mula sa pinagmulan ay hindi masira. Sa ganitong uri ng pagtuklas ng error, ang no.of 1 ay dapat na kahit sa natanggap na frame. Napaka-mas mura sa lahat ng mga uri ng pagtuklas ng error.

Longitudinal Redundancy Check (LRC)

inayos ang hanay / bloke ng mga piraso, pagkatapos ay maaaring magamit ang pamamaraang LRC upang suriin ang pagkakapareho sa bawat frame. Tumutulong itong ipadala ang hanay ng mga parity bits kasama ang orihinal na data at suriin ang kalabisan.

Cyclic Redundancy Check

ang kanyang uri ay ginagamit upang makita ang data / frame na natanggap mula sa pinagmulan ay wasto o hindi. Nagsasangkot ito sa binary na paghahati ng data na dapat maipadala at gumagamit ng mga polynomial (upang makabuo ng divisor). Dati pa ang paghahatid , isang operasyon ng dibisyon ay ginaganap ng nagpadala sa data / bits / frame upang makalkula ang natitira.

Cyclic-Redundancy-Check

cyclic-redundancy-check

Sa panahon ng paghahatid ng tunay na data mula sa nagpadala, idaragdag nito ang natitira sa dulo ng aktwal na data. Ang kombinasyon ng aktwal na data at ang natitira ay tinatawag na isang codeword. Ang data ay ipinadala sa anyo ng mga codewords. Sa prosesong ito, kung ang data ay nasira, kung gayon ang data ay tatanggihan ng tatanggap kung hindi man tatanggapin ito.

Ano ang Hamming Code?

Ang Hamming code ay tinukoy bilang, isang linear code na ginagamit sa proseso ng pagtuklas ng error hanggang sa 2-intermediate na mga error. Ito rin ay may kakayahang makita ang mga solong-error. Sa pamamaraang ito, ang mga kalabisan na bit ay idinagdag sa data / mensahe ng nagpadala upang ma-encode ang data. Upang magawa ang pagtuklas ng error at pagwawasto, ang mga kalabisan na bit ay idinagdag sa ilang mga posisyon para sa proseso ng pagwawasto ng error.

Hamming-Code

code ng martilyo

Kasaysayan ng Hamming Codes

Noong 1950, naimbento ni Richard W. hamming ang mga Hamming code upang makita at maitama ang mga pagkakamali sa data. Matapos ang ebolusyon ng mga computer na may mas mataas na pagiging maaasahan, ipinakilala niya ang mga hamming code para sa 1-error na pagwawasto ng mga code at kalaunan ay pinalawig niya ang hanggang sa 2-error na pagtuklas ng mga code. Ang mga hamming code ay nilikha sapagkat ang pag-check ng parity ay hindi maaaring makita at maitama ang mga error sa data. Ang mga Hamming code ay naipasok sa anumang blocklength ng data sa pagitan ng aktwal na data at mga redundancy bit. Bumuo siya ng isang hanay ng mga algorithm upang gumana sa mga problema ng mga pamamaraan ng pagwawasto ng error at ang mga code na ito ay malawakang ginagamit sa memorya ng ECC.

Proseso ng pag-encode ng isang Mensahe gamit ang Hamming Code

Ang proseso ng pag-encode ng isang mensahe gamit ang isang hamming code ng nagpadala ay may kasamang 3 mga hakbang.

Hakbang1: Ang unang hakbang ay upang kalkulahin ang hindi. Ng mga kalabisan na piraso sa isang mensahe

  • Halimbawa, kung ang isang mensahe ay naglalaman ng 'n' hindi. Ng mga bit at 'p' hindi. Ng mga kalabisan na bit ay idinagdag sa mensahe, pagkatapos ay ipinahiwatig ng 'np' (n + p + 1) iba't ibang mga estado.
  • Kung saan (n + p) kumakatawan sa lokasyon ng isang error sa bawat posisyon ng kaunti
  • Ang 1 (labis na estado) ay kumakatawan sa walang error.
  • Dahil ang ‘p’ ay nagpapahiwatig ng 2 ^ p (2p) na estado, na katumbas ng (n + p + 1) na estado.

Hakbang2: Ilagay ang mga kalabisan na mga piraso sa eksaktong / tamang posisyon

Ang 'p' bits ay ipinasok sa mga bit na posisyon na kung saan ay ang lakas ng 2 tulad ng 1, 2, 4, 8, 16, atbp. Ang mga bit na posisyon ay ipinahiwatig bilang p1 (posisyon 1), p2 (posisyon 2), p3 (posisyon 4), atbp.

Hakbang 3: Kalkulahin ang mga halaga ng kalabisan na mga piraso

  • Dito ginagamit ang mga parity bits upang makalkula ang mga halaga ng mga kalabisan na mga piraso.
  • Ang mga parity bit ay maaaring gawing ang no.of ng 1 sa isang mensahe alinman pantay o kakaiba.
  • Kung ang kabuuan no.of ng 1 sa isang mensahe ay pantay, pagkatapos ay ginagamit ang pagkakapantay-pantay
  • Kung ang kabuuan no.of ng 1 sa isang mensahe ay kakaiba, pagkatapos ay kakaibang pagkakatulad ang ginagamit.

Proseso ng Pag-decrypt ng isang Mensahe sa Hamming Code

Ang proseso ng pag-decrypt ng isang mensahe na natanggap mula sa nagpadala ng tatanggap gamit ang hamming code ay may kasamang mga sumusunod na hakbang. Ang prosesong ito ay walang anuman kundi muling pagkalkula upang makita at maitama ang mga error sa isang mensahe.

Hakbang1: Bilangin ang hindi. Ng mga kalabisan na mga piraso

Ang pormula upang ma-encode ang mensahe gamit ang mga kalabisan na mga piraso ay,

2p≥ n + p + 1

Hakbang 2: iwasto ang mga posisyon ng lahat ng kalabisan na mga piraso

'P' hindi. Ng mga kalabisan na bit ay inilalagay sa isang maliit na posisyon ng kapangyarihan na 2 tulad ng 1,2,4,8,16,32 atbp

Hakbang3: pag-check ng parity (kakaibang pagkakapareho at kahit na pagkakapareho)

Ang mga parity bit ay kinakalkula batay sa mga no.of ng mga data bit at mga kalabisan na piraso.

Halimbawa

Ang pagkakapareho ng p1 ay magiging 1, 3, 5, 7, 9, 11,…

Ang pagkakapareho ng p2 ay magiging 2, 3, 6, 7, 10, 11,…

Ang pagkakapareho ng p3 ay magiging 4-7, 12-15, 20-23,…

Mga kalamangan ng Hamming Code

Ang pangunahing bentahe ng paggamit ng isang hamming code ay epektibo sa gastos kung ang isang data stream ay naglalaman ng mga solong bit na error.

  • Maaari itong magbigay ng pagtuklas ng error at ipinapahiwatig din ang kaunti na naglalaman ng isang error para sa pagwawasto.
  • Ang mga hamming code ay napakadali at pinakamahusay na magagamit sa memorya ng computer at pag-iisa at pagtuklas ng solong bit na error.

Mga Dehadong pakinabang ng Hamming Code

  • Ito ay pinakamahusay lamang para sa solong-bit pagwawasto ng error at pagtuklas. Kung maraming mga error sa bit, pagkatapos ang buong maaaring masira.
  • Maaaring malutas ng algorithm ng Hamming code lamang ang mga solong bit na error.

Mga aplikasyon ng Hamming Codes

Ginamit ang mga Hamming code sa,

  • Computing
  • Telecommunications
  • Pag-compress ng data
  • Ang paglutas ng mga puzzle at turbo code
  • Mga satellite
  • Plasma CAM
  • Shielded wires
  • Mga Modem
  • Memorya ng computer
  • Buksan ang mga konektor
  • Mga naka-embed na system at processor

Mga FAQ

1). Maaari bang makita ng Hamming code ang mga error na 2-bit?

Ang mga hamming code ay maaaring makakita at magtama ng hanggang sa 2-bit na mga error sa isang stream ng data

2). Paano mo aayusin ang Hamming code?

Ang mga Hamming code ay inilalagay sa anumang haba ng data sa pagitan ng aktwal na data at mga kalabisan na piraso. Ang mga code na ito ay mga lugar na may isang minimum na distansya ng 3 bits

3). Ano ang parity code?

Ang code ng parity o parity bit ay nagdaragdag ng kaunti sa natanggap na frame (naglalaman ang data ng mga 1 at 0) upang gawing pantay o kakaiba ang kabuuang mga numero ng no.of (1's).

4). Ano ang distansya ng Hamming sa pagitan ng data?

Ang distansya ng hamming sa pagitan ng dalawang magkakaibang data stream ng pantay na haba ay hindi. Ng 1's.

Ang distansya ng hamming sa pagitan ng dalawang mga string ng data na pantay na haba ay maaaring kalkulahin sa pamamagitan ng paggamit ng XOR na operasyon.

Halimbawa, isang = 11011001

b = 10011101

Ang distansya ng Hamming ay maaaring kalkulahin bilang,

11011001 ⊕ 10011101 = 01000100 (hindi. Ng 1-bits ay 2)

Ipinapahiwatig ng distansya ng hamming ang no.of sa mga resulta ng stream ng data

Kaya, d (11011001, 10011101) = 2

Katulad nito, 010 ⊕ 011 = 001, d (010, 011) = 1.

5). Paikot ba ang Hamming code?

Oo, ang mga hamming code ay katumbas ng mga cyclic code na maaaring magamit bilang mga code na nakakakita ng error.

Sa gayon ito ay tungkol sa pagwawasto at pagtuklas ng error, mga uri ng pagtuklas ng error, mga code sa pagmamano , ang proseso ng pag-encrypt at pag-decrypting ng mensahe gamit ang mga code sa pagmamano, mga aplikasyon ng mga code sa pagmamano, kalamangan, at kawalan ng mga Hamming code. Narito ang isang katanungan para sa iyo, 'Ano ang mga application ng error sa pagtuklas at pagwawasto? '