Sunteți pe pagina 1din 65

Teoria codurilor

Codurile redundante ciclice


Cuprins

„ Sistemul de transmitere a informaţiei


„ Codarea informaţiei
„ Controlul erorilor
„ Codarea de canal
„ Coduri redundante ciclice
„ Capacitatea de detecţie
„ Aplicaţii ale CRC

Teoria informaţiei şi coduri 2


Teoria codurilor

Coduri redundante ciclice


Codul redundant ciclic
„ CRC – Cyclic Redundancy Check (Code)
„ Mediu de transmisie puternic perturbat – coduri
corectoare de erori
„ Mediu de transmisie cablat/sigur – coduri detectoare
de erori
„ Biţi de paritate cu un număr mic
‰ Posibilităţi de corecţie reduse
‰ Detecţie cu cerere de retransmisie

Teoria informaţiei şi coduri 4


Coduri corectoare

BER = 10−6
bloc = 1000biti
n ≤ 2 − 1⎫⎪
r

⎬ ⇒ r = 10
n = 10 ⎪⎭
3

1Mb date ⇒ 1000 blocuri ⇒ 1000r = 10000 biţi control

Teoria informaţiei şi coduri 5


Codul detector de erori
BER = 10 −6
bloc = 1000biţi
1bit de control/bloc
La 1000 blocuri un extrabloc (1001 biţi) ⇒
⇒ o încărcare suplimentară de 2001 biţi pentru 1Mb date
la 1000 blocuri ⇒ mai rezultă un bloc de date ⎫
⎬ 2001=1000+1000+1
1 bit redundant ia locul unui bit de date în bloc ⎭
Dacă unui bloc i se adaugă un singur bit ⇒ p = 0,5 ca erorile în rafală
(mai mult de o eroare) să fie detectate

Teoria informaţiei şi coduri 6


Codul redundant ciclic
„ CRC – Cyclic Redundancy Check (Code)
„ Mediu de transmisie cablat/sigur – coduri
detectoare de erori
„ Biţi de paritate cu un număr mic
‰ Posibilităţi de corecţie reduse
‰ Detecţie cu cerere de retransmisie
‰ Numărul prea mic de biţi pot determina erori
nedectate
‰ Lungimea blocurilor se poate regla

Teoria informaţiei şi coduri 7


Codul redundant ciclic
„ Clasă importantă de coduri corectoare
„ Mulţimea polinoamelor mod (xn-1) formează o
algebră
„ Elementele algebrei sunt clase de resturi
reprezentate ca a(x) – polinomul de grad minim din
clasa respective
„ Daca a’(x) are grad > n => reprezentarea clasei de
resturi se obţine prin împărţirea lui a’(x) la (xn-1)
v0 = ( a0 , a1 ,… , an-1 ) , ai ∈ GF ( p ) , v0 ∈ Vn
a ( x ) = a0 + a1 + … + an −1 x n −1 , ai ∈ GF ( p )
Teoria informaţiei şi coduri 8
Codul redundant ciclic

v1 = x
n −1
v2 = a0 + ..... + an −1 x ∈ An
(
v1v2 = a0 x + ..... + an −1 x mod x − 1 n
) ( n
)

Teoria informaţiei şi coduri 9


Clase de resturi

{0} , {1} , { x} , {
…, 1 + x + x + x 2 3
}
1100 = 1 + x → 0110 = x + x 2

2 3
(
1011 = 1 + x + x → x 1 + x + x mod x − 1 = 2 3
) ( 4
)
= 1101 = 1 + x + x 3

Teoria informaţiei şi coduri 10


Clase de resturi

p ( x) = x +1 4

p ( x ) = x4 + x + 1

Teoria informaţiei şi coduri 11


Codul ciclic
„ Subspaţiu V al succesiunilor de lungime n
dacă pentru un vector din V se obţine un alt
vector din V prin deplasarea ciclică spre
dreapta
v0 = ( a0 , a1 ,… , an-1 ) , ai ∈ GF ( p ) , v0 ∈Vn
v1 = 10100, v2 = 01010
v3 = 00101, v4 = 10010
v5 = 01001, v6 = 10100 = v1

Teoria informaţiei şi coduri 12


Coduri redundante ciclice

Definirea codurilor redundante ciclice


Codul ciclic
Matricea generatoare

„ Definirea codului cu g(x), de grad r

⎡g 0 … g r … 0 0⎤
⎢0 ⎥
⎢ g0 … g r … 0⎥
G (k, n) =
⎢… … … … … …⎥
⎢ ⎥
⎢⎣ 0 0 g 0 … g r −1 g r ⎥⎦

