a csatornakódolási elmélet célja olyan kódok megtalálása, amelyek gyorsan továbbítanak, sok érvényes kódszót tartalmaznak, és sok hibát kijavíthatnak vagy legalábbis észlelhetnek. Bár nem zárják ki egymást, a teljesítmény ezeken a területeken kompromisszum. Tehát a különböző kódok optimálisak a különböző alkalmazásokhoz. A kód szükséges tulajdonságai elsősorban az átvitel során bekövetkező hibák valószínűségétől függenek. Egy tipikus CD-ben a károsodás elsősorban por vagy karcolás.
a CD-k keresztbe illesztett Reed–Solomon kódolást használnak az adatok elosztására a lemezen.
bár nem túl jó kód, egy egyszerű ismétlődő kód érthető példaként szolgálhat. Tegyük fel, hogy veszünk egy blokkot (ami hangot képvisel), és háromszor elküldjük. A fogadónál apránként megvizsgáljuk a három ismétlést, és többségi szavazást veszünk. A csavar az, hogy nem csak a biteket küldjük sorrendben. Mi interleave őket. Az adatbitek blokkját először 4 kisebb blokkra osztják. Ezután átmegyünk a blokkon, és egy bitet küldünk az elsőből, majd a másodikból stb. Ez háromszor történik, hogy az adatokat a lemez felületére terjesszék. Az egyszerű ismétlődő kód összefüggésében ez nem tűnik hatékonynak. Vannak azonban erősebb kódok, amelyek nagyon hatékonyan korrigálják a karcolás vagy a porfolt” burst ” hibáját, amikor ezt az átlapolási technikát alkalmazzák.
más kódok megfelelőbbek a különböző alkalmazásokhoz. A mély űrkommunikációt korlátozza a vevő termikus zaja, amely inkább folyamatos, mint bursty jellegű. Hasonlóképpen, a keskeny sávú modemeket korlátozza a telefonhálózatban jelenlévő zaj, és folyamatos zavarként is jobban modellezik. A mobiltelefonok gyorsan elhalványulnak. Az alkalmazott magas frekvenciák a jel gyors elhalványulását okozhatják, még akkor is, ha a Vevőt néhány hüvelykre mozgatják. Ismét vannak olyan csatornakódok, amelyek célja a fakulás elleni küzdelem.
lineáris kódokszerkesztés
az algebrai kódolási elmélet kifejezés a kódolási elmélet alterületét jelöli, ahol a kódok tulajdonságait algebrai kifejezésekkel fejezik ki, majd tovább kutatják.
az algebrai kódolási elmélet alapvetően két fő kódtípusra oszlik:
- lineáris blokkkódok
- konvolúciós kódok
a kód következő három tulajdonságát elemzi-főleg:
- kódszó hossza
- az érvényes kódszavak száma
- a két érvényes kódszó közötti minimális távolság, főleg a Hamming távolságot használva, néha más távolságokat is, mint például a Lee távolság
lineáris blokk kódokszerkesztés
a lineáris blokkkódok linearitással rendelkeznek, azaz bármely két kódszó összege szintén kódszó, és ezeket blokkokban alkalmazzák a forrásbitekre, innen ered a lineáris blokkkódok neve. Vannak olyan blokkkódok, amelyek nem lineárisak, de nehéz bizonyítani, hogy egy kód jó e tulajdonság nélkül.
a lineáris blokkkódokat szimbólum ábécéik (pl. bináris vagy hármas) és paramétereik (n, m,dmin) foglalják össze,ahol
- n a kódszó hossza, szimbólumokban,
- m az egyszerre kódolásra használt forrásszimbólumok száma,
- dmin a kód minimális hamming távolsága.
sokféle lineáris blokk kód létezik, például
- ciklikus kódok (pl., Hamming kódok)
- ismétlési kódok
- paritás kódok
- polinom kódok (pl. BCH kódok)
- Reed–Solomon kódok
- algebrai geometriai kódok
- Reed–Muller kódok
- tökéletes kódok
blokk kódok vannak kötve a gömb csomagolási probléma, amely kapott némi figyelmet az évek során. Két dimenzióban könnyű vizualizálni. Fogj egy csomó fillért az asztalra, és nyomd össze őket. Az eredmény egy hatszög mintázat, mint egy méhfészek. De a blokkkódok több dimenzióra támaszkodnak, amelyeket nem lehet könnyen megjeleníteni. A mély űrkommunikációban használt erőteljes (24,12) Golay-Kód 24 dimenziót használ. Ha bináris kódként használják (ami általában az), a méretek a kódszó hosszára vonatkoznak, amint azt fentebb meghatároztuk.
a kódolás elmélete az N-dimenziós gömbmodellt használja. Például, hány fillért lehet csomagolni egy körbe egy asztallapon, vagy 3 dimenzióban, hány golyót lehet csomagolni egy földgömbbe. Egyéb megfontolások adja meg a választott kódot. Például a téglalap alakú doboz kényszerébe csomagolt hatszög üres helyet hagy a sarkokban. Ahogy a méretek nagyobbak lesznek, az üres tér százalékos aránya kisebb lesz. De bizonyos dimenziókban a csomagolás az összes helyet felhasználja, és ezek a kódok az úgynevezett “tökéletes” kódok. Az egyetlen nem triviális és hasznos tökéletes kód a távolság – 3 Hamming kódok, amelyek paraméterei megfelelnek (2r-1, 2R-1-r, 3), valamint a bináris és hármas Golay kódok.
egy másik kódtulajdonság a szomszédok száma, amelyek egyetlen kódszóval rendelkezhetnek.Ismét fontolja meg a filléreket példaként. Először a filléreket egy téglalap alakú rácsba csomagoljuk. Minden Pennynek 4 szomszédja lesz (és 4 a sarkoknál, amelyek távolabb vannak). Hatszögben minden fillérnek 6 szomszédja lesz. Amikor növeljük a méreteket, a közeli szomszédok száma nagyon gyorsan növekszik. Az eredmény az, hogy a zajnak számos módja van arra, hogy a vevő szomszédot válasszon (tehát hiba). Ez a blokkkódok, sőt az összes kód alapvető korlátozása. Lehet, hogy nehezebb hibát okozni egyetlen szomszédnak, de a szomszédok száma elég nagy lehet, így a teljes hiba valószínűsége valóban szenved.
a lineáris blokkkódok tulajdonságait számos alkalmazásban használják. Például a lineáris blokkkódok szindróma-coset egyediség tulajdonságát használják rácsos alakítás, az egyik legismertebb alakító kód.
konvolúciós kódszerkesztés
a konvolúciós kód mögött az az elképzelés áll, hogy minden kódszó szimbólum legyen a különböző bemeneti üzenet szimbólumok súlyozott összege. Ez olyan, mint az LTI rendszerekben használt konvolúció, hogy megtaláljuk a rendszer kimenetét, amikor ismerjük a bemenetet és az impulzusválaszt.
tehát általában megtaláljuk a rendszer konvolúciós kódolójának kimenetét, amely a bemeneti bit konvolúciója, a konvolúciós kódoló, regiszterek állapotaival szemben.
alapvetően a konvolúciós kódok nem nyújtanak nagyobb védelmet a zaj ellen, mint egy egyenértékű blokkkód. Sok esetben általában nagyobb egyszerűséget kínálnak a megvalósításban, mint egy azonos teljesítményű blokkkód. A kódoló általában egy egyszerű áramkör, amely állapotmemóriával és némi visszacsatolási logikával rendelkezik, általában XOR kapukkal. A dekóder szoftverben vagy firmware-ben valósítható meg.
a Viterbi algoritmus a konvolúciós kódok dekódolására használt optimális algoritmus. Vannak egyszerűsítések a számítási terhelés csökkentésére. Csak a legvalószínűbb utak keresésére támaszkodnak. Bár nem optimális, általában azt találták, hogy jó eredményeket adnak alacsony zajszintű környezetben.
a konvolúciós kódokat hangsávos modemekben (V. 32, V. 17, V. 34) és GSM mobiltelefonokban, valamint műholdas és katonai kommunikációs eszközökben használják.