• No se han encontrado resultados

Una Introducción a la Teoría de Códigos Convolucionales. Viviana Carolina Guerrero Pantoja

N/A
N/A
Protected

Academic year: 2021

Share "Una Introducción a la Teoría de Códigos Convolucionales. Viviana Carolina Guerrero Pantoja"

Copied!
130
0
0

Texto completo

(1)

Una Introducción a la Teoría de Códigos Convolucionales

Viviana Carolina Guerrero Pantoja

UNIVERSIDAD DEL VALLE

FACULTAD DE CIENCIAS NATURALES Y EXACTAS DEPARTAMNETO DE MATEMÁTICAS

PROGRAMA DE MAESTRÍA EN CIENCIAS MATEMÁTICAS SANTIAGO DE CALI, 2018

(2)

Viviana Carolina Guerrero Pantoja

Trabajo de grado presentado como requisito parcial para optar al

título de Magíster en Ciencias Matemáticas

Director:

John Hermes Castillo Gómez, Ph.D.

Universidad de Nariño

Co-director:

Juan Miguel Velásquez Soto, Ph.D.

Universidad del Valle

UNIVERSIDAD DEL VALLE

FACULTAD DE CIENCIAS NATURALES Y EXACTAS DEPARTAMNETO DE MATEMÁTICAS

PROGRAMA DE MAESTRÍA EN CIENCIAS MATEMÁTICAS SANTIAGO DE CALI, 2018

(3)

Agradecimentos

Quiero expresar por medio de este trabajo mi gratitud, a Dios por haberme permitido ingresar al programa de Maestría en Ciencias Matemáticas de la Universidad del Valle y vivir esta experiencia que aunque no ha sido fácil, logre cumplir esta meta de forma satisfactoria. A todas aquellas personas que han influido en mi carrera, por su apoyo incondicional tanto a nivel académico como personal. De manera especial al profesor Jhon Castillo, director de este trabajo, quien creyó en mí desde el inicio de mis estudios en pre-grado, por alentarme a continuar con mis estudios y me ha apoyado de manera personal y académica en todo este proceso; gracias por la paciencia, tiempo y dedicación dada a la orientación de este trabajo sin lo cual no habría sido posible su realización. Así como también al profesor Juan Miguel Velásquez, co-director de este trabajo, su apoyo y consejos a nivel institucional y personal, fueron fundamentales en éste proceso. Agradezco también a los profesores Diana Bueno y Yamidt Bermúdez, jurados de este trabajo, por el tiempo dedicado a la revisión y por las sugerencias que permitieron mejorarlo.

Expreso además mis agradecimientos a la Universidad del Valle por darme la oportu-nidad de continuar con mi formación tanto personal como académica. A los docentes del departamento de matemáticas que contribuyeron en mi formación dentro del programa de Maestría en Ciencias Matemáticas. Especialmente al profesor Álvaro Garzón, sus enseñanzas, su disciplina y su exigencia me aportaron mucho y me inspiran a seguir en este camino.

A mis compañeros de estudio, por todo su apoyo y por los buenos momentos compartidos; especialmente a mis amigas Luz Elena Dominguez y Yazmin Rivera que fueron un gran apoyo pues siempre estuvieron y sé que estarán en adelante en los momentos más difíciles para ser esa voz de aliento cuando creo no poder seguir.

A los profesores del departamento de matemáticas de la Universidad de Nariño: Catalina Rúa, John Castillo, Fernando Benavides y Wilson Mutis, quienes siempre me motivaron a seguir con mis estudios y por brindarme su amistad y apoyo.

Al grupo de investigación ALTENUA: Álgebra, Teoría de Números y Aplicaciones ERM, en especial a su director el profesor Carlos Trujillo por confiar en mí y mediante el proyecto de investigación 110356935047 “Construcciones de Conjuntos Bh[g], propiedad de Midy, y algunas aplicaciones” de COLCIENCIAS, me apoyó con la financiación inicial de mis estudios de maestría.

Finalmente agradezco a las personas que siempre han estado presentes en cada etapa de mi vidas apoyándome incondicionalmente; mis padres y familiares. A Jesús Fajardo que fue

(4)

mi mayor apoyo en todo este proceso, por entender mi ausencia y motivarme siempre. Y Andrés Jaramillo mi gran amigo.

(5)

Resumen

La teoría de codificación es una de las diversas ramas de la matemática que es atractiva debido a la interacción activa entre las invenciones sofisticadas de ingeniería y las mate-máticas abstractas. En este documento se presentan algunos de los conceptos básicos de los códigos convolucionales, los cuales son un tipo de códigos correctores de errores diferentes de los códigos de bloque, cuya principal diferencia entre ellos es la introducción del concepto de memoria para el caso convolucional. Sin embargo, se muestra que algunas de las definiciones aplicables a los códigos de bloque lineales y cíclicos pueden darse también en el contexto de los códigos convolucionales.

Además, se expone cómo construir el codificador físico de un código convolucional, cua-tro representaciones analíticas y dos representaciones gráficas para realizar el proceso de codificación y la forma de pasar de una representación a otra. También se presenta una breve descripción de los códigos convolucionales cíclico tomando como principal referencia el artículo “On Cyclic Convolutional Codes” de la autoría de Heide Gluesing-Luerssen y Wiland Schmale del año 2004. En este trabajo se muestra como el programa computacional SAGE es una herramienta útil para facilitar algunos cálculos, que a mano pueden resultar tediosos; permitiendo exhibir ejemplos más grandes a los que suelen encontrarse en la literatura. Este objetivo se logra a partir de la implementación de algoritmos basados en los conceptos aquí presentados.

Palabras clave:Código Convolucional, Código Convolucional Cíclico,σ-ciclicidad, Factores invariantes, Anillo de polinomios torcido.

(6)
(7)

Abstract

Coding theory is one of several branches of mathematics that is attractive because of the active interaction between sophisticated engineering inventions and abstract mathematics. This dissertation presents some of the basic concepts of convolutional codes, which are a type of error-correcting codes different from block codes, whose main difference between them is the introduction of the concept of memory on the convolutional case. However, it is shown how some of the definitions applicable to linear and cyclic block codes can also be given in the context of convolutional codes.

In addition, we explain how to construct the physical encoder of a convolutional code, four analytical representations and two graphic representations to perform the encoding process and how to pass from one representation to another; as well as a brief description of the algebraic structure of cyclical convolutional codes taking as main reference the article “On Cyclic Convolutional Codes” wrote by Heide Gluesing-Luerssen and Wiland Schmale in 2004. This work shows how the mathematical software system SAGE is a useful tool to facilitate some calculations, which can be tedious by hand; so we can exhibit larger examples than those usually found in the literature. This objective is achieved through the implementation of algorithms based on the concepts presented here.

(8)
(9)

Índice general

Lista de símbolos ix

Índice de figuras xi

Índice de algoritmos xiii

Introducción xv

1 Preliminares 1

1.1 Códigos Lineales . . . 1

1.2 Forma de Smith de una matriz polinomial . . . 9

1.3 Módulos . . . 14

1.4 Anillos de polinomios torcidos . . . 20

2 Códigos Convolucionales 23 2.1 Definición y notación . . . 23

2.2 Codificador físico de un código convolucional . . . 26

2.3 Representación de codificadores convolucionales . . . 29

2.3.1 Representación analítica . . . 30

2.3.2 Representaciones gráficas. . . 47

2.4 Decodificación . . . 52

2.4.1 El algoritmo de Viterbi . . . 52

2.5 Código convolucional dual . . . 57

2.5.1 Codificador polinomial de un código convolucional dual . . . 57

2.5.2 Ex-síndrome y síndrome convolucional . . . 61

3 Códigos Convolucionales Cíclicos 65 3.1 Conceptos básicos . . . 65

3.2 Ciclicidad . . . 72

3.3 Algunos cálculos con SAGE para códigos convolucionales cíclicos . . . 81

3.4 Números de Midy y códigos convolucionales . . . 91

Conclusiones 95

(10)

A Algoritmos e implementación en SAGE 97

(11)

Lista de símbolos

N Conjunto de números naturales.

N0 Conjunto de números naturales unido con el cero.

Fq Campo finito de orden q, donde q es una potencia de un primo. F Campo arbitrario.

F[z] Anillo de polinomios en la indeterminada z. F(z) Campo de funciones racionales.

F[[z]] Anillo de series de potencia formales. F((z)) Campo de series formales de Laurent.

Rn Anillo cociente de polinomios módulo xn1. R[x;α, δ] Anillo de polinomios torcido sobreR.

Rn[z;σ] Anillo de polinomios torcido sobreRn.

