Sunteți pe pagina 1din 42

Teoria codurilor

Codarea de canal
Cuprins

„ Sistemul de transmitere a informaţiei


„ Codarea informaţiei
„ Tipuri de codere
„ Controlul erorilor
„ Codarea de canal
„ Capacitatea de detecţie
„ Capacitatea de corecţie

Teoria informaţiei şi coduri 2


Teoria informaţiei/codurilor
„ Teoria informaţiei stabileşte care sunt limitele
teoretice ale acestor sisteme de prelucrare a
informaţiei
‰ Care sunt cele mai bune performanţe ce se pot obţine
pentru un sistem de corectare a erorilor?
„ Teoria codurilor stabileşte modul în care se pot
realiza practic sistemele de codare şi decodare
necesare în sistemul de transmitere a informaţiei

Teoria informaţiei şi coduri 3


Teoria informaţiei în comunicaţii
„ Transmiterea informaţiei
„ Prelucrarea informaţiei
„ Stocarea informaţiei
„ Capacitatea canalelor de comunicaţii
„ Codere eficiente
„ Generatoare de secvenţe binare

Teoria informaţiei şi coduri 4


Modelul sistemului de transmitere a informaţiei

Sursa de Coder de Coder de


informaţie sursă canal

Canal de
comunicaţie Perturbaţii

Decoder de Decoder de
Destinatar
sursă canal

Teoria informaţiei şi coduri 5


Codificarea informaţiei
„ Cod – formă de organizare (reprezentare) a
informaţiei
„ Cod – o formă de a organiza informaţia
„ Codificare – procesul de stabilire/utilizare a
unui cod

Teoria informaţiei şi coduri 6


Coderul
„ Codarea informaţiei
„ Transformarea şi reprezentarea informaţiei într-o
formă adecvată pentru transmisie
„ Uşor de transmis, adaptare la mediul de transmisie
„ Compresia informaţiei – eliminarea redundanţei
„ Detecţia şi corecţia erorilor – adăugare de
redundanţă
„ Codarea ţine cont şi de blocurile ce urmează în
sistem

Teoria informaţiei şi coduri 7


Coderul de canal
„ Orice mediu de transmisie este supus perturbaţiilor
„ Codare pentru adaptare la caracteristicile canalului
„ Prelucrarea informaţiei – protecţie la transmiterea
prin canal
„ Introducere de redundanţă pentru a asigura
detectarea (şi corectarea) erorilor datorate
perturbaţiilor
„ Robusteţe la impactul cu perturbaţiile – cât mai
puţine modificări

Teoria informaţiei şi coduri 8


Reprezentarea codului

„ polinomul a(x)
„ matricial
„ elemente ale mulţimilor finite
„ elemente ale spaţiului vectorial
„ geometric

Teoria informaţiei şi coduri 9


Reprezentarea codului
Exemplu
„ n=5 şi GF(2)
„ 32 combinaţii de cod – vectori din spaţiul vectorial
V5
„ Se poate pune condiţia ca vectorii să se
deosebească prin cel puţin 3 poziţii
‰ v1 = 1 1 1 1 1
‰ v2 = 0 0 1 0 1
‰ v3 = 1 1 0 0 0
‰ v4 = 0 0 0 1 0

Teoria informaţiei şi coduri 10


Codul complet
„ Fără redundanţă
„ Un cod ce conţine Mn combinaţii de lungime n
„ O eroare va transforma cuvântul de cod într-un alt
cuvânt de cod
„ Nu poate asigura detectare de erori

Teoria informaţiei şi coduri 11


Codul detector şi corector de erori
„ Un cod ce conţine N<Mn combinaţii de lungime n
„ Se construieşte pe baza simbolurilor informaţionale
‰ Simboluri informaţionale – k
‰ Simboluri redundante – n-k
„ (n,k)

Teoria informaţiei şi coduri 12


Cod detector/corector de erori

α1l , α 2l ,..., α kl , β1l , β 2l ,...β rl


k
Fj (α ) = β jl = ∑ cijα il , j = 1, r , cij ∈ GF ( p )
i =1

Teoria informaţiei şi coduri 13


Distanţa cuvintelor de cod

d ( vi , v j ) ≤ d ( vi , vk ) + d ( vk , v j ) - axioma triunghiului

di ≠ j ( vi , v j ) = ∑ ( ali ⊕ blj )
n

l =1

vi = ali , l = 1, n
v j = blj , l = 1, n

Teoria informaţiei şi coduri 14


