Alte rezultate din teoria codurilor

Similar documents
1.3. OPERAŢII CU NUMERE NEZECIMALE

O V E R V I E W. This study suggests grouping of numbers that do not divide the number

Soluţii juniori., unde 1, 2

Divizibilitate în mulțimea numerelor naturale/întregi

Barem de notare clasa a V-a

UNITATEA DE ÎNVĂȚARE 3 Analiza algoritmilor

Sisteme cu logica fuzzy

Gradul de comutativitate al grupurilor finite 1

Procedeu de demonstrare a unor inegalităţi bazat pe inegalitatea lui Schur

Teoreme de Analiză Matematică - I (teorema Weierstrass-Bolzano) 1

ON THE QUATERNARY QUADRATIC DIOPHANTINE EQUATIONS (II) NICOLAE BRATU 1 ADINA CRETAN 2

Teorema Reziduurilor şi Bucuria Integralelor Reale Prezentare de Alexandru Negrescu

APLICAŢII ALE FORMULELOR LUI NEWTON PENTRU POLINOAME SIMETRICE

Câteva rezultate de algebră comutativă

FORMULELE LUI STIRLING, WALLIS, GAUSS ŞI APLICAŢII

SIMULAREA DECIZIEI FINANCIARE

Despre AGC cuasigrupuri V. Izbaș

GENERATOARE DE SEMNAL DIGITALE

Utilizarea claselor de echivalenta in analiza asistata de calculator a sistemelor cu evenimente discrete

Subiecte geometrie licenta matematica-informatica 4 ani

ȘIRURI (TABLOURI UNIDIMENSIONALE)

Ecuatii si inecuatii de gradul al doilea si reductibile la gradul al doilea. Ecuatii de gradul al doilea

Cercet¼ari operaţionale

METODE NUMERICE: Laborator #4 Eliminare gaussiană cu pivotare totală şi scalare. Algoritmul Thomas pentru rezolvarea sistemului 3-diagonal

Cristalul cu N atomi = un sistem de N oscilatori de amplitudini mici;

Rădăcina pătrată a unei matrici reale de ordinul 2

Pentru clasa a X-a Ştiinţele naturii-sem II

Programarea Dinamica. (si alte chestii adiacente) Andrei Olariu

Avem 6 tipuri de simboluri in logica predicatelor:

Inteligenta Artificiala

Legi de distribuţie (principalele distribuţii de probabilitate) Tudor Drugan

CURS 11: Programare dinamică - II - Algoritmica - Curs 12 1

Prelegerea 7. Sistemul de criptare AES. 7.1 Istoric

Sisteme cu logica fuzzy cu mai multe intrari (MISO)

array a[0..n-1] a[0] = v0,..., a[n-1] = vn-1

A GENERALIZATION OF A CLASSICAL MONTE CARLO ALGORITHM TO ESTIMATE π

Rezolvarea ecuaţiilor şi sistemelor de ecuaţii diferenţiale ordinare (II)

COMPARATIVE DISCUSSION ABOUT THE DETERMINING METHODS OF THE STRESSES IN PLANE SLABS

Rezultate în Teoria Punctului Fix şi Procese Iterative cu Aplicaţii

Arhitectura sistemelor de calcul

REZUMATUL TEZEI DE DOCTORAT

Habilitation Thesis. Periodic solutions of differential systems: existence, stability and bifurcations

Reactoare chimice cu curgere piston (ideala) (Plug Flow Reactor PFR) cu amestecare completa (Mixed Flow Reactor MFR) de tip batch (autoclava)

Probleme extremale pentru grafuri si retele de transport

Reactoare chimice cu curgere piston (ideala) cu amestecare completa de tip batch (autoclava)

Laborator 5. Instructiuni de control logic : FOR, IF, WHILE. - Staţii de lucru care au instalat Orcad9.2. si MatLab 7.1

Mugur Acu OPERATORUL INTEGRAL LIBERA-PASCU ŞI PROPRIETĂŢILE ACESTUIA CU PRIVIRE LA FUNCŢIILE UNIFORM STELATE, CONVEXE, APROAPE CONVEXE ŞI

Liste. Stive. Cozi SD 2017/2018

Numere prime. O selecţie de probleme pentru gimnaziu

Ordin. pentru aprobarea structurii informaţiilor înscrise pe cardul naţional de asigurări sociale de sănătate

Teoreme de compresie-extensie de tip Krasnoselskii şi aplicaţii (Rezumatul tezei de doctorat)

2D AND 3D PROCESSING OF THE INTERDEPENDENCE BETWEEN THE COMFORT MAIN INDICATORS

Utilizarea limbajului SQL pentru cereri OLAP. Mihaela Muntean 2015

Test de Departajare pentru MofM 2014 (Bucureşti) Enunţuri & Soluţii

Graduări pe algebre de matrice

Universitatea Politehnica Bucureşti Facultatea de Automatică şi Calculatoare Departamentul de Automatică şi Ingineria Sistemelor

INCLUZIUNI OPERATORIALE PRIN TEHNICA PUNCTULUI FIX ÎN SPAŢII METRICE VECTORIALE

INEGALITĂŢI DE TIP HARNACK ŞI SOLUŢII POZITIVE MULTIPLE PENTRU PROBLEME NELINIARE

Definiţie. Pr(X a) - probabilitatea ca X să ia valoarea a ; Pr(a X b) - probabilitatea ca X să ia o valoare în intervalul a,b.

PRELUCRARI PE IMAGINI BINARE (ALB/NEGRU)

Controlul predictiv bazat pe modele intare-stare-iesire. Cuprins. 2. Modele intrare-stare-iesire :01

TEOREME DE PUNCT FIX PENTRU OPERATORI CE NU INVARIAZĂ DOMENIUL DE DEFINIŢIE ŞI

Laborator 3. Backtracking iterativ

PROBLEME DIVERSE lecţie susţinută la lotul de 13 de Andrei ECKSTEIN Bucureşti, 25 mai 2015

Metode clasice. Camelia Chira.

Self-Small Abelian Groups and Related Problems. (Abstract)

Matematici speciale Variabile aleatoare discrete

Teoria probabilit¼aţilor şi statistic¼a matematic¼a