gr Grado de un polinomio. ker Kernel. det Determinante. gen Generado. Aut Automorfismos. im Imagen. ix

(12)
(13)

Índice de figuras

2.1 Elemento de retardo y sumador q-ario. . . 27

2.2 Codificador Convolucional de velocidad R = 1/2. . . 27

2.3 Codificador Convolucional de velocidad R = 2/3. . . 33

2.4 Diagrama de estados del codificador de la figura 2.2 . . . 49

2.5 Diagrama de estados del codificador de la Figura 2.3 . . . 51

2.6 Enrejado del codificador G1(z) = (1 +z2 1 +z+z2) . . . 52

2.7 Enrejado truncado N = 6 del codificadorG1(z) = (1 +z2 1 +z+z2). . . . 53

2.8 Pesos en el enrejado de la figura 2.7. . . 55

2.9 Decodificación en el enrejado de la figura 2.7. . . 56

2.10 Trayectoria P el enrejado de la figura 2.7. . . 56

2.11 Un ex-síndrome para el codificador la figura 2.2. . . 63

2.12 Un ex-síndrome para el codificador la figura 2.3. . . 64

(14)
(15)

Índice de algoritmos

A.1 Convolución discreta . . . 97

A.2 Serializador . . . 98

A.3 Secuencias Generadoras . . . 99

A.4 k-Secuencias Generadoras . . . 100

A.5 Matriz Generadora . . . 101

A.6 Secuencias Generadoras Polinomial . . . 102

A.7 k-Secuencias Generadoras Polinomial . . . 103

A.8 Matriz Generadora Polinomial . . . 103

A.9 k-Matriz Generadora Polinomial . . . 104

A.10 Complejidad . . . 104

A.11 Grado fila . . . 105

A.12 Imagen inversa de la función ϕ. . . 106

A.13 Matriz Generadora CCC . . . 106

(16)
(17)

Introducción

Un código es el resultado de la aplicación de un sistema de signos y reglas que permiten cambiar la forma de un mensaje para que pueda ser transmitido a través de un medio. En nuestra cotidianidad hacemos uso de ciertos tipos de códigos como son: el lenguaje cotidiano, la notación musical y las señales de tránsito, entre otros; los cuales no son códigos en el sentido matemático, pero en su esencia tienen los mismos objetivos. El lenguaje cotidiano es un código de longitud variable, el cual no tiene buenas propiedades en cuanto a la detección y corrección de errores. En este caso, algunas veces es posible detectar errores por sintaxis o contexto, pero en ciertas ocasiones es muy difícil corregirlo. Por ejemplo, si al transmitir un mensaje se recibe la palabra “Xo”, esta puede ser interpretada por su receptor como “No”, “Yo” o “Lo” que son palabras código dependiendo del contexto; pues en el caso de que esta se encuentre en la frase “Xo te quiero” las posibles opciones serían “No te quiero” o “Yo te quiero” sin embargo, no se puede asegurar cual de los dos fue el mensaje enviado; es decir es posible detectar el error pero no necesariamente corregirlo. Inclusive, algunas veces no se puede ni siquiera detectar el error, por ejemplo si queremos transmitir la palabra “pila”, en un listado de compras familiares, se podría cometer un error al escribir en nuestro teléfono y enviar “pala”.

En general cuando se transmite un mensaje este es enviado a través de un medio, el cual se denomina canal y se escoge dependiendo del tipo de información. Para iniciar el proceso es necesario expresar el mensaje, denominadopalabras fuente, en términos acordes a los que el canal está capacitado para enviar como palabras código. A este proceso se le denomina

codificación. Una vez se codifica el mensaje, este es llevado a través del canal hasta el punto donde es recibido por el receptor en los mismos términos que maneja el canal.

Luego se requiere otro proceso, el cual tiene como objetivo que el receptor entienda el mensaje y sea capaz de detectar o corregir los posibles errores generados en la transmisión del mensaje original. Estos errores pueden originarse por distintos fenómenos entre los cuales podrían mencionarse: errores humanos, ruido, interferencias electromagnéticas, perturbacio-nes eléctricas naturales (tales como relámpagos) o por fuentes artificiales, por ejemplo las líneas de transmisión de alto voltaje, circuitos de conmutación de una computadora digital cercana, entre otras. Una manera de esquematizar todo el proceso aquí descrito es mediante

(18)

el siguiente diagrama.

emisor → codificación → canal → decodificación → receptor

Ruido

El origen de la Teoría de Códigos está ligado con el trabajo del ingeniero electrónico y matemático estadounidense Claude Shannon y su artículo “A Mathematical Theory of Communication” [25], el cual dio origen a la Teoría de Códigos y la Teoría de la Información. La Teoría de Códigos Correctores de Errores, tiene como objetivo principal construir códigos que permitan enviar la mayor información posible, detectar los errores producidos en la transmisión y corregirlos. Sin embargo, el artículo de Shannon no contenía una construcción explícita de tales códigos. Desde entonces diversas técnicas matemáticas se utilizan con este fin, dando como resultado diferentes familias de códigos, tales como los códigos de bloque, códigos lineales, códigos cíclicos, códigos convolucionales, códigos proyectivos, entre otros. En la actualidad son varias las ramas de la matemática involucradas en la construcción de estos códigos; entre ellas están Álgebra Lineal, Teoría de Grupos, Teoría de Anillos, Teoría de Campos Finitos, Teoría de Módulos, Geometría Algebraica, Combinatoria, Teoría de Numeros.

El concepto de código convolucional fue presentado por Peter Elias [4] en 1955, mientras que la teoría matemática de estos códigos fue desarrollada por G. David Forney Jr. [5] en la década de 1970, y posteriormente Robert McEliece [17] en 1998 dio un planteamiento desde el álgebra moderna. Un abordaje profundo puede consultarse en los libros de Shun Lin y Daniel Costello [15], Philippe Piret [20], Ajay Dholakia [3], Rolf Johannesson y Kamil Sh. Zigangirov [14], entre otros.

Los códigos convolucionales y los códigos de bloque son los tipos de códigos más utilizados en la práctica de la ingeniería, por su sencillez y utilidad. Estos códigos, no solo poseen buenas propiedades generales sino también algoritmos eficientes de codificación y decodificación, hecho que conduce a la necesidad de mantener una fundamentación matemática fuerte para el diseño de códigos útiles. En consecuencia, la teoría de codificación es una de las diversas ramas de la matemática que es atractiva debido a la interacción activa entre las invenciones sofisticadas de ingeniería y matemáticas abstractas.

Los códigos convolucionales son un tipo de códigos correctores de errores diferentes de los códigos de bloque. La principal diferencia entre ellos es la introducción del concepto de

memoria, esto es la codificación en un tiempotno depende solo de la secuencia de entrada en ese instante sino también de un número finito de entradas anteriores. Sin embargo algunas de las definiciones aplicables a los códigos de bloque lineales y cíclicos pueden darse también en el contexto de los códigos convolucionales, por ejemplo algunas de ellas se muestran en la tabla 1.

(19)

Introducción xvii

Códigos de Bloque Lineales Códigos Convolucionales

Peso de Hamming Peso de Hamming de un vector polinómico Distancia Distancia entre dos vectores polinómicos Distancia Mínima Distancia Libre

Matriz Generadora Matriz Generadora Matriz de Control de Paridad Matriz de Control de Paridad

Ciclicidad σ-Ciclicidad

Tabla 1: Algunos conceptos semejantes.

En este documento se presentan los códigos convolucionales desde dos puntos de vista, inicialmente a partir de las series de Laurent, se muestra las diferentes formas de representar tanto lask-secuencias de información como las n-secuencias código, y el proceso para pasar de una representación a otra. Sin embargo, también se muestra un segundo enfoque, ya no en el contexto de las series formales de potencias sino tomando las palabras código como elementos de un anillo de polinomios el cual se usa principalmente para trabajar con códigos convolucionales cíclicos.

Adicionalmente, se expone como construir el codificador físico de un código convolucional y cómo usarlo para realizar el proceso de codificación. También se muestra como determi-nar las secuencias generadoras discretas a partir del codificador físico. Se exhiben diferentes representaciones de un codificador convolucional y la operación convolucional usando diferen-tes procedimientos, como por ejemplo: matriz generadora discreta semi-infinita, secuencias generadoras polinomiales; para los cuales se construyeron algoritmos implementados en el programa computacional SAGE. Por otro lado se estudian dos representaciones gráficas co-mo son: el diagrama de estado y el diagrama enrejado y cóco-mo codificar una secuencia de información a partir de estas.

