formålet med kanalkodeteori er å finne koder som overfører raskt, inneholder mange gyldige kodeord og kan korrigere eller i det minste oppdage mange feil. Selv om ikke gjensidig utelukkende, ytelse i disse områdene er en trade off. Så, forskjellige koder er optimale for forskjellige applikasjoner. De nødvendige egenskapene til denne koden er hovedsakelig avhengig av sannsynligheten for feil som skjer under overføring. I en typisk CD er forringelsen hovedsakelig støv eller riper.
Cder bruker tverrflettet Reed-Solomon-koding for å spre dataene ut over disken.
Selv om det ikke er en veldig god kode, kan en enkel gjentakelseskode tjene som et forståelig eksempel. Anta at vi tar en blokk med databiter (som representerer lyd) og sender den tre ganger. På mottakeren vil vi undersøke de tre repetisjonene bit for bit og ta flertall. Vridningen på dette er at vi ikke bare sender biter i rekkefølge. Vi blander dem sammen. Blokken av databiter er først delt inn i 4 mindre blokker. Så sykler vi gjennom blokken og sender en bit fra den første, deretter den andre, etc. Dette gjøres tre ganger for å spre dataene ut over overflaten av disken. I sammenheng med den enkle gjenta koden, kan dette ikke virke effektivt. Det er imidlertid kraftigere koder kjent som er svært effektive for å korrigere» burst » – feilen på en ripe eller et støvpunkt når denne interleaving teknikken brukes.
Andre koder er mer passende for forskjellige applikasjoner. Deep space kommunikasjon er begrenset av termisk støy av mottakeren som er mer av en kontinuerlig natur enn en bursty natur. På samme måte er smalbåndsmodemer begrenset av støyen, tilstede i telefonnettverket og også modellert bedre som en kontinuerlig forstyrrelse. Mobiltelefoner er utsatt for rask fading. De høye frekvensene som brukes kan føre til rask falming av signalet selv om mottakeren flyttes noen få inches. Igjen er det en klasse av kanalkoder som er designet for å bekjempe fading.
Lineære koderediger
begrepet algebraisk kodeteori betegner sub-feltet av kodeteori der egenskapene til koder er uttrykt i algebraiske termer og deretter videre undersøkt.
Algebraisk kodeteori er i utgangspunktet delt inn i to hovedtyper av koder:
- Lineære blokkkoder
- Convolutional codes
den analyserer følgende tre egenskaper av en kode-hovedsakelig:
- Kodeordlengde
- Totalt antall gyldige kodeord
- minste avstand mellom to gyldige kodeord, som hovedsakelig bruker Hammingavstanden, noen ganger også andre avstander som Lee-avstanden
Lineær blokkkoderedit
Lineære blokkkoder har egenskapen til linearitet, dvs.summen av to kodeord er også et kodeord, og de brukes på kildebitene i blokker, Derav navnet lineære blokkkoder. Det er blokkkoder som ikke er lineære, men det er vanskelig å bevise at en kode er god uten denne egenskapen.Binære eller ternære) og parametere (n,m,dmin) hvor
- n er lengden på kodeordet, i symboler,
- m er antall kildesymboler som skal brukes til koding på en gang,
- dmin er den minste hammingavstanden for koden.
det finnes mange typer lineære blokkkoder, for eksempel
- Sykliske koder (f. eks. Paritetskoder
- Polynomkoder (f.eks. BCH–koder)
- Reed–Solomon-koder
- Algebraiske geometriske koder
- Reed-Muller-koder
- Perfekte koder
Blokkkoder er knyttet til kulepakkeproblemet, som har fått litt oppmerksomhet gjennom årene. I to dimensjoner er det lett å visualisere. Ta en haug med pennies flatt på bordet og skyv dem sammen. Resultatet er et sekskantmønster som en bie nest. Men blokkkoder stole på flere dimensjoner som ikke lett kan visualiseres. Den kraftige (24,12) Golay-koden som brukes i deep space communications bruker 24 dimensjoner. Hvis den brukes som en binær kode (som den vanligvis er), refererer dimensjonene til lengden på kodeordet som definert ovenfor.
teorien om koding bruker Den n-dimensjonale sfæremodellen. For eksempel, hvor mange pennies kan pakkes inn i en sirkel på en bordplate, eller i 3 dimensjoner, hvor mange kuler kan pakkes inn i en klokke. Andre hensyn angir valg av kode. For eksempel, sekskant pakking i begrensningen av en rektangulær boks vil forlate tomrom i hjørnene. Etter hvert som dimensjonene blir større, blir andelen tomrom mindre. Men i visse dimensjoner bruker pakningen all plass og disse kodene er de såkalte «perfekte» kodene. De eneste ikke-trivielle og nyttige perfekte kodene er distance – 3 Hamming-kodene med parametere som tilfredsstiller (2r-1, 2r – 1-r, 3), og de binære Og trefoldige Golay-kodene.
En annen kodeegenskap er antall naboer som et enkelt kodeord kan ha.Igjen, vurder pennies som et eksempel. Først pakker vi penniene i et rektangulært rutenett. Hver krone vil ha 4 nær naboer (og 4 i hjørnene som er lengre unna). I en sekskant vil hver krone ha 6 nær naboer. Når vi øker dimensjonene, øker antall nærliggende naboer veldig raskt. Resultatet er antall måter for støy for å få mottakeren til å velge en nabo (dermed en feil) vokser også. Dette er en grunnleggende begrensning av blokkkoder, og faktisk alle koder. Det kan være vanskeligere å forårsake en feil til en enkelt nabo, men antall naboer kan være store nok til at den totale feilsannsynligheten faktisk lider.
Egenskaper for lineære blokkkoder brukes i mange applikasjoner. For eksempel brukes syndrom-cosets unike egenskap av lineære blokkkoder i trellis shaping, en av de mest kjente formingskodene.
Convolutional codesEdit
ideen bak en convolutional code er å gjøre hvert kodeord symbol vektet summen av de ulike inndatasymbolene. Dette er som konvolusjon brukt I LTI-systemer for å finne utgangen av et system, når du kjenner inngang og impulsrespons.
Så vi finner generelt utgangen av systemkonvolusjonskoderen, som er konvolusjonen av inngangsbiten, mot tilstandene til konvolusjonskoderen, registre.
i Utgangspunktet gir konvolusjonskoder ikke mer beskyttelse mot støy enn en tilsvarende blokkkode. I mange tilfeller tilbyr de generelt større enkelhet av implementering over en blokkkode med lik kraft. Koderen er vanligvis en enkel krets som har tilstandsminne og noen tilbakemeldingslogikk, normalt XOR-porter. Dekoderen kan implementeres i programvare eller fastvare.Viterbi-algoritmen er den optimale algoritmen som brukes til å dekode konvolusjonskoder. Det er forenklinger for å redusere beregningsbelastningen. De er avhengige av å søke bare de mest sannsynlige stiene. Selv om de ikke er optimale, har de generelt vist seg å gi gode resultater i lavt støynivå.Convolutional koder brukes i voiceband modemer (V. 32, V. 17, v. 34) og I gsm mobiltelefoner, samt satellitt og militære kommunikasjonsenheter.