• No se han encontrado resultados

Descripción de un Modelo Sub-óptimo en C de un Turbo Codificador de Canal para UMTS-Edición Única

N/A
N/A
Protected

Academic year: 2017

Share "Descripción de un Modelo Sub-óptimo en C de un Turbo Codificador de Canal para UMTS-Edición Única"

Copied!
143
0
0

Texto completo

(1)

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY

PRESENTE.

Por medio de la presente hago constar que soy autor y titular de la obra denominada "Descripción de un Modelo Sub-Óptimo en C de un Turbo Codificador de Canal para UMTS", en los sucesivo LA OBRA, en virtud de lo cual autorizo a el Instituto Tecnológico y de Estudios Superiores de Monterrey (EL INSTITUTO) para que efectúe la divulgación, publicación, comunicación pública, distribución, distribución pública y reproducción, asi como la digitalización de la misma, con fines académicos o propios al objeto de EL INSTITUTO, dentro del circulo de la comunidad del Tecnológico de Monterrey.

El Instituto se compromete a respetar en todo momento mi autoria y a otorgarme el crédito correspondiente en todas las actividades mencionadas anteriormente de la obra.

(2)

Descripción de un Modelo Sub-óptimo en C de un Turbo

Codificador de Canal para UMTS-Edición Única

Title Descripción de un Modelo Sub-óptimo en C de un Turbo

Codificador de Canal para UMTS-Edición Única

Authors José Gonzalo Lugo Pérez

Affiliation Tecnológico de Monterrey, Campus Estado de México

Issue Date 2008-11-01

Item type Tesis

Rights Open Access

Downloaded 19-Jan-2017 01:22:35

(3)

Descripción de un modelo sub-óptimo en C de un turbo codificador

de canal para UMTS

TESIS QUE PRESENTA

José Gonzalo Lugo Pérez

MAESTRÍA EN CIENCIAS COMPUTACIONALES MCC02, Redes Computacionales

! !

" " !

# $

% % & % &

(4)
(5)

Reconocimientos

Existen muchas personas que directa o indirectamente influyeron en mí para concluir los estudios de maestría y a quienes estoy infinitamente agradecido por estar presentes en cada momento y lugar en mi camino.

Primeramente, a la Universidad Tecnológica de Querétaro por otorgar todas las facilidades para realizar este posgrado. De igual manera, al Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Estado de México, por sus servicios y prestaciones además de brindarme un espacio de conocimiento.

Quiero agradecer al Dr. Andrés David García García por la confianza puesta en mí, así como sus aportaciones y sugerencias para realizar este proyecto de tesis.

De la misma forma, agradezco al Dr. Miguel González Mendoza por estar siempre al pendiente de los resultados y avances en toda la maestría, permitiéndome finalizarla con éxito.

Al Dr. José Luis Cuevas Ruiz por su apoyo desinteresado y sus consejos que me sirvieron como tranquilizante y motivación en la investigación del proyecto.

También un reconocimiento al Dr. Javier Eduardo González Villarruel quien a través de sus observaciones le dio una dirección a este trabajo.

A Jorge Luis Morales Montes por compartir sus valiosos conocimientos que me sirvieron en la ejecución de mi proyecto.

Un reconocimiento especial a Raúl García Pérez y Carlos Humberto Yee Rodríguez por su apoyo y compañía durante el desarrollo de la maestría y de quienes estoy agradecido por sus sugerencias acertadas para mi tesis.

A la Chata y Rosalba por su amor y cariño a mis hijos. Asimismo, extiendo el reconocimiento a Sergio y Paquito por ser mis hermanos.

A mis padres, Gonzalo y Malena que aún siguen velando por mí y que me han enseñado a ser perseverante y a no tener miedo. Les agradezco su amor a mis hijos así como a mi esposa Lucy. Gracias papá, gracias mamá.

A Luchy, por su paciencia todo este tiempo y su apoyo incondicional, ya que sin él, no hubiera sido posible culminar mis estudios. Gracias por compartir tu vida conmigo y adorar a mis hijos. A mis inspiraciones Gonchis y Leo, que con sus ocurrencias, sonrisas y lloriqueos me han enseñado el gozo de la paternidad.

(6)

Resumen

Los turbo códigos son una técnica muy poderosa y eficiente para la codificación de canal ya que son capaces de permitir la comunicación libre de errores a baja potencia y altas velocidades de transmisión. Las investigaciones en este campo impactan directamente las áreas de comunicaciones satelitales, enlaces de microondas, telefonía celular, Internet y comunicaciones móviles entre otros.

Debido a la naturaleza iterativa y compleja de la decodificación, se buscan alternativas sub-óptimas que alcancen lo más cerca posible los rendimientos en la corrección de errores y puedan ser implementados en plataformas de hardware reconfigurable como los Procesadores de Señales Digitales (DSP) y los Arreglos de Compuertas Programables en el Campo (FPGA) a mayor velocidad de procesamiento y bajo consumo de potencia.

Por lo anterior, el presente trabajo propone describir un modelo en C++ donde se programen estas funciones sub-óptimas para simular varias condiciones de comunicación y evaluar los rendimientos en el envío de información. Este modelo servirá como base para la implementación en cualquier plataforma de hardware reconfigurable a través de una adecuación algoritmo-arquitectural.

La estructura de la tesis está conformada de tal manera que se comprendan los conceptos básicos de la teoría de la información, la codificación de canal, el funcionamiento de los turbo códigos y la teoría de la decodificación Maximum A Posteriori (MAP) visto en el capítulo 2. Previamente se introduce una semblanza general de las aplicaciones de los turbo códigos así como la motivación del presente trabajo con sus objetivos y alcances en el capítulo 1.

El capítulo 3 explica brevemente los parámetros del estándar UMTS, las plataformas de hardware reconfigurable y se introducen las funciones sub-óptimas a utilizar en los modelos de simulación aplicados a éste estándar. La descripción detallada de la construcción del modelo de referencia en Simulink y la descripción del modelo en C se abordan en el capítulo 4.

(7)

Abstract

Turbo codes are a powerful coding channel technique capable of allowing free error communications at low power and high transmission speeds. Researchs in this field occupy the areas of satellite communications, microwave links, cellular telephony, Internet and mobile communications among others.

Due to the iterative and complex nature of decoding, different sub-optimal alternatives are searched in order to reach as close the performance on error correction and can be implemented in reconfigurable hardware platforms such as Digital Signal Processors (DSP's) and Field Programmable Gate Arrays (FPGA's) with greater processing speed and low power consumption.

Therefore, this paper proposes to describe a C++ model where these sub-optimal functions are programmed to simulate differents communication conditions and assess the performance in the information sending. This model will serve as a basis for implementation in any reconfigurable hardware platform through an algorithm-architectural adaptation.

The structure of the thesis is formed to understand the basic concepts of information theory, coding channel, the turbo codes operation and the Maximum A Posteriori decoding theory (MAP) seen in Chapter 2. Previously, it´s introduced a general explanation of turbo codes applications as well as the motivation, objectives and scope of this paper in Chapter 1.

Chapter 3 explains briefly the UMTS standard parameters, reconfigurable hardware platforms and introduces the sub-optimal functions for use in simulation models applied to this standard. The detailed description of the reference model construction in Simulink and the model description in C are addressed in Chapter 4.