En este trabajo se muestra que es posible definir el concepto de código convolucional dual y se muestra como obtener la matriz de control de paridad mediante la forma de Smith de una matriz generadora polinomial del código convolucional dado. Finalmente, se presenta el estado del arte acerca de la estructura algebraica de los códigos convolucionales cíclicos tomando como referencia principal el artículo “On Cyclic Convolutional Codes” de Heide Gluesing-Luerssen y Wiland Schmale [9], mostrando como SAGEpuede ser una herramienta útil para conseguir resultados en proyectos de investigación futuros.

Este trabajo de investigación se divide en tres capítulos y contiene un apéndice en el cual se exponen los algoritmos con una implementación en el programa computacionalSAGEque se usan en el desarrollo de este documento para facilitar algunos cálculos. En el Capítulo 1 se presentan algunos conceptos básicos de Códigos Lineales y Teoría de Módulos necesarios para el desarrollo de los temas de los capítulos siguientes, así como también la definición de forma de Smith de una matriz polinomial y un método para determinarla, y el concepto de anillo de polinomios torcido que es fundamental en el desarrollo del Capítulo 3.

(20)

con-volucional, su definición formal y la matriz generadora del mismo, se presentan diferentes representaciones para el codificador convolucional y la operación convolucional como son: codificador físico, secuencias generadoras discretas, matriz generadora discreta semi-infinita, generadores polinomiales, matriz generadora polinomial y dos representaciones gráficas; se expone un algoritmo de decodificación gráfico conocido como el algoritmo de Viterbi y para finalizar la definición de código convolucional dual y un método para determinar la matriz de control de paridad a partir de una matriz generadora polinomial dada.

En el último capítulo se exponen las bases para el estudio de los códigos convoluciona-les cíclicos, algunas implementaciones en SAGE que son útiles para determinar una matriz generadora de un código convolucional σ-cíclico y cierta relación con los números de Midy.

(21)

Capítulo 1

Preliminares

En este capítulo con el fin de facilitar la comprensión de los temas a tratar en los demás capítulos, se presenta una serie de nociones y resultados básicos de códigos lineales y teoría de módulos, así como también el concepto de forma normal de Smith de una matriz polinomial y la definición formal de anillo de polinomios torcido.

1.1.

Códigos Lineales

En esta sección se presentan algunos de los conceptos básicos de códigos de bloque, códigos lineales y códigos lineales cíclicos que pueden darse también en el contexto de los códigos convolucionales como se verá en el desarrollo de los Capítulos 2 y 3.

Un conjunto finito A = {a1, a2, . . . , aq} se denomina alfabeto, los elementos de A se

llaman símbolos, una sucesión de n símbolos se denomina una n-úpla o palabra de longitud n sobre A. Sea An el conjunto de todas las n-uplas sobre A, así cualquier subconjunto no

vacíoC de An es un código de bloque q-ario. Cada elemento en C se llama palabra código y

si C contiene M elementos, entonces se dice que el código C tiene longitudn y tamaño M

o simplemente que C es un (n, M)-código. Si C no es de bloque entonces C se denomina código de longitud variable.

Un ejemplo de código de longitud variable es el código C sobre el alfabeto A = {0,1}

definido por C ={(0),(1,0),(1,1),(1,0,0),(1,0,1),(1,1,1,1)}.

Usualmente,Ase toma como el campo finitoFq, dondeqes una potencia de un primo. Así,

(22)

cuando el alfabeto esF2,F3 óF4, se dice queC es un código binario, ternario o cuaternario,

respectivamente.

Ejemplo 1.1. Los siguientes son códigos de bloque

i) C1 ={(0,0,0,0),(1,0,1,0),(0,1,0,1),(1,1,1,1)} sobre F2 es un (4,4)-código binario.

ii) C2 ={(2,1,0),(1,2,0),(1,2,2),(2,1,1)}sobre F3 es un (3,4)-código ternario.

La capacidad de detectar o corregir errores de un código viene dada en términos de la distancia mínima, la cual se define a partir de la distancia de Hamming.

Definición 1.1.

La distancia de Hamming entre n-uplas es el número de componentes en que difieren, d(v, v′) = #{i : vi 6= v

i}. La distancia mínima de un código es la menor distancia de Hamming entre las palabras del código,

d(C) = m´ın

x,y∈C{d(x, y)}.

Un (n, M)-código de bloque con distancia mínima d es un (n, M, d)-código. Es bien conocido que un código C con distancia mínima d, puede detectar (d−1)errores y corregir

⌊(d−1)/2⌋ errores.

Ejemplo 1.2.

Se denotan las palabras del códigoC1 del ejemplo1.1, comoc0 = (0,0,0,0),c1 = (1,0,1,0),

c2 = (0,1,0,1) y c3 = (1,1,1,1).

Las distancias de Hamming son:

d(c0, c1) =d(c0, c2) =d(c1, c3) = d(c2, c3) = 2 y d(c0, c3) = d(c1, c2) = 4.

Luego la distancia mínima deC1 es2, esto esC1 es un(4,4,2)-código. El cual puede detectar

3 errores y corregir 1error.

Observación 1.1. El concepto de distancia de Hamming se utiliza en el proceso de deco-dificación. Sea C un código, supóngase que palabras código son enviadas sobre un canal de

(23)

1.1 - Códigos Lineales 3

comunicación. Sixes una palabra recibida, ladecodificación por distancia mínima decodifica

x acx, sid(x, cx)es mínima entre todas las palabras código, es decir

d(x, cx) = m´ın{d(x, c), c∈C}.

Ejemplo 1.3.

Para el código C ={(0,1,1,0,1),(0,0,0,1,1),(1,0,1,1,0),(1,1,0,0,0)}. Se usa la decodifi-cación por distancia mínima para decodificar la palabra recibida(0,1,1,1,1).

Se calcula las distancias:

d((0,1,1,1,1),(0,1,1,0,1)) = 1, d((0,1,1,1,1),(0,0,0,1,1)) = 2, d((0,1,1,1,1),(1,0,1,1,0)) = 3, d((0,1,1,1,1),(1,1,0,0,0)) = 4.

Se decodifica (0,1,1,1,1) como la palabra código (0,1,1,0,1).

Definición 1.2.

El peso de Hamming de una palabra x en Fn

q es el número de sus componentes no nulas, wt(x) = #{i:xi 6= 0}. El peso mínimo de Hamming deC, denotado porwt(C)es el mínimo de los pesos de todas las palabras no nulas de C. Es decir,

wt(C) = m´ın{wt(c) :c∈C, c6= 0}.

Ejemplo 1.4.

Nuevamente se considera el código C1 del ejemplo 1.1 y las palabras de este como se

deno-taron en el ejemplo 1.2. Luego, los pesos de Hamming de las palabras no nulas del código

C1 son: wt(c1) = 2, wt(c2) = 2 y wt(c3) = 4. Por tanto el peso mínimo de C1 es wt(C) = 2.

Definición 1.3.

Un código lineal q-ario C de longitud n es un subespacio vectorial de Fn

q de dimensión k. En este caso se dice que C es un[n, k]-código. Además, una matriz generadora de C es una matriz G∈Fk×n

(24)

Cabe notar que la matriz generadora siempre existe y es de rango k, por tal motivo un código lineal se puede ver también como la imagen de la transformación lineal inyectiva

ϕ : Fk

q → Fnq definida por φ(u) = uG para todo u ∈ Fkq y G una matriz generadora. Esta

transformación representa la codificación.

Ejemplo 1.5.

Si se consideran los códigos C1 y C2 del ejemplo 1.1. Se puede ver que el código C1 es

un código lineal ya que cumple la condición de ser cerrado bajo la suma de sus elementos condición que es necesaria para ser subespacio vectorial, la cual además es suficiente para el caso de los subespacios sobre F2 pues los escalares son 0y 1. Pero el código C2 no es lineal

dado que el elemento (0,0,0) = (2,1,0) + (1,2,0)6∈C2.

El código lineal C1 tiene a lo más dos elementos linealmente independientes (L.I), por

ejemplo (1,0,1,0)y (0,1,0,1) son L.I., pero también lo son (0,1,0,1) y (1,1,1,1). Así que matrices generadoras para el código C1 son:

G1 =   1 0 1 0 0 1 0 1    o G2 =   0 1 0 1 1 1 1 1   

En general, determinar la distancia mínima de un (n, M)-código de bloque arbitrario, es una tarea que puede llevar mucho tiempo, dado que es necesario calcular M

2

distancias de Hamming. Pero, para un [n, k]-código lineal sobre Fq este cálculo se simplifica

conside-rablemente, ya que la distancia mínima satisface la siguiente igualdad, ver [16, Teorema 4.3.8]

