Hadamard -kode - Hadamard code

Hadamard -kode
Oppkalt etter Jacques Hadamard
Klassifisering
Type Lineær blokkode
Blokkelengde
Meldingens lengde
Vurdere
Avstand
Alfabetstørrelse
Notasjon -kode
Forbedret Hadamard -kode
Oppkalt etter Jacques Hadamard
Klassifisering
Type Lineær blokkode
Blokkelengde
Meldingens lengde
Vurdere
Avstand
Alfabetstørrelse
Notasjon -kode
Image
Matrise for Augmented Hadamard -koden [32, 6, 16] for Reed - Muller -koden (1, 5) til NASA -romproben Mariner 9
Image
XOR -operasjoner
Her står de hvite feltene for 0
og de røde feltene for 1

Den Hadamard-koden er en feilkorrigerende kode oppkalt etter Jacques Hadamard som brukes til feildeteksjon og korreksjon ved å overføre meldinger over svært støyende eller upålitelige kanaler. I 1971 ble koden brukt til å overføre bilder av Mars tilbake til jorden fra NASA -romproben Mariner 9 . På grunn av de unike matematiske egenskapene, brukes Hadamard -koden ikke bare av ingeniører, men studeres også intenst i kodingsteori , matematikk og teoretisk informatikk . Hadamard -koden er også kjent under navnene Walsh -koden , Walsh -familien og Walsh - Hadamard -koden som anerkjennelse av den amerikanske matematikeren Joseph Leonard Walsh .

Hadamard -koden er et eksempel på en lineær lengdekode over et binært alfabet . Dessverre er dette begrepet litt tvetydig, ettersom noen referanser antar en meldingslengde mens andre antar en meldingslengde på . I denne artikkelen kalles den første saken Hadamard -koden, mens den andre kalles den utvidede Hadamard -koden .

Hadamard-koden er unik ved at hvert kodeord uten null har en Hamming-vekt på nøyaktig , noe som betyr at avstanden til koden også er . I standard kodingsteorienotasjon for blokkoder er Hadamard -koden en -kode, det vil si at den er en lineær kode over et binært alfabet , har blokklengde , meldingslengde (eller dimensjon) og minimumsavstand . Blokkelengden er veldig stor i forhold til meldingslengden, men på den annen side kan feil rettes selv under ekstremt støyende forhold.

Den utvidede Hadamard -koden er en litt forbedret versjon av Hadamard -koden; den er en -kode og har dermed en litt bedre hastighet mens den relative avstanden til den opprettholdes , og er derfor foretrukket i praktiske applikasjoner. I kommunikasjonsteorien kalles dette ganske enkelt Hadamard -koden, og det er det samme som den første ordren Reed - Muller -koden over det binære alfabetet.

Normalt er Hadamard -koder basert på Sylvesters konstruksjon av Hadamard -matriser , men begrepet “Hadamard -kode” brukes også for å referere til koder konstruert fra vilkårlige Hadamard -matriser , som ikke nødvendigvis er av Sylvester -type. Generelt er ikke en slik kode lineær. Slike koder ble først konstruert av Raj Chandra Bose og Sharadchandra Shankar Shrikhande i 1959. Hvis n er størrelsen på Hadamard-matrisen, har koden parametere , noe som betyr at den er en ikke-nødvendigvis lineær binær kode med 2 n kodeord med blokklengde n og minimal avstand n /2. Konstruksjons- og dekodingsskjemaet beskrevet nedenfor gjelder for generelle n , men egenskapen til linearitet og identifikasjon med Reed - Muller -koder krever at n er en effekt på 2 og at Hadamard -matrisen er ekvivalent med matrisen konstruert etter Sylvesters metode.

Hadamard -koden er en lokalt avkodbar kode, som gir en måte å gjenopprette deler av den opprinnelige meldingen med stor sannsynlighet, mens den bare ser på en liten brøkdel av det mottatte ordet. Dette gir opphav til applikasjoner i beregningskompleksitetsteori og spesielt i utformingen av sannsynlig kontrollerbare bevis . Siden den relative avstanden til Hadamard -koden er 1/2, kan man vanligvis bare håpe på å komme seg etter maksimalt en 1/4 brøkdel av feilen. Ved å bruke listekoding er det imidlertid mulig å beregne en kort liste over mulige kandidatmeldinger så lenge færre enn bitene i det mottatte ordet har blitt ødelagt.

I kommunikasjon med kodedeling med flere tilgang (CDMA) blir Hadamard -koden referert til som Walsh -kode, og brukes til å definere individuelle kommunikasjonskanaler . Det er vanlig i CDMA -litteraturen å referere til kodeord som "koder". Hver bruker vil bruke et annet kodeord, eller “kode”, for å modulere signalet sitt. Fordi Walsh-kodeord er matematisk ortogonale , vises et Walsh-kodet signal som tilfeldig støy til en CDMA-kompatibel mobilterminal , med mindre denne terminalen bruker samme kodeord som det som ble brukt for å kode det innkommende signalet .

Historie

