scopul teoriei codării canalelor este de a găsi coduri care transmit rapid, conțin multe cuvinte de cod valide și pot corecta sau cel puțin detecta multe erori. Deși nu se exclud reciproc, performanța în aceste domenii este un compromis. Deci, diferite coduri sunt optime pentru diferite aplicații. Proprietățile necesare ale acestui cod depind în principal de probabilitatea apariției erorilor în timpul transmisiei. Într-un CD tipic, deteriorarea este în principal praf sau zgârieturi.
CD-urile folosesc codificarea Reed–Solomon încrucișată pentru a răspândi datele pe disc.
deși nu este un cod foarte bun, un cod simplu de repetare poate servi ca un exemplu ușor de înțeles. Să presupunem că luăm un bloc de biți de date (reprezentând sunet) și îl trimitem de trei ori. La receptor vom examina cele trei repetări câte puțin și vom lua votul majorității. Twist pe acest lucru este că noi nu doar trimite biți în ordine. Îi intercalăm. Blocul de biți de date este mai întâi împărțit în 4 blocuri mai mici. Apoi trecem prin bloc și trimitem un bit de la primul, apoi al doilea etc. Acest lucru se face de trei ori pentru a răspândi datele pe suprafața discului. În contextul codului simplu de repetare, acest lucru poate să nu pară eficient. Cu toate acestea, există coduri mai puternice cunoscute, care sunt foarte eficiente la corectarea erorii de „spargere” a unei zgârieturi sau a unui punct de praf atunci când se folosește această tehnică de intercalare.
alte coduri sunt mai potrivite pentru diferite aplicații. Comunicațiile spațiale profunde sunt limitate de zgomotul termic al receptorului, care este mai mult de natură continuă decât de natură bursty. De asemenea, modemurile cu bandă îngustă sunt limitate de zgomot, prezente în rețeaua telefonică și, de asemenea, modelate mai bine ca o perturbare continuă. Telefoanele mobile sunt supuse unei decolorări rapide. Frecvențele înalte utilizate pot provoca decolorarea rapidă a semnalului chiar dacă receptorul este mutat cu câțiva centimetri. Din nou, există o clasă de coduri de canal care sunt concepute pentru a combate decolorarea.
Linear codesEdit
termenul teoria codării algebrice denotă sub-câmpul teoriei codării unde proprietățile codurilor sunt exprimate în termeni algebrici și apoi cercetate în continuare.
teoria codării algebrice este practic împărțită în două tipuri majore de coduri:
- coduri bloc liniare
- coduri convoluționale
analizează următoarele trei proprietăți ale unui cod – în principal:
- lungimea cuvântului de cod
- numărul Total de cuvinte de cod valide
- distanța minimă dintre două cuvinte de cod valide, folosind în principal distanța Hamming, uneori și alte distanțe, cum ar fi distanța Lee
Codesedit bloc liniar
codurile de bloc liniare au proprietatea liniarității, adică suma oricăror două cuvinte de cod este, de asemenea, un cuvânt acestea sunt aplicate biților sursă în blocuri, de unde și numele codurilor de bloc liniare. Există coduri bloc care nu sunt liniare, dar este dificil să se demonstreze că un cod este unul bun fără această proprietate.
codurile blocurilor liniare sunt rezumate prin alfabetele simbolurilor lor (de exemplu, binare sau ternare) și parametrii (n,m,dmin) unde
- n este lungimea cuvântului de cod, în simboluri,
- m este numărul de simboluri sursă care vor fi utilizate pentru codificare simultan,
- dmin este distanța minimă de hamming pentru cod.
există multe tipuri de coduri bloc liniare, cum ar fi
- coduri ciclice (de ex., Coduri Hamming)
- coduri de repetiție
- coduri de paritate
- coduri polinomiale (de exemplu, coduri BCH)
- coduri Reed–Solomon
- coduri geometrice algebrice
- coduri Reed–Muller
- coduri perfecte
codurile bloc sunt legate de problema ambalării sferei, care a primit o atenție de-a lungul anilor. În două dimensiuni, este ușor de vizualizat. Luați o grămadă de bani pe masă și împingeți-i împreună. Rezultatul este un model hexagonal ca un cuib de albine. Dar codurile de bloc se bazează pe mai multe dimensiuni care nu pot fi vizualizate cu ușurință. Puternicul (24,12) Codul Golay utilizat în comunicațiile spațiale profunde folosește dimensiunile 24. Dacă este folosit ca cod binar (care este de obicei) dimensiunile se referă la lungimea cuvântului de cod așa cum este definit mai sus.
teoria codării folosește modelul sferei n-dimensionale. De exemplu, câți bani pot fi împachetați într-un cerc pe o masă sau în 3 dimensiuni, câte bile pot fi ambalate într-un glob. Alte considerente introduc alegerea unui cod. De exemplu, ambalarea Hexagonului în constrângerea unei cutii dreptunghiulare va lăsa spațiu gol la colțuri. Pe măsură ce dimensiunile devin mai mari, procentul de spațiu gol devine mai mic. Dar la anumite dimensiuni, ambalajul folosește tot spațiul și aceste coduri sunt așa-numitele coduri „perfecte”. Singurele coduri perfecte netriviale și utile sunt codurile Hamming la distanță-3 cu parametri satisfăcători (2R – 1, 2r – 1 – r, 3) și codurile Golay binare și ternare.
o altă proprietate de cod este numărul de vecini pe care îl poate avea un singur cuvânt de cod.Din nou, luați în considerare banii ca exemplu. Mai întâi împachetăm banii într-o grilă dreptunghiulară. Fiecare bănuț va avea 4 lângă vecini (și 4 la colțurile care sunt mai departe). Într-un hexagon, fiecare bănuț va avea 6 lângă vecini. Când mărim dimensiunile, numărul vecinilor apropiați crește foarte rapid. Rezultatul este numărul de moduri de zgomot pentru a face receptorul alege un vecin (prin urmare, o eroare) crește, de asemenea. Aceasta este o limitare fundamentală a codurilor de bloc și, într-adevăr, a tuturor codurilor. Poate fi mai greu să provoci o eroare unui singur vecin, dar numărul vecinilor poate fi suficient de mare, astfel încât probabilitatea totală de eroare suferă de fapt.
proprietățile codurilor bloc liniare sunt utilizate în multe aplicații. De exemplu, proprietatea de unicitate sindrom-coset a codurilor bloc liniare este utilizată în modelarea spalierului, unul dintre cele mai cunoscute coduri de modelare.
Codesedit convoluțional
ideea din spatele unui cod convoluțional este de a face ca fiecare simbol al cuvântului de cod să fie suma ponderată a diferitelor simboluri ale mesajelor de intrare. Aceasta este ca convoluția utilizată în sistemele LTI pentru a găsi ieșirea unui sistem, atunci când cunoașteți răspunsul de intrare și impuls.
deci, în general, găsim ieșirea codificatorului convoluțional al sistemului, care este convoluția bitului de intrare, împotriva stărilor codificatorului de convoluție, registre.
în mod fundamental, codurile convoluționale nu oferă mai multă protecție împotriva zgomotului decât un cod bloc echivalent. În multe cazuri, acestea oferă, în general, o mai mare simplitate de implementare pe un cod bloc de putere egală. Codificatorul este de obicei un circuit simplu care are memorie de stare și o logică de feedback, în mod normal porți XOR. Decodorul poate fi implementat în software sau firmware.
algoritmul Viterbi este algoritmul optim utilizat pentru decodarea codurilor convoluționale. Există simplificări pentru a reduce sarcina de calcul. Ei se bazează pe căutarea doar a celor mai probabile căi. Deși nu sunt optime, s-a constatat, în general, că dau rezultate bune în medii cu zgomot redus.
codurile convoluționale sunt utilizate în modemurile de bandă vocală (V. 32, V. 17, V. 34) și în telefoanele mobile GSM, precum și în dispozitivele de comunicații prin satelit și militare.