Decodificarea cuvintelor eronate

Teoria informaţiei şi coduri 15


Decodificarea cuvintelor eronate

2 3

Teoria informaţiei şi coduri 16


Coduri detectoare/corectoare de erori

„ Coduri cu redundanţă ce se ataşează în procesul


de codificare
„ La decodificare redundanţa este eliminată
„ Asigură protecţie la efectele perturbaţiilor prezente
pe canal
‰ La nivel micro pentru vorbi de perturbaţii pe magistrală,
cabluri de date între blocurile unui sistem de calcul

Teoria informaţiei şi coduri 17


Coduri redundante

„ Protecţia informaţiei la erorile datorate


perturbaţiilor
„ Coduri de canal (redundante)
‰detectoare de erori
‰corectoare de erori (implicit şi detectoare)

Teoria informaţiei şi coduri 18


Coduri detectoare de erori
„ Pun în evidenţă apariţia unei erori (sau mai multe) la
ieşirea canalului de comunicaţie
‰ Relativ la informaţia transmisă de la sursă (pachetul de
simboluri ce a intrat în canal)
„ Ca urmare a detecţiei, se poate lua decizia repetării
transmisiei
„ Exemplu
‰ FCS
‰ CRC DVD, CD, arhivă
‰ ISBN

Teoria informaţiei şi coduri 19


Coduri corectoare
„ Pe lângă detecţia erorii, au şi funcţia de
corecţie a erorilor apărute (în limita capacităţii
de corecţie a codului)
„ Capacitatea de corecţie
‰Principalul parametru al codurilor corectoare
‰Numărul maxim de simboluri ce pot fi corectate
dintr-un cuvânt de cod
‰În mod similar se defineşte capacitatea de
detecţie a codurilor detectoare
‰Cd ≥ Cc

Teoria informaţiei şi coduri 20


Coduri bloc
„ Informaţia generată de sursa informaţională este
prelucrată la intrarea coderului de canal parcurgând
următoarele etape
‰ Se împarte în blocuri de lungime egală simbolurile furnizate de
codurile sursă – k
‰ k – numărul de simboluri informaţionale caracterizează tipul
codului implementat în blocul de codare (metoda de codificare)
‰ La fiecare bloc de k simboluri din şirul informaţional vor fi ataşate
alte simboluri redundante determinate pe baza simbolurilor
informaţionale – r=n-k
„ Metoda de codificare
‰ stabileşte în mod explicit simbolurile din cadrul redundanţei
‰ exprimarea unor relaţii algebrice de corelaţie între valoarea
simbolurilor redundante şi simbolurile informaţionale

Teoria informaţiei şi coduri 21


Parametrii codurilor redundante
„ Lungimea cuvintelor de cod
„ Numărul simbolurilor informaţionale
„ Numărul simbolurilor redundante
„ Distanţa minimă a codului
„ Capacitatea de detecţie
„ Volumul codului
„ Matricea generatoare
„ Matricea de control
„ Relaţiile de control
„ Viteza de transfer
„ Capacitatea de corecţie

Teoria informaţiei şi coduri 22


Distanţa Hamming

„ numărul simbolurilor diferite aflate pe aceleaşi poziţii


rezultate prin compararea a doi vectori

x1 = 1 0 0 1 0 1 1 1 0 1 1 0 1 0
x2 = 0 1 1 0 0 0 1 0 0 1 1 1 0 1

d H = 9, (
d H x1 , x2 = 9 )
( )
d = min d H xi , x j , ∀ xi , x j ∈ C

Teoria informaţiei şi coduri 23


Ponderea cuvintelor de cod
„ Reprezintă numărul de simboluri diferite de 0 din
cadrul unui cuvânt de cod
„ Distanţa Hamming minimă a unui cod liniar se poate
calcula aflând valoarea minimă a ponderii diferenţei
cuvintelor de cod
„ Se face diferenţa dintre oricare doi vectori

( ) (
d H x, y = d H x − y , 0 = w x − y ) ( )

Teoria informaţiei şi coduri 24


Volumul codului
„ Numărul total al cuvintelor de cod – M
„ Numărul cuvintelor de cod depinde de lungimea blocului
simbolurilor informaţionale din cadrul cuvântului de cod
„ Numărul total al combinaţiilor de valori pentru simbolurile blocului
informaţional
„ Pentru o codificare binară, unde avem k simboluri vor exista
M=2k combinaţii de cuvânt de cod
„ Apariţia oricărei secvenţe de la sursă este posibilă – trebuie să
existe pentru fiecare set un cuvânt de cod specific

