Documente Academic
Documente Profesional
Documente Cultură
BER = 10−6
bloc = 1000biti
n ≤ 2 − 1⎫⎪
r
⎬ ⇒ r = 10
n = 10 ⎪⎭
3
v1 = x
n −1
v2 = a0 + ..... + an −1 x ∈ An
(
v1v2 = a0 x + ..... + an −1 x mod x − 1 n
) ( n
)
{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
p ( x) = x +1 4
p ( x ) = x4 + x + 1
⎡g 0 … g r … 0 0⎤
⎢0 ⎥
⎢ g0 … g r … 0⎥
G (k, n) =
⎢… … … … … …⎥
⎢ ⎥
⎢⎣ 0 0 g 0 … g r −1 g r ⎥⎦
⎡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
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
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
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
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
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 ) ⎪⎭
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 )
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
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 )
Scheme practice
CRC – Simbolurile redundante
( )( )
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
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
( )( )
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
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
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 ) ⎪⎭
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 )
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
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 )
x0 x1 x2 x3 x4 x5 x6 x7 x8
k ( x ) = x 8c ( x )
000000001110101 a ( x)
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
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
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 )
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)
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)
( )
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
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)
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
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
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
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
⎧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
⎪
⎩ ( 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
⎪
⎩ ( 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
⎧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
Aplicaţii
CRC – polinoame standard
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 ⎭