PROPRIETĂŢI GEOMETRICE ŞI ANALITICE ALE UNOR CLASE DE FUNCŢII UNIVALENTE

FLORENTIN SMARANDACHE Asupra unor conjecturi si probleme nerezolvate referitoare la o functie in Teoria Numerelor

QUASI-ANALYTIC SOLUTIONS OF FIRST-ORDER PARTIAL DIFFERENTIAL EQUATIONS USING THE ACCURATE ELEMENT METHOD

PENTRU CERCURILE DE ELEVI

LIGHTNING MVP System

RECREAŢ II MATEMATICE REVISTĂ DE MATEMATICĂ PENTRU ELEVI Ş I PROFESORI

Probleme actuale în studiul funcţiei zeta Igusa

Modelarea traficului in cadrul retelelor de radiotelefonie mobila

Curs 6. Discrete Event Simulation

Logică și structuri discrete. Marius Minea 25 septembrie 2017

Curs 5 ELEMENTE STRUCTURALE SOLICITATE LA RASUCIRE

Matematici speciale Integrarea functiilor complexe

INCERTITUDINEA DE MĂSURARE ÎN METROLOGIA LEGALĂ MEASUREMENT UNCERTAINTY IN LEGAL METROLOGY

Anul I, Semestrul I 2017/2018

Ce este logica? Aristotel (IV î.e.n.) Gottfried Wilhelm Leibniz ( ) Visul lui Leibniz. raţionament

2. Finite Impulse Response Filters (FIR)

GAZETA MATEMATICĂ SERIA A. ANUL XXXVI (CXV) Nr. 1 2/ 2018 ARTICOLE. Computing exponential and trigonometric functions of matrices in M 2 (C)

MATEMATICĂ 3 PROBLEME DE REFLECŢIE

Decision Trees Some exercises

Calcul Numeric. Cursul Anca Ignat

Curs de Geometrie. Andrei-Dan Halanay

C5 / Teoria Deciziilor. Metode bazate pe valoarea medie. (expected value) Metode multicriteriale de analiză a deciziilor.

RECREAŢ II MATEMATICE REVISTĂ DE MATEMATICĂ PENTRU ELEVI Ş I PROFESORI

ALGORITMI DE OPTIMIZARE IN INGINERIE ELECTRICA. Sef lucrari ing. Alin-Iulian DOLAN

Metode numerice de aproximare. a zerourilor unor operatori. şi de rezolvare a inegalităţilor variaţionale. cu aplicaţii

COMPARATIVE STUDY OF STRUCTURAL ANALYSIS APPLIED TO AGRICULTURAL MACHINES BODIES AND ACCOMPLISHED WITH SOLID WORKS AND AUTODESK INVENTOR PROGRAMS

7. OPERATIILE ARITMETICE

ECUAŢII CU DERIVATE PARŢIALE ŞI EVALUAREA OPŢIUNILOR CU VOLATILITATE STOHASTICĂ

Exemplifying the application of hierarchical agglomerative clustering (single-, complete- and average-linkage)

Counties of Romania List

Agricultural Engineering

Transcription:

Prelegerea 20 Alte rezultate din teoria codurilor 20.1 Coduri aritmetice Construcţiile oferite de teoria codurilor pot fi utilizate şi în alte domenii decât în cele clasice, de transmitere şi recepţie corectă a mesajelor. O aplicaţie legată de operaţiile aritmetice pe calculator este prezentată de van Lindt în [11]. Definiţia 20.1 Fie r 2 un număr întreg fixat. r - ponderea aritmeticăunui număr întreg x este definită prin { 0 dacă x = 0 w (r) (x) = t altfel { } p unde t = min p a i r n(i) = x, a i < r, n(i) 0. i=1 În practică se folosesc des cazurile r = 2, 8, 10, 16. Exemplul 20.1 w (10) (5) = 1, w (10) (199) = 2 (deoarece 199 = 200 1 = 2 10 2 1 10 0 ), w (2) ( 9) = 2, w (2) (246) = 3 (deoarece 246 = 256 8 2 = 2 8 2 3 2 1 ). Propoziţia 20.1 1. w (r) ( x) = w (r) (x); 2. w (r) (x + y) w (r) (x) + w (r) (y). Demonstraţie: Este lăsată ca exerciţiu. În cele ce urmează vom considera r ca o valoare fixată. Se numeşte distanţă aritmetică valoarea d(x, y) = w (r) (x y). Propoziţia 20.2 1. d este o distanţă; 2. d este invariantă la translatare. 3. d(x, y) d H (x, y) unde d H este distanţa Hamming a două secvenţe numerice reprezentate în baza r. 227

228 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR Demonstraţie: (1) Faptul că d este o distanţă se verifică imediat din Definiţia 20.1 şi Propoziţia 20.1. (2) Deoarece d(x + z, y + z) = w (r) (x + z y z) = w (r) (x y) = d(x, y) rezultă că distanţa aritmetică este invariantă la translatare (proprietate pe care distanţa Hamming nu o are). (3) Este lăsat ca exerciţiu. Precizăm că cele două numere reprezentate în baza r pot fi aduse la un număr egal de cifre completând eventual numărul mai scurt cu 0-uri (nesemnificative) în faţă. Definiţia 20.2 Fie a, b numere întregi pozitive. Se numeşte AN - cod mulţimea finită C a,b = {a n 0 n < b}. Ideea folosirii AN - codurilor în aritmetica calculatorului este următoa-rea: să presupunem că trebuie calculată suma n 1 + n 2 (n 1, n 2 pozitive şi mici comparativ cu b); fie S suma lor. Cele două numere se codifică în a n 1, a n 2 C a,b. Dacă S 0 (mod a) atunci suma a fost efectuată corect şi ea este S div a. Dacă nu, înseamnă că au apărut erori de calcul şi se ia ca rezultat acel număr n 3 cu proprietatea că d(s, an 3 ) este minimă. Pentru a corecta orice combinaţie de maxim t erori este necesar ca C să aibă distanţa minimă 2t + 1, deci orice număr din C are ponderea minim 2t + 1. Teorema 20.1 Fie a un număr întreg fixat şi s = min{w (r) (a n) n 0}. Atunci s 2. Demonstraţie: Cazurile a = 0 şi a = 1 sunt banale. Pentru a < 0 se va lucra cu a. Deci rămâne de studiat numai cazul a > 1. Vom folosi Teorema lui Fermat: Dacă (a, r) = 1 atunci r φ(a) 1 (mod a). (reamintim, φ(a) este simbolul Euler). Deci a r φ(a) 1. Cum w (r) (r φ(a) 1) = 2, afirmaţia este demonstrată pentru cazul când a şi r sunt prime între ele. Să presupunem acum că (a, r) = d > 1. Vom avea a = a 1 d, r = r 1 d cu (a 1, r 1 ) = 1. Atunci (notând n = φ(a 1 )), putem scrie r n 1 = d n r1 n 1 = d n (r1 n 1) + (d n 1). Se ştie că a 1 r1 n 1. Dacă (a 1, d) = 1 atunci a 1 d n 1, deci a 1 r n 1, sau a d r n d şi cum d < r, teorema este demonstrată. Dacă (a 1, d) > 1, raţionamentul se reia şi el se va termina după un număr finit de paşi (deoarece a 1 < a, d < r). 20.1.1 AN - coduri ciclice Rezultatul menţionat în Teorema 20.1 conduce la o dificultate de alegere. O aritmetică a calculatorului eficientă recomandă alegerea unei valori mari pentru b. Pe de-altă parte Teorema 20.1 arată că în acest caz riscul de a avea r - ponderea aritmetică minimă cel mult 2 (deci de a nu putea corecta nici o eroare) este mare. Problema se elimină dacă vom considera codurile AN modulare. Fie a, b numere prime şi m = a b. Definim C a,b ca subgrup al lui Z m. Aceasta conduce la o altă definiţie pentru distanţa dintre două numere. Pentru determinarea ei, să luăm

20.1. CODURI ARITMETICE 229 elementele lui Z m ca vârfuri într-un graf Γ m ; a, b Z m sunt legate printr-un arc dacă şi numai dacă c, j (0 < c < r, j 0) a b ±c r j (mod m). Definiţia 20.3 Distanţa modulară d m (x, y) dintre două numere a, b Z m lungimea drumului minim dintre a şi b în graful Γ m. Ponderea modulară a lui a Z m este w m (a) = d m (a, 0). este Propoziţia 20.3 Pentru a Z m w m (a) = min{w (r) (x) x Z, y x (mod m)}. Demonstraţie: Rezultă imediat din Definiţia 20.3. Exemplul 20.2 Să considerăm r = 2, a = 2, b = 3 deci m = 6. Graful Γ 6 va fi 0 1 3 2 4 5 deci tabelul distanţelor între elementele lui Z 6 este: d 0 1 2 3 4 5 0 0 1 1 2 1 2 1 1 0 2 1 2 1 2 1 2 0 1 2 2 3 2 1 1 0 2 1 4 1 2 2 2 0 1 5 2 1 2 1 1 0 De remarcat că alegerea lui m trebuie făcută cu grijă. De exemplu, dacă se ia r = 3, m = 35 vom avea d 35 (0, 12) = 1 deoarece 12 = 3 11 (mod 35). Practic însă, lucrând cu numere din Z 35, nu vom putea corecta erori pe poziţia corespunzătoare lui 3 11. De aceea, aritmetica pe calculator consideră doar situaţia m = r n 1 (n 2) care elimină astfel de situaţii. Orice număr întreg nenul x admite o reprezentare unică x n 1 c i r i mod (r n 1), cu 0 c i < r nu toţi nuli. Deci Z r n 1 poate fi interpretat ca fiind mulţimea GF (r n ) \ {0} cuvintelor nenule de lungime n peste alfabetul {0, 1,..., r 1}. Pentru a b = m = r n 1 distanţa modulară devine distanţa obişnuită în Z m şi C a,b are un comportament similar unui cod liniar. Definiţia 20.4 Un AN - cod ciclic de lungime n şi bază r este un subgrup multiplicativ C Z r n 1.

230 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR Evident, un astfel de subgrup este ideal principal în inelul Z r n 1, deci există a, b Z astfel încât a b = r n 1 şi C = C a,b, adică: C = {a k k Z, 0 k < b}. Dacă x C a,b, atunci r x (mod r n 1) este tot în C a,b deoarece acesta este grup multiplicativ; pe de-altă parte noul număr este o permutare ciclică a lui x (ambele fiind scrise în baza r). Numărul b poate fi asimilat polinomului de control al unui cod ciclic. Exemplul 20.3 Fie r = 2, n = 11. Atunci m = 2 11 1 = 2047. Să considerăm a = 23, b = 89. Se obţine AN - codul ciclic format din 89 multipli ai lui 23 (până la 2047). Există 22 modalităţi de a semnala o eroare, fiecare din ele corespunzând unui număr de forma ±2 j (0 j 11). Acestea sunt exact toate numerele din Z 23 \ {0}. Deci orice număr întreg din intervalul [0, 2047] are distanţa modulară 0 sau 1 de exact un cuvânt - cod. Acest AN - cod ciclic este perfect şi poate fi considerat o generalizare a codurilor Hamming. În [11] se face afirmaţia că nu există AN - coduri perfecte corectoare de o eroare pentru r = 10 sau r = 2 k, (k > 1). 20.1.2 AN - coduri corectoare de mai multe erori Pentru a construi AN - coduri capabile să corecteze erori multiple, va trebui definită o modalitate mai simplă de determinare a ponderii aritmetice sau modulare a numerelor întregi. Conform Definiţiei 20.1, orice număr întreg x se poate scrie sub forma w (r) x = a i r n(i) i=1 cu a i, n(i) numere întregi, a i < r, n(i) 0 (0 i w (r) ). Această reprezentare are defectul că nu este unică. De exemplu, pentru r = 10, numărul 99 se poate reprezenta în două moduri diferite: 99 = 9 10 + 9 10 0, 99 = 1 10 2 1 10 0. Se poate obţine prin impunerea de restricţii asupra coeficienţilor o reprezentare unică a numerelor întregi. Definiţia 20.5 Fie b, c Z, b < r, c < r. Perechea (b, c) se numeşte admisibilă dacă este adevărată una din relaţiile: (1) b c = 0; (2) b c > 0 şi b + c < r; (3) b c < 0 şi b > c. De remarcat că ambele perechi (b, c), (c, b) sunt admisibile numai în cazurile (1) sau (2). Cazul (3) nu permite comutativitatea relaţiei de admisibilitate. Exemplul 20.4 Pentru r = 2 este posibil numai cazul (1). Deci o reprezentare x = c i 2 i în care toate perechile (c i+1, c i ) sunt admisibile, nu are doi coeficienţi consecutivi nenuli.

20.1. CODURI ARITMETICE 231 Definiţia 20.6 O reprezentare x = c i r i cu c i Z, c i < r şi n x cu c i = 0 i > n x se numeşte NAF (non-adiacent form) dacă pentru orice i 0, perechea (c i+1, c i ) este admisibilă. Exemplul 20.5 Pentru r = 10 putem scrie: 96 = 4 10 0 + 0 10 1 + 1 10 2 (cazul (1)), 11 = 1 10 0 + 1 10 1 (cazul (2)), 38 = 2 10 0 + 4 10 1 (cazul (3)). De remarcat că reprezentarea lui 96 = 6 10 0 + 9 10 1 nu este în forma NAF deoarece perechea (9, 6) nu este admisibilă. La fel pentru reprezentările celorlaltor numere. Teorema 20.2 Orice număr întreg x are o reprezentare NAF unică în baza r. Dacă aceasta este x = c i r i, atunci w (r) (x) = card ({i i 0, c i 0}). Demonstraţie: Fie b i r i, ( b i < r) o reprezentare a lui x în baza r, şi i cel mai mic număr cu proprietatea că perechea (b i+1, b i ) nu este admisibilă. Putem presupune că b i > 0 (altfel se va lucra cu x). Vom înlocui b i cu b i = b i r şi b i+1 cu b i+1 = b i+1 + 1 (dacă b i+1 + 1 = r, atunci b i+1 = 0 şi facem deplasarea obişnuită de la adunare). Dacă b i+1 > 0, atunci avem sau b i+1 = 0, sau b i b i+1 < 0 şi b i+1 = b i+1 + 1 > r b i = b i (deoarece perechea (b i+1, b i ) nu era admisibilă). Dacă b i+1 < 0, atunci sau b i+1 = 0, sau b i b i+1 > 0 şi b i + b i+ = r b i b i+1 < r deoarece b i+1 b i (perechea (b i+1, b i ) nu era admisibilă). Deci, (b i+1, b i) este admisibilă, şi se verifică similar dacă (b i, b i 1 ) este admisibilă. Procedeul continuă până se ajunge la i = 0. Să arătăm acum că reprezentarea NAF este unică. Presupunem că există x Z cu două astfel de reprezentări: x = c i r i = c i r i. Considerăm fără a micşora generalitatea că c 0 c 0 şi c 0 > 0; deci c 0 = c 0 r. Atunci pentru c 1 sunt posibile trei valori: c 1 + 1, c 1 + 1 ± r. Dacă c 1 = c 1 + 1 r, atunci c 1 0, deci c 0 + c 1 r 1. Deoarece c 0 c 1 > 0, avem c 0 c 1 < r, de unde r c 0 + r c 1 1 < r, deci c 0 + c 1 > r 1, contradicţie. Celelalte două cazuri se tratează similar. Reprezentarea NAF a unui număr x se poate afla direct şi pe baza teoremei: Teorema 20.3 Fie x Z, x 0. Considerăm reprezentările în baza r a numerelor (r + 1) x = a i r i, x = b i r i, unde a i, b i {0, 1,..., r 1}. Atunci reprezentarea NAF pentru x este x = (a i+1 b i+1 ) r i.

232 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR Demonstraţie: Ştim că pentru două numere naturale nenule a, r, [a/r] reprezintă câtul împărţirii celor două numere, iar a [a/r] r - restul. Din reprezentarea din enunţ, rezultă că fiecare coeficient a i se determină prin adunarea coeficienţilor corespunzători ai numerelor x şi r x, scrise în baza r. Să definim secvenţa numerică α i, i 0 astfel: [ ] αi 1 + b i 1 + b i α 0 = 0, α i =. r Atunci, conform observaţiei de la începutul demonstraţiei, a i = α i 1 + b i 1 + b i α i r. Dacă notăm c i := a i b i, avem c i = α i 1 + b i 1 α i r. Mai rămâne de verificat faptul că (c i+1, c i ) este o pereche admisibilă. Relaţia c i+1 + c i < r rezultă imediat din definiţia lui α i. Să presupunem c i > 0, c i+1 < 0; atunci α i = 0. Vom avea c i = α i 1 + b i 1, c i+1 = b i r şi condiţia c i+1 > c i este echivalentă cu α i 1 + b i 1 + b i < r, adică α i = 0. Celălalt caz se arată analog. Exemplul 20.6 Pentru a găsi reprezentarea NAF a numărului 98 în baza r = 10, avem 98 = 8 10 0 + 9 10 1 + 0 10 2 + 0 10 3 +... 980 + 98 = 1078 = 8 10 0 + 7 10 1 + 0 10 2 + 1 10 3 Deci, 98 = (7 9) 10 0 + (0 0) 10 1 + (1 0) 10 2 = 2 + 1 10 2. Similar situaţiei din paragraful anterior, să considerăm acum cazul reprezentării modulare. Vom lua deci m = r n 1, (n 2). Definiţia 20.7 O reprezentare x n 1 c i r i (mod m) cu c i Z, c i < r se numeşte CNAF (cyclic NAF ) pentru x dacă i (0 i n 1), (c i+1, c i ) este admisibilă (se consideră c n = c 0 ). Din Teoremele 20.2 şi 20.3 rezultă un rezultat similar pentru reprezentă- rile CNAF : Teorema 20.4 Orice număr întreg x admite o reprezentare CN AF modulo m. Această reprezentare este unică, exceptând cazul (r + 1) x 0 x (mod m), când sunt posibile două reprezentări. n 1 Dacă x c i r i (mod m), atunci w m (x) = card({i 0 i < n, c i 0}). Demonstraţie: Construcţia este identică cu cea din demonstraţia Teoremei 20.3. Unicitatea se arată similar cu cea din demonstraţia Teoremei 20.2. Singura excepţie este cazul b i+1 b i (mod m). În acest caz sunt posibile două reprezentări: x b 0 + b 1 r +... b n 1 r n 1 şi x b 1 b 2 r... b 0 r n 1, ambele modulo m.

20.2. TURBO - CODURI 233 20.1.3 Coduri Mandelbaum - Barrows O clasă de AN coduri a fost definită de Mandelbaum şi Barrows, generalizată ulterior de van Lindt ([11]). Iniţial este necesar un rezultat referitor la ponderea modulară în AN coduri ciclice, a cărui demonstrare se află în [11], pag. 127 128: Teorema 20.5 Fie C Z/(r n 1) un AN cod ciclic cu generator a şi b = (r n 1)/a = card(c), cu proprietatea că x ([ C are o] reprezentare [ ]) CNAF unică. Atunci r b b w m (x) = n. r + 1 r + 1 x C Teorema 20.6 Fie b un număr prim care nu divide r, cu proprietatea că grupul multiplicativ Z b este generat de r şi 1. Fie n un număr întreg pozitiv astfel ca r n 1 (mod b) şi a = (r n 1)/b. Atunci codul C Z/(r n 1) generat de a este un cod echidistant cu distanţa ([ ] [ n r b b 1 r + 1 b r + 1 Demonstraţie: Fie x C \ {0}. Atunci x = a n (mod r n 1) cu n 0 (mod b). Din ipoteză rezultă că există j întreg cu n ± r j (mod b). Deci w m (x) = w m (±r j a) = w m (a). Aceasta arată că C este echidistant. Valoarea distanţei rezultă din Teorema 20.5. ]). 20.2 Turbo - coduri În ultimii ani, viteza tot mai mare de transmisie a datelor - aproape de capacitatea maximă a canalelor de comunicaţie a condus la modalităti noi de codificare. Turbo codurile sunt prezentate prima dată în 1993 de Berrou, Glavier şi Thitimajshima şi combină sub formă de reţea (minim) două coduri convoluţionale. Modalitatea de decodificare este total deosebită de algoritmii cunoscuţi până acum (se folosesc capacităţile statistice de performanţă ale canalelor de transmisie). Ele asigură o rată de corectare a erorilor mult mai ridicată decât la codurile clasice; de aceea turbo - codurile asigură transmisiile de pe staţiile lansate după anul 1993, precum şi canalele de satelit. 20.2.1 Structura unui turbo - cod Un turbo - cod standard este reprezentat de Figura 20.1: El foloseşte două (2, 2) - coduri convoluţionale (care fără a micşora generalitatea au fost considerate identice), separate printr-un bloc P N de permutare de N caractere (N fiind o constantă fixată, dependentă de structura canalului de transmisie). Mesajul de informaţie este spart în blocuri u Z q de lungime N; dacă se ignoră mecanismul de relaxare R, rata codificatorului este 1/3 (N simboluri de informaţie se transformă în cuvinte - cod de lungime 3N). Cele 3 ieşiri (x s, x 1p, x 2p ) sunt apoi transmise pe coloană, ca un cod GAC.

234 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR Tabelul 20.1: Turbo - codificator standard u = x s g 1 (X) g 0 (X) x 1p P N R x 1p, x 2p u g 1 (X) x 2p g 0 (X) Codificatorul Pentru codul convoluţional, matricea generatoare poate fi considerată (într-o variantă simplificată, bazată pe structura de reţea a mesajelor) G = (g 0 (X) g 1 (X)). Codificatorul unui turbo - cod va folosi ca matrice generatoare o formă echivalentă recursivă: ( G T R = 1 g ) 1(X). g 0 (X) Din acest motiv, un codificator convoluţional pentru turbo - coduri este numit Codificator Sistematic Recursiv (RSE). Un mesaj de informaţie u(x), este codificat de codul convoluţional în u(x)g = (u(x)g 0 (X) u(x)g 1 ((X)). RSE va realiza aceeaşi ieşire pentru mesajul u (X) = u(x)g 0 (X) (se verifică imediat relaţia u(x)g 0 (X)G R = u(x)g). Vom numi totuşi cuvânt - cod perechea de polinoame u(x)g (deşi se mai efectuează o operaţie de înmulţire pentru obţinerea mesajului u (X)). Se observă că pentru un RSE, cuvântul cod are pondere finită dacă şi numai dacă mesajul de intrare se divide cu g 0 (X). Corolarul 20.1 Un mesaj sursă u cu w(u ) = 1 se codifică într-un cuvânt - cod de pondere infinită. Demonstraţie: Evident, deoarece u (X) = X p nu se divide cu g 0 (X). Corolarul 20.2 Pentru orice polinom netrivial g 0 (X) Z q [X] există o infinitate de mesaje sursă de pondere 2 care se codifică în cuvinte - cod de pondere finită. Demonstraţie: Pentru g 0 (X) Z q [X], g 0 (X) X p, există un n minim cu proprietatea g 0 (X) X n 1 (n este lungimea secvenţei pseudo-aleatoare generată de g 0 (X) - a se vedea Relaţii de recurenţă liniară, Prelegerea 8). Orice secvenţă u de forma u (X) = ax i (X n 1), a Z q \ {0} are pondere 2 şi este divizibilă cu g 0 (X), deci codificarea prin RSE va genera un polinom cu un număr finit de termeni. Exemplul 20.7 Fie g 0 (X) = 1 + X + X 4, g 1 (X) = 1 + X 2 + X 3 + X 4 polinoame din Z 2 [X]. În mod uzual se foloseşte notaţia în octal; deci, cum g 0 = 11001 2 = 31 8, g 1 = 10111 2 = 27 8, vom avea (g 0 g 1 ) = (31, 27).

20.2. TURBO - CODURI 235 Matricea generatoare este ( G R = 1 1 + ) X2 + X 3 + X 4, 1 + X + X 4 iar un circuit liniar care realizează acest RSE are forma: u k + + (s-a notat cu u k simbolul de informaţie curent, iar cu p k simbolul de control corespunzător). Cum g 0 (X) este primitiv, lungimea secvenţelor este 2 4 1 = 15. De exemplu, mesajul sursă u(x) = 1 + X 15 se codifică în (1 + X 15, 1 + X + X 2 + X 3 + X 5 + X 7 + X 8 + X 11 ) = (1000000000000001, 1111010110010000). u(x) = X 7 (1 + X 15 ) va genera acelaşi cuvânt - cod, cu o întârziere de şapte tacţi. u k p k Permutatorul P N este un bloc de permutare. Cele N caractere care constituie intrarea în primul codificator RSE sunt rearanjate înainte de a intra în al doilea codificator. Din considerente practice este preferabil ca permutarea folosită să nu păstreze nici o ordine anterioară a simbolurilor (deşi acest lucru este uneori dificil, mai ales pentru cuvinte de pondere mică). De asemenea, N trebuie să fie suficient de mare (în practică se foloseşte N 1000). Aceste două cerinţe uzuale în criptografie sunt necesare în obţinerea de performanţe ridicate la decodificare. Mecanismul de relaxare Dacă pentru transmiterea de imagini din spaţiu sunt folosite coduri cu rate mici de informaţie (fiecărui bit îi corespund cel puţin 3 caractere cod), în alte situaţii (comunicări prin satelit de exemplu) sunt preferabile rate mari (cel puţin 1/2). Rolul mecanismului de relaxare (vezi Capitolul 2) este de a reduce periodic anumite caractere pentru a scurta lungimea cuvintelor - cod. De obicei se elimină biţi de control; astfel, pentru a obţine o rată de informaţie 1/2 se pot elimina toţi biţii de control pari de la începutul codului şi toţi biţii de control impari de la sfârşit. 20.2.2 Decodificarea turbo - codurilor Din construcţie rezultă că un turbo codificator este liniar, deoarece toate componentele sale sunt liniare. Codificările RSE sunt implementate prin circuite liniare, permutatorul este liniar deoarece poate fi modelat printr-o matrice de permutare. La fel, mecanismul de relaxare nu afectează liniaritatea, deoarece din toate cuvintele - cod se şterg simbolurile de pe aceleaşi poziţii. Importanţa liniarităţii constă în faptul că se poate lua ca referinţă cuvântul - cod nul. De asemenea, toate construcţiile

236 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR le facem pentru cazul binar, cu simbolurile ±1. Decodificatorul va lucra după principiul obişnuit al decodificării cele mai probabile. Din păcate, utilizarea algoritmului Viterbi nu este posibilă din cauza operaţiei de permutare folosită în decodificare. Totuşi, pentru subsecven-ţe stricte, un astfel de algoritm poate da rezultate. Primul algoritm de decodificare pentru turbo - coduri a fost propus de Berrou în 1993 ([12]), bazat pe ideile din [2]. Numit BCJR, el foloseşte o decodificare caracter-cu-caracter (spre deosebire de Viterbi care decodifica pe secvenţe bloc de câte n caractere). Vom folosi următoarele notaţii: E i - notarea codificatorului RSE i (1 i 2); D i - notarea decodificatorului i (1 i 2); m - capacitatea de memorie (buffer) a codificatorului; S - mulţimea celor 2 m stări ale codificatorului; x s = x s 1x s 2... x s N = u 1 u 2... u N secvenţa de informaţie care se codifică; x p = x p 1x p 2... x p N cuvântul de control generat de codificator; y k = y s ky p k o recepţie (posibil perturbată) a lui xs kx p k ; y b a = y a y a+1... y b ; y N 1 = y 1 y 2... y N cuvântul recepţionat. Algoritmul BCJR (iniţial şi modificat) O primă versiune a algoritmului se bazează pe decodificarea cea mai probabilă aposteriori (M AP - { maximul aposteriori). Se realizează decodificarea +1 dacă P (uk = +1 y) > P (u u k = k = 1 y) 1 altfel. Formal, û k = sign[l(u k )], unde L(u k ) este logaritmul raportului probabilităţilor de potrivire aposteriori, definit prin relaţia L(u k ) = log ( ) P (uk = +1 y). P (u k = 1 y) Dacă se ţine cont de faptul că se codifică în reţea, aceasta se scrie: p(s k 1 = s, s k = s, y)/p(y) L(u k ) = log S + p(s k 1 = s (1), s k = s, y)/p(y) S unde s k S este starea codificatorului la momentul k, S + este mulţimea perechilor (ordonate) (s, s) corespunzătoare tuturor stărilor de tranziţie (s k 1 = s ) (s k = s) generate de u k = +1,

20.2. TURBO - CODURI 237 S este definită similar pentru u k = 1. Este posibil să simplificăm cu p(y) în (1); deci este necesară doar o formulă pentru calculul lui p(s, s, y). În [2], este construită o variantă sub forma p(s, s, y) = α k 1 (s ) γ k (s, s) β k (s) (2) unde: γ k (s, s) = p(s k = s, y k s k 1 = s ); α k (s) = p(s k = s, y k 1) este calculat recursiv cu formula α k (s) = s S α k 1 (s ) γ k (s, s) cu condiţiile iniţiale α 0 (0) = 1, α 0 (s 0) = 0 (codificatorul pleacă din starea 0). β k (s) = p(y N k+1 s k = s) are formula recursivă de calcul β k 1 (s ) = s S β k (s) γ k (s, s) şi condiţiile β N (0) = 1, β N (s 0) = 0 (după N biţi de intrare codificatorul trebuie să ajungă la starea 0; restricţia se realizează alegând corespunzător ultimii m biţi, numiţi biţi de încheiere). Aplicarea acestei variante de decodificare la turbo - coduri (reamintim, algoritmul BCJR iniţial a fost definit în 1974) are un neajuns: simplificarea cu p(y) conduce la algoritmi numerici instabili. De aceea, Berrou ([12]) face o modificare a algoritmului, în felul următor: Se definesc probabilităţile (modificate) α k (s) = α k (s)/p(y1), k βk (s) = β k (s)/p(yk+1 y N 1 N ). Prin împărţirea relaţiei (2) cu p(y)/p(y k ) = p(y1 k 1 ) p(yk+1 y N 1) k se ajunge la p(s, s y) p(y k ) = α k 1 (s ) γ k (s, s) β k (s). Pentru că p(y1) k = α k (s), valorile α k (s) se pot determina din α k (s) pe baza s S formulei α k (s) = α k(s) α k (s), s S sau folosind definiţia recursivă a lui α k (s): α k 1 (s ) γ k (s, s) α k (s) = s S s S s S α k 1 (s ) γ k (s, s) = s S s S s S α k 1 (s ) γ k (s, s) α k 1 (s ) γ k (s, s) ultimul rezultat fiind obţinut prin împărţirea numărătorului şi numitorului cu p(y1 k 1 ). Definirea recursivă a lui β k (s) se obţine plecând de la p(yk N y1 k 1 ) = p(y 1) p(yn k k+1 y1) k p(y1 k 1 = α k 1 (s ) γ k (s, s) p(yn k+1 y1) k s S s S p(y1 k 1 = α k 1 (s ) ) s S s S γ k (s, s) p(yk+1 y N 1) k şi folosind definiţia recursivă a lui β k 1 (s), se ajunge la relaţia

238 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR β k (s) γ k (s, s) β k 1 (s s S ) = α k 1 (s ) γ k (s, s). s S s S În final, algoritmul BCJR modificat va folosi valoarea L(u k ) dată de relaţia α k 1 (s ) γ k (s, s) β k (s) L(u k ) = log S + α k 1 (s ) γ k (s, s) β k (s). (3) S Condiţiile la limită pentru α k (s) şi β k (s) sunt cele de la α k (s) respectiv β k (s). O altă versiune a algoritmului ( foloseşte ) informaţia ( apriori. ) Pentru acesta avem P (y uk = +1) P (uk = +1) L(u k ) = log + log. P (y u k = 1) P (u k = 1) Deoarece în mod normal P (u k = +1) = P (u k = 1), al doilea termen al sumei este zero în decodificatoarele uzuale. Pentru un turbo - decodor care lucrează recursiv, D 1 primeşte informaţie suplimentară de la D 2, care serveşte ca informaţie apriori. Similar, D 2 primeşte de la D 1 informaţie suplimentară, ş.a.m.d. Ideea constă în faptul că D 2 poate da lui D 1 informaţii despre u k la care acesta nu are acces (de exemplu caracterele de control generate de E 2 ); acelaşi lucru îl realizează D 1 pentru D 2. Un circuit de decodificare bazat pe algoritmul BCJR este: y 1p y s y 2p D 1 L e 12 P 1 N L e 21 PN 1 D 2 PN 1 S-a notat cu PN 1 inversa matricii de permutare P N din circuitul de codificare. L e 12 este informaţia suplimentară transmisă de la D 1 la D 2, iar L e 21 este cea transmisă de la D 2 la D 1. Deciziile finale de decodificare pot veni atât de la D 1 cât şi de la D 2. Mai rămâne de văzut cum se poate obţine această informaţie suplimentară care circulă între cei doi decodificatori recursivi. Definiţia lui γ k (s, s) se poate rescrie γ k (s, s) = P (s s )p(y k s, s) = P (u k ) p(y k u k ) unde evenimentul u k corespunde ( tranziţiei s ) s. Dacă se notează: P L e (uk = +1) (u k ) = log, P (u k = 1) P /P + 1 + P /P + P /P + 1 + P /P + P + = P (u k = +1), P + /P = P + dacă u k = +1, P /P + = P dacă u k = 1. P = P (u k = 1), avem În această ( situaţie se obţine exp[ L e ) (u k )/2] P (u k ) = exp[u 1 + exp[ L e k L e (u k )/2] = A k exp[u k L e (u k )/2], şi (ream- (u k )]

20.2. TURBO - CODURI 239 intim, y k = yky s p k, x k = x s kx p k = u kx p [ k ) p(y k u k ) exp (ys k u k ) 2 (yp k ] xp k )2 = 2σ 2 2σ [ 2 = exp (ys k) 2 + u 2 k + (y p k )2 + (x p ] [ k )2 uk yk s + x p k exp ] yp k = 2σ 2 σ [ 2 y s = B k exp k u k + y p k ] xp k deci σ 2 γ k (s, s) A k B k exp [u k L e (u k )/2] exp [ uk y s k + x p k yp k Deoarece γ k (s, s) apare în (3) la numărător (unde u k = +1) şi numitor (unde u k = 1), factorul A k B k se va reduce fiind independent de u k. De asemenea, particularităţile de canal la transmisia lui ±1 dau relaţia σ 2 = N 0 /(2E c ) unde E c este energia de canal per bit. Din (4) se obţine γ k (s, s) exp [u k (L e (u k ) + L c y s k)/2 + L c y p k xp k /2] = = exp [u k (L e (u k ) + L c y s k)/2] γ e k(s, s), unde L c = 4E c şi γ N k(s e, s) = exp [L c y p k xp k /2]. 0 Combinând această relaţie cu (3) se ajunge la α k 1 (s ) γk(s e, s) β k (s) C k L(u k ) = log S + α k 1 (s ) γk(s e, s) β k (s) C = k S α k 1 (s ) γk(s e, s) β k (s) = L c yk s + L e (u k ) + log S + α k 1 (s ) γk(s e, s) β (5) k (s) unde s-a notat C k = exp [u k (L e (u k ) + L c y s k)/2]. S A doua egalitate rezultă deoarece C k (u k = +1) şi C k (u k = 1) pot fi scoase ca factor. Primul termen al sumei (5) este numit valoare de canal, al doilea reprezintă informaţia apriori despre u k (furnizată de un decodificator anterior), iar al treilea termen conţine informaţia suplimentară care se trimite la decodificatorul următor. Deci de exemplu la orice iteraţie, D 1 calculează L 1 (u k ) = L c y s k + L e 21(u k ) + L e 12(u k ) unde L e 21(u k ) este informaţia suplimentară venită de la D 2 şi L e 12(u k ) este al treilea termen din (5), folosit ca o informaţie suplimentară trecută de la D 1 spre D 2. Algoritmul BCJR se poate formaliza, în unele ipoteze implicite. Astfel: - se presupune că cei doi codificatori lucrează corect, adică ultimii m biţi din mesajul de informaţie de lungime N se codifică astfel ca la sfârşit E 1 să ajungă la starea zero. - decodificatorii deţin toată informaţia referitoare la reţeaua de codificare; astfel, ei au tabele complete cu simbolurile de informaţie şi de control pentru toate tranziţiile de stări s s, matricile de permutare şi inversele lor. σ 2 ] (4)

240 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR Algoritmul BCJR: 1. (Iniţializare):{ D 1 : α (1) 1 pentru s = 0 0 (s) := 0 pentru s 0 L e 21(u k ) := { 0, k = 1, 2,..., N D 2 : α (2) 1 pentru s = 0 0 (s) := { β (1) 1 pentru s = 0 N (s) := 0 pentru s 0 0 pentru s 0, β(2) N (s) := α (2) N (s), s. L e 12(u k ) se determină din D 1 după prima trecere, deci nu se iniţializează. 2. (A n-a iteraţie): D 1 : pentru k = 1, 2,..., N - Se determină y k := yky s 1p k unde y 1p k sunt biţii de control recepţionaţi pentru E 1 (posibil perturbaţi de canal); - Se determină γ k (s, s) pentru toate tranziţiile posibile s s; - Se determină α (1) k (s), s. (1) pentru k = N, N 1,..., 2 se determină β k 1 (s), s; pentru k = 1, 2,..., N se determină L e 12(u k ) cu valorile de probabilităţi asociate lui D 1. D 2 : pentru k = 1, 2,..., N - Se determină y k := yp s N [k] y2p k ; - Se determină γ k (s, s) pentru toate tranziţiile posibile s s; - Se determină α (2) k (s), s; (2) pentru k = N, N 1,..., 2 se determină β k 1 (s), s; pentru k = 1, 2,... N se determină L e 21(u k ) cu valorile de probabilităti asociate lui D 2 ; 3. (După ultima iteraţie): Pentru k = 1, 2,..., N - Se determină L 1 (u k ) := L c yk s + L e 21(u P 1 [k]) + Le 12(u k ); N - Dacă L 1 (u k ) > 0 atunci u k := +1 altfel u k := 1; 4. Stop. 20.3 Exerciţii 20.1 Demonstraţi Propoziţia 20.1. 20.2 Demonstraţi Propoziţia 20.2, (3). 20.3 Calculaţi w (2), w (10) şi w (16) pentru numerele 100, 32412, 999, 1024. 20.4 Fie x Z. Un cod Booth este o reprezentare x = c i 3 i unde c i { 1, 0, 1}. 1. Să se reprezinte în codul Booth numerele 23, 455, 81, 6493; 2. Să se arate că pentru orice număr întreg, codul Booth este unic. 20.5 Determinaţi AN - codurile ciclice din Z 2 3 1 şi Z 3 3 1. Stabiliţi valorile a şi b pentru fiecare din ele.

20.3. EXERCIŢII 241 20.6 Generalizaţi Exemplul 20.3. Găsiţi un AN - cod ciclic perfect corector de o eroare pentru r = 3. 20.7 Scrieţi în forma NAF pentru r = 2, r = 10 şi r = 7 numerele 15, 32075, 5665, 992. 20.8 Completaţi demonstraţia Teoremei 20.2, verificând unicitatea re-prezentării NAF în cazurile c 1 = c 1 + 1 şi c 1 = c 1 + 1 + r. 20.9 În definiţia reprezentării NAF a numărului întreg x (cu completarea n 0 = 1), să se arate că n x k x < rk+2 r + 1. 20.10 Considerăm reprezentarea ternară modulo 3 6 1. Să se determine forma CN AF pentru numărul 455. 20.11 Determinaţi cuvintele - cod din codul Mandelbaum - Barrows cu b = 11, r = 3, n = 5. 20.12 Fie g 0 (X) = 1 + X + X 3, g 1 (X) = 1 + X 2 + X 4 + X 5 din Z 2 [X]. Construiţi circuitul liniar pentru codificatorul RSE. Codificaţi mesajele de informaţie 1 + X 2 + X 3, 1 + X 7, X + X 4 + X 5. 20.13 Aceeaşi problemă pentru polinoamele g 0 (X) = 1 + X 3 + X 4, g 1 (X) = X + X 3 + X 6. 20.14 Să se construiască un turbo-codificator folosind codificatoarele RSE din Exemplul 20.7, N = 3, matricea de comutaţie P 3 = 0 0 1 şi fără mecanism de 1 0 0 0 1 0 relaxare. Să se codifice mesajul de informaţie 100 011 101.

242 PRELEGEREA 20. ALTE REZULTATE DIN TEORIA CODURILOR

Bibliografie [1] J. Adamek - Foundations of Coding, Wiley - Interscience, 1991; [2] L. Bahl, J. Cocker, F. Jelinek, J. Raviv - Optimal decoding of linear codes for minimizing symbol error rate, IEEE Trans. Inf. Theory, pp. 284-287, Martie 1974; [3] M. Blaum - A (16, 9, 6, 5, 4) error correcting dc-free block code, IEEE Transactions on Information Theory, vol. 34, 1988, pp. 38-141; [4] C. Carlet - Codes de Reed - Muller; Codes de Kerdok et de Preparata (teză de doctorat), PARIS VI, 1990; [5] G. Cullmann - Coduri detectoare şi corectoare de erori, Editura Tehnică, 1972; [6] S. Guiaşu - Teoria Codurilor, Tipografia Universităţii Bucureşti, 1976; [7] D.G. Hoffman, D.A. Leonard, C.C. Lindner, K.T. Phelps, C.A. Rodger, J.R. Wall - Coding Theory; The Essentials, Marcel Dekker, Inc, 1991; [8] B. Honary, G. Markarian - Trellis Decoding of Block Codes, A Parctical Approach, Kluwer Academic Publ., 1997; [9] A. M. Kerdok - A class of low-rate non linear codes, Information and control, 20 (1972), 182-187; [10] J.H. van Lindt - Coding Theory, Springer Verlag, 1971; [11] J.H. van Lindt - Introduction to Coding Theory, Springer Verlag, 1982; [12] W.E.Ryan - A Turbo Code Tutorial, IEEE Trans. Comm. pp. 1261-1271, Oct. 1996; 243