Hadamard -koden er navnet som er mest brukt for denne koden i litteraturen. I moderne bruk kalles disse feilkorrigeringskodene imidlertid som Walsh - Hadamard -koder.

Det er en grunn til dette:

Jacques Hadamard oppfant ikke koden selv, men han definerte Hadamard-matriser rundt 1893, lenge før den første feilrettende koden , Hamming-koden , ble utviklet på 1940-tallet.

Hadamard -koden er basert på Hadamard -matriser, og selv om det er mange forskjellige Hadamard -matriser som kan brukes her, brukes normalt bare Sylvesters konstruksjon av Hadamard -matriser for å få kodeordene i Hadamard -koden.

James Joseph Sylvester utviklet sin konstruksjon av Hadamard -matriser i 1867, som faktisk var forut for Hadamards arbeid med Hadamard -matriser. Derfor er navnet Hadamard -koden omstridt, og noen ganger kalles koden Walsh -kode , for å hedre den amerikanske matematikeren Joseph Leonard Walsh .

En utvidet Hadamard -kode ble brukt under Mariner 9 -oppdraget i 1971 for å korrigere for bildeoverføringsfeil. Dataordene som ble brukt under dette oppdraget var 6 bits lange, som representerte 64 gråtoner .

På grunn av begrensninger i kvaliteten på justeringen av senderen den gangen (på grunn av problemer med Doppler Tracking Loop) var maksimal nyttig datalengde omtrent 30 bits. I stedet for å bruke en repetisjonskode , ble en [32, 6, 16] Hadamard -kode brukt.

Feil på opptil 7 biter per ord kan korrigeres ved hjelp av denne ordningen. Sammenlignet med en 5- repetisjonskode er feilkorrigerende egenskaper for denne Hadamard-koden mye bedre, men frekvensen er sammenlignbar. Den effektive dekodingsalgoritmen var en viktig faktor i beslutningen om å bruke denne koden.

Kretsløpene som ble brukt ble kalt "Green Machine". Den brukte den raske Fourier -transformasjonen som kan øke avkodingshastigheten med en faktor tre. Siden 1990 -tallet har bruken av denne koden av romprogrammer mer eller mindre opphørt, og NASA Deep Space Network støtter ikke dette feilkorrigeringsopplegget for sine retter som er større enn 26 m.

Konstruksjoner

Selv om alle Hadamard -koder er basert på Hadamard -matriser, er konstruksjonene forskjellige på subtile måter for forskjellige vitenskapelige felt, forfattere og bruksområder. Ingeniører, som bruker kodene for dataoverføring, og kodeteoretikere , som analyserer ekstreme egenskaper til koder, ønsker vanligvis at hastigheten på koden skal være så høy som mulig, selv om dette betyr at konstruksjonen blir matematisk litt mindre elegant.

På den annen side er det for mange anvendelser av Hadamard -koder i teoretisk informatikk ikke så viktig å oppnå den optimale hastigheten, og derfor foretrekkes enklere konstruksjoner av Hadamard -koder siden de kan analyseres mer elegant.

Konstruksjon ved hjelp av indre produkter

Når den ble gitt en binær melding av lengde , koder Hadamard-kode meldingen inn i et kodeord som benytter en kodefunksjon Denne funksjonen gjør bruk av det indre produkt av to vektorer , som er definert som følger:

Da er Hadamard -kodingen definert som sekvensen til alle indre produkter med :

Som nevnt ovenfor brukes den utvidede Hadamard -koden i praksis siden Hadamard -koden i seg selv er noe sløsing. Dette er fordi, hvis den første biten av er null,, så inneholder det indre produktet ingen informasjon overhodet , og derfor er det umulig å fullstendig avkode fra disse posisjonene i kodeordet alene. På den annen side, når kodeordet er begrenset til posisjonene der , er det fortsatt mulig å dekode fullt ut . Derfor er det fornuftig å begrense Hadamard -koden til disse posisjonene, noe som gir opphav til den utvidede Hadamard -kodingen av ; det vil si .

Konstruksjon ved hjelp av en generatormatrise

Hadamard -koden er en lineær kode, og alle lineære koder kan genereres av en generatormatrise . Dette er en slik matrise som gjelder for alle , der meldingen blir sett på som en radvektor og vektormatriseproduktet forstås i vektorrommet over det endelige feltet . Spesielt, en tilsvarende måte for å skrive det indre produkt definisjonen for Hadamard-koden oppstår ved bruk av aggregatet matrise med kolonner som består av alle strenger med lengde , det vil

hvor er den -t binære vektoren i leksikografisk rekkefølge . For eksempel er generatormatrisen for Hadamard -dimensjonskoden :

Matrisen er en -matrise og gir opphav til den lineære operatoren .

Generatormatrisen til den utvidede Hadamard -koden oppnås ved å begrense matrisen til kolonnene hvis første oppføring er én. For eksempel er generatormatrisen for den utvidede Hadamard -dimensjonskoden :

Deretter er en lineær kartlegging med .