Teoria informaţiei şi coduri 14


Codul ciclic
Matricea de control

„ Definirea codului cu h(x), de grad k

⎡0 … 0 hk−1 … h1 h0⎤
hk
⎢0 … ⎥
hk hk−1 hk−2 … h0 0 ⎥
H ( n −k, n) = ⎢
⎢… … … … … … … …⎥
⎢ ⎥
⎣hk hk−1 … h0 … 0 0 0 ⎦
xn −1
h( x) =
g ( x)
Teoria informaţiei şi coduri 15
Obţinerea codurilor redundante ciclice

„ Codul ciclic – ideal din algebra de polinoame


(xn-1)
„ Orice polinom de cod a(x) este multiplu al
polinomului generator de grad r
„ g(x) ce este divizor al lui (xn-1)
„ Polinomul de cod are grad ≥ r sau 0

Teoria informaţiei şi coduri 16


Obţinerea CRC

g ( x ) = g 0 + g1 x + … + g r −1 x r −1

a ( x) = g ( x) q ( x)
a ( x ) = a0 + a1 x + … + an −1 x n −1

Teoria informaţiei şi coduri 17


Coduri redundante ciclice

Determinarea codurilor redundante ciclice


Codul redundant ciclic
Determinarea codului

c = 3 = (11)2
k = 22 c = 12 = (1100 )2
g = 5 = (101)2
k 5
= = 2, rest = 2
g 2
k = 2 g + 2, k − 2 = 2 g
a = 2 g = 10 = (1010 )2

Teoria informaţiei şi coduri 19


Obţinerea CRC

g ( x ) = g 0 + g1 x + … + g r −1 x r −1

a ( x) = g ( x) q ( x)
a ( x ) = a0 + a1 x + … + an −1 x n −1

Teoria informaţiei şi coduri 20


Codul redundant ciclic

a ( x ) = xr m ( x ) + r ( x ) = g ( x ) q ( x )
m ( x ) = c ( x ) : {ck −1 , ck −2 ,… , c1 , c0 }
a ( x ) = a0 + a1 + … + an −1 x n −1 , ai ∈ GF ( p )
r = n−k
an −k , an −k +1 , ... , an − 2 , an −1 = cn − k , cn− k +1 , ... , cn − 2 , cn −1
a ( x ) = a0 + a1 x + … + ar −1 x r −1
+ cn −k x n −k
+ … + cn−1 x n −1

Teoria informaţiei şi coduri 21


Codul redundant ciclic
ck −1 , ck − 2 ,… , c1 , c0
a ( x ) = a0 + a1 + … + an −1 x n −1 , ai ∈ GF ( p )
{an−k , an−k +1 , ... , an−2 , an−1} = {cn−k , cn−k +1 , ... , cn−2 , cn−1} = {ck −1, ck −2 ,… , c1 , c0 }
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + cn − k x n − k + … + cn −1 x n −1
a ( x) g ( x), a ( x) = g ( x ) q ( x)
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + x r c ( x )
k ( x)

a ( x ) = a0 + a1 x + … + ar −1 x r −1 + k ( x )
a0 = a1 = … = ar −1 = 0
a ( x) a = k ( x ) = cn − k x n − k + … + cn −1 x n −1
0 = a1 =…= ar −1 =0

k ( x ) = g ( x ) q ( x ) + r ( x )⎫⎪
⎬ ⇒ k ( x ) − r ( x ) = a ( x ) = g ( x ) q ( x ) este polinom de cod
grad r ( x ) < grad g ( x ) ⎪⎭

Teoria informaţiei şi coduri 22


Codul redundant ciclic
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + cn − k x n − k + … + cn −1 x n −1
a ( x ) g ( x ) , a ( x) = g ( x ) q ( x )
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + x r c ( x )
k ( x)

a ( x ) = a0 + a1 x + … + ar −1 x r −1 + k ( x )
a0 = a1 = … = ar −1 = 0
a (x) a = k ( x ) = cn − k x n − k + … + cn −1 x n −1
0 = a1 =… = ar −1 =0

k ( x ) = g ( x ) q ( x ) + r ( x ) ⎫⎪
⎬ ⇒ k ( x ) + r ( x ) = a ( x ) = g ( x ) q ( x ) este polinom de cod în GF ( 2 )
grad r ( x ) < grad g ( x ) ⎪⎭
⎧ a0 = r0
⎪a = r
⎪ 1 1