(8)

Contenido

Capítulo 1 ... 13

Introducción... 13

1.1 Motivación... 13

1.2 Objetivo ... 17

1.2.1 Objetivos específicos... 17

1.3 Alcance ... 17

1.4 Metodología... 17

1.5 Estructura de la tesis ... 18

Capítulo 2 ... 19

Teoría de la Información ... 19

2.1 Introducción... 19

2.2 Teorema de la Capacidad de Canal de Shannon-Hartley ... 20

2.2.1 Límite de Shannon... 24

2.3 Codificación de Canal ... 26

2.3.1 Bondades de la codificación de canal... 28

2.3.2 Codificación de bloque... 29

2.3.3 Codificación Convolucional ... 29

2.4 Turbo Códigos ... 33

2.4.1 Entrelazadores (Interleavers)... 34

2.4.1.1 Entrelazadores de bloque... 37

2.4.2 Decodificación... 38

2.4.2.1 Decodificación Iterativa ... 42

2.4.2.2 Algoritmo MAP... 43

Capítulo 3 ... 47

Universal Mobile Telecommunications System (UMTS) y funciones sub-óptimas utilizadas para la simulación del estándar... 47

3.1 Introducción a UMTS... 47

3.1.2 Capa física UMTS ... 48

3.1.3 Canales de transporte UMTS... 49

3.1.4 Codificación de canal UMTS ... 50

3.1.5 Turbo codificador UMTS ... 50

3.2 Hardware reconfigurable ... 51

3.2.1 Arquitectura DSP... 52

3.2.2 Arquitectura FPGA... 53

3.2.3 Comparativa de hardware reconfigurable... 56

3.3 Funciones sub-óptimas ... 57

3.3.1 Algoritmo Forward-Backward ... 57

3.3.2 Codificación de prueba... 59

3.3.2.1 Cálculo de Métricas de Rama (G) ... 67

3.3.2.2 Recursión hacia adelante (Cálculo de A´s) ... 69

3.3.2.3 Recursión hacia atrás (Cálculo de B´s)... 71

3.3.2.3 Cálculo de LLR ... 71

Capítulo 4 ... 75

Modelo de un Turbo Codificador en C++ ... 75

4.1 Introducción... 75

(9)

4.3 Turbo Codificador ... 76

4.3.1 Codificador convolucional ... 77

4.3.2 Interleaver... 78

4.3.3 Construcción del turbo código... 80

4.3.4 Modulación BPSK... 80

4.3.5 Ruido Gaussiano... 81

4.3.6 Demodulador BPSK ... 82

4.3.7 Pre-procesamiento de la señal demodulada... 82

4.4 Decodificador Iterativo Log-MAP ... 83

4.4.1 Función logMap( )... 85

4.5 Archivos y cabeceras del programa en C++... 88

Capítulo 5 ... 92

Resultados de la Simulación... 92

5.1 Introducción... 92

5.2 Simulación del modelo ... 92

5.3 Gráficas de BER ... 93

Capítulo 6 ... 104

Conclusiones y trabajo futuro... 104

6.1 Conclusiones... 104

6.2 Trabajo futuro ... 106

Referencias ... 107

Anexo A... 109

Código en C++ del turbo codificador... 109

Anexo B... 135

Tablas para la codificación de prueba ... 135

Anexo C... 138

(10)

Lista de figuras

Figura 1.1 Ventajas de los Turbo Códigos (original en color) ... 15

Figura 1.2 Metodología del proyecto (original en color) ... 18

Figura 2.1 Sistema de Comunicación Básico ... 19

Figura 2.2 Capacidad de canal normalizado vs SNR ... 21

Figura 2.3 Probabilidad de error de bit PB vs Eb/N0... 22

Figura 2.4 Ancho de Banda del canal (W/C) vs Eb/N0... 24

Figura 2.5 Codificador de Canal ... 26

Figura 2.6 Decodificación de Canal ... 27

Figura 2.7 Codificaciones de canal (original en color) ... 28

Figura 2.8 Comparativa del rendimiento de una señal codificada y una señal no codificada... 28

Figura 2.9 Codificador de Bloque ... 29

Figura 2.10 Codificador Convolucional Sistemático (2, 1, 2)... 31

Figura 2.11 Salida del Codificador Convolucional Sistemático... 31

Figura 2.12 Diagrama de Estados del Codificador Convolucional Sistemático (2, 1, 2)... 32

Figura 2.13 Diagrama de Trellis del Codificador Convolucional Sistemático (2, 1, 2) (original en color)... 32

Figura 2.13 Turbo Codificador... 33

Figura 2.14 Rendimiento del Turbo Codificador con varias iteraciones... 34

Figura 2.15 Representación de un Entrelazador... 35

Figura 2.15 Mapa de un Entrelazador ... 35

Figura 2.16 Errores en ráfaga (original en color) ... 36

Figura 2.17 Entrelazador de bloque... 37

Figura 2.18 Entrelazador de bloque 3 x 4... 37

Figura 2.19 Funciones likelihood ... 39

Figura 2.20 Decodificación iterativa ... 42

Figura 2.21 Desempeño del decodificador de acuerdo al número de iteraciones (original en color) ... 43

Figura 2.22 Métricas de estado hacia delante y hacia atrás... 45

Figura 3.1 Evolución de las redes móviles (original en color)... 47

Figura 3.2 Arquitectura de la interfaz de radio UMTS (original en color) ... 49

Figura 3.3 Estructura del turbo codificador de tasa 1/3 (las líneas punteadas indican la terminación del trellis) (original en color)... 51

Figura 3.4 Arquitectura DSP (original en color) ... 53

Figura 3.5 Tabla de Búsqueda (LUT) de 3 entradas de un FPGA... 53

Figura 3.6 Estructura de un FPGA Xilinx serie 4000... 54

Figura 3.7 Detalle de la estructura de un FPGA Xilinx serie 4000... 55

Figura 3.8 Celda lógica de un FPGA Xilinx serie 4000... 56

Figura 3.9 Comparativa en Programabilidad vs Consumo de potencia entre hardware reconfigurable (original en color)... 57

Figura 3.10 Recursión hacia adelante del algoritmo MAP y Log-MAP ... 58

Figura 3.11 Tamaño del interleaver: a) Matriz de índices, b) Vector k según matriz de índices . 60 Figura 3.12 Diagrama de Trellis de UMTS... 61

Figura 3.13 Vectores de salidas del Turbo Codificador UMTS (original en color)... 62

Figura 3.14 Diagrama básico de comunicación... 62

Figura 3.15 Valores modulados con BPSK (original en color)... 63

(11)

Figura 3.17 Señal demodulada en forma bipolar... 64

Figura 3.18 Decodificador iterativo (original en color) ... 65

Figura 3.19 Componentes decodificador Log-MAP (original en color) ... 66

Figura 3.20 Diagrama de Trellis del primer decodificador (original en color) ... 66

Figura 3.21 Métricas de rama G para la entrada xk =−1 y yk =−1 (original en color) ... 68

Figura 3.22 Arquitectura del ACS (original en color)... 69

Figura 3.23 Valores iniciales para la recursión hacia delante (original en color) ... 70

Figura 3.24 Valores iniciales para la recursión hacia atrás (original en color) ... 71