Generelt er generatormatrisen til den utvidede Hadamard-koden en paritetskontrollmatrise for den utvidede Hamming-koden for lengde og dimensjon , noe som gjør den utvidede Hadamard-koden til den dobbelte koden til den utvidede Hamming-koden. Derfor er en alternativ måte å definere Hadamard-koden når det gjelder paritetskontrollmatrisen: paritetskontrollmatrisen til Hadamard-koden er lik generatormatrisen til Hamming-koden.

Konstruksjon ved bruk av generelle Hadamard -matriser

Hadamard-koder er oppnådd fra en n -by- n Hadamard-matrisen H . Spesielt er 2 n kodeord i koden er radene av H og radene av - H . For å få en kode over alfabetet {0,1}, brukes kartleggingen −1 ↦ 1, 1 ↦ 0, eller tilsvarende x  ↦ (1 -  x )/2 på matriseelementene. At minimumsavstanden til koden er n /2 følger av den definerende egenskapen til Hadamard -matriser, nemlig at radene deres er innbyrdes ortogonale. Dette innebærer at to forskjellige rader i en Hadamard -matrise er forskjellige i nøyaktig n /2 -posisjoner, og siden negasjon av en rad ikke påvirker ortogonaliteten, at enhver rad med H også er forskjellig fra en rad med - H i n /2 -posisjoner, bortsett fra når radene korresponderer, i så fall er de forskjellige i n posisjoner.

For å få den utvidede Hadamard -koden ovenfor med , må den valgte Hadamard -matrisen H være av typen Sylvester, noe som gir en meldingslengde på .

Avstand

Avstanden til en kode er den minste Hamming -avstanden mellom to forskjellige kodeord, det vil si minimum antall posisjoner der to forskjellige kodeord er forskjellige. Siden Walsh-Hadamard-koden er en lineær kode , er avstanden lik den minimale Hamming-vekten blant alle dens kodeord uten null. Alle kodeord uten null i Walsh-Hadamard-koden har en Hamming-vekt på nøyaktig ved følgende argument.

La oss være en ikke-null melding. Da er følgende verdi nøyaktig lik brøkdelen av posisjonene i kodeordet som er lik en:

Det at den sistnevnte verdien er nøyaktig kalles random subsum -prinsippet . For å se at det er sant, antar du det uten tap av generalitet . Så, når betinget av verdiene til , er hendelsen tilsvarende for noen avhengig av og . Sannsynligheten som skjer er nøyaktig . Således har faktisk alle ikke-null kodeord i Hadamard-koden relativ Hamming-vekt , og dermed er dens relative avstand .

Den relative avstanden til den utvidede Hadamard-koden er også, men den har ikke lenger egenskapen til at hvert kodeord uten null har vekt nøyaktig siden all s-vektoren er et kodeord for den utvidede Hadamard-koden. Dette er fordi vektoren koder for . Videre, når det er ikke-null og ikke vektoren , gjelder det tilfeldige subsumprinsippet igjen, og den relative vekten av er nøyaktig .

Lokal dekodbarhet

En lokalt avkodbar kode er en kode som gjør at en enkelt bit av den opprinnelige meldingen kan gjenopprettes med stor sannsynlighet ved å bare se på en liten del av det mottatte ordet.

En kode er -query lokalt dekoderbart om en melding bit, kan utvinnes ved å sjekke bits av det mottatte ordet. Mer formelt, en kode, er -locally dekoderbart, dersom det foreligger en probabilistisk dekoder, slik at (Merk: representerer Hamming-avstand mellom vektorer og ) :

, innebærer det

Teorem 1: Walsh -Hadamard -koden er -lokalt dekodbar for alle .

Lemma 1: For alle kodeord, i en Walsh-Hadamard-kode, , , hvor representerer bitene i i posisjoner og henholdsvis, og representerer den bit i posisjon .

Bevis for lemma 1


La være kodeordet i meldingen .

La oss være generatormatrisen til .

Per definisjon . Fra dette , . Ved bygging av , . Derfor, ved substitusjon, .

Bevis for teorem 1


For å bevise teorem 1 vil vi konstruere en dekodingsalgoritme og bevise at den er korrekt.

Algoritme

Inngang: Mottatt ord

For hver :

  1. Velg ensartet tilfeldig.
  2. Velg slik at , hvor er -th standard basisvektor og er bitvis xor av og .
  3. .

Utgang: Melding

Bevis på korrekthet

For enhver melding, og mottatt ord som avviker fra på i det meste brøkdel av biter, kan avkodes med sannsynlighet i det minste .

Ved lemma 1, . Siden og er plukket jevnt, sannsynligheten som er på det meste . Tilsvarende sannsynligheten som er på det meste . Ved fagforeningen er sannsynligheten for at enten eller ikke matcher de tilsvarende bitene i høyst . Hvis begge og tilsvarer , vil lemma 1 gjelde, og derfor vil den riktige verdien av bli beregnet. Derfor er sannsynligheten avkodet skikkelig minst . Derfor, og for å være positiv, .

Derfor er Walsh - Hadamard -koden lokalt avkodbar for .

Optimalitet

For k  ≤ 7 har de lineære Hadamard -kodene vist seg å være optimale i betydningen minimumsavstand.

Se også

Referanser

Videre lesning