⎪…
⎪⎩ ar −1 = an − k −1 = rr −1
a ( x ) =k ( x ) +r ( x ) este polinom de cod în GF ( 2 )

Teoria informaţiei şi coduri 23


Codul polinomial
mesajul ck −1 , ck − 2 ,… , c1 , c0
xr m ( x ) k ( x)
= = q ( x) , r ( x)
g ( x) g ( x)
xr m ( x ) k ( x) r (x)
= = q ( x) +
g ( x) g ( x) g ( x ) − r( x)
g( x)

k ( x) − r ( x) a ( x) xr m ( x ) − r ( x ) r (x) r (x)
= = = q (x) + − = q (x)
g (x) g ( x) g ( x) g ( x) g ( x)
a ( x)
= q ( x)
g ( x)
GF ( 2 ) , a ( x ) = k ( x ) − r ( x ) = k ( x ) + r ( x ) = g ( x ) q ( x ) , restul 0

Teoria informaţiei şi coduri 24


Codul polinomial GF(2)
mesajul m ( x )
2r m ( x ) r ( x)
= q ( x) +
g ( x) g ( x ) + r ( x)
g( x)

2r m ( x ) + r ( x ) r ( x) r ( x)
= q ( x) + + = q ( x)
g ( x) g ( x) g ( x)
=0

a ( x)
= q ( x ) , restul 0
g ( x)
a ( x ) = 2r m ( x ) + r ( x ) = g ( x ) q ( x )

Teoria informaţiei şi coduri 25


Coduri redundante ciclice

Scheme practice
CRC – Simbolurile redundante

„ Pe baza simbolurilor informaţionale


„ Scheme de înmulţire dacă simbolurile
informaţionale se află la începutul lui a(x)
„ Scheme de împărţire simbolurile
informaţionale se află la sfârşitul lui a(x) – vor
intra primele la procesare

Teoria informaţiei şi coduri 27


Codul redundant ciclic
Scheme de înmulţire

( )( )
g ( x ) = x 4 + x + 1 x 4 + x3 + x 2 + x + 1 = x8 + x7 + x 6 + x 4 + 1
c ( x ) = 1110101 = 1 + x + x 2 + x 4 + x 6
a ( x ) = 111001100011011 = x14 + x13 + x11 + x10 + x6 + x 5 + x 2 + x + 1
⎧ n = 15, k = 7, r = n − k = 8
cod(15, 7) ⎨
⎩ k + r = 7 + 8 = 15

Teoria informaţiei şi coduri 28


Codul redundant ciclic
Scheme de înmulţire

a ( x)

x8 x7 x6 x5 x4 x3 x2 x1 x0

c ( x)
1110101

( )( )
g ( x ) = x 4 + x + 1 x 4 + x 3 + x 2 + x + 1 = x8 + x 7 + x 6 + x 4 + 1

Teoria informaţiei şi coduri 29


Codul redundant ciclic
Scheme de înmulţire
„ Simbolurilor informaţionale, coeficienţii unui polinom
de grad maxim k-1, se introduc începând cu
coeficientul maxim în dispozitivul de înmulţire
„ După k+r deplasări se obţin coeficienţii unei
combinaţii de cod
„ Dezavantaj – coeficienţii lui c(x) nu-şi mai păstrează
poziţiile în a(x)
„ Acest inconvenient se elimină cu schema de
împărţire

Teoria informaţiei şi coduri 30


Codul redundant ciclic
Scheme de înmulţire

( )( )
g ( x ) = x 4 + x + 1 x 4 + x3 + x 2 + x + 1 = x8 + x7 + x 6 + x 4 + 1
c ( x ) = 1110101 = 1 + x + x 2 + x 4 + x 6
a ( x ) = 111001100011011 = x14 + x13 + x11 + x10 + x6 + x 5 + x 2 + x + 1
⎧ n = 15, k = 7, r = n − k = 8
cod(15, 7) ⎨
⎩ k + r = 7 + 8 = 15

Teoria informaţiei şi coduri 31


Codul redundant ciclic
Scheme de împărţire

„ Coeficienţii informaţionali m(x) = c(x)


„ Se determină coeficienţii necunoscuţi
„ Se consideră nuli aceşti coeficienţi şi se împarte prin
g(x)

Teoria informaţiei şi coduri 32


Codul redundant ciclic
Scheme de împărţire

ck −1 , ck − 2 ,… , c1 , c0
a ( x ) = a0 + a1 + … + an −1 x , ai ∈ GF ( p )
n −1

