2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
1
Comunicaciones II
Conferencia 21: Detección de Códigos de Redundancia Cíclicos. Probabilidad de Error con codificación de Canal.
UNIDAD VII: CODIFICACIÓN DE CANAL
Instructor: Israel M. Zamora, MS Telecommunications ManagementProfesor Titular, Departamento de Sistemas Digitales y Telecomunicaciones.
Universidad Nacional de Ingeniería
Universidad Nacional de Ingeniería
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
2
Outline
• Códigos Cíclicos: Detección en el RX– Ejemplo
• Códigos Cíclicos: Corrección en el RX• Códigos Cíclicos más usados• Probabilidad de error en detección• Relaciones de Energía en el sistema
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
3
Códigos Cíclicos: Detección en el RX
• Vector de palabra de código recibido es el polinomio R(x) expresado como:
0 ó 1r donde)r,r,...,r,(rsi
xrxr ...xr r(x)
i1-n2-n10
1n1n
2n2n10
==++++= −
−−
−
r
R
)()()( xxx ECR +=Palabra de código recibida
Patrón de Error
• El vector de palabra de código recibido con presencia de error puede ser interpretado como:
Con el síndrome y el arreglo estándar, el error se puede estimar.
En códigos cíclicos, el tamaño del arreglo estándar se reduce considerablemente.
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
4
Códigos Cíclicos: Detección en el RX
síndromeal ientecorrespond
polinomioes(x) donde(x)(x)
(x)(x)(x)
SGS
QGR +=
• Se determina el síndrome de la palabra de código recibida a través de la división algebraica según la relación de abajo:
• El síndrome es un polinomio de orden (n-k-1) o menor.
• Observe que el síndrome corresponde al polinomio residuo del cociente entre R(x) y G(X).
(n,k) (x) (x) Si
(n,k) (x) (x)Si
CRS
CRS
∉⇒≠∈⇒=
0
0
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
5
Códigos Cíclicos: Detección
Flip FlopFF
Σ Sumadores
Calculador del síndrome para código cíclico (n,k)
BitsRecibidos
g1 g2 gn-k-1
Σ FF FF FF FF FFΣΣΣ
. . .
. . .
Compuerta
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
6
Ejemplo de Detección (1/2)
• Suponga que el receptor de un sistema de telecomunicaciones recibe la palabra de código 011101010001101. Ambos el transmisor y el receptor utilizan un polinomio generador G(x)=1+x2+x4+x5. Determine si el mensaje desde el transmisor fue recibido limpio si se usa un CRC (15,10). Si es así cuál es el mensaje?
• Tenemos R(x)=0+x+x2+x3+0x4+x5+0x6+x7+0x8+0x9+0x10+x11+x12+0x13+x14 si no hay error entonces S(x)=0 (después de dividir R(x) entre G(x)) y el mensaje serían los primeros k bits, donde n=15 y k=10 entonces, es decir M=1010001101.
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
7
Ejemplo de Detección (2/2)
x9+ x8+0x7+ x6+0x5+ x4+0x3+ x2+ x x5+x4+0x3+x2+0x+1 x14+0x13+ x12+0x11+0x10+0x9+ x8+ x7+0x6+x5+0x4+ x3+ x2+ x+ 0 x14+ x13+0x12+ x11+0x10+ x9 x13+ x12+ x11+0x10+ x9+ x8 x13+ x12+0x11+ x10+0x9+ x8 0x12+ x11+ x10+ x9+ 0x8+ x7 0x12+0x11+0x10+0x9+0x8+0x7 x11+ x10+ x9+ 0x8+ x7+ 0x6 x11+ x10+0x9+ x8+0x7+ x6 0x10+ x9+ x8+ x7+ x6+ x5 0x10+0x9+0x8+0x7+0x6+ 0x5 x9+ x8+ x7+ x6+ x5+ 0x4 x9+ x8+0x7+ x6+ 0x5+ x4 0x8+ x7+0x6+ x5+ x4+ x3 0x8+0x7+0x6+ 0x5+ 0x4+ 0x3 x7+ 0x6+ x5+ x4+ x3+ x2 x7+ x6+ 0x5+ x4+ 0x3+ x2 x6+ x5+ 0x4+ x3+0x2+ x x6+ x5+ 0x4+ x3+ 0x2+ x El residuo es cero! 0x5+ 0x4+0x3+0x2+0x+ 0
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
8
Códigos Cíclicos: Corrección en el RX
• La corrección se obtiene de adicionar en modulo 2 el polinomio de error que se corresponda de acuerdo al mapeo de síndromes y errores. El procedimiento es muy similar al estudiado con los códigos lineales de bloque.
(x)(x)(x)ˆ ERC +=
[ ] (x)(x)(x)(x)(x) SGMQE ++=
• El mapeo de síndromes y patrones de error resulta de aplicar la relación de abajo:
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
9
• La fila , de la matriz generadora se forma por los coeficientes de los desplazamientos cíclicos del polinomio generador.
• La ortogonalidad de G y H en forma polinomial se expresa como
• Esto significa que también que es un factor de .
Códigos Cíclicos: Corrección en el RX
=
=
−
r
r
r
r
k
ggg
ggg
ggg
ggg
xx
xx
x
10
10
10
10
1 )(
)(
)(
0
0
G
G
G
G
1)()( += nXXX HG
1+nX)(XH
kii ,...,1 , ="1" −i
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
10
• Encuentre las matrices generadoras y de verificación de paridad, G y H, respectivamente para el código cíclico sistemático (7,4) con polinomio generador dado por:
Ejemplo: Matriz Generadora y de Verificación de Paridad
=
=⇒⋅+⋅+⋅+=
1011000
0101100
0010110
0001011
)1101(),,,(1011)( 321032
G
G ggggXXXX
No está en forma sistemática.Hacemos lo siguiente:
fila(4)fila(4)fila(2)fila(1)
fila(3)fila(3)fila(1)
→++→+
=
1000101
0100111
0010110
0001011
G
=
1110100
0111010
1101001
H
44×I33×I TP
P
31)( XXX ++=G
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
11
Códigos Cíclicos más usados
CRC : Cyclic Redundancy Check
Existen polinomios estándares usados por protocolos para generar CRC.
CRC-12
x12+x11+x3+1
CRC-16
x16+x15+x2+1
x16+x12+x5+1
CRC-ITU-T
CRC-32x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x2+x+1
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
12
Probabilidad de error en detección
• Considere un sistema:– Capacidad de detectar y corregir t bits.– Probabilidad que un bit que se transmite arribe en error es P.
• Prob. de j bits en error en una palabra de código de n bits:
• Probabilidad media que una palabra de código sea incorrectamente decodificada está acotada superiormente por:
j)!j!(nn!
j
np)(p
j
nP(j,n) jnj
−=
−
= −1
∑ ∑=
−
+=
− −
=−
−≤
t
i
inin
ti
inie,cw p)(p
i
np)(p
i
nP
0 1
111
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
13
Probabilidad de error en detección
• Si asumimos que la probabilidad de error de canal es p y que la probabilidad de una eliminación (erasure) es s, entonces, la probabilidad de error de detección de una palabra de código puede expresarse como:
∑ ∑= −=
−−−
≤
n
i
n-i
idj
i-jnjie,cw s)p(sp
j
n-i
i
nP
0 2
1
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
14
Probabilidad de error de bits en detección• El parámetro de medición de desempeño natural para un sistema con
corrección de errores es la probabilidad de error de bit en la palabra de código, Peb,cw, después del decodificador.
• El cálculo exacta de esta probabilidad es realmente complicado, aún para códigos cortos. No obstante, el principio para su determinación es realmente sencillo.
• La clave es ver hacia el arreglo estándar. Nos basamos en la restricción a códigos lineales (incluyendo cíclicos), y en la suposición que la palabra de código cero es transmitida. En principio, debido a los errores en el canal, cada palabra del arreglo estándar puede ser recibido.
• Sea e el vector de error recibido y sea fe el número de bits de información que son decodificados erróneamente para ese vector de error particular. La probabilidad de error de bit puede, entonces, obtenerse, para todos los patrones de errores, determinando la probabilidad de ocurrencia de vector de error particular Pr[e] y multiplicando el resultado con el número de bits de información erróneo obtenido en la decodificación de un vector de error específico, es decir:
[ ]ee
e Pr1 ∑= fk
Peb,cw
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
15
Fronteras en la probabilidad de error de bit
• Para códigos de bloque, la probabilidad de error de bit siempre es menor que o igual que la probabilidad de error de palabra de código. Tenemos igualdad cuando todos los bits de información están en error siempre que hay un evento de error. Por otra parte, cuando la decodificación falla, debe haber al menos un error y la fracción de bits erróneos es, por tanto, al menos 1/k. De allí, tenemos que las fronteras superior e inferior de la probabilidad de error de bit son:
cwecwebcwe PPPk ,,,
1 ≤≤
• Una aproximación muy útil para la probabilidad de error de bit puede ser derivada del hecho que, dada una falla de decodificación, el resultado mas probable es una palabra código adyacente de distancia d, es decir, conteniendo un total de d errores. La fracción de bits erróneos será pues, mas probable que sea d/n. De allí tenemos la aproximación siguiente:
cwecweb Pn
dP ,, ≈
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
16
Fronteras en la probabilidad de error de bit
• Podemos obtener una un tanto mejor aproximación de la probabilidad de error de bit haciendo una asunción pesimista, para un patrón de error no correlacionado con i errores (i > t), la palabra código mal decodificada diferirá en i+t posiciones de la palabra código transmitida. De allí, la fracción (i+t)/n de los k bits de información estará en error. La probabilidad de error de bit puede ser, entonces, acotada superiormente por:
∑∑=
−
+=
− −
+−=−
+≤t
i
inin
ti
inieb,cw p)(p
i
n
n
tip)(p
i
n
n
tiP
01
111
inin
ticweb pp
i
ni
nP −
+=
−
≈ ∑ )1(
1
1,
O bien, por la aproximación:
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
17
Relaciones de Energía en el sistema (1/2)
• Condición de codificación para control de error:– Energía total del pkt no codificado=Energía total pkt codificado.
bcsc
bcbsc
ssc
bbs
bErE
E)M(logrE)M(lognk
E
Enk
E
Mlog bbEE)M(logE
=
==
=
===
22
22
bcbc Enk
E ó kEnE ==
• Relación de energía para un sistema M-ario con codificación de canal
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
18
Relaciones de Energía en el sistema (2/2)
– La razón señal a ruido para un sistema binario codificado y uno sin codificación se relacionan así:
o
bc
o
c
o
b
o
c
NE
*rNE
NE
*nk
NE =⇒=
O
bc
O
bc
o
sc
N
Enr
N
EMr
N
E == )(log2
– Cuando hay codificación de línea o modulación M-aria se tiene:
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
19
Código de Hamming
•Los códigos Hamming son una familia particular de códigos lineales de bloque en los cuales se cumplen las condiciones siguientes:
12 −= mn-Número de bits de la palabra de código:
12 −−= mk m-Número de bits del mensaje:
Dado un número entero m ≥ 2 se tiene que:
3=Hmínd-Distancia mínima de Hamming:
- Probabilidad de bit en error:ini
n
icweb pp
i
ni
nP −
=
−
≈ ∑ )1(
1
2,
1)1( −−−≈ nppp
1=t1=v
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
20
Código Golay
•Los códigos Golay se define como (23,12,7) son una familia particular de códigos lineales de bloque en los cuales se cumplen las condiciones siguientes:
12 −= mn-Número de bits de la palabra de código:
12 −−= mk m-Número de bits del mensaje:
Dado un número entero m ≥ 2 se tiene que:
7=Hmínd-Distancia mínima de Hamming:
- Probabilidad de bit en error:ii
icweb pp
iiP −
=
−
≈ ∑ 23
23
4, )1(
23
23
1
3=t7=v
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
21
Código Golay Extendido
•Es la versión del código de Golay extendido al agregar un bit extra de paridad para producir (24,12,8). Son también miembros de la familia de códigos lineales de bloque en los cuales se cumplen las condiciones siguientes:
12 −= mn-Número de bits de la palabra de código:
12 −−= mk m-Número de bits del mensaje:
Dado un número entero m ≥ 2 se tiene que:
8=Hmínd-Distancia mínima de Hamming:
- Probabilidad de bit en error:
3=t7=v
ii
icweb pp
iiP −
=
−
≈ ∑ 24
24
4, )1(
24
241
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
22
Código BCH (Bose-Chadhuri-Hocquenghem)
•Uno de los mas importantes clases de códigos de cíclicos. Para los códigos BCH existen una muchas posibilidades para variar los parámetros del código. Para todos los enteros m ≥ 2, se cumplen las condiciones siguientes:
12 −= mn-Número de bits de la palabra de código:
mtnk −≥-Número de bits del mensaje:
12 +≥ td Hmín-Distancia mínima de Hamming:
- Probabilidad de bit en error:ini
n
ticweb pp
i
ni
nP −
+=
−
≈ ∑ )1(
1
1,
tkn 2≥−-Número de bits de verificación
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
23
Código BCH (Bose-Chadhuri-Hocquenghem)
•Son un tipo de código cíclico.
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
24
Código BCH (Bose-Chadhuri-Hocquenghem)
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
25
Código Reed-Solomon
•Sin un subgrupo importante de los códigos BCH. Este código Reed-Solomon (RS) trabaja con símbolos (múltiples bits) en lugar de bits individuales. El codificador (n,k) RS trabaja con k símbolos de información de m bits, los cuales son codificados a palabras de códigos de n símbolos. Un código RS con símbolos en un alfabeto de 2m símbolos tienen los siguientes parámetros:
12 −= mn-Número de bits de la palabra de código:
m-Número de bits del mensaje:
12 +≥ td Hmín-Distancia mínima de Hamming:
- Probabilidad de bit en error:ini
n
ticweb pp
i
ni
nP −
+=
−
≈ ∑ )1(
1
1,
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
26
Probabilidad de Error de varios códigos
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
27
Probabilidad de Error de varios códigos
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
28
Ejemplo Generación CRC (Ver Ch6. en B. Sklar)
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
29
Ejemplo Generación CRC (Ver Ch6. en B. Sklar)
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
30
Ejemplo Generación CRC (Ver Ch6. en B. Sklar)
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
31
Ejemplo Detección CRC (Ver Ch6. en B. Sklar)
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
32
Ejemplo Detección CRC (Ver Ch6. en B. Sklar)
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
33
Ejemplo Detección CRC (Ver Ch6. en B. Sklar)
2S 2009 I. Zamora
UniVII: Det. Cods. Cíclic. Prob. Error.
34