Figura 3.25 Cálculo de LLR (original en color)... 72

Figura 3.26 Proceso para el cálculo de LLR ... 73

Figura 3.27 Entradas en el diagrama de Trellis UMTS (original en color)... 73

Figura 3.28 Árbol MAX* (original en color)... 74

Figura 4.1 Cadena del turbo codificador (original en color) ... 76

Figura 4.2 Componentes del turbo codificador (original en color) ... 76

Figura 4.3 Representación del diagrama de Trellis UMTS con tablas de búsqueda (LUT´s) (original en color) ... 77

Figura 4.4 Decodificador Iterativo en Simulink... 84

Figura 5.1 Modelo del Turbo Codificador en Simulink ... 92

Figura 5.2 BER del Turbo Codificador en C++ con bits enviados N = 600,000 con tamaño de bloques = 40 para diferentes iteraciones (original en color) ... 94

Figura 5.3 BER del Turbo Codificador en C++ con bits enviados N = 400 con tamaño de bloques = 40 para diferentes iteraciones (original en color)... 95

Figura 5.4 BER del Turbo Codificador en C++ con bits enviados N = 400 con tamaño de bloques = 40 para 4 iteraciones (original en color)... 96

Figura 5.5 BER del Turbo Codificador en C++ con bits enviados N = 40,000 con tamaño de bloques = 40 para 5 iteraciones (original en color) ... 96

Figura 5.6 Comparativa BER vs EbN0 del program en C++ y BER generado por X. J. Zeng y Z. L. Hong (original en color)... 97

Figura 5.7 BER del Turbo Codificador en C++ con bits enviados N = 4000 con tamaño de bloques = 400 para 5 iteraciones (original en color) ... 98

Figura 5.8 BER del Turbo Codificador en C++ con bits enviados N = 600,000 con tamaño de bloques = 60 para 7 iteraciones (original en color) ... 99

Figura 5.9 BER del Turbo Codificador en Simulink con bits enviados N = 600,000 con tamaño de bloques = 60 para 7 iteraciones (original en color) ... 99

Figura 5.10 BER del Turbo Codificador en C++ con bits enviados N = 600,000 con tamaño de bloques = 60 para diferentes iteraciones (original en color) ... 100

Figura 5.11 BER del Turbo Codificador en C++ con bits enviados N = 600,000 con diferentes tamaños de bloques para 7 iteraciones (original en color) ... 101

Figura 5.12 BER del Turbo Codificador en C++ con bits enviados N = 1000,000 con tamaño de bloque = 100 para 7 iteraciones (original en color)... 102

Figura 5.13 Comparativa entre diferente número de bits enviados (original en color)... 103

(12)

Lista de tablas

Tabla 3.1 Uso de los esquemas de codificación de canal y tasa de codificación UMTS ... 50

Tabla 3.2 Número de bits codificados por cada esquema y tasa de codificación... 50

Tabla 3.3 Tabla de búsqueda (LUT) para el cálculo de G... 67

Tabla 3.4 LLR´s correspondientes al primer decodificador ... 74

Tabla 4.1 Archivos del programa en C++ ... 88

Tabla 4.2 Organización de los archivos en C++... 89

Tabla 5.1 Características de la computadora portátil donde se realizaron las simulaciones ... 93

Tabla 5.2 Tiempos de procesamiento para N = 600,000 bits ... 101

Tabla 5.3 Tiempos de procesamiento para N = 600,000 bits con diferentes interleavers ... 101

Tabla B.1 Valores modulados con BPSK para la codificación de prueba ... 135

Tabla B.2 Valores modulados con BPSK a la salida del canal AWGN... 136

(13)

Acrónimos y Abreviaturas

1G first mobile communication generation

3G three mobile communication generation

3GPP third generation partnership project

8QPSK eight quadrature phase shift keying

ACS add-compare-select

ALU arithmetic logic unit

APP a posteriori probability

ARQ automatic repeat request

ASIC application specific integrated circuit

AWGN additive white gaussian noise

BCH UMTS broadcast channel

BEC backward error correction

BER bit error rate

BPSK binary phase shift keying

CDMA code division multiple access

DCH dedicated channel

DS-CDMA direct-sequence code division multiple access

DSP digital signal processor

EbN0 energy per bit to noise density radio

EDGE enhaced data rate for GSM evolution

EEPROM electrically erasable programmable read only memory

EPROM erasable programmable read only memory

ETSI european telecommunications standards institute

(14)

FDD frecuency division duplex

FEC forward error correction

FPGA field programmable gate array

GMSK gaussian minimum shift keying

GPRS general packet radio service

GSM global system for mobile communications

HSCSD high speed circuit switched data

IEEE institute of electrical and electronics engineers

IP internet protocol

LDPC low density parity check

LUT look up table

LLR log-likelihood ratio

MAC media access control

MAC multiply and acummulate

MAP maximum a posteriori

ML maximum likelihood

N0 Densidad espectral

NASA national aeronauctics and space administration

PCCC parallel concatenated convolutional codes

PCH UMTS paging channel

Pe Probabilidad de error

QoS quality of service

QPSK quadrature phase shift keying

RACH UMTS random access channel

RRC radio resource control

RSC recursive sistematic convolutional encoder

(15)

SMS short message service

SNR signal to noise ratio

SRAM static random access memory

Tb bit time

TDD time division duplex

UE user equipment

UMTS universal mobile telecommunications system

UTRA universal terrestrial radio access

UTRAN UMTS terrestrial radio access network

VA viterbi algorithm

VoIP voice over ip

W bandwidth

W/C Ancho de banda del canal normalizado

WCDMA wide-band code division multiple access

(16)

Capítulo 1

Introducción

1.1 Motivación

La sociedad moderna se caracteriza por el uso de dispositivos tecnológicos sofisticados que permiten la interacción entre uno o varios usuarios a la vez a través de aplicaciones multimedia que intercambian información de audio, video o simplemente datos. Adicionalmente, se le ha dado gran valor a la portabilidad y movilidad lo que conlleva a utilizar tecnologías de comunicaciones inalámbricas. De lo anterior, se deriva la necesidad de disponer de equipos que ocupen un espacio muy pequeño que les permita su fácil transporte, además la batería de estos dispositivos es pequeña por lo que suministra una mínima cantidad de corriente que convertida en tiempo proporciona unas cuantas horas y por lo tanto, se vuelve crítico el consumo de la potencia. Esto ha dado pauta al crecimiento en los sistemas de comunicación de diferente tipo como enlaces satelitales, microondas, telefonía celular e Internet de tal forma que para lograr un mejor servicio en los canales de comunicación, se han unido esfuerzos para mejorar las condiciones de ancho de banda, consumo de potencia, velocidad de transmisión y la protección de los datos que pasarán a través de un canal susceptible al ruido.

Para lograr lo anterior, es necesario proteger la información que se envía desde un transmisor hasta el receptor garantizando la transferencia íntegra de los datos, lográndose esto a través de técnicas de codificación de canal. Uno de los problemas actuales en las comunicaciones es precisamente el envío de la información de manera confiable, es decir, que los datos enviados no contengan errores en el receptor después de haber pasado por el canal de comunicación. A mediados del siglo XX Claude Elwood Shannon, propone en su teoría de la información, lograr la transmisión de los datos libre de errores a través de un canal a una tasa de transferencia menor a su capacidad a través de un esquema de codificación con una probabilidad de error pequeña por lo que puede transmitirse la información libre de errores con una potencia requerida. Esta teoría permaneció sin solución hasta principios de los 90´s, [1] .