r = n−k
an − k , an − k +1 , ... , an − 2 , an −1 = cn −k , cn −k +1 , ... , cn− 2 , cn−1
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + cn − k x n − k + … + cn −1 x n −1

Teoria informaţiei şi coduri 33


Codul redundant ciclic
Scheme de împărţire
ck −1 , ck − 2 ,… , c1 , c0
a ( x ) = a0 + a1 + … + an −1 x n −1 , ai ∈ GF ( p )
{an−k , an−k +1 , ... , an−2 , an−1} = {cn−k , cn−k +1 , ... , cn−2 , cn−1} = {ck −1, ck −2 ,… , c1 , c0 }
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + cn − k x n − k + … + cn −1 x n −1
a ( x) g ( x), a ( x) = g ( x ) q ( x)
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + x r c ( x )
k ( x)

a ( x ) = a0 + a1 x + … + ar −1 x r −1 + k ( x )
a0 = a1 = … = ar −1 = 0
a ( x) a = k ( x ) = cn − k x n − k + … + cn −1 x n −1
0 = a1 =…= ar −1 =0

k ( x ) = g ( x ) q ( x ) + r ( x )⎫⎪
⎬ ⇒ k ( x ) − r ( x ) = a ( x ) = g ( x ) q ( x ) este polinom de cod
grad r ( x ) < grad g ( x ) ⎪⎭

Teoria informaţiei şi coduri 34


Codul redundant ciclic
Scheme de împărţire
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + cn −k x n −k + … + cn−1 x n −1
a ( x) g ( x), a ( x) = g ( x) q ( x)
a ( x ) = a0 + a1 x + … + ar −1 x r −1 + x r c ( x )
k (x)

a ( x ) = a0 + a1 x + … + ar −1 x r −1 + k ( x )
a0 = a1 = … = ar −1 = 0
a ( x) a = k ( x ) = cn −k x n− k + … + cn−1 x n −1
0 = a1 =…= a r −1 = 0

k ( x ) = g ( x ) q ( x ) + r ( x ) ⎫⎪
⎬ ⇒ k ( x ) + r ( x ) = a ( x ) = g ( x ) q ( x ) este polinom de cod în GF ( 2 )
grad r ( x ) < grad g ( x ) ⎪⎭
⎧ a0 = r0

⎪ a1 = r1

⎪…
⎪⎩ ar −1 = an−k −1 = rr −1
a ( x ) =k ( x ) +r ( x ) este polinom de cod în GF ( 2 )

Teoria informaţiei şi coduri 35


Codul polinomial
mesajul ck −1 , ck − 2 ,… , c1 , c0
xr m ( x ) k ( x)
= = q ( x) , r ( x)
g ( x) g ( x)
xr m ( x ) k ( x) r (x)
= = q ( x) +
g ( x) g ( x) g ( x ) − r( x)
g( x)

k ( x) − r ( x) a ( x) xr m ( x ) − r ( x ) r (x) r (x)
= = = q (x) + − = q (x)
g (x) g ( x) g ( x) g ( x) g ( x)
a ( x)
= q ( x)
g ( x)
GF ( 2 ) , a ( x ) = k ( x ) − r ( x ) = k ( x ) + r ( x ) = g ( x ) q ( x ) , restul 0

Teoria informaţiei şi coduri 36


Codul polinomial GF(2)
mesajul m ( x )
2r m ( x ) r ( x)
= q ( x) +
g ( x) g ( x ) + r ( x)
g( x)

2r m ( x ) + r ( x ) r ( x) r ( x)
= q ( x) + + = q ( x)
g ( x) g ( x) g ( x)
=0

a ( x)
= q ( x ) , restul 0
g ( x)
a ( x ) = 2r m ( x ) + r ( x ) = g ( x ) q ( x )

Teoria informaţiei şi coduri 37


Scheme de împărţire
( )( )
g ( x ) = x 4 + x + 1 x 4 + x 3 + x 2 + x + 1 = x8 + x 7 + x 6 + x 4 + 1
c ( x ) = 1110101 = 1 + x + x 2 + x 4 + x 6
⎧n = 15, k = 7, r = n − k = 8
cod(15, 7) ⎨
⎩ k + r = 7 + 8 = 15
k ( x ) = x8 + x9 + x10 + x12 + x14
r ( x ) = x + x 2 + x 4 + x 7 =>a ( x ) = k ( x ) + r ( x )
a ( x ) = x + x 2 + x 4 + x 7 + x8 + x 9 + x10 + x12 + x14
a ( x ) = ( 0 1 1 0 1 0 0 1) (1 1 1 0 1 0 1)
a ( x) = 0 1 1 0 1 0 0 1 1 1 1 0 1 0 1
Teoria informaţiei şi coduri 38
Codul redundant ciclic
Scheme de împărţire