d(C) = m´ın

x,y∈C{d(x, y)}= m´ınc∈C{w(c)}=wt(C).

por lo cual solo se requiere calcularM −1 pesos posibles dondeM =qk es el tamaño de C.

Ejemplo 1.6.

Para determinar la distancia mínima del código linealC1 en lugar de calcular las6distancias

que se calcularon en el ejemplo1.2, basta con calcular los3 pesos posibles que se calcularon en el ejemplo 1.4.

(25)

1.1 - Códigos Lineales 5

vectorial denominado el dual C⊥, el cual también es un código lineal y se define a

continua-ción

Definición 1.4.

Sea C un [n, k]-código lineal. El conjunto

C⊥={x∈Fnq :x·c= 0 para todo c∈C}.

es el código dual de C.

De esta manera el código dual de un código lineal, se define como el complemento ortogonal del código lineal C. Además, se puede probar que C⊕C⊥ =Fn

q.

Dado que C⊥ es un código lineal, este tiene una matriz generadora H mediante la cual

se define la matriz de control de paridad de C. Así, una matriz de control de paridad de

C es una matriz generadora de C⊥, tal matriz siempre existe y es de dimensión nk×n.

Además, si Ges una matriz generadora de C se satisface que GHT = 0, lo cual implica que

para todoc∈C, cHT = 0.

Ejemplo 1.7.

Determinar el código dual C⊥ del código lineal binario

C ={(0,0,0,0,0),(1,0,1,1,0),(0,1,0,1,1),(1,1,1,0,1)}.

Una base para C es {(1,0,1,1,0),(0,1,0,1,1)}. De ahí que una matriz generadora para C

es G=   1 0 1 1 0 0 1 0 1 1   .

Ahora, se calcula una base para el espacio nulo del sistemaxG=0, conx= (x1, x2, x3, x4, x5)

enF5

2. El generado por estos elementos por definición es el código dual de C

xGT = x1 x2 x3 x4 x5 ·             1 0 0 1 1 0 1 1 0 1             = x1+x3+x4 x2+x4+x5 = 0 0 .

(26)

Así una base para C⊥ es{(1,0,1,0,0),(1,1,0,1,0),(0,1,0,0,1)} por lo tanto

C⊥ ={(0,0,0,0,0),(1,0,1,0,0),(1,1,0,1,0),(0,1,0,0,1),

(0,0,1,1,1),(1,1,1,0,1),(0,1,1,1,0),(1,1,0,1,1)}.

Una matriz de control de paridad de C es

H =       1 0 1 0 0 1 1 0 1 0 0 1 0 0 1      .

Usando la matriz de control de paridad, David Slepian en 1960 dio un método general de decodificación para códigos lineales [27], del cual se puede encontrar mayor información en [16, Sec. 4.8].

Definición 1.5.

Sea C un [n, k]-código con matriz de paridad H. Si v ∈Fn

q, el síndrome de v se define por s(v) = sH(v) =vHT.

En particular para cada e∈Fn

q todos los elementos del conjunto e+C ={e+c:c∈C}

tienen el mismo síndrome, pues por linealidad

(e+c)HT =eHT +cHT =eHT para todo cC

La decodificación por síndromes, que asigna a cada síndrome el vector de peso mínimo en el conjuntoe+C correspondiente llamadolíder, permitirá decodificar cualquier palabra código enviada según la capacidad de detección y corrección de errores.

Ejemplo 1.8.

Considere el código C del ejemplo 1.7. Suponga que se recibió la palabra x = (1,1,0,1,1). Se usa la matriz de control de paridad

H =       1 0 1 0 0 1 1 0 1 0 0 1 0 0 1      

(27)

1.1 - Códigos Lineales 7

Primero se calculan los conjuntos e+C:

C0 = (0,0,0,0,0) +C ={(0,0,0,0,0),(1,0,1,1,0),(0,1,0,1,1),(1,1,1,0,1)} C1 = (0,0,0,0,1) +C ={(0,0,0,0,1),(1,0,1,1,1),(0,1,0,1,0),(1,1,1,0,0)} C2 = (0,0,0,1,0) +C ={(0,0,0,1,0),(1,0,1,0,0),(0,1,0,0,1),(1,1,1,1,1)} C3 = (0,0,1,0,0) +C ={(0,0,1,0,0),(1,0,0,1,0),(0,1,1,1,1),(1,1,0,0,1)} C4 = (0,1,0,0,0) +C ={(0,1,0,0,0),(1,1,1,1,0),(0,0,0,1,1),(1,0,1,0,1)} C5 = (1,0,0,0,0) +C ={(1,0,0,0,0),(0,0,1,1,0),(1,1,0,1,1),(0,1,1,0,1)} C6 = (0,0,1,0,1) +C ={(0,0,1,0,1),(1,0,0,1,1),(0,1,1,1,0),(1,1,0,0,0)} C7 = (0,1,1,0,0) +C ={(0,0,0,0,0),(1,1,0,1,0),(0,0,1,1,1),(1,0,0,0,1)}

Como, s(x) =xHT = (1,0,1)y el síndrome de los elementos de C

5 es el mismo, además

la palabra de peso mínimo en C5 es (1,0,0,0,0). Por tanto la palabra x se decodifica como

c=x+ (1,0,0,0,0) = (1,1,0,1,1) + (1,0,0,0,0) = (0,1,0,1,1).

Una clase importante de códigos lineales son los códigos cíclicos, para los cuales su estructura matemática facilita los procesos de codificación y decodificación. Además, un código cíclico de longitud n es determinado totalmente por un polinomio de grado menor que n, denominado polinomio generador.

Definición 1.6.

Un código lineal C ⊂Fn

q es cíclico si

c0c1· · ·cn−2cn−1 ∈C implica cn−1c0c1· · ·cn−2 ∈C.

Es decir, según esta definición, un código lineal C es cíclico si es cerrado bajo el despla-zamiento cíclico de las letras que componen cada palabra.

Ejemplo 1.9.

Sean C3 = {(0,0,0),(1,1,0),(1,0,1),(0,1,1)} y C4 = {(0,0,0),(1,0,1),(0,1,0),(1,1,1)}

[3,4]-códigos lineales sobre F2. El código C3 es cíclico, pero C4 no lo es pues la palabra

(28)

cíclico.

Ahora se presenta una forma de caracterizar un código cíclico, que permite ver la estruc-tura algebraica que estos poseen. Si C es un código lineal sobre Fn

q, entonces a cada palabra

código c= (c0, c1, . . . , cn−1)∈C, se le asocia un polinomio en el anillo cociente Rn = hxFnq[−1ix]

de las clases residuales de Fq[x] módulo xn−1 de la siguiente manera,

φ : Fn

q −→ Rn

c −→ φ(c) = [c0+c1x+· · ·+cn−1xn−1].

donde φ es un isomorfismo de espacios vectoriales de C sobre el subespacio φ(C) de Rn. Además, se puede probar que C es un código cíclico, si y solo si, φ(C)es un ideal del anillo cociente Rn. En consecuencia estudiar códigos cíclicos es equivalente a estudiar ideales del anillo Rn, con la particularidad de queRn es un dominio de ideales principales.

Luego para todo ideal no cero I de Rn existe un único polinomio mónico de grado minimal que lo genera. El único polinomio mónico se denomina el polinomio generador de

I. Para un código cíclico C sobre Fn

q, el polinomio generador de φ(C) es llamado también

el polinomio generador de C. Esto evidencia una ventaja ya que los códigos cíclicos, pueden ser determinados completamente mediante un polinomio de grado menor quen, donde n es la longitud del código.

Sin embargo, un código cíclico C puede ser generado por otros polinomios distintos al polinomio generador. Por lo tanto, se adopta la notación C = hhp(x)ii que significa que C

es el ideal generado por p(x) y que p(x)es el polinomio generador de C.

Existen dos maneras de codificar mensajes utilizando códigos cíclicos. Una de ellas es dado C = hhg(x)ii un [n, n−r]-código cíclico, con grad(g(x)) = r. Se puede codificar el mensaje q-ario r(x) de longitud n−r, de la siguiente formac(x) =r(x)g(x).

Sea g(x) el polinomio generador de un [n, n−r]-código cíclico C. Se puede probar que

g(x)divide a xn1enRn, luego xn1 = g(x)h(x) dondeh(x)F

q[x]es un polinomio de

grado n−r. El polinomioh(x) se denomina el polinomio de control deC. Sea h(x) = Σk

i=0aixi un polinomio de grado k sobre Fq se define el polinomio recíproco hR(x) como

hR(x) =xkh(1/x) = Σk

(29)

1.2 - Forma de Smith de una matriz polinomial 9