(17)

con baja potencia y mayor velocidad, debido su poder de corrección por su información redundante y que lo hace tolerante a la interferencia.

Existen dos métodos para la codificación de canal: la corrección de error hacia atrás BEC (Backward Error Correction) o Automatic Repeat Request (ARQ) y la corrección de error hacia delante FEC (Forward Error Correction).

El primero (BEC) es un detector de error y retransmisión, es decir, utiliza los bits de paridad para detectar que un error ha ocurrido. El receptor no intentará corregir el error, simplemente enviará una petición al transmisor para que re-envíe los datos. Para este método es necesario tener una comunicación dúplex para permitir el diálogo entre el transmisor y receptor. El segundo método, FEC, utiliza los bits de paridad añadidos para proteger la información y el receptor trata de corregir los errores ocasionados por el canal. Se requiere una comunicación símplex, por lo que no se utilizará un diálogo entre transmisor y receptor. Este método tolera más errores en el canal y los corrige, por lo que la información puede enviarse a baja potencia de transmisión lo que lo hace atractivo en las comunicaciones inalámbricas para la optimización del consumo de energía en los sistemas.

Es así que surge uno de los desarrollos tecnológicos más recientes en los sistemas de comunicación en 1993 en la Conferencia Internacional de la IEEE en Ginebra Suiza, [2] llamado

Turbo Códigos, desarrollados por dos profesores de la Ecole Nationale Supérieuredes Télécommunications de Bretagne en Brest, Francia, Claude Berrou y Alain Glavieux y que da solución al problema de la transmisión de datos libre de errores a una tasa de transferencia menor a la capacidad del canal establecido por Claude Elwood Shannon en 1948, [3].

Los turbo códigos son aplicados en enlaces satelitales, en sistemas de comunicaciones espaciales, sistemas de telefonía móvil de tercera generación, en dispositivos portátiles con aplicaciones multimedia y en versiones mejoradas de redes WiFi para aumentar la velocidad de transmisión, [2]. Actualmente existen cientos de grupos trabajando en los turbo códigos, entre ellos universidades y empresas de todo el mundo. La lista incluye a gigantes de las telecomunicaciones como France Télécom y NTT DoCoMo, grandes compañías de alta tecnología como Sony, NEC, Lucent, Samsung, Ericsson, Nokia, Motorola y Qualcomm. Asimismo fabricantes de circuitos integrados y hardware como Broadcom, Conexant, Comtech AHA, y STMicroelectronics.

(18)

que lo pueden tolerar como las comunicaciones espaciales y para las cuáles los turbo códigos son una opción atractiva. En septiembre de 2003 la Agencia Espacial Europea lanzó el SMART-1, la primera prueba para ir al espacio con un sistema de transmisión de datos trabajando con turbo códigos. Más aún, la NASA los está utilizando también para sus misiones a Marte.

De la misma manera, la transmisión de audio digital realizado a través de programas de radio con calidad digital y enlaces satelitales tales como New Global Area Network of Inmarsat Ltd. en Londres, están incorporando también los turbo códigos en sus sistemas.

Los Turbo Códigos son ampliamente utilizados en sistemas móviles de 3ra. Generación debido a su rendimiento superior, siendo la técnica recomendada para las nuevas tecnologías de 3GPP (Third Generation Partnership Project), [4][5]. El proyecto 3GPP es un acuerdo de colaboración establecido en diciembre de 1998 cuyo objetivo es producir especificaciones técnicas aplicables a los sistemas de comunicación móvil de la 3ra. Generación basadas en la red GSM desarrollada y las tecnologías de radio acceso que soportan, [17].

Adicionalmente, los Turbo Códigos superan a cualquier técnica de codificación de canal conocida1 en tres áreas principales, (figura 1.1):

• Capacidad. Los turbo códigos se acercan al límite de Shannon con una mejora del 60% sobre estándares existentes, [1]

• Eficiencia en el costo del Sistema. Un usuario puede enviar la misma cantidad de datos empleando únicamente la mitad del ancho de banda, [1].

• Número de usuarios. Un proveedor de servicios de comunicaciones puede dar servicios a más usuarios sin aumentar la capacidad del Sistema, [1].

Capacidad Eficiencia en el costo del

Sistema

Número de Usuarios

Código Convolucional – Reed Solomon

Turbo Códigos

Capacidad Eficiencia en el costo del

Sistema

Número de Usuarios

Código Convolucional – Reed Solomon

Turbo Códigos

Figura 1.1 Ventajas de los Turbo Códigos (original en color)

1 existen actualmente los códigos LDPC, Low Density Parity Check, desarrollados en 1960 y que se comparan en

(19)

Por otro lado, debido a la demanda de la movilidad y portabilidad antes mencionados, con el surgimiento de nuevos protocolos y estándares y la rápida adopción de Internet, existe la gran necesidad de caminar hacia la conectividad inalámbrica y ofrecer servicios con cobertura global transparente que permita la flexibilidad en la tecnología con una calidad de servicio controlada por el usuario (QoS). Debido a esto, la tendencia en las comunicaciones es desarrollar dispositivos de fácil diseño, fabricación, operación multimodal, flexibles y con pocos componentes discretos que permitan lograr los objetivos propuestos a través de los Software Radios.

Las ventajas de utilizar Software Radios es que gran parte del hardware que se utiliza para los radios análogos se pueden implementar a través de Software de tal forma que la complejidad del sistema sea menor y flexible permitiendo que la construcción misma del sistema sea compacta y consuma menos corriente. Los turbo codificadores pueden ser implementados a través de estos dispositivos otorgándole éstas atractivas características siendo fáciles de diseñar y construir. Entre estos dispositivos se encuentran los Procesadores de Señales Digitales (DSP), Arreglos de Compuertas Programables en el Campo (FPGA) y Circuitos Integrados de Aplicación Específica (ASIC), [6].

Como resumen de lo anterior se pueden extraer los siguientes puntos importantes:

• Los sistemas de comunicación modernos deben ser portátiles y móviles, lo que obliga a optimizar el consumo de las baterías para una mayor duración y menor espacio.

• El uso de aplicaciones multimedia cada vez más sofisticadas utilizan más ancho de banda, por lo que los sistemas de comunicación deberán optimizarlo y aumentar las tasas de transferencia de los datos con baja potencia de transmisión utilizando técnicas de codificación de canal que le permitan enviar información sobre canales ruidosos.

• Los Turbo Codificadores pueden implementarse en dispositivos Software Radios que le brinden flexibilidad, bajo consumo de potencia y Calidad de Servicio (QoS) requeridos por los nuevos estándares y protocolos de comunicaciones inalámbricos.

• Los Turbo Codificadores siguen siendo un objeto de estudio para la aplicación en diferentes estándares de comunicaciones móviles, por lo que la medición del rendimiento a través de la herramienta de la simulación es crucial para su futura implementación en dispositivos hardware.