Teoria informaţiei şi coduri 25


Matricea generatoare
„ Matricea de tipul [k*n], în care liniile matricii formează
o bază de vectori liniar independenţi ai codului C
„ Vectori liniari independenţi – suma oricăror vectori
este nenulă
„ Bază – sistem de vectori generatori
„ Matricea generatoare G poate genera toţi vectorii
(cuvintele) codului
„ G(k*n) – conduce la obţinerea oricărui vector din
componenţa codului

{
C = aG a ∈ Q k
}
Teoria informaţiei şi coduri 26
Matricea generatoare
{
C = aG a ∈ Q k }
G = [ Ik ; P]
G = [ P; I k ]

⎡1 0 0 1 0 ⎤
( )
G 3,5 = ⎢⎢0 1 0 0 1 ⎥⎥ ,
k n
⎛ n − k n ⎞ ⎡1 0 1 1 0 ⎤
H ⎜ 2 ,5 ⎟ = ⎢


⎠ ⎣0 1 1 0 1 ⎦
⎢⎣0 0 1 1 1 ⎥⎦

Teoria informaţiei şi coduri 27


Generarea cuvintelor de cod
⎧0 0 0 0 0
⎪1 0 0 1 0

{ }

C = aG a ∈ Q k ⎪0 1 0 0 1

⎪0 0 1 1 1
⎡1 0 0 1 0 ⎤ ⎪⎪

( )
G 3,5 = ⎢⎢0 1 0 0 1 ⎥⎥
k n



⎢⎣0 0 1 1 1 ⎥⎦ ⎪



⎪⎩

Teoria informaţiei şi coduri 28


Matricea generatoare standard
„ Matricea de tipul G= [Ik, P]
„ În urma operaţiei a×G se obţin cuvinte (vectori) de cod
care au primele k elemente simbolurile informaţionale,
iar următoarele (n-k) simboluri sunt cele redundante
„ Modul cum se stabilesc simbolurile redundante
reprezintă modul în care se realizează selecţia
cuvintelor de cod din spaţiul vectorial

Teoria informaţiei şi coduri 29


Matricea generatoare standard în aplicaţii

„ Matricea de tipul G= [Ik, P]


„ Ori de câte ori se rezolvă o problemă de
codare/decodare liniară, în mod obligatoriu trebuie
adusă matricea generatoare a codului sub forma
standard şi abia după această operaţie se rezolvă
problema
„ Pentru a obţine matricea generatoare sub formă
standard se efectuează combinaţii liniare între liniile
matricii astfel încât să fie evidenţiată în partea
stângă matricea unitate

Teoria informaţiei şi coduri 30


Tipuri de coduri
„ Coduri echivalente – două coduri liniare unde al doilea cod se
obţine printr-o permutare dată a simbolurilor din codului iniţial
‰ considerate la fel de bune din punct de vedere al capacităţii de
corecţie
„ Orice cod este echivalent cu codul pentru care matricea
generatoare este scrisă sub formă standard
„ Cod sistematic pe k poziţii – există un singur cuvânt de cod pentru
fiecare alegere a componentelor de pe cele k poziţii informaţionale
„ Coduri separabile – se pot separa simbolurile informaţionale de
cele redundante
‰ Prin decodificarea de canal se separă (elimină) simbolurile redundante
şi se obţin simbolurile informaţionale
‰ Nu toate codurile liniare sunt separabile
„ Coduri duale – codurile cu cuvinte de cod ortogonale

Teoria informaţiei şi coduri 31


Viteza de transfer a informaţiei
„ Rata de transfer (de procesare) – raportul dintre numărul
simbolurilor informaţionale şi lungimea codului
„ C=1-H(p) – capacitatea de transmisie a canalului binar
simetric

k
R = ≤ 1− H ( p)
n

Teoria informaţiei şi coduri 32


Capacitatea de corecţie a codului
„Numărul simbolurilor ce pot fi corectate din cadrul unui cuvânt
de cod
„Capacitatea de detecţie a codului poate fi mai mare ca t, dar
nu completă
„Când t=1 codul corectează o eroare singulară
„În faţa perturbaţiilor poziţiile sunt egale, poate fi eronat oricare
dintre simboluri (informaţionale sau redundante)
„Dacă d=4, corectează toate erorile singulare, dar are
capacitate de detecţie mai mare (cu o unitate). Poate corecta
erorile singulare şi o parte din cele duble, dar nu garantat pe
toate
⎡ d − 1⎤
t=⎢ ⎥
⎣ 2 ⎦
Teoria informaţiei şi coduri 33
Capacitatea de corecţie a codului