SiL es un código cíclico, entonces el código dual L⊥ es también un código cíclico el cual

es generado porh−10 hR(x)donde h0 es el término independiente del polinomio de control de

L y hR(x) su polinomio recíproco.

1.2.

Forma de Smith de una matriz polinomial

A continuación se introducen dos matrices cuadradas invertibles con entradas en Fq[z],

que se denominan elementales con ellas se realizan operaciones elementales, las cuales son el producto del efecto de multiplicar a izquierda o a derecha por estas matrices.

Sean p(z)∈Fq[z] y eij una matriz cuadrada con 1 en la posición (i, j) y 0 en las demás

posiciones. Luego, Pij =1eiiejj +eij +eji es la matriz elemental invertible por medio de la cual se realiza la permutación de filas i y j o las columnas i y j dependiendo de si multiplica a la izquierda o derecha de una matriz. Es claro que Pij−1 =Pij.

Ahora se considera la matriz Tij(p(z)) =1+p(z)eij, la cual es invertible dado que

Tij(p(z))Tij(−p(z)) = (1+p(z)eij)(1p(z)eij) =1.

Esta matriz lleva a cabo la adición de los elementos de la i-ésima fila (i-ésima columna) multiplicados porp(z)a los elementos de laj-ésima fila (j-ésima columna) si la multiplicación se realiza a izquierda (derecha) de una matriz.

A continuación, se presenta la descomposición en factores invariantes de una matriz que se basa en el siguiente resultado algebraico, ver [13, p. 181].

Teorema 1.1. (Forma de Smith)

Sea G(z)una matriz polinomial con entradas en Fq[z] de tamaño k×n, con k≤n de rango r. Entonces G(z) puede escribirse de la siguiente manera

G(z) =A(z)Γ(z)B(z), (1.1)

donde A(z) y B(z) son matrices polinomiales invertibles con entradas en Fq[z] de tama-ño k ×k y n×n respectivamente y Γ(z) es una matriz diagonal de tamaño k ×n cuyos elementos no nulos γi(z) ∈Fq[z] con 1≤ i ≤ r satisfacen que γi(z) | γi+1(z), dicha matriz

(30)

descomposición en factores invariantes de G(z).

Además, si ∆i(z) ∈ Fq[z] es el máximo común divisor de los i×i menores de G(z), entonces γi(z) = ∆i(z)/∆i−1(z) para1≤i≤r y∆0(z) = 1 por convención.

Demostración.

SiG(z) = 0, no hay nada que probar. Así se asume que G(z)6=0.

Sea gij(z) un elemento no nulo de G(z) con gr(gij(z)) minimal. Por medio transforma-ciones elementales por fila y columna, se lleva dicho elemento a la posición(1,1). Supóngase ahora que esta allí. Sean αij(z) con 1 ≤ i ≤ k y 1 ≤ j ≤ n los elementos de esta nueva matriz. Para j > 1, se divide un elemento de la primera fila α1j(z) por α11(z), entonces se

tiene que

α1j(z) = α11(z)βj(z) +β1j(z), donde gr(β1j(z))< gr(α11(z)).

Ahora, se suma la primera columna multiplicada por −βj(z) a laj-ésima columna. Esta operación elemental reemplaza α1j(z) por β1j(z). Si β1j(z)6= 0 se obtiene una matriz

equi-valente para la cual se ha reducido el grado mínimo de una entrada no nula. Se repite el procedimiento original a esta nueva matriz. Del mismo modo, si

αj1(z) = α11(z)βj(z) +βj1(z), donde gr(βj1(z))< gr(α11(z)),

entonces por medio de operaciones elementales por fila del mismo tipo del caso anterior, permiten obtener una matriz para la cual se reduce el grado mínimo de las entradas no cero de la primera columna. Dado que el grado es siempre un entero no negativo en un número finito de aplicaciones de este proceso se obtiene una matriz equivalente G′(z) = (βij(z))en

la cual β11(z) tiene grado minimal y β11 | β1j y β11 | βi1 para todo i > 1 y todo j > 1.

Entonces por medio de transformaciones elementales en las filas y columnas se obtiene una matriz equivalente de la forma

         β11(z) 0 · · · 0 0 ... G′′(z) 0          .

Sea γ1(z) = β11(z). A continuación se demuestra que γ1(z) divide a todos los elementos

en G′′(z) = (δij(z)). Suponga que γ

(31)

1.2 - Forma de Smith de una matriz polinomial 11

primera obteniendo una nueva columna. Repetir el primer proceso proporciona un elemento en la posición (1,1) con menor grado que β11(z), lo cual es una contradicción.

Luego, repitiendo el procedimiento inicial a la sub-matriz G′′(z) se obtiene una matriz

equivalente de la forma             β11(z) 0 0 · · · 0 0 δ11(z) 0 · · · 0 0 0 ... ... G′′′(z) 0 0             .

Así γ2(z) = δ11(z), si se procede como antes en un número finito de pasos se obtiene la

matriz diagonal Γ(z)cuyos elementos no nulos satisfacen que γi(z)|γi+1(z).

Ahora, se prueba que ∆i no se afecta por operaciones elementales de fila o columna

en G(z). Sea A(z) = (aij(z)) de tamaño b× b con entradas en Fq[z] cualquier producto

de operaciones elementales de fila. La entrada (i, j) de A(z)G(z) es Pkaik(z)gkj(z). Esto prueba que las filas de A(z)G(z)son combinación lineal de de las filas deG(z). Por lo tanto, los i×i menores de A(z)G(z) son combinación lineal de los i×i menores de G(z). Así, el máximo común divisor de todos losi×i menores de G(z)es un divisor del máximo común divisor de todos los i ×i menores de A(z)G(z). Dado que el determinante de A(z) es 1

esta es invertible, A−1(z) existe y es una matriz polinomial de tamaño b ×b. Repitiendo

el argumento anterior para la matriz A−1(z)(A(z)G(z)) se garantiza que el máximo común divisor de todos los i×i menores de A(z)G(z) son un divisor de todos losi×i menores de

A−1(z)(A(z)G(z)) =G(z). Por lo tanto, el máximo común divisor de todos los menores de

G(z) y de A(z)G(z) son el mismo. Así ∆i(z) es invariante bajo operaciones elementales de

fila. Con un argumento análogo, se puede probar que ∆i(z) es invariante bajo operaciones

elementales por columna.

La forma de Γ(z) muestra que

∆1(z) =γ1(z),

∆2(z) =γ1(z)γ2(z),

...

(32)

Luego, si∆0(z) = 1 se tiene que

γi(z) = ∆i(z) ∆i−1(z)

, para 1≤i≤r.

La unicidad de los ∆i(z) implica la unicidad de los γi(z)para todo i.

Ejemplo 1.10.

Determinar la forma de Smith de la matriz polinomial binaria

G(z) =   1 +z z 1 z2 1 1 +z+z2   

y su descomposición en factores invariantes G(z) =A(z)Γ(z)B(z).

Para determinar la forma de Smith de la matrizG(z)se procede como en la demostración del Teorema 1.1, así primero se debe ubicar en la posición (1,1) un elemento de grado mínimal; para ello se permutan las columnas1 y 3 así

G(z)P13=    1 z 1 +z 1 +z+z2 1 z2   .

Luego, para hacer0los elemenetos en las posiciones (1,2)y(1,3)se realizan operaciones del tipo Tij como sigue

(G(z)P13)T12(z)T13(1 +z) =    1 0 0 1 +z+z2 1 +z+z2+z3 1 +z2+z3   .

A continuación se hace0la posición(2,1), para ello basta con multiplicar por la izquierda la matriz anterior por T21(1 +z+z2) y se tiene

T21(1 +z+z2)(G(z)P13T12(z)T13(1 +z)) =   1 0 0 0 1 +z+z2+z3 1 +z2+z3   =G′(z).

Siguiendo la técnica de la prueba se divide 1 +z2+z3 por 1 +z+z2+z3 obteniendo

1 +z2+z3 = (1 +z+z2+z3)1 +z,

(33)

1.2 - Forma de Smith de una matriz polinomial 13 G′(z)T23(1) =   1 0 0 0 1 +z+z2+z3 z   .

Ahora, en la matriz obtenida en el paso anterior se permutan las columnas 2 y 3 y se tiene (G′(z)T23(1))P23=   1 0 0 0 z 1 +z+z2+z3   .

Ahora se debe dividir 1 +z+z2+z3 por z esto es

1 +z+z2+z3 =z(1 +z+z2) + 1.

Luego, se multiplica la columna 2 por1 +z+z2 y se le suma a la columna 3, así