Adicionalmente, el Departamento de Ingeniería Eléctrica y Electrónica dentro del Tecnológico de Monterrey Campus Estado de México, se une al esfuerzo en el desarrollo e investigación de Turbo Codificadores para la implementación de sistemas de comunicación móvil bajo la especificación 3GPP utilizando recursos propios con fines educativos.

(20)

comunicación móvil determinado. Para esto se selecciona del proyecto 3GPP el estándar UMTS y se simula el proceso iterativo Log-MAP para su decodificación.

1.2 Objetivo

Realizar la construcción de un modelo sub-óptimo en C de un algoritmo de Turbo-Codificación conforme a la especificación 3GPP y evaluar su desempeño sobre un canal con ruido blanco gaussiano aditivo (AWGN) y modulación BPSK. Este modelo será utilizado posteriormente mediante su adecuación algoritmo-arquitectural para su implementación en plataformas reconfigurables.

1.2.1 Objetivos específicos

• Estudiar y analizar el funcionamiento de los turbo codificadores.

• Desarrollar un modelo de referencia funcional del turbo codificador y decodificador en SIMULINK.

• Desarrollar un modelo funcional del turbo codificador y decodificador en Matlab. • Validar los resultados de la simulación con bibliografía seleccionada.

• Desarrollar un modelo funcional en C de un turbo codificador y decodificador para la especificación UMTS.

1.3 Alcance

Presentar al final de la investigación un modelo de referencia funcional en C del turbo codificador y decodificador que implemente funciones sub-óptimas que puedan ser utilizadas en una futura implementación en plataformas DSP y FPGA.

1.4 Metodología

(21)
[image:21.595.150.465.84.335.2]

! " ! " ! "

Figura 1.2 Metodología del proyecto (original en color)

1.5 Estructura de la tesis

Con el propósito de cimentar las bases teóricas que integran éste proyecto, la tesis se divide en seis capítulos organizados de la siguiente forma:

En el capítulo 2 se introducen los conceptos de la teoría de la información desde un sistema básico de comunicación, el teorema de la capacidad de Shannon hasta la teoría de codificación de bloques como los códigos convolucionales y los turbo códigos. Se describe posteriormente la teoría de la decodificación iterativa del algoritmo MAP.

El capítulo 3 explica brevemente el estándar UMTS, hardware reconfigurable y se introducen las funciones sub-óptimas a utilizar en los modelos de simulación aplicados a éste estándar. La descripción detallada de la construcción del modelo de referencia en Simulink y la descripción del modelo en C se abordan en el capítulo 4.

(22)

Capítulo 2

Teoría de la Información

2.1 Introducción

Los sistemas de comunicación hoy en día proporcionan servicios de alta calidad que requieren de de gran confiabilidad y tasas de transferencias de información muy elevadas que fueron posibles gracias a las aportaciones y trabajos realizados por gente como Claude Elwood Shannon. Debido a que un canal de comunicación no es libre de errores y es susceptible a fenómenos externos que alteran los datos, Shannon, llamado “El Padre de la Información”, propone esquemas de codificación de canal con el propósito de integrar información redundante en el mensaje a transmitir para decodificarlo íntegramente en el receptor con la menor probabilidad de error. Asimismo, estableció los límites fundamentales en las tasas de transmisión en sistemas de comunicaciones digitales lo que motivó la búsqueda constante de técnicas de codificación que aprovecharan la capacidad del canal. Es así como surgen los Códigos Correctores de Errores (FEC) como el código de Hamming, los códigos de bloques, los códigos convolucionales y los Turbo Códigos cuyo rendimiento en términos del Bit Error Rate (BER) se acercan a los límites teóricos propuestos por Shannon.

Un sistema de comunicación básico está integrado por tres elementos principales: el transmisor,

el canal y el receptor (figura 2.1)

Fuente de

Información Transmisor Canal Receptor Señal de Salida

Fuente de

Información TransmisorTransmisor CanalCanal ReceptorReceptor Señal de Salida

Figura 2.1 Sistema de Comunicación Básico

(23)

El canal es el medio físico utilizado para el envío de la señal desde el transmisor hacia el receptor. Puede ser la atmósfera o el espacio libre en comunicaciones inalámbricas (radio frecuencia) o puede ser cable de cobre (par trenzado, cable coaxial) y fibra óptica para comunicaciones alámbricas y ópticas. Debido a que el canal es un mecanismo físico, tiene influencia sobre la información transmitida, de tal forma que la señal puede ser degradada o corrompida de manera aleatoria a través de ruido aditivo en la entrada del receptor donde se realiza la amplificación de la señal. Este tipo de ruido es llamado ruido térmico. Debido a esto, es importante su consideración en el diseño de sistemas de comunicación de tal forma que sean robustos a distintos tipos de fenómenos como la interferencia electromagnética, el desvanecimiento, el multicamino, etc.

El receptor, por su parte, se encarga de la recuperación del mensaje a través de esquemas contrarios a los que fue enviado (demodulación, decodificación, etc.), además de cumplir con funciones como el filtrado y la supresión de ruido.

2.2 Teorema de la Capacidad de Canal de Shannon-Hartley

Shannon complementa el trabajo de Ralph Hartley y Nyquist investigando la manera en cómo el ruido afecta la transmisión de los datos, es decir, establece la capacidad en base a un canal con ancho de banda determinado y una señal continua sumada al ruido, [3]. Lo que significa que es posible enviar cierta cantidad de información sin errores a través de un canal con ruido gaussiano. Por consiguiente, este teorema establece una relación entre la potencia promedio de la señal recibida (S), la potencia promedio de ruido (N) y el ancho de banda (W) de la siguiente manera:

     

+ =

N S W

C log2 1 (2.1)

Donde el ancho de banda (W) se expresa en hertz (Hz) y la capacidad de canal (C) está dada en

bits/s. Es posible enviar información a través del canal a diferentes tasas de transmisión R con

R≤C, con una pequeña probabilidad de error (Pe) con el uso de esquemas de codificación cada

(24)

En la figura 2.2 se muestra una gráfica de la capacidad de canal normalizada contra la relación señal a ruido (SNR) donde se puede apreciar la región del rendimiento de los sistemas prácticos y la zona inalcanzable.

C/W (bits/s/Hz)

Zona inalcanzable

Zona realizable (sistemas prácticos)

SNR (dB)

20

1 2 4 8

C/W (bits/s/Hz)

Zona inalcanzable

Zona realizable (sistemas prácticos)

SNR (dB)

20

1 2 4 8

Figura 2.2 Capacidad de canal normalizado vs SNR

En ésta gráfica se puede apreciar que mientras la relación señal a ruido (SNR) se incremente, es decir, la potencia de la señal sea más grande que la potencia del ruido, mayor será la capacidad del canal. Aquí se comprenden todos los sistemas realizables. Por el contrario, mientras la relación SNR disminuya, es decir, el nivel de la señal sea más cercana al ruido, menor será la capacidad del canal. La curva representa la frontera máxima alcanzable.

En comunicaciones digitales se utiliza la versión normalizada de SNR como Eb/N0, donde Eb es la

energía de bit y puede ser descrita como S veces la potencia de señal del tiempo de bit Tb. N0 es la

densidad espectral de potencia de ruido descrita por la relación de la potencia de ruido N y el ancho de banda W. De esta forma se tiene lo siguiente:

W N

T S N

Eb b

/

0 ⋅

= (2.2)

Debido a que el tiempo de bit Tb y la tasa de transferencia Rb son recíprocos, se puede sustituir Tb

(25)

W N

R S

W N R S

N

Eb b b

/ / 1

0

= ⋅

= (2.3)

Para simplificar la notación utilizando R como la unidad de bits por segundo en lugar de Rb se

obtiene Eb/N0 como una versión normalizada de SNR en ancho de banda y tasa de transferencia

de la siguiente forma:

R N

W S

W NR S

N Eb

⋅ ⋅ = = 0

(2.4)

La relación de la energía de bit y la densidad espectral de potencia Eb/N0, es el estándar utilizado

para medir el rendimiento en los sistemas de comunicaciones digitales a través de la probabilidad de error de bit PB (figura 2.3).

P0

Eb/ N0 x0

PB

R N

W S N Eb

⋅ ⋅ =

0

Para Eb/ N0 ≥x0, PB≤P0

P0

Eb/ N0 x0

PB

R N

W S N Eb

⋅ ⋅ =

0

Para Eb/ N0 ≥x0, PB≤P0

Figura 2.3 Probabilidad de error de bit PB vs Eb/N0

La gráfica muestra que a menor Eb/N0 requerido por el sistema más eficaz es el proceso de

detección para una PB dada. Asimismo, entre mayor sea Eb/N0 la PB será menor. En otras

palabras, un sistema de comunicación tendrá un rendimiento óptimo en la transmisión de la información sin errores cuando la probabilidad de error de bit PB disminuya de manera

considerable a Eb/N0 pequeños.

(26)

C N W S N Eb ⋅ ⋅ = 0 (2.5)

Despejando la relación señal a ruido (S/N) se tiene:

W C N E N

S = b

0

(2.6)

Sustituyendo en (2.1) y normalizando el canal C con el ancho de banda W se tiene lo siguiente:

      ⋅ + = W C N E W C b 0 2 1 log (2.7)

Se despeja de (2.7) la relación Eb/N0:

      ⋅ + = W C N E W C b 0 21 log 2 2 (2.8) W C N Eb W C ⋅ + = 0 1 2 (2.9)