⎡ d − 1⎤
t=⎢
⎣ 2 ⎥⎦
d min ≥ f + 1 - detecţie
d min ≥ 2t + 1 - corecţie
d min ≥ t + 1 + f - detecţie+corecţie
t
capacitatea de corecţie=
n

Teoria informaţiei şi coduri 34


Matricea de control
„ Matricea caracteristică a codului C care pe lângă
matricea generatoarea G poate să conducă la
definirea în întregime a unui cod liniar
„ Având matricea H, prin identificare şi operaţii simple
de transpunere se obţine matricea G
„ H – liniile matricei H reprezintă coeficienţii şirului de
relaţii de control care la rândul lor pot să definească
un cod liniar

H = ⎡⎣ − P ; I n − k ⎤⎦
T

Teoria informaţiei şi coduri 35


Relaţiile de control
„ Un set de ecuaţii ca număr egal cu numărul
simbolurilor redundante
„ Exprimă sub formă algebrică care este legătura
valorică între simbolurile informaţionale şi cele de
control (redundante)

x = ( x1, x2 , x3 , x4 , x5 , x6 )

Teoria informaţiei şi coduri 36


Relaţiile de control
„ Procedeu de obţinere
‰ Linia din matricea H în forma standard reprezintă o ecuaţie
de control
‰ Linia este rezultată dintr-o sumă de control în care
coeficienţii componentelor vectorilor se identifică cu
elementele de pe linia corespunzătoare din H

H = ⎡⎣ − PT ; I n − k ⎤⎦ = ⎡⎣ PT ; I n − k ⎤⎦ = ⎡⎣ PT ; I r ⎤⎦
( ( n − k )×n )
n

∑h
j =1
i, j xj = 0

n = 5, hi ,2 x2 + hi ,1 x1 + hi ,3 x3 + hi ,4 x4 + hi ,5 x5 = 0
Teoria informaţiei şi coduri 37
Definirea codurilor corectoare
„ Relaţia analitică de codificare: a*G =v=x
„ Una din matricile caracteristice: G,H
„ Cu ajutorul relaţiilor de control
„ Enumerarea cuvintelor de cod, C

Teoria informaţiei şi coduri 38


Sindromul unui vector cuvânt de cod

„ Dacă vectorul sindrom obţinut este 0 – cuvântul


de cod nu are nici o eroare

G ⋅ H T
= 0
(
( k ×n ) n×( n − k ) ) ( k×(n−k ))
(∀) x ∈ C, x ⋅ H
(1× n ) ( n× ( n − k ) )
T
= 0
(1×( n − k ) )
sindromul cuvântului de cod x

Teoria informaţiei şi coduri 39


Sindromul unui cuvânt eronat

„ Dacă produsul dintre un vector y şi matricea de control


transpusă nu este 0, atunci y nu aparţine codului şi în
plus conţine erori faţă de cuvântul de cod din care
provine

G⋅ H T= 0
( k ×n ) ( n×( n − k ) ) ( k ×( n−k ))
y ⋅ H T = S y ≠ 0 sindromul cuvântului eronat recepţionat
Sy = 0 ⇒ x = y
Sy ≠ 0 ⇒ x ≠ y

Teoria informaţiei şi coduri 40


Decodificarea pe bază de sindrom

„ Dacă produsul dintre un vector y şi matricea de control


transpusă nu este 0, atunci y nu aparţine codului şi în plus
conţine erori faţă de cuvântul de cod din care provine
„ Etapa 1: Se calculează vectorul sindrom. Dacă vectorul
este nul, nu sunt erori şi se elimină simbolurile redundante
„ Etapa 2: Dacă se obţine un sindrom nenul se compară
valoarea acestui vector cu liniile din cadrul matricei HT
„ Etapa 3: Dacă se identifică potrivire între sindrom şi una din
liniile lui HT, numărul de ordine al liniei identificate
reprezintă numărul de ordine al componentei eronate

Teoria informaţiei şi coduri 41


Concluzii
„ Teoria informaţiei – limite teoretice
„ Teoria codurilor – limite practice
„ Codare de canal detectoare de erori
„ Codare de canal corectoare de erori
„ Adăugarea redundanţei
„ Controlul erorilor

Teoria informaţiei şi coduri 42

S-ar putea să vă placă și