(G′(z)T 23(1)P23)T23(1 +z+z2) =   1 0 0 0 z 1   .

Nuevamente es necesario intercambiar las columnas 2 y 3como sigue

(G′(z)T23(1)P23T23(1 +z+z2))P23 =   1 0 0 0 1 z   .

Luego se divide z por 1obteniendo que z = 1(z) + 0, así finalmente a la columna3 se le suma z veces la columna2, esto es

(G′(z)T23(1)P23T23(1 +z+z2)P23)T23(z) =   1 0 0 0 1 0   = Γ(z).

El proceso termina dado que la matriz G(z) tiene rango 2 y de su forma de Smith se tiene que los factores invariantes son todos iguales a 1.

Finalmente para obtener la descomposición de la matriz G(z), basta con rastrear hacia atrás las matrices elementales usadas en el proceso para obtener Γ(z) y multiplicar esta por sus inversas como sigue

(34)

De lo cual se concluye que A(z) = T21(1 +z+z2) =    1 0 1 +z+z2 1    y B(z) = T23(z)P23T23(1 +z+z2)P23T23(1)T13(1 +z)T12(z)P13 =       1 +z z 1 1 +z2+z3 1 +z+z2+z3 0 z+z2 1 +z+z2 0      .

Por lo tanto, se tiene que la siguiente descomposición de la matriz G(z)

G(z) =    1 0 1 +z+z2 1      1 0 0 0 1 0          1 +z z 1 1 +z2+z3 1 +z+z2+z3 0 z+z2 1 +z+z2 0      .

1.3.

Módulos

En esta sección se presentan algunos conceptos y propiedades básicas de la teoría de módulos, puesto que se usan a lo largo del documento y son necesarios principalmente en el Capítulo 3.

Definición 1.7. (R-módulo)

Sea R un anillo. Un grupo abeliano M escrito aditivamente, se denomina un R-módulo izquierdo si para cada a∈R y cada m∈M se tiene que un producto am∈M tal que:

i) (a+b)m=am+bm

ii) a(m1+m2) = am1+am2

iii) a(bm) = (ab)m

(35)

1.3 - Módulos 15

Análogamente, se defineR-módulo a derecha, considerando la multiplicación de elemen-tos deM por elementos deRal lado derecho. Ahora se presenta la definicón deR-submódulo.

Definición 1.8. (R-submódulo)

Sea M un módulo sobre un anillo R. Un subconjunto no vacio N ⊂ M se llama un R-submódulo de M si se cumplen las siguientes condiciones:

i) Para todo x, y ∈N se tiene que x+y∈N.

ii) Para todo r∈R y todo n∈N se cumple que rn∈N.

A continuación, se presentan las definiciones básicas para extender la noción de base de un espacio vectorial, para el caso de un módulo definido sobre un anillo.

Definición 1.9. (Conjunto generador)

Un conjunto S = {si}i∈I de elementos de un R-módulo M es un conjunto de generadores de M siM =RS; es decir, si todo elemento de M puede escribirse como una combinación lineal finita de elementos de S con coeficientes en R.

Definición 1.10. (Independencia lineal)

Un conjunto S = {si}i∈I de elementos de un R-módulo M es linealmente independiente o simplemente R-libre si, para cualquier combinación lineal finita de elemento en S con coeficientes en R

ri1si1 +ri2si2 +· · ·+ritsit = 0,

implica que ri1 =ri2 =· · ·=rit = 0

Definición 1.11. (Base o R-base)

Un conjunto S ={si}i∈I de elementos de un R-módulo M es una base de Msobre R o una R-base si, S es un conjunto de generadores linealmente independientes.

Definición 1.12. (R-módulo libre)

Un R-módulo M es libre si este tiene una base.

(36)

Teorema 1.2.

Sean R un dominio de ideales principales, F un R-módulo libre de dimensión finita y M un submódulo de F. Entonces M es libre y su dimensión es menor o igual que la dimensión de F.

Demostración.

Sean {x1, x2,· · · , xn} una base de F y Mr la intersección deM con hx1,· · · , xri el módulo

generado por x1,· · · , xr.

Entonces M1 = M ∩ hx1i es un módulo de hx1i y es del tipo ha1x1i para algún a1 ∈R.

Así, M1 es cero o libre de dimensión1.

Ahora como hipótesis de inducción se asume queMr es libre de dimensión menor o igual que r.

SeaA el conjunto que consiste de todos los elementosaRtales que existe un elemento

x∈M que puede escribirse en la forma

x=b1x1 +· · ·+brxr+axr+1 con bi ∈R.

Luego A es un ideal de R y es principal, generado por un elementoar+1.

Si ar+1 = 0, entonces Mr+1 =Mr y termina el paso inductivo.

Siar+1 6= 0, seaw∈Mr+1 tal que el coeficiente de wcon respecto a xr+1 es ar+1, esto es

w=d1x1+d2x2+· · ·+drxr+ar+1xr+1.

Sea x∈Mr+1 entonces

x=b1x1+b2x2+· · ·+brxr+br+1xr+1 con bi ∈R,

pero Mr+1 = M ∩ hx1,· · ·xr+1i luego x ∈ M y br+1 ∈ A; es decir, existe c ∈ R tal que

br+1 =car+1, de ahí que

x=b1x1 +b2x2+· · ·+brxr+car+1xr+1;

y se tiene

(37)

1.3 - Módulos 17

Así, x−cw ∈Mr. Luego todo x∈Mr+1 se puede escribir como

x=c1x1+c2x2+· · ·+crxr+cw para algún c∈R,

esto es Mr+1 =Mr+hwi.

Ahora, suponga que Mr∩ hwi 6=h0i. Sea z ∈Mr∩ hwientonces

z =b1x1+b2x2+· · ·+brxr y z =g(d1x1+· · ·+drxr+ar+1xr+1) con g 6= 0∈R.

Luego 0 = c1x1 +c2x2 +· · ·+crxr +gar+1xr+1 con ci = bi −gdi, lo cual contradice que

{x1, x2,· · · , xr+1} es un conjunto linealmente independiente ya que gar+1 6= 0. Por lo tanto

Mr∩ hwi=h0i.

Así, Mr+1 se puede escribir como una suma directa de Mr y hwi, lo cual garantiza que

Mr+1 es libre de dimensión menor o igual que r+ 1.

Definición 1.13. (Suma directa)

Sean R un anillo, M un R-módulo izquierdo y N1, N2, . . . , Nk R-submódulos izquierdos de

M. Entonces M es la suma directa de los submódulos Mi que se denota M =⊕k

i=1Ni, si las

siguientes condiciones se cumplen:

i) M =N1 +N2+· · ·+Nk.

ii) Para todo 1≤i≤k, Ni∩(Pi6=jNj) ={0} Definición 1.14. (Sumando directo)

Un submódulo N de un R-módulo M es un sumando directo de M si existe otro módulo N′

tal que M =N ⊕N′.

Los Lemas1.1y1.2sobre sumandos directos que se presentan a continuación, se requieren para garantizar la veracidad de la Proposición 3.2.

Lema 1.1. Sean R un anillo, M un R-módulo izquierdo y N1, N2, . . . , Nk R-submódulos

izquierdos de M. Entonces las siguientes afirmaciones son equivalentes.

(38)

ii) Todo elemento m ∈M puede escribirse de forma única como

m =n1+n2+· · ·+nk con ni ∈Ni,1≤i≤k

Demostración.

i)⇒ii) Suponga queM es suma directa de losR-submódulos izquierdos N1, N2, . . . , Nk; luego

para cada m ∈ M existen n1, n2, . . . , nk con ni ∈ Ni para 1 ≤ i ≤ k tales que

m=n1+n2+· · ·+nk. Ahora, suponga que esta representación no es única, es decir

m=n′

1+n′2+· · ·+n′k con n′i ∈Ni para 1≤i≤k de ahí que n1+n2+· · ·+nk =n1′ +n′2+· · ·+n′k. Luego, ni−n′i =n1−n1′ +n2−n′2+· · ·+ni−1−n′i−1+ni+1−n′i+1+· · ·+nk−n′k conni−n′ i ∈Niyn1−n′1+n2−n′2+· · ·+ni−1−n′i−1+ni+1−n′i+1+· · ·+nk−n′k ∈ P i6=jNj,

y de la Definición 1.13se tiene que Ni∩(Pi6=jNj) ={0}, asíni−n′

i = 0. Por lo tanto ni =n′i para todo 1≤i≤k.

ii)⇒i) Suponga que para cada m ∈M se puede escribir de forma única como

m=n1+n2+· · ·+nk con ni ∈Ni, para 1≤i≤k.

