• Like
  • Save
Códigos
Upcoming SlideShare
Loading in...5
×
 

Códigos

on

  • 3,428 views

Mini curso sobre códigos.

Mini curso sobre códigos.

Statistics

Views

Total Views
3,428
Views on SlideShare
3,380
Embed Views
48

Actions

Likes
0
Downloads
0
Comments
0

5 Embeds 48

http://algodematemas.blogspot.com 35
http://algodematemas.blogspot.com.es 7
http://algodematemas.blogspot.mx 3
http://www.slideshare.net 2
http://algodematemas.blogspot.com.ar 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Códigos Códigos Presentation Transcript

    • Teoría elemental de códigos Codificación y decodificación Gloria Serrano Sotelo ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.1/32 ı
    • Introducción Los canales de transmisión que utilizamos para enviar, recibir y almacenar datos no son perfectos, lo que ocurre, por ejemplo, con los CD’s, teléfonos móviles y transmisiones espaciales. Es necesario detectar cuando ha ocurrido un error en el proceso de transmisión y, si es posible, corregirlo para conseguir que el mensaje recibido sea lo más parecido posible al mensaje original enviado. La teoría de códigos tiene como objetivo encontrar buenos sistemas de codificación y decodificación que permitan detectar y corregir los errores que se producen en la transmisión de datos. La codificación consiste en añadir información extra a los mensajes que se quieren transmitir a través del canal con el objetivo de minimizar los efectos del ruido, controlando los errores que éste produce, es decir, consiguiendo un sistema fiable de transmisión. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.2/32 ı
    • Introducción u x y u ˆ Codificador Canal Decodificador Ruidoso Los mejores códigos conocidos para la comunicación sobre canales con ruido son • Los códigos lineales, como los Reed-Solomon utilizados en los CD’s. • Los códigos convolucionales utilizados en transmisiones espaciales. • Los Turbo códigos, que concatenan códigos lineales y convolucionales y se utilizan en telefonía móvil. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.3/32 ı
    • Algunos códigos conocidos Veremos algunos ejemplos de códigos conocidos y utilizados comúnmente, que no necesitan transmitir gran cantidad de información, tan sólo detectar errores producidos por el fallo humano. • Número de identificación fiscal (NIF). • International Standard Book Number (ISBN). • Códigos de las cuentas bancarias. • Códigos de las tarjetas de crédito (CODABAR). ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.4/32 ı
    • Número de identificación fiscal (NIF) En el NIF los números del DNI son los dígitos de información y la letra es el dígito de control, que se obtiene calculando el resto de dividir el número por 23 y buscando la letra que le corresponde en la tabla siguiente. Resto 0 1 2 3 4 5 6 7 8 9 10 11 12 Letra T R W A G M Y F P D X B N Resto 13 14 15 16 17 18 19 20 21 22 Letra J Z S Q V H L C K E ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.5/32 ı
    • Número de identificación fiscal (NIF) Ejemplos • Calcula el NIF de los siguientes DNI ◮ (a) 10561021 ; (b) 07797571 ◮ (c) 70863649 ; (d) 70873047 • Calcula el dígito borrado en los siguientes NIF ◮ (a) 230?34-Z? ; (b) 708730?8-C? ◮ (c) 105?1134-N ; (d) 0?854325-D ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.6/32 ı
    • International Standard Book Number (ISBN) El ISBN es un número de 10 dígitos a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 con la condición 10a1 + 9a2 + 8a3 + 7a4 + 6a5 + 5a6 + 4a7 + 3a8 + 2a9 + a10 = 0 (módulo 11) El dígito a10 es el dígito de control que se incluye como información redundante para que la operación anterior sea un múltiplo de 11. Para a10 se necesitan 11 símbolos, por lo que además de los 10 dígitos se utiliza la letra X para representar el número 10 correspondiente al dígito de control. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.7/32 ı
    • International Standard Book Number (ISBN) Ejemplos • Calcula el dígito de control de los siguientes ISBN ◮ A course in Error-Correcting Codes. Justensen and Høholdt. ISBN 3-03719-001-? ◮ Handbook of Coding Theory. ISBN 0-444-81472-? ◮ Introduction to Coding Theory. J. H. van Lint. ISBN 0-540-54894-? ◮ Coding Theory and Cryptography. David Joyner. ISBN 3-540-66336-? • Calcula el dígito que falta en los siguientes ISBN ◮ La divina proporción. Luca Pacioli. ISBN 84-7600-7?7-6 ◮ El tío Petros y la conjetura de Goldbach. ISBN 84-?06-9877-1 ◮ Los judíos. J. Mosterín. ISBN 84-206-5837-5 ◮ El viento de la luna. A. Muñoz Molina. ISBN 8?-322-1227-X ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.8/32 ı
    • Códigos de las cuentas bancarias El número de una cuenta bancaria es una sucesión de 20 dígitos del 0 al 9, de la forma a3 a4 a5 a6 − a7 a8 a9 a10 − a0 b0 − b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 tal que 4a3 + 8a4 + 5a5 + 10a6 + 9a7 + 7a8 + 3a9 + 6a10 + a0 = 0 (mod 11) b1 + 2b2 + 4b3 + 8b4 + 5b5 + 10b6 + 9b7 + 7b8 + 3b9 + 6b10 + b0 = 0 (mod 11) Los dígitos a0 b0 son los de control. Si a0 y b0 deben ser 10 se escribe sólo un 1. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.9/32 ı
    • Códigos de las cuentas bancarias Ejemplo Calcula los dígitos de control de las siguientes cuentas bancarias de solidaridad con Kosovo Banesto: 0030-1292-cc-0002222271 BCH: 0049-0001-cc-2411399144 BBV: 0182-2370-cc-0010022227 ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.10/32 ı
    • Códigos de las tarjetas de crédito (CODABAR) El número de una tarjeta de crédito es del tipo a1 a2 a3 a4 − a5 a6 a7 a8 − a9 a10 a11 a12 − a13 a14 a15 a16 tal que se verifica 2(a1 + a3 + a5 + a7 + a9 + a11 + a13 + a15 ) + (a2 + a4 + a6 + a8 + a10 + a12 + a14 + a16 )+ número de dígitos en posición impar mayores que 4 = 0 (mod 10). Este código puede corregir un error y recuperar dos dígitos que se hayan borrado, de modo que cuando se hace referencia a un número de tarjeta de crédito (en una factura, un extracto bancario,...) para mantenerlo oculto con seguridad se deben ocultar al menos 3 de sus dígitos. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.11/32 ı
    • Códigos de las tarjetas de crédito (CODABAR) Ejemplo • Averigüa si son válidos los siguientes números de tarjetas de crédito ◮ 4599-8834-3278-8311 ◮ 4599-8834-3278-8511 • Halla el número borrado de las siguientes tarjetas de crédito ◮ 1007-8606-2?90-1234 ◮ 6540-98?0-7654-0103 ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.12/32 ı
    • Códigos lineales ´ ´ Codigo de triple repeticion x → (x, x, x) Palabras código: x(1, 1, 1), con x ∈ Fq . Codificador G = 1 1 1 ´ Codigo binario de control de paridad (x, y, z) → (x, y, z, x + y + z)   1 0 0 1 Codificador G = 0 1 0 1 0 0 1 1 Palabras código: (x, y, z)G, con x, y, z ∈ F2 . ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.13/32 ı
    • Códigos lineales • Un codificador lineal sobre Fq es una matriz de orden k × n, k ≤ n, con coeficientes en Fq . Las k filas de esta matriz generan un subespacio vectorial de Fn . Los vectores de este subespacio son q las palabras del código. • Un código lineal de longitud n y dimensión k sobre Fq es un subespacio vectorial C de dimensión k de Fn . q El número de bits de redundancia es n − k . • Un codificador o matriz generadora del código lineal C es una matriz G de orden k × n cuyas filas forman una base de C , las palabras base del código. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.14/32 ı
    • Matriz generadora y codificación Ejemplos • Para los códigos binarios de triple repetición y control de paridad, calcula las palabras base del código y codifica, en cada caso, los siguientes mensajes 0 y 101. • Para el código de matriz generadora   1 1 1 1 G = 1 1 0 0 1 0 0 1 ◮ Codifica los mensajes 011 y 111. ◮ Comprueba que G es una matriz generadora del código binario de control de paridad anterior ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.15/32 ı
    • Matriz de control H es una matriz de control del código lineal C de matriz generadora G si cumple que G · H t = 0. Podemos redefinir el código lineal C en términos de la matriz de control así: C = {x ∈ Fn | xH t = 0} q Ejemplo Calcula matrices de control para los códigos binarios de triple repetición y control de paridad. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.16/32 ı
    • Distancia y peso mínimo. Control de errores • La distancia entre dos palabras código x = (x1 , . . . , xn ), x′ = (x′1 , . . . , xn ) ∈ C viene dada por d(x, x′ ) = #{i | xi = x′i } • El peso de una palabra x = (x1 , . . . , xn ) viene dado por el número de componentes no nulas, esto es w(x) = #{i | xi = 0} Por ejemplo, el peso de (1, 0, 1, 0) es 2. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.17/32 ı
    • Distancia y peso mínimo. Control de errores • Distancia d de un código C d = min{d(x, x′ ) | x, x′ ∈ C, x = x′ } Si C es un código lineal d coincide con el peso mínimo de las palabras código no nulas d = min{d(x, x′ ) = w(x−x′ ) | x, x′ ∈ C, x−x′ = 0} • Si d > t se pueden detectar errores de peso ≤ t • Si d > 2t se pueden corregir errores de peso ≤ t. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.18/32 ı
    • Matriz generadora. Matriz de control Ejemplo 1 1 1 0 Dado el codificador G = sobre F3 , 1 0 2 2 calcula: • La longitud, la dimensión y las palabras base del código lineal ternario que define. • La distancia del código. Averigua qué tipo de errores detecta y si corrige alguno. • Una matriz de control. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.19/32 ı
    • Distancia. Matriz de control La matriz de control permite calcular la distancia. Sea C(n, k, d) un código lineal con matriz de control H : • La distancia d del código coincide con el número mínimo de columnas de H que son linealmente dependientes. • Cota de Singleton: d ≤ n − k + 1 • Un código lineal es óptimo o MDS si su distancia d alcanza la cota de Singleton. (El código del ejemplo anterior es MDS) ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.20/32 ı
    • Matriz de control. Detección de errores La matriz de control permite detectar errores: • Si H es una matriz de control del código, las palabras x del código quedan determinadas por la condición xH t = 0. • En el canal de transmisión u x y u ˆ Codificador Canal Decodificador Ruidoso si se recibe la palabra y , se detecta error en la transmisión cuando yH t = 0, es decir, cuando y no es una palabra código. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.21/32 ı
    • Síndromes. Control de errores Sea H una matriz de control del código lineal C(n, k, d) • Síndrome de la palabra y ∈ Fn : q S(y) = yH t • Si y es una palabra código su síndrome es cero. • Si dos palabras y , z tienen el mismo síndrome su diferencia y − z es una palabra del código. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.22/32 ı
    • Síndromes. Control de errores Ejemplo Para la transmisión a través de un canal con ruido se ha utilizado un código lineal binario con matriz de control   1 1 1 0 1 0 0 H = 1 1 0 1 0 1 0 1 0 1 1 0 0 1 y se han recibido las palabras 0111000 y 1010100. No se detecta error en la primera pero sí en la segunda. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.23/32 ı
    • Síndromes. Corrección de errores Sea C un código lineal de parámetros n, k y d. • Si d > 2t, dos errores diferentes de peso ≤ t no pueden tener el mismo síndrome. Corrección de errores (d > 2t) Sea y la palabra recibida: • Si S(y) = 0, y es del código y no hay error. • Si S(y) = 0 y su síndrome procede de un error e de peso ≤ t, yH t = eH t , y − e es una palabra del código, la palabra corregida. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.24/32 ı
    • Códigos de Hamming Hamq (r) es el código lineal sobre Fq con r bits de redundancia definido por la matriz de control cuyas columnas son todas las palabras no nulas y no proporcionales de Fr . q Los parámetros de Hamq (r) son: qr − 1 • Longitud n = q−1 • Dimensión k = n − r • Distancia d = 3 ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.25/32 ı
    • Códigos de Hamming Ejercicios 1. Construye un código binario con dos dígitos de redundancia que corrija errores de peso 1 y sea M DS . 2. Para el código binario de Hamming Ham2 (3) • Codifica las palabras 1110 y 1010. • Decodifica las palabras 0111000, 1010100, 1101001. 3. Para el código ternario de Hamming Ham3 (2) • Codifica las palabras 10 y 21 • Decodifica las palabras 2011, 1122, 1220. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.26/32 ı
    • Códigos convolucionales Los códigos convolucionales surgen después de los códigos de bloques y no requieren codificadores muy complicados. Estos códigos fueron introducidos por Elias en 1955. Su creciente aplicación radica en parte en los métodos de decodificación, puesto que se pasó de algoritmos que eran independientes de la memoria del código al algoritmo de Viterbi (1971), cuya complejidad crece exponencialmente con la memoria, pero que es mucho más fiable como método de decodificación, puesto que no borra datos como los algoritmos secuenciales y además el tiempo de decodificación es fijo. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.27/32 ı
    • Códigos convolucionales En 1970 Forney da la construcción algebraica en su trabajo “Convolutional Codes I: Algebraic Structure”, que es una referencia principal desde entonces. En 1977 McEliece presenta el libro “The theory of information and coding”, en el que se incluye la teoría de códigos convolucionales y el algoritmo de Viterbi. Es en el artículo de 1998 “The algebraic theory of convolutional codes”, recogido en el libro “Handbook of coding theory”, donde desarrolla y amplía con detalle la teoría de Forney. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.28/32 ı
    • Códigos convolucionales Uno de las principales aplicaciones de los códigos convolucionales es la transmisión de información en el espacio exterior (deep-space). Las transmisiones a través del espacio exterior están muy limitadas en potencia, pero no generalmente en ancho de banda. Si hay una disminución de la ratio señal ruido, SN R = Ruido de transmisoralareceptor , con la misma potencia se Potencia que llega receptor cubren distancias mayores. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.29/32 ı
    • Códigos convolucionales Los sistemas de comunicación en las naves espaciales transmiten: • Informaciones telemétricas: datos científicos con o sin imágenes, datos GSE, etc. • Órdenes de la estación terrestre a la nave. • “Tracking”: seguimiento de la velocidad, posición y otros datos de la nave a través de los datos que ésta envía a tierra. En el canal telemétrico, donde la razón del código (proporción entre información y redundancia más información) es relativamente alta, se utilizan códigos convolucionales y de bloques. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.30/32 ı
    • Códigos convolucionales En las misiones espaciales Pionner 10 y 11 a Júpiter y Saturno en 1972-73 se utilizó un código convolucional de razón 1/2 y memoria 31. Es a partir del algoritmo de Viterbi cuando el estándar planetario se convierte en un código convolucional de memoria menor, memoria 6 y razón 1/2. El estándar planetario se utilizó por primera vez en la misión Voyager 1 (1980-81) concatenado con un código lineal Reed-Solomon y después en las misiones Galileo (1986) y Voyager 2 (1989) concatenando el estándar con otros códigos convolucionales y de bloques. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.31/32 ı
    • Códigos convolucionales Los códigos convolucionales se utilizan también en la construcción de los turbo códigos, que fueron introducidos en 1983 por Berrou, Glavieux y Thitimajshima. ´ ´ ´ Teor´a elemental de codigos Codificacion y decodificacion– p.32/32 ı