Dando como resultado:

) 1 2 ( / 0 −

= C W

b C W N E (2.10)

(27)

W/C (Hz/bits/s)

Zona inalcanzable

Zona realizable (sistemas prácticos)

SNR (dB) 20

1 2 4 8

W/C (Hz/bits/s)

Zona inalcanzable

Zona realizable (sistemas prácticos)

SNR (dB) 20

1 2 4 8

Figura 2.4 Ancho de Banda del canal (W/C) vs Eb/N0

En ésta gráfica se puede apreciar que mientras disminuya el ancho de banda del canal, más Eb/N0

será necesario, y por el contrario, se necesita una relación Eb/N0 muy pequeña cuando se tiene

mucho ancho de banda del canal.

2.2.1 Límite de Shannon

Shannon establece la existencia de un límite de la relación Eb/N0, en donde a valores menores, no

puede realizarse la comunicación sin errores a cualquier tasa de transferencia. De esta forma a través de la identidad del valor e se calcula este límite:

(

x

)

x e

x→ + =

/ 1 0 1

lim (2.11)

Para aproximar la ecuación (2.7) a (2.11) se tiene:

W C N E x= b

0

(2.12)

(28)

) 1 (

log2 x

W C

+

= (2.13)

Aproximando a la ecuación (2.11):

) 1 ( log 1

2 x

x x W

C = + (2.14)

Aplicando la propiedad de los logaritmos: xn n a x

a( ) log

log = ⋅ se obtiene:

x

x x

W

C 1/

2(1 )

log +

= (2.15)

Sustituyendo (2.12) en (2.15):

x

b x

W C N E W

C 1/

2 0

) 1 (

log +

⋅ ⋅

= (2.16)

Desarrollando:

x

b x

N

E 1/

2 0

) 1 ( log

1= ⋅ + (2.17)

e N

Eb

2 0

log

1= ⋅ (2.18)

e N

Eb

2 0 log

1

= (2.19)

La función e está expresada como la serie

=0 ! n

n

n x

que arroja un resultado de 2.718, de esta forma

(29)

693 . 0 ) 718 . 2 ( log

1

2 0

= =

N Eb

(2.20)

Y (2.20) expresado en decibeles (dB):

dB N

Eb

593 . 1 ) 693 . 0 log( 10

0

− = ⋅

= (2.21)

Este valor (2.21) es conocido como el Límite de Shannon. En la práctica no es posible alcanzarlo ya que implicaría un aumento del ancho de banda requerido y la complejidad en la implementación. Sin embargo, el trabajo de Shannon prueba la existencia de esquemas de codificación que mejoran considerablemente el rendimiento en PB y el decremento en el

requerimiento de Eb/N0. Uno de estos esquemas de codificación son los Turbo Códigos que

alcanzan una mejora de 10 dB [8] y se acercan al Límite de Shannon.

2.3 Codificación de Canal

“El campo de la codificación de canal inicia con –Una teoría matemática de la Comunicación- de Claude Shannon en 1948” [11].

Todo sistema de comunicación digital no está exento de sufrir los efectos de fenómenos externos como el ruido térmico, la interferencia electromagnética y el desvanecimiento de la señal, de tal forma que para poder disminuirlos, es necesario “blindar” la información que se envía a través del canal, mejorando el rendimiento de la transferencia de los datos. Esto puede ser logrado a través de técnicas de codificación que permitan transmitir los datos con probabilidades de error deseadas muy pequeñas según el sistema utilizado. A diferencia de la codificación de fuente, que elimina redundancia no estructurada del medio que se desea codificar, la codificación de canal añade redundancia estructurada a la secuencia transmitida, de esta manera los datos son protegidos para poder detectar errores cuando existan (figura 2.5).

Codificador de Canal

k n

n > k

Tasa de codificación r = k/n

Codificador de Canal

k n

n > k

Tasa de codificación r = k/n

(30)

El codificador tiene un diccionario de símbolos que representa cada bit mediante el cuál sólo transmitirá palabras que pertenezcan a él, esto es, la figura 2.6 muestra el diccionario del codificador donde 0 lo codifica con tres bits a 000 y el 1 lo codifica a 111. La señal de entrada es 1 0, lo cual es codificado a 111 000. La salida del codificador es transmitida a través del canal donde es añadido ruido afectando la señal original. Por consiguiente, la señal a la salida del canal es 011 010 conteniendo errores en la transmisión. El decodificador, por su parte, basado en el diccionario de símbolos del codificador, tratará de “adivinar” la secuencia del mensaje a través de la determinación probabilística (Forward Error Correction) en base al ruido del canal adicionado a la información. De esta manera, la salida 011 correspondiente al primer bit enviado tiene una diferencia de 2 bits con respecto al 0 del diccionario de símbolos del codificador y una diferencia de 1 con respecto al 1 del diccionario, por lo tanto es más probable que el codificador haya enviado un 1. De igual forma, para el segundo bit existe una diferencia de 1 para el 0 del diccionario y una diferencia de 2 para el 1 del diccionario, lo cuál hace más probable que el codificador haya enviado el 0. Así, el decodificador arrojará el 1 0 como salida.

codificador canal decodificador

1 0 1 0

0 000 1 111

111 000 011 010

Error en la salida del canal

011 010

0 diferencia de 2 1 diferencia de 1

Más probable = 1

0 diferencia de 1 1 diferencia de 2

Más probable = 0

codificador canal decodificador

1 0 1 0

0 000 1 111

111 000 011 010

Error en la salida del canal

011 010

0 diferencia de 2 1 diferencia de 1

Más probable = 1

0 diferencia de 1 1 diferencia de 2

Más probable = 0

Figura 2.6 Decodificación de Canal

Los trabajos posteriores al documento de Shannon [3] están enfocados en la búsqueda de esquemas de codificación que permitan acercarse a la capacidad del canal (límite de Shannon) en distintos tipos de canales.

Existen varios tipos de codificación de canal clasificados como: forma de onda y secuencias estructuradas.

(31)

se enfoca en los turbo códigos, se dará una breve explicación de los esquemas de secuencias estructuradas.

Señalización M-aria

Antípoda

Ortogonal

Modulación codificada de Trellis

Bloques

Convolucional

Turbo-códigos Forma de Onda

(Diseño de la señal) Secuencias Estructuradas(Redundancia estructurada)

Señalización M-aria

Antípoda

Ortogonal

Modulación codificada de Trellis

Bloques

Convolucional

Turbo-códigos Forma de Onda

(Diseño de la señal) Secuencias Estructuradas(Redundancia estructurada)

Figura 2.7 Codificaciones de canal (original en color)

2.3.1 Bondades de la codificación de canal

El uso de la codificación de canal ha permitido al diseño de los sistemas de comunicación lograr mejoras en su rendimiento sin necesidad de aumentar la potencia, así como disminuirla con el mismo rendimiento en la probabilidad de error (PB). Asimismo, permite aumentar la tasa de

transferencia de los datos y crecer la capacidad del canal a costo de la ampliación en el ancho de banda, esto debido a la necesidad de los bits redundantes o al aumento del retardo en los sistemas donde no es importante la aplicación en tiempo real [8].

PB

10-2

10-6

10-4

Eb/ N0 (dB) A

B C

D E

F Señal Codificada

Señal No Codificada

9 14 8 PB

10-2

10-6

10-4

Eb/ N0 (dB) A

B C

D E

F Señal Codificada

Señal No Codificada

9 14 8

(32)

En la figura 2.8 se muestran dos curvas en una relación de la probabilidad de error y el Eb/N0, donde una de las curvas representa la señal sin codificar y la otra representa la señal codificada. Aquí se pueden apreciar las ventajas de codificar una señal en aplicaciones reales donde, por ejemplo, un sistema de comunicación que no utilice codificación y trabaje en el punto A, es decir, que tenga un Eb/N0 de 8 dB y una PB de 10-2 y la calidad de la señal recibida sea mala, puede llevarse al punto B, donde el rendimiento es mejor con una PB de 10-4 a través del aumento del Eb/N0. Sin embargo, si el límite del sistema es de 8 dB, incrementar el Eb/N0 no es una alternativa que resuelva el problema, pero sí llevarlo hasta el punto C usando la codificación y manteniendo el Eb/N0. Haciendo esto, se mejora el rendimiento en la corrección de errores a través de la adición de bits redundantes. El costo de la codificación es el aumento del ancho de banda en el sistema de comunicación. Por otra parte, si un sistema trabaja con buena calidad en la recepción en el punto D a 14 dB con una PB de 10-6 pero el sistema presenta fallas por el alto Eb/N0, se requeriría bajar la potencia sin afectar el rendimiento, por lo tanto será necesario operar del punto D al punto E utilizando de la misma manera la codificación a costo nuevamente del ancho de banda por la adición de los bits redundantes. En adición a lo anterior, reducir el Eb/N0 de 14 dB a 9 dB se le conoce como la ganancia de la codificación que es la reducción del Eb/N0 a través del uso de un código.

2.3.2 Codificación de bloque

Un codificador de bloque recibe un mensaje de símbolos de tamaño k y lo transforma en una secuencia más larga n a través de una matriz generadora G. El código generado depende del mensaje actual de entrada y no de mensajes anteriores (figura 2.9).

Mensaje c

Codificador de Bloque

Matriz Generadora G

Código

k c n

Mensaje c

Codificador de Bloque

Matriz Generadora G

Código

k cc n

Figura 2.9 Codificador de Bloque

2.3.3 Codificación Convolucional

(33)

es decir, es una codificación con “memoria”. Los codificadores convolucionales son implementados con registros de corrimiento lineal donde la información es procesada en diferentes estados con la ayuda de polinomios generadores que arrojan el código. Pueden ser clasificados como sistemáticos y no sistemáticos. Los codificadores convolucionales sistemáticos integran la información original como parte del código y los no sistemáticos, siendo estos más robustos, no utilizan la entrada original como parte de él.

En la figura 2.10 se puede ver un codificador convolucional sistemático constituido por M = 2 registros de corrimiento, la entrada de la información k, en este caso es 1 y la salida del código

n = 2 cuya tasa de codificación R = k/n donde R ≤ 1. La memoria de todo el codificador está

denotada por los registros s1 y s2 más el bit de entrada bi (M + 1). El mensaje almacenado en

estos registros determina el siguiente estado y el codificador convolucional se denota por (n, k, M).

Los polinomios generadores realizan un papel importante en la construcción de la topología del codificador, generando la salida del código convolucional a través del procesamiento de las compuertas de módulo-2. Estas compuertas limitan la salida a ciertos patrones propios, de tal forma que, al existir errores en la transmisión, el decodificador podrá deducir que la secuencia codificada no ha sido generada por el codificador convolucional y hubo errores en el canal. Entonces, el decodificador escogerá los patrones más cercanos a la secuencia codificada a través de la determinación probabilística y mostrará la salida de los datos. Los polinomios generadores se forman en base a la estructura del codificador convolucional y las compuertas de módulo-2, es decir, cada uno de los registros de corrimiento representa una literal “D” y un superíndice según la posición del registro. La entrada tendrá el valor de 1 y el número de polinomios generadores dependerá del número de bits de salida así como el tamaño del polinomio generador corresponderá al número de registros de corrimiento más el bit de entrada (memoria del codificador). De esta manera, en la figura 2.10, existen dos polinomios generadores g1 y g2. El

primero corresponde a la salida bi y únicamente está compuesta por el bit de entrada 1 y ningún

valor procesado por las compuertas de módulo-2 en los registros de corrimiento, así, g1 = [1 0 0]

(34)

+

Salida 10 9 8 7 6 5 4 3 2 1

0 1 1 0 0 1 1 0 0 1 Bits de entrada:

bi s1 s2

bi

bp

Polinomios generadores:

g1= [1 0 0 ] g2= [1 1 1 ]

+ +

Salida 10 9 8 7 6 5 4 3 2 1

0 1 1 0 0 1 1 0 0 1 Bits de entrada:

bi s1 s2

bi

bp

Polinomios generadores:

g1= [1 0 0 ] g2= [1 1 1 ]

Figura 2.10 Codificador Convolucional Sistemático (2, 1, 2)

La figura 2.11, muestra las salidas codificadas para la entrada k = 0 1 1 0 0 1 1 0 0 1 para cada uno de los diferentes estados. La salida se vería como 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1.

Entrada Salida 1 0 0 1 1 0 0 1 1 0 bi 0 1 0 0 1 1 0 0 1 1 s1 0 0 1 0 0 1 1 0 0 1 s2 1 0 0 1 1 0 0 1 1 0 bi 1 1 1 1 0 0 1 1 0 0 bp 1 2 3 4 5 6 7 8 9 10 Entrada Salida 1 0 0 1 1 0 0 1 1 0 bi 0 1 0 0 1 1 0 0 1 1 s1 0 0 1 0 0 1 1 0 0 1 s2 1 0 0 1 1 0 0 1 1 0 bi 1 1 1 1 0 0 1 1 0 0 bp 1 2 3 4 5 6 7 8 9 10

Figura 2.11 Salida del Codificador Convolucional Sistemático

(35)

conocidos también como codificadores convolucionales sistemáticos recursivos (RSC, por sus siglas en inglés).

0 1 1 0

0 0

1 1

0 / 01 1 / 11

0 / 00

1 / 10

0 / 01

1 / 11

1 / 10 0 / 00

0 1

0 1 1 01 0

0 0 0 0

1 1 1 1

0 / 01 1 / 11

0 / 00

1 / 10

0 / 01

1 / 11

1 / 10 0 / 00

Figura 2.12 Diagrama de Estados del Codificador Convolucional Sistemático (2, 1, 2)

0 1 1 0 0 1 1 0 0 1

0 0 0 1 1 0 1 1

0 1 2 3 4 5 6 7 8 9

00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 10 01 10 01 10 01 10 01 10 01 10 01 10 01 10 01 01 10 01 10 01 10 01 10 01 10 01 10 01 10 00 11 00 11 00 11 00 11 00 11 00 11 00 11 0 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1

0 1 2 3 4 5 6 7 8 9

00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 10 01 10 01 10 01 10 01 10 01 10 01 10 01 10 01 01 10 01 10 01 10 01 10 01 10 01 10 01 10 00 11 00 11 00 11 00 11 00 11 00 11 00 11

0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 1. Entrada

Salida

(36)

2.4 Turbo Códigos

Son códigos formados por la concatenación en paralelo de dos codificadores convolucionales sistemáticos recursivos (RSC) separados por un entrelazador (interleaver). La estructura de un turbo codificador se muestra en la siguiente figura:

Codificador Convolucional 1

Codificador Convolucional 2 Interleaver

Secuencia de Entrada

k

~

k

V0

1 V

2 V

Secuencia Codificada

0 V

1 V

2 V

Codificador Convolucional 1

Codificador Convolucional 2 Interleaver

Secuencia de Entrada

k

~

k

V0

1 V

2 V

Codificador Convolucional 1

Codificador Convolucional 2 Interleaver

Secuencia de Entrada

k

~

k

V0

1 V

2 V

Secuencia Codificada

0 V

1 V

2 V

Secuencia Codificada

0 V

1 V

2 V

Figura 2.13 Turbo Codificador

Una secuencia de entrada de información es introducida en el Codificador Convolucional 1 con tasa R = 1/2, generando una primera secuencia de bits de paridad; asimismo, esta secuencia de entrada es permutada por el entrelazador e introducida al Codificador Convolucional 2 para ser codificada y generar la segunda secuencia de bits de paridad. Los datos de la secuencia de entrada son transmitidos junto con las dos secuencias de paridad con una tasa R = 1/3.

La estructura concatenada en paralelo de los codificadores convolucionales del turbo codificador, proporcionan a los códigos una mejor capacidad de corrección de errores de códigos grandes (mejor rendimiento) y pueden ser decodificados con algoritmos moderadamente complejos [8]. Un turbo codificador logra una probabilidad de error de bit (BER) de 10-5 utilizando un código de

R = 1/2, una longitud de restricción M = 5, polinomios generadores g1 = 37 y g2 = 21 y un Eb/N0

(37)

Figura 2.14 Rendimiento del Turbo Codificador con varias iteraciones2

2.4.1 Entrelazadores (Interleavers)

Los entrelazadores o interleavers permutan una secuencia de datos ordenándolos de una forma determinística, es decir, cada símbolo o bit de información ocupa una posición diferente a la secuencia de datos de entrada (figura 2.15). El proceso contrario se le conoce como desentrelazado o deinterleaver que reordena los datos nuevamente en la secuencia original.

2 BERROU C., GLAVIEUX A., THITIMAJSHIMA P., Near Shannon Limit error-Correcting Coding and

(38)

Debido a la naturaleza concatenada en paralelo del turbo codificador, le permite trabajar con la misma entrada de datos de información pero en diferente secuencia; esto es, el primer codificador recibe un bit de entrada ci y produce una salida

(

, 1

)

i i y

c mientras que el segundo codificador recibe una entrada ci′y produce la salida

(

, 2

)

i i y

c′ , [15]. Los bits de entrada se agrupan según el tamaño N del entrelazador donde el primer codificador convolucional de tasa 1/2 genera una salida sistemática y otra con los bits de paridad y el segundo codificador genera las mismas salidas para la entrada entrelazada, pero omitiendo la salida sistemática dejando paso únicamente a los bits de paridad con una tasa de 1/3. Esto le permite al turbo código tener más información que utilizará el turbo decodificador para determinar la secuencia de bits de entrada en el receptor.

Entrelazador

c = (c

1

, c

2

,…, c

N

)

c’= (c’

1,

c’

2

,…, c’

N

)

Entrelazador

Entrelazador

c = (c

1

, c

2

,…, c

N

)

c’= (c’

1,

c’

2

,…, c’

N

)

Figura 2.15 Representación de un Entrelazador

Por ejemplo, si se tiene un entrelazador de bloques con tamaño N = 8, la entrada se representaría como c=(c1,c2,c3,c4,c5,c6,c7,c8) y la secuencia entrelazada c′=(c1′,c2′,c3′,c4′,c5,c6′,c7′,c8′) sería c=(c1,c5,c2,c6,c3,c7,c4,c8) como se muestra en la figura 2.16.

c = c1 c2 c3 c4 c5 c6 c7 c8

c’ = c1 c5 c2 c6 c3 c7 c4 c8

Figura 2.15 Mapa de un Entrelazador

Figure

Figura 1.2 Metodología del proyecto (original en color)
Figura 3.8 Celda lógica de un FPGA Xilinx serie 40006
Figura 3.14 Diagrama básico de comunicación
Figura 3.16 Valores modulados con  BPSK a la salida del canal AWG N (original en color)
+7

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

Un método de estudio aparte de ser una herramienta muy útil al momento de estudiar también nos ayuda a agilizar nuestra mente y tener una buena memoria para futuro?. Palabras

Además de aparecer en forma de volumen, las Memorias conocieron una primera difusión, a los tres meses de la muerte del autor, en las páginas de La Presse en forma de folletín,

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Después de una descripción muy rápida de la optimización así como los problemas en los sistemas de fabricación, se presenta la integración de dos herramientas existentes

por unidad de tiempo (throughput) en estado estacionario de las transiciones.. de una red de Petri

Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,