De la hipótesis se tiene que M = N1+N2+· · ·+Nk. Se prueba a continuación que

Ni ∩(Pi6=jNj) = {0}. Para ello suponga que existe x ∈ Ni ∩(Pi6=jNj), entonces

x =x+ 0, con x ∈ Ni y 0∈ Pi6=jNj; también x = 0 +x con 0 ∈ Ni y x ∈ Pi6=jNj

así dado que la representación dex∈M es única se tiene que x= 0.

Lema 1.2.

Sea R un anillo. Sean M un R-módulo izquierdo y N un R-submódulo de M. Entonces N es un sumando directo de M si y solo si existe una función π:M →N que es R-lineal y la identidad en N.

Demostración.

(39)

1.3 - Módulos 19

Luego cualquierm ∈M puede expresarse de forma única comom=n+n′ para algúnnN

y n′ N. Ahora sea π : M N definida por π(m) = n donde n es el elemento único de

N en la representación de m. Ahora sean m1, m2 ∈ M y r ∈ R, entonces π(m1 +m2) =

π((n1+n2)+(n′1+n2′)) =n1+n2 =π(m1)+π(m2)yπ(rm1) = π(rn1+rn′1) =rn1 =rπ(m1).

Así π es R-lineal y es la función identidad en N.

Recíprocamente, seanm∈M,n =π(m)yn′ =mnluegoπ(n) =π(mn) = 0. SeaN

el kernel deπ, entoncesn′ N. Ahora pararR,π(rn) =π(rmrn) =π(rm)π(rn) =

r(π(m)−π(n)) = 0 lo cual implica que rn′ N. Así Nes un R-modulo izquierdo de M.

Dado que M =N +N′ y N N= 0 se tiene que N es un sumando directo de M.

La Definición 1.15y el Teorema1.3son necesarios en la Sección3.2 para la demostración de la Proposición 3.6.

Definición 1.15. (A Invariante)

Un subespacion R′ R se denomina invariante con respecto al operador A o A invariante

si AR′ R; es decir, si xRimplica Ax R. En otras palabras, el operador A lleva un

vector del subespacio R′ en otro vector del mismo subespacio.

Teorema 1.3. (Teorema de Descomposición de un Espacio en Subespacios Invariantes) Sean E un k-espacio vectorial, A un operador de E. Si el polinomio minimal ψ(λ) se descompone como producto de dos polinomios mónicos coprimos ψ1(λ) y ψ2(λ); es decir,

ψ(λ) = ψ1(λ)ψ2(λ). Entonces, E se descompone en suma directa de subespacios invariantes

por A

E = kerψ1(A)⊕kerψ2(A),

con kerψi(A) = {x ∈ E : ψi(A)x = 0} para i = 1,2. Además, el polinomio minimal de

kerψi(A) es ψi(λ) para i= 1,2.

(40)

1.4.

Anillos de polinomios torcidos

En esta sección se presentan los requisitos para que un anilloSsea unanillo de polinomios torcido1

en una indeterminada x sobre algún anillo R. Si se quiere que los coeficientes de los polinomios estén a la izquierda, entonces los elementos de S deben tener la forma

r0 +r1x+· · ·+rnxn para n ∈ Z+ y ri ∈ R. Para que los coeficientes y grados estén bien

definidos, se requiere que dos polinomios sean iguales solo si sus coeficientes coinciden. Esto significa que hasta ahora se pide queS sea unR-módulo izquierdo con base{1, x, x2, x3, . . .}.

Además, un requisito básico que se pide es que la multiplicación de polinomios debe respetar grados en la medida de lo posible; en particular el grado de un producto de po-linomios no debe ser mayor que la suma de los grados de los factores. Para satisfacer este requisito, es suficiente asumir que, para cada r ∈ R el producto xr pueda escribirse con coeficientes a la izquierda y tenga grado a lo más 1. En otras palabras xr = r′x+r′′ para

algunos r′, r′′ R. Dado que se supone que los coeficientes de un polinomio son únicos r

y r′′ deben depender únicamente de r. Por lo tanto, deben existir funciones α ,δ :R R

tales quexr =α(r)x+δ(r)para todo r∈R. Ahora, por el hecho de estar trabajando en un anillo cabe preguntar ¿qué propiedades se imponen a α y δ?

La ley distributiva requiere quex(r+s) =xr+xspara todor, s∈R, de donde se deduce que α y δ deben ser funciones aditivas. Dado quex1 =x, se tiene que α(1) = 1 y δ(1) = 0. La ley asociativa requiere que x(rs) = (xr)s para todor, s∈R, por lo cual

α(rs)x+δ(rs) = (α(r)x+δ(r))s=α(r)(α(s)x+δ(s)) +δ(r)s.

Por lo tanto, se tiene α(rs) = α(r)α(s) y δ(rs) = α(r)δ(s) + δ(r)s para r, s ∈ R. En particular,αdebe ser un endomorfismo en el anilloR. La funciónδes similar a una derivación excepto por la aparición de α y esta se denomina una derivación torcida2

con respecto a α

o simplemente una α-derivación.

Definición 1.16. (α-derivación)

Sea α un endomorfismo en el anillo R. Una α-derivación en R es cualquier función aditiva δ:R →R tal que δ(rs) =α(r)δ(s) +δ(r)s para todo par r, s∈R y δ(1) = 0.

1

En inglés, Skew polynomials rings. 2

(41)

1.4 - Anillos de polinomios torcidos 21

Observación 1.2. Estrictamente hablando, se definió una α-derivación izquierda, aunque en este trabajo no será necesario el concepto de α-derivación derecha, esta se puede definir como una función aditivaδ :R→R tal queδ(rs) = δ(r)α(s) +rδ(s)para todo par r, s∈R

y δ(1) = 0.

En el caso de una derivación ordinaria, no es necesario incluir la condiciónδ(1) = 0, pero en la definición de una α-derivación sí, ya que se deduce de la regla del producto torcido3

. Siα es la función identidad enR, entonces laα-derivaciónδ es precisamente una derivación ordinaria.

Lo anterior lleva a construir un anillo de polinomios torcido en el cual la multiplicación es afectada por un endomorfismo α de anillos y unaα-derivación δ.

Definición 1.17. (Anillo de polinomios torcido sobre R)

Sea R un anillo, α un endomorfismo del anillo R y δ una α-derivación en R. Se denota S =R[x;α, δ] al conjunto tal que

a) S es un anillo, que contiene a R como subanillo.

b) x es un elemento de S.

c) S es un R-modulo libre izquierdo con base {1, x, x2, . . .}.

d) xr=α(r)x+δ(r) para todo r∈R.

El anillo S se denomina un anillo de polinomios torcido sobre R.

Observación 1.3. Cabe aclarar que algunos autores prefieren que sus anillos de polinomios torcidos tengan coeficientes a la derecha. Para lograr esto se inicia con un anillo R, α un endomorfismo deR y δ una α-derivación derecha en R. El correspondiente anillo de polino-mios torcido es unR-modulo libre derecho con base{1, x, x2, . . .}, donde xr=(r) +δ(r)

para todor ∈R.

Hasta el momento, la definición dada es solamente una lista de condiciones, pero no se ha probado que un anillo de la forma R[x;α, δ]existe, ni que este sea único salvo isomorfismos.

(42)

Por otra parte, una vez descrita una regla de multiplicación explicita para R[x;α, δ], el proceso para demostrar que este es un anillo no es el habitual de verificar los axiomas de anillo; sino que se prueba la existencia de R[x;α, δ] sin definir explícitamente la multiplica-ción. Dicha prueba puede encontrarse en [10, Prop. 2.3]. En la Sección 3.2 del Capítulo 3se trabaja con un tipo particular de estos anillos esto es el caso cuando la α-derivación δ= 0, y en esta caso se tiene que R[x;α,0] = R[x;α].

A partir del item d)de la Definición 1.17 se puede determinar una formula general para expresar xir, para cualquier iN y rR, como un polinomio con coeficientes a izquierda.

Por ejemplo, x3r= x2(xr) = x2(α(r)x+δ(r)) = x2α(r)x+x2δ(r) = x((r))x+x((r)) = x(α(α(r))x+δ(α(r)))x+x(α(δ(r)) +δ(δ(r))) = (xα2(r))x2+ ((α(r)))x+ ((δ(r)))x+2(r) = [α(α2(r))x+δ(α2(r))]x2+ [α(δ(α(r)))x+δ(δ(α(r)))]x +[α(α(δ(r)))x+δ(α(δ(r)))]x+ [α(δ2(r))x+δ(δ2(r))] = α3(r)x3 + [δα2(r) +αδα(r) +α2δ(r)]x2+ [δ2α(r) +δαδ(r) +αδ2(r)]x+δ3(r).