x0 x1 x2 x3 x4 x5 x6 x7 x8

k ( x ) = x 8c ( x )
000000001110101 a ( x)

Teoria informaţiei şi coduri 39


Coduri redundante ciclice

Capacitatea de detecţie
Codul polinomial
„ Cu redundanţă ciclică
„ Pe lângă mesaj se transmite şi eroarea
„ Nu vor fi detectate erorile care îl au pe g(x)
ca factor

Teoria informaţiei şi coduri 41


Codul polinomial
mesajul ck −1 , ck − 2 ,… , c1 , c0
xr m ( x ) k ( x)
= = q ( x) , r ( x)
g ( x) g ( x)
xr m ( x ) k ( x) r (x)
= = q ( x) +
g ( x) g ( x) g ( x ) − r( x)
g( x)

k ( x) − r ( x) a ( x) xr m ( x ) − r ( x ) r (x) r (x)
= = = q (x) + − = q (x)
g (x) g ( x) g ( x) g ( x) g ( x)
a ( x)
= q ( x)
g ( x)
GF ( 2 ) , a ( x ) = k ( x ) − r ( x ) = k ( x ) + r ( x ) = g ( x ) q ( x ) , restul 0

Teoria informaţiei şi coduri 42


Codul polinomial
mesajul m ( x )
2r m ( x ) r ( x)
= q ( x) +
g ( x) g ( x ) + r ( x)
g( x)

2r m ( x ) + r ( x ) r ( x) r ( x)
= q ( x) + + = q ( x)
g ( x) g ( x) g ( x)
=0

a ( x)
= q ( x ) , restul 0
g ( x)
a ( x ) = 2r m ( x ) + r ( x ) = g ( x ) q ( x )

Teoria informaţiei şi coduri 43


CRC – erori nedectate

a ( x ) = 2r m ( x ) + r ( x )
a ( x) + e ( x) : g ( x)
a ( x) + e( x) a ( x) e ( x)
= + , restul = 0 pentru g ( x ) e ( x )
g ( x) g ( x) g ( x)

Teoria informaţiei şi coduri 44


CRC – erori detectate
Erori singulare

„ Toate erorile pe un singur bit sunt detectate dacă


g(x) are doi sau mai mulţi termeni

a ( x) + e ( x) a ( x) e( x)
= + , restul = 0 pentru g ( x ) e ( x )
g ( x) g ( x) g ( x)
e ( x ) = xi
g ( x) |e ( x)

Teoria informaţiei şi coduri 45


CRC – erori detectate
Două erori de un bit izolate
„ Două erori de un singur bit izolate sunt detectate
dacă g(x) este ales corespunzător
a ( x) + e ( x) a ( x) e ( x)
= + , restul = 0 pentru g ( x ) e ( x )
g ( x) g ( x) g ( x)
e ( x ) = xi + x j , i > j
(
e ( x ) = x j xi − j + 1 )
x | g ( x)

( )
g ( x ) | x k + 1 , ∀k < max ( i − j ) lungimea maximă a cadrului
g ( x) = ( x + x
15 14
) ( )
+ 1 | x k + 1 , pentru k < 32762

Teoria informaţiei şi coduri 46


CRC – erori detectate
Număr impar de biţi eronaţi
„ În sistem binar dacă g(x) are factor pe (x+1) nu
există nici un polinom cu număr impar de termeni
care să îl aibă pe (x+1) factor – va detecta numărul
impar de erori

a ( x) + e ( x) a ( x) e( x)
= + , restul = 0 pentru g ( x ) e ( x )
g ( x) g ( x) g ( x)
e ( x ) cu număr impar de termeni, e ( x ) ( x + 1)
Pp. e ( x ) = ( x + 1) q ( x ) x =1 ⇒ e (1) = (1 + 1) q (1) = 0 ( Fals, e (1) = 1)

Teoria informaţiei şi coduri 47


CRC – erori detectate
Eroare în rafală
„ Un cod polinomial cu r biţi de control va detecta
erorile în rafală cu lungime ≤ r

a ( x) + e( x) a ( x) e ( x)
= + , restul = 0 pentru g ( x ) e ( x )
g ( x) g ( x) g ( x)
( )
l ≤ r , e ( x ) = xi xl −1 + … + 1 , i determină capătul din dreapta al rafalei
Dacă g ( x ) conţine pe x0 ⇒ xi nu este factor

