Вы находитесь на странице: 1из 35

1

4. Codificacin de Canal
2
Codificacin de Canal



El objetivo de la codificacin de canal es introducir de manera
controlada redundancia en el mensaje a transmitir que nos
permita detectar y corregir errores.
3
Conceptos bsicos en la codificacin de
canal

Campos de Galois con dos elementos GF(2)


{ } 1 , 0
0 1 1
1 0 0
1 0 +
1 0 1
0 0 0
1 0 x
4
Conceptos bsicos en la codificacin de
canal


Conceptos de lgebra lineal

Matriz identidad
Suma de matrices
Multiplicacin de matrices
Matriz transpuesta
5
Tipos de cdigos de canal

Hay dos tipos bsicos de codificacin de canal:

Bloque: Se toman grupos de bits en el flujo de la entrada,
siempre del mismo tamao, y a cada uno de ellos se le asigna un
grupo de bits a la salida. No hay memoria entre grupos de bits.
Convolucionales: el flujo continuo de bits a la entrada se utiliza
como entrada para una mquina de estados finitos, y la salida de
esta mquina es el flujo de bits enviado
6
Cdigos Bloque








X = [ x
1
, x
2
, x
3
, x
k
]
Y = [ y
1
, y
2
, y
3
, x
n
]
n>k

Codificador
X Y
7
Cdigos Bloque
Entonces, de las posibles palabras del conjunto Y:

2
n

Solo hay algunas vlidas:

2
k

El cdigo se denota por (n,k), y a R=k/n se le llama la razn
del cdigo.
El vector de salida slo depende del vector de entrada actual
(no hay memoria)
8
Cdigos Bloque Lineales
Se denominan lineales porque el vector de salida se obtiene
a partir de una transformacin lineal (generalmente sobre
GF(2)) del vector de entrada.





Las transformaciones lineales se pueden representar
matemticamente como operaciones con matrices.
Entonces, existe una matriz que representa la operacin del
codificador.
A esta matriz se le denomina matriz generadora
Transformacin
Lineal
d c
9
Matriz Generadora



Entonces, teniendo la matriz generadora de un cdigo, las
palabras de salida se pueden obtener como la multiplicacin
de esta matriz por las palabras de entrada.

c = d G
10
Matriz Generadora
Ejemplo: Se tiene un cdigo (6,3) cuya matriz generadora es:






Se tienen:
2
n
= 2
6
= 64 palabras posibles
2
k
= 2
3
= 8 palabras vlidas
(
(
(

=
0 1 1 1 0 0
0 0 1 0 1 0
1 1 0 0 0 1
G
11
Matriz Generadora
Los posibles vectores de entrada son:
d
0
=[0 0 0]
d
1
=[0 0 1]
d
2
=[0 1 0]
d
3
=[0 1 1]
d
4
=[1 0 0]
d
5
=[1 0 1]
d
6
=[1 1 0]
d
7
=[1 1 1]
Obtener las posibles palabras permitidas
12
Cdigos Bloque Lineales Sistemticos
En un cdigo lineal sistemtico, los k primeros dgitos de la
palabra del cdigo son el vector de datos d.
Entonces, la matriz generadora debe cumplir que:

G = [ I
k
P ]

G = matriz generadora
I = matriz identidad [ k x k ]
P = generador de redundancia [ k x (n-k) ]
13
Cdigos Bloque Lineales Sistemticos
Ejemplo:
Los cdigos de paridad par son cdigos bloque lineales
sistemticos. Un ejemplo es el cdigo (8,7). Encuentre su matriz
generadora.
14
Deteccin de Errores
Se tiene que si

c = d G

Entones cualquier vector

r = c + e

Ser una palabra permitida si y slo si

r H
T
= 0
15
Matriz de chequeo de paridad


La matriz de chequeo de paridad se obtiene de:

H = [ P
T
I
n-k
]

H = matriz de chequeo de paridad [ (n-k) x n ]
P
T
= Generador de redundancia transpuesto [ (n-k) x k ]
I
n-k
= matriz de identidad [ (n-k) x (n-k) ]
16
Deteccin de Errores
El efecto del canal desde el punto de vista de la codificacin
de canal es dejar pasar algunos de los bits y cambiar algunos
otros.
Esto se modela como sumar (sobre GF(2)) un vector de error
a la palabra de cdigo.
Un 0 en el vector de error representa un bit que lleg
correctamente.
Un 1 en el vector de error representa un bit que lleg errneo.

r = c + e

17
Sndromes o Identificadores
Considerando que se transmite c.
Se recibe r = c + e.
Se denomina sndrome o identificador al resultado de rH
T


s = r H
T


Entonces, si el sndrome es el vector 0, la palabra se acepta.
En caso contrario se detecta un error en la palabra.

s = e H
T


18
Sndromes o Identificadores
Ejemplo. Se tiene un cdigo (7,4) con matriz generadora






Suponer d = [ 1 0 1 1 ] y e = [ 0 0 1 0 0 0 0 ]
Encontrar el sndrome

(
(
(
(

=
1 1 0 1 0 0 0
1 0 1 0 1 0 0
0 1 1 0 0 1 0
1 1 1 0 0 0 1
G
19
Capacidad correctora de los cdigos
bloque lineales sistemticos

Se debe introducir el concepto de distancia entre vectores.
Pero en esta rea se utiliza la distancia de Hamming, no la
distancia Euclidena.
Distancia de Hamming entre dos vectores: Es la cantidad de
1s que existe en la suma de los dos vectores

Ejemplo
a = [ 1 0 0 1 1 0 1 ]
b = [ 1 0 1 1 0 1 0 ]
a+b = [ 0 0 1 0 1 1 1] d = 4
20
Capacidad correctora de los cdigos
bloque lineales sistemticos

La capacidad correctora de un cdigo depende de la
distancia mnima entre sus palabras permitidas.

Un cdigo (n,k) puede:
Detectar


Corregir
errores 1
min
d
( ) errores 1
2
1
min
(

d
21
Capacidad correctora de los cdigos
bloque lineales sistemticos

Ejemplo:
Si d
min
=4
Se puede detectar hasta 3 bits en error
Se puede corregir hasta 1 bit en error
22
Cdigos de Hamming
Son cdigos bloque lineales sistemticos (n,k),
caracterizados por la siguiente estructura:

( n , k ) = ( 2
m
-1 , 2
m
-1-m )

Donde m puede ser cualquier entero mayor o igual a 2.

La distancia mnima es siempre 3, por lo que:
Pueden detectar 1 o 2 errores
Pueden corregir 1 error

23
Cdigos de Hamming
Para construir un cdigo de Hamming, la matriz H debe
cumplir que:
Ninguna de sus columnas puede ser el vector 0.
Todas las columnas deben ser distintas.
Las ltimas n-k columnas deben ser la matriz identidad
24
Cdigos de Hamming
Ejemplo:
Construir un cdigo de Hamming para vectores de entrada de 4
bits.
Considerar los patrones de error de 1 bit. Checar los sndromes.
Qu se puede observar?

25
Cdigos cclicos
Un cdigo (n,k) se denomina cclico si cumple con la
siguiente propiedad: Si

u = [u
0
, u
1
, u
2
, , u
n-1
]

Es una palabra vlida, entonces

u
(1)
= [u
n-1
, u
0
, u
1
, u
2
, , u
n-2
]

obtenido de realizar un corrimiento tambin es una palabra vlida.

26
Cdigos cclicos
Ejemplo:
Comprobar si el cdigo (7,3) con matriz generadora








Es un cdigo cclico
(
(
(

=
0 1 1 1 1 0 0
1 1 1 0 0 1 0
1 0 1 1 0 0 1
G
27
Cdigos cclicos
Para entender la estructura de los cdigos cclicos, se utiliza
el concepto de polinomios sobre GF(2):
Los componentes de un vector

u = [u
0
, u
1
, u
2
, , u
n-1
]

Pueden tratarse como coeficientes de un polinomio con una
variable cualquiera:

u(x) = u
0
+ u
1
x + u
2
x
2
+ u
n-1
x
n-1


28
Cdigos cclicos
Si
u(x)
es el polinomio de una palabra permitida, entonces
u
(i)
(x),
que es el residuo de dividir
x
i
u(x)
entre
x
n
+1
tambin es una palabra permitida.

u(x) es de grado n-1
x
i
u(x) = q(x)(x
n
+1) + u
(i)
(x)
29
Cdigos cclicos
Ejemplo:
Usando la frmula anterior, encontrar el tercer corrimiento de
u=[1 1 0 1]

Se pide encontrar u
(3)
(x)
u(x)=1+x+x
3
x
3
u(x) = x
3
+x
4
+x
6

El grado de u(x) es 3, n-1=3, n=4
Dividiendo x
3
u(x) entre x
4
+1, se obtiene x
2
+1 y el residuo es
x
3
+x
2
+1 y el resultado es u
(3)
(x)

u
(3)
= [1 0 1 1]

30
Cdigos cclicos
Se puede generar un cdigo cclico en base a un polinomio
generador (en la misma forma que antes se usaba una matriz
generadora)
El polinomio generador g(x) de un cdigo (n,k) tiene la forma
g(x) = g
0
+g
1
x+g
2
x
2
++g
r
x
r
Donde g
0
=g
r
=1
Cada palabra vlida tendr la forma
u(x) = m(x)g(x)
Donde u(x) es un polinomio de grado n-1 o menor, y m(x) es
la palabra de datos a transmitir de grado n-r-1, por lo que:
n-r = k
r=n-k
31
Cdigos cclicos

Entonces u(x) es una palabra vlida si y solo si divide a g(x)
sin residuo.


Para que el cdigo sea nico, g(x) debe dividir a x
n
+1

32
Cdigos cclicos en forma sistemtica
El mensaje se puede expresar como:

m(x) = m
0
+m
1
x+m
2
x
2
++m
k-1
x
k-1

Si el cdigo es sistemtico, los dgitos de la palabra mensaje
aparecen como parte de la palabra cdigo.
En forma polinomial la palabra mensaje se recorre n-k
posiciones y luego se le suman los bits de paridad.
Recorrerlo n-k bits equivale a multiplicar el polinomio por x
n-k


x
n-k
m(x) = m
0
x
n-k
+m
1
x
n-k+1
+m
2
x
n-k+2
++m
k-1
x
n-1

Si este polinomio lo dividimos entre otro polinomio g(x), se
obtiene
33
Cdigos cclicos en forma sistemtica






Y sumando r(x) a ambos lados:



Y as el vector de palabra cdigo es:
u=[r
0
,r
1
,r
2
,,r
n-k-1
,m
0
,m
1
,,m
k-1
]
n-k bits de paridad y k bits de datos

) ( ) ( ) ( ) (
) (
) (
) ( ) (
x r x q x g x m x
x q
x r
x m x x g
k n
k n
+ =

) ( ) ( ) ( ) ( x q x g x r x m x
k n
= +

34
Cdigos cclicos
Ejemplo:
Usando el polinomio generador g(x)=1+x+x
3
generar la palabra
vlida par aun cdigo (7,4) para el vector de datos [1 0 1 1]
35
Cdigos cclicos
Deteccin y correccin de errores con cdigos generados
polinomialmente:
Ya que las palabras vlidas se generan multiplicando un
polinomio por el polinomio generador, la divisin del vector o
polinomio recibido entre el polinomio generador debe dar un
residuo de 0. Si no es as, la palabra recibida no es vlida.
La correccin se puede realizar considerando que el
polinomio residuo es el sndrome, y en base a tablas se
puede corregir el error.

Вам также может понравиться