(43)

Capítulo 2

Códigos Convolucionales

Este capítulo se divide en cinco secciones, en la primera se presenta la definición de un código convolucional desde el punto de vista de las series de Laurent y en el mismo sentido la definición de codificador convolucional, las diferentes formas de representar tanto las

k-secuencias de información como las n-secuencias código; la segunda sección está dedicada a el codificador físico de un código convolucional; en la tercera sección se muestran las representaciones analíticas y algunas gráficas relacionadas a un codificador convolucional y la operación de codificación convolucional. En la cuarta sección se expone la decodificación mediante el algoritmo de Viterbi y finalmente en la última sección se introduce el concepto de código dual de un código convolucional. La principal referencia de este capítulo es el libro de A. Dholakia, ver [3].

2.1.

Definición y notación

La definición de código convolucional puede presentarse de dos formas diferentes. Una consiste en definir primero el codificador y a partir de este establecer el código y la otra es hacerlo en el sentido contrario; sin embargo en los dos casos se define el mismo objeto. En este documento se asumirá la posición de definir primero el código y luego el codificador.

Además, estas definiciones pueden darse en diferentes niveles de generalidad, lo que depende de la estructura escogida tanto para el alfabeto como para los elementos del código. Los elementos de estos conjuntos se pueden tomar de las siguientes estructuras algebraicas

(44)

infinitas, siendo F un campo arbitrario: F[z] el anillo de polinomios en la indeterminada z

con coeficientes en el campo F, ver [12, p. 149]; F(z) ={p/q :p, q ∈F[z] y q 6= 0} el campo de funciones racionales en z sobre F, ver [1, p. 342];F[[z]] ={Σ∞

i=0fizi :fi ∈F} el anillo de

series de potencias formales enz sobreF, ver [12, p. 154] o F((z)) ={Σ∞

i=−∞fizi :fi ∈F}el

campo de series formales de Laurent, ver [18, p. 873].

Para el caso del campo de las series formales de Laurent, cabe recordar la forma en que se construyen los inversos multiplicativos. Dado que los elementos en el conjunto de las series formales de potenciasF[[z]], son de la forma f(z) = P∞n=0anzn con coeficientes en el campo F, este conjunto es un dominio entero con la adición y la multiplicación usuales. Una serie formal de potenciasf(z)admite un inverso multiplicativof−1(z)enF[[z]]si y solo sia

0 6= 0,

ver [18, Teorema 1]. Ahora, sif(z)es cualquier elemento no nulo deF((z))entonces no todos sus coeficientes son cero y si e es el menor índice tal que ae 6= 0, f(z) se puede reescribir comof(z) = zeh(z)para algúnh(z)F[[z]]el cual admite un inverso multiplicativo. Luego, f−1(z) = z−eh−1(z)es el inverso multiplicativo def(z)el cual es un elemento deF((z)). Por

lo tanto, F((z)) junto con la adición y multiplicación usuales forman un campo.

Antes de dar las definiciones de código y codificador convolucional se presentarán algunas notaciones previas que facilitarán su comprensión.

Notación 2.1.

Dado k ∈ Z+, se entiende por una k-úpla de información en el tiempo t a un elemento de

Fk, el cual usualmente se denota con u

t = (u(1)t , u

(2)

t , . . . , u

(k)

t ). Igualmente, a partir de las k-úplas de información ut se construye una k-secuencia de información, como un elemento

deFk((z))y que se representa como

u(z) =

X t=−∞

utzt, (2.1)

donde para algúnr ∈Z se tiene que ut=0 para t < r.

Similarmente, para n∈Z+, convt= (vt(1), v

(2)

t , . . . , v

(n)

t )se representa unan-úpla código

en el tiempo t, luego la n-secuencia código definida a partir de las n-úplas códigovt, puede

representarse como v(z) = ∞ X t=−∞ vtzt, (2.2)

(45)

2.1 - Definición y notación 25

donde para algún s∈Zse tiene que vt =0 para t < s, el cual es un elemento de Fn((z)).

La notación anterior extiende aquella utilizada en la teoría de códigos de bloque para referirse a una palabra mensaje y una palabra código, ver [11, p. 1].

De lo anterior se sigue que, u(z) =P∞t=−∞utzt =urzr+u r+1zr+1+· · · = (u(1)r , u(2)r , . . . , ur(k))zr+ (ur(1)+1, u(2)r+1, . . . , u(rk+1) )zr+1+· · · = (u(1)r zr, u(2)r zr, . . . , u(rk)zr) + (u(1)r+1zr+1, u(2)r+1zr+1, . . . , u(rk+1) zr+1) +· · · = (u(1)r zr+u(1)r+1zr+1+· · · , u(2)r zr+u(2)r+1zr+1+· · · , . . . , u(rk)zr+u(rk+1) zr+1+· · ·). Ahora, si se hace u(i) = (u(ri), u (i) r+1, . . .) y u( i)(z) = u(i) r z r +u(ri+1) z r+1+· · · , (2.3)

parai= 1,2, . . . , k, entonces lak-secuencia de informaciónu(z)puede representarse como el vector u(z) = (u(1)(z),u(2)(z), . . . ,u(k)(z)) enF((z))k y de esta manera se tiene la relación

que permite representar u(z) poru= (u(1),u(2), . . . ,u(k)).

Similarmente, la n-secuencia código, puede simbolizarse por medio del vector v(z) = (v(1)(z),v(2)(z), . . . ,v(n)(z))en F((z))n y puede asociarse a v = (v(1),v(2), . . . ,v(n)).

Aunque se puede dar una definición general de códigos convolucionales sobre cualquier campo en este trabajo se usarán campos finitos Fq, donde q es una potencia de un primo.

Definición 2.1.

Un (n, k)-código convolucional C es un Fq((z))-subespacio del espacio vectorial Fq((z))n de dimensión k, donde Fq es un campo finito. La velocidad del código es R =k/n.

Ahora, un codificador es una transformación que acepta una k-úpla de información ut

y produce una n-úpla código vt como salida en el instante t. A diferencia de lo que sucede

en los códigos de bloque, esta transformación tiene memoria, es decir lan-úpla códigovtno

depende solo de lak-úpla de informaciónutsino también de algunask-úplas de información

ul para l < t. Cuando se utilizan las m k-úplas de información anteriores se dice que la

memoria es m y se dirá que es un(n, k, m)-código convolucional.

A continuación se procede a dar la definición de un codificador para un código convolu-cional dado.

(46)

Definición 2.2.

Un (n, k, m)-codificador convolucional para el código convolucional C es una matriz G(z)

de tamaño k ×n, con entradas en el subconjunto Fq[z] de Fq((z)), cuyas filas generan al

(n, k, m)-código convolucional C.

En consecuencia, un (n, k, m)-código convolucional C que tenga como codificador convo-lucional la matriz G(z), es la imagen de la función lineal Fq((z))k → Fq((z))n, definida por

u(z)G(z).

Observación 2.1. En las definiciones anteriores, los elementos de un código convolucional en realidad son series infinitas. Este es el enfoque tradicional que se puede encontrar en la literatura sobre códigos convolucionales, ver [3, 14, 17]; sin embargo en este trabajo se considerarán elementos con soporte finito tanto para las k-secuencias de información como para lasn-secuencias código.

De esta manera, las expresiones dadas en (2.1), (2.2) y (2.3) se pueden presentar como sigue; u(z) = PNt=0−1utzt para las k-secuencias de información; v(z) = PM−1

t=0 vtzt para las n-secuencias código y u(i) = (u(i) 0 , u (i) 1 , . . . , u (i) N−1) y u(i)(z) = u (i) 0 +u (i) 1 z+· · ·+u (i) N−1zN−1

para las componentes de u y u(z) .

En consecuencia, en lugar de trabajar con elementos delFq((z))-espacio vectorialFq((z))n

el trabajo se desarrollará en elFq[z]-móduloFq[z]n. En este contexto los códigos

convolucio-nales sonFq[z]-submódulos deFq[z]ncomo se verá en la Sección3.1del Capítulo3; bajo esta

definición alternativa note que tanto las k-secuencias de información como lasn-secuencias código son finitas a diferencia del contexto de las series de Laurent en el cual estas son infinitas.

En las siguientes secciones para facilitar la presentación en los ejemplos se consideran secuencias finitas.

2.2.

Codificador físico de un código convolucional

El esquema de codificación de un codificador convolucional se puede implementar usando registros de desplazamiento lineal o tambien conocidos como circuitos secuenciales lineales1

,

1

Referencias

Documento similar