Dacă ( l − 1) <r ⇒ restul pentru


( x l −1
+… +1 ) nu poate fi 0
g ( x)

Teoria informaţiei şi coduri 48


CRC – erori detectate
Eroare în rafală de lungime = r+1
„ Pentru erori în rafală de lungime = r+1 pot trece şi
erori nedetectate
a ( x) + e ( x) a ( x) e ( x)
= + , restul = 0 pentru g ( x ) e ( x )
g ( x) g (x) g (x)
l = r + 1, e ( x ) = xi e1 ( x ) , e1 ( x ) polinom de grad r
e1 ( x ) = e10 + e12 x + … + e1r x r , e10 ≠ 0, e1r ≠ 0, e1 ( x ) = g ( x ) q ( x )
q ( x) = 1 ⎫

e1 ( x ) polinom de grad r ⎬ ⇒ e1 ( x ) = g ( x ) - o singură combinaţie a coeficienţilor

e1 ( x ) = g ( x ) q ( x ) ⎭
⎧ e1 ( x ) = e10 + e12 x + … + e1r x r

Numărul total de pachete posibile este 2l − 2 = 2 r −1 ⎨ e10 ≠ 0, e1r ≠ 0, e10 = 1, e1r = 1

⎩l = r + 1 ⇒ ( l − 2 ) coeficienţi ce pot varia
Numărul pachete eronate nedectate 1
p= = r −1
Numărul total de combinaţii 2

Teoria informaţiei şi coduri 49


CRC – erori detectate
Eroare în rafală

l = r + 1, e ( x ) = xi e1 ( x ) , e1 ( x ) polinom de grad r
e1 ( x ) = e10 + e12 x + … + e1r xr , e10 ≠ 0, e1r ≠ 0, e1 ( x ) = g ( x ) q ( x )
q ( x) = 1 ⎫

e1 ( x ) polinom de grad r ⎬ ⇒ e1 ( x ) = g ( x ) - o singură combinaţie a coeficienţilor

e1 ( x ) = g ( x ) q ( x ) ⎭
⎧ e1 ( x ) = e10 + e12 x + … + e1r xr
l −2 r −1

Numărul total de pachete posibile este 2 = 2 ⎨ e10 ≠ 0, e1r ≠ 0, e10 = 1, e1r = 1

⎩l = r + 1 ⇒ ( l − 2 ) coeficienţi ce pot varia
Numărul pachete eronate nedectate 1
p= = r −1
Numărul total de combinaţii 2

Teoria informaţiei şi coduri 50


CRC – erori detectate/nedectate
Eroare în rafală de lungime = r+1
g ( x ) = x3 + x 2 + 1 = 1101
Numărul pachete eronate nedectate 1 1 1 1
p= = r −1 = 3−1 = 2 =
Numărul total de combinaţii 2 2 2 4

Număr
e3 e2 e1 e0
combinaţie

1 1 0 0 1

2 1 0 1 1

3 1 1 0 1

4 1 1 1 1

Teoria informaţiei şi coduri 51


CRC – erori detectate
Eroare în rafală de lungime > r+1

„ Pentru erori în rafală de lungime > r+1 pot trece şi


erori nedetectate

a ( x) + e ( x) a ( x ) e ( x)
= + , restul = 0 pentru g ( x ) e ( x )
g ( x) g ( x) g ( x)
l > r + 1, e ( x ) = xi e1 ( x ) , e1 ( x ) polinom de grad ( l − 1) > r
e1 ( x ) = e10 + e12 x + … + e1(l−1) xl −1 , e10 ≠ 0, e1(l −1) ≠ 0, e1 ( x ) = g ( x ) q ( x )
Numărul pachete eronate nedectate 1
p= = r
Numărul total de combinaţii 2

Teoria informaţiei şi coduri 52


CRC – erori detectate
Eroare în rafală de lungime > r+1
l > r + 1, e ( x ) = x i e1 ( x ) , e1 ( x ) polinom de grad ( l − 1) > r
e1 ( x ) = e10 + e12 x + … + e1(l−1) x l −1 , e10 ≠ 0, e1(l −1) ≠ 0, e1 ( x ) = g ( x ) q ( x )
e1 ( x )
, gradul lui q ( x ) = ( l − 1) − r =l − r − 1, q0 ≠ 0, qmax = ql −r −1 ≠ 0
g ( x)
e1 ( x ) g ( x ) pentru q ( x ) distincţi
2( combinaţii q ( x ) valide
l −r )− 2

⎧e ( x ) = x i e1 ( x ) ⇒ q0 = 1
(l −r )− 2 ⎪
2 combinaţii nedetectate posibile ⎨gradul lui q ( x ) =l − r − 1 ⇒ ql −r −1 = 1

⎩ ( l − r − 2 ) coeficienţi ce pot varia

Teoria informaţiei şi coduri 53


CRC – erori detectate
Eroare în rafală de lungime > r+1

l > r + 1, e ( x ) = xi e1 ( x ) , e1 ( x ) polinom de grad ( l − 1) > r


e1 ( x ) = e10 + e12 x + … + e1(l−1) xl −1 , e10 ≠ 0, e1(l −1) ≠ 0
Numărul total de erori în rafală posibile este 2l −2
e1 ( x ) = e10 + e12 x + … + e1(l −1) xl −1 ⎫

e10 ≠ 0, e1(l−1) ≠ 0 e10 = 1, e1(l−1) = 1 ⎪
⎪ l −2
⎬ ⇒ 2
e1 ( x ) = 1 + e12 x + … + e1(l −2) x l −2 + xl −1 ⎪

lungimea rafalei l ⇒ ( l − 2 ) coeficienţi ce pot varia ⎪

Teoria informaţiei şi coduri 54


CRC – erori detectate
Eroare în rafală de lungime > r+1
a (x) + e( x) a( x) e ( x)
= + , restul = 0 pentru g ( x ) e ( x )
g ( x) g (x) g ( x)
l > r + 1, e ( x ) = xi e1 ( x ) , e1 ( x ) polinom de grad ( l − 1) > r
e1 ( x ) = e10 + e12 x + … + e1( l−1) xl −1 , e10 ≠ 0, e1( l−1) ≠ 0, e1 ( x ) = g ( x ) q ( x )
e1 ( x )
, gradul lui q ( x ) = ( l − 1) − r =l − r − 1, q0 ≠ 0, qmax = ql − r −1 ≠ 0
g (x)
⎧e ( x ) = xi e1 ( x ) ⇒ q0 = 1

e1 ( x ) g ( x ) pentru q ( x ) distincţi, 2( ) combinaţii nedetectate posibile ⎨gradul lui q ( x ) =l − r − 1 ⇒ ql − r −1 ≠ 0
l −r −2


⎩ ( l − r − 2 ) coeficienţi ce pot varia
⎧ e1 ( x ) = e10 + e12 x + … + e1(l −1) x l −1
⎪⎪
Numărul total de pachete posibile este 2l − 2 ⎨ e10 ≠ 0, e1( l−1) ≠ 0 e10 = 1, e1( l−1) = 1

⎪⎩ lungimea rafalei l ⇒ ( l − 2 ) coeficienţi ce pot varia
Numărul pachete eronate nedectate 2( ) 2( )
l −r −2 l −2 −r
2 − r 2l −2 1
p= = l−2 = l−2 = =
Numărul total de combinaţii 2 2 2l− 2 2r

Teoria informaţiei şi coduri 55


CRC – erori nedetectate
Eroare în rafală de lungime > r+1

l > r + 1, e ( x ) = xi e1 ( x ) , e1 ( x ) polinom de grad ( l − 1) > r


e1 ( x ) = e10 + e12 x + … + e1( l−1) xl −1 , e10 ≠ 0, e1( l−1) ≠ 0, e1 ( x ) = g ( x ) q ( x )
e1 ( x )
, gradul lui q ( x ) = ( l − 1) − r =l − r − 1, q0 ≠ 0, qmax = ql − r −1 ≠ 0
g (x)
⎧e ( x ) = xi e1 ( x ) ⇒ q0 = 1

e1 ( x ) g ( x ) pentru q ( x ) distincţi, 2( ) combinaţii nedetectate posibile ⎨gradul lui q ( x ) =l − r − 1 ⇒ ql − r −1 ≠ 0
l −r −2


⎩ ( l − r − 2 ) coeficienţi ce pot varia
⎧ e1 ( x ) = e10 + e12 x + … + e1(l −1) x l −1
⎪⎪
Numărul total de pachete posibile este 2l − 2 ⎨ e10 ≠ 0, e1( l−1) ≠ 0 e10 = 1, e1( l −1) = 1

⎪⎩ lungimea rafalei l ⇒ ( l − 2 ) coeficienţi ce pot varia
Numărul pachete eronate nedectate 2( l −r ) −2 2( l −2 ) −r 2 − r 2l −2 1
p= = l−2 = l−2 = = r
Numărul total de combinaţii 2 2 2l− 2 2

Teoria informaţiei şi coduri 56


CRC – erori nedetectate
Eroare în rafală de lungime > r+1

⎧e ( x ) = x i e1 ( x ) ⇒ q0 = 1

Combinaţii nedetectate posibile2( l −r ) −2 ⎨gradul lui q ( x ) =l − r − 1 ⇒ ql − r −1 ≠ 0

⎩ ( l − r − 2 ) coeficienţi ce pot varia
⎧ e1 ( x ) = e10 + e12 x + … + e1(l−1) xl −1

l −2 ⎪
Numărul total de pachete posibile este 2 ⎨ e10 ≠ 0, e1(l−1) ≠ 0 e10 = 1, e1(l−1) = 1

⎪⎩lungimea rafalei l ⇒ ( l − 2 ) coeficienţi ce pot varia
Numărul pachete eronate nedectate 2(l −r )−2 2( l − 2)− r 2 −r 2l −2 1
p= = l −2 = l − 2 = =
Numărul total de combinaţii 2 2 2l −2 2r

Teoria informaţiei şi coduri 57


CRC – erori nedetectate
Eroare în rafală

„ Dacă lungimea rafalei este r+1 atunci


‰ Erorile identice cu polinomul generator nu sunt detectate
‰ Dacă toate combinaţiile sunt egal posibile atunci
probabilitatea ca un cadru incorect să fie acceptat ca valid
este p=1/2(r-1)
„ Probabilitatea ca o rafală cu lungimea rafalei > r+1
sau mai multe rafale mai scurte să treacă nedectate
este de p=1/2r

Teoria informaţiei şi coduri 58


Coduri redundante ciclice

Aplicaţii
CRC – polinoame standard

„ Polinoame standardizate pentru


telecomunicaţii
CRC -16 = x16 + x15 + x 2 + 1
CRC - CCITT = x16 + x12 + x 5 + 1
CRC - 32 = x32 + x 26 + x 23 + x16 + x12 + x11 + x10 + x8 + x 7 + x 5 + x 4 + x 2 + x + 1

Teoria informaţiei şi coduri 60


Aplicaţii ale CRC
„ Cyclic Redundancy Check (Code)
„ Detectarea cadrelor eronate – FCS (Frame
Check Sequence)
„ Păstrarea datelor stocate CD, DVD
„ Verificarea arhivelor
„ Verificarea fişierelor de configurare
„ ISBN – International Standard Book Number
„ ISSN – International Standard Serial Number
„ Unicitatea CNP

Teoria informaţiei şi coduri 61


Codul Hamming
+ + ≤
k r 1 2 r
⇒ k r 2 1 n 2 −1
+ ≤ r
− ⇒ ≤ r

n ≤ 2 r − 1⎫
⎬ ⇒ n = 7 ⇒ H ( 7, 4 )
r =3 ⎭
n ≤ 2 r − 1⎫
⎬ ⇒ n = 15 ⇒ H (15,11)
r=4 ⎭
n ≤ 2 − 1⎫
r

⎬ ⇒ n = 31 ⇒ H ( 31, 26 )
r =5 ⎭

Teoria informaţiei şi coduri 62


Controlul erorilor
„ Coduri detectoare/corectoare de erori
„ Încărcarea suplimentară cu redundanţă
BER = 10−6
bloc = 1000biti
Detecţie şi Corecţie
n ≤ 2r − 1⎫⎪
⎬ ⇒ r = 10
=
n 10 ⎪⎭3

1Mb date ⇒ 1000 blocuri ⇒ 1000r = 10000 biţi control


Detecţie şi retransmisie
1bit de control/bloc de date
La 1000 blocuri un extrabloc ⇒ o încărcare suplimentară de 2001 biţi pentru 1Mb date
Dacă unui bloc i se adaugă un singur bit ⇒ p = 0,5 ca erorile în rafală să fie detectate

Teoria informaţiei şi coduri 63


HDLC – formatul cadrului

Teoria informaţiei şi coduri 64


Concluzii
„ Codare de canal corectoare de erori
„ Adăugarea redundanţei
„ Forme matriciale/polinomiale
„ Controlul erorilor
„ Control de paritate
„ Detectare erori simple
„ Detectare de erori în rafală
„ Aplicaţii practice numeroase ale CRC

Teoria informaţiei şi coduri 65

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