REPUBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL DE LA FUERZA ARMADA LOS TEQUES – EDO. MIRANDA
CODIFICACIÓN DE CANAL INTEGRANTES: Yusbel Machado C.I. 19.764.550 Merlius Fernandez C.I. 18.537.423 Alan Carvajal C.I. 16.888.880 Manrique Antonio C.I: 15.118.202 Portuguez Mauricio C.I 14.852.239 Freddy Acosta C.I. 14.674.336
PROF. Ruthbelys Valera JUNIO 2011
INTRODUCCIÓN
La finalidad de la codificación de canal es la detección y corrección de errores producidos en el canal de comunicación o en medios de grabación, como consecuencia del ruido y distorsión introducidos, tanto por el medio de propagación, como por las no linealidades en el propio sistema de transmisión. El tema es muy amplio y su tratamiento a fondo queda fuera del contexto de esta obra, por lo que aquí, se tratarán únicamente los principales aspectos relacionados con la transmisión digital de señales de televisión. La codificación del canal consiste en 'mapear' (añadir redundancia) la secuencia de datos entrante en una secuencia de entrada al canal y realizar el 'mapeo' inverso a la salida del canal en una secuencia de datos tal que los efectos del ruido estén minimizados. La introducción de redundancia en la codificación del canal tiene como finalidad mejorar la fiabilidad de la transmisión. Antes de comenzar con la descripción de algunos de estos códigos es conveniente dar unas definiciones: - tasa de error: Se define como la relación entre el número de bits erróneos recibi recibidos dos respec respecto to al número número total total de bits bits transm transmitid itidos. os. Una tasa tasa de error error aceptable para una transmisión es 10 elevado a la -6. - tasa residual de error: Se define como la relación entre el número de bits erróneos no detectados sobre el total de bits emitidos. Mide la capacidad de detectar errores. - peso de Hamming: El peso de Hamming W(c) de una palabra de código c se define como el número de bits de esa palabra diferentes de cero. - distancia de Hamming: Es la distancia entre dos palabras de código de igual longitud y se define como el número de bits (posición a posición) en los que se diferencian las dos palabras.
También es necesario hacer una diferenciación entre los distintos tipos de códigos: - Códigos sistemáticos: aquellos códigos en los que la palabra de información aparece de forma explícita en la palabra codificada. - Códi Código gos s no sist sistem emát átic icos os:: aque aquell llos os códi código gos s en los los que que la pala palabr bra a de información no aparece de forma explícita en la palabra codificada. - Códigos de bloque: Son aquellos códigos en los l os que todas las palabras tienen la misma longitud y la codificación se hace de forma estática. - Código Códigos s lineal lineales: es: aquell aquellos os en los que cualqu cualquier ier combin combinac ación ión lineal lineal de palabras de código válida produce otra palabra válida. - Códigos cíclicos: aquellos en los que cualquier desplazamiento cíclico de una palabra de código da lugar a otra palabra de código.
CODIFICACION DE CANAL En ocasiones se producen diferencias entre las secuencias de datos enviadas a través de un canal y las secuencias de datos recibidas debidas a la existencia de ruido en el canal. A estas diferencias se les denomina errores. Por ello es necesario realizar una codificación a la entrada del canal, cuyo objetivo es que el receptor sea capaz de detectar y corregir los errores producidos en los datos durante su transmisión por el canal. La codificación del canal consiste en introducir redundancia, de forma que sea posible reconstruir la secuencia de datos original de la forma más fiable posible. Hay dos técnicas de corrección de errores: •
Detección de errores o corrección hacia atrás: Cuando el receptor detecta un error solicita al emisor la repetición del bloque de datos transmitido. El emisor retransmitirá los datos tantas veces como sea necesario hasta que los datos se reciban sin errores.
•
Corrección de errores o corrección hacia delante: Se basa en el uso de códigos autocorrectores que permiten la corrección de errores en el receptor. El objetivo de la codificación de canal teoría es encontrar los códigos
que transmiten rápidamente, contienen muchos válidas las palabras de código y puede corregir o al menos detectar muchos errores. Si bien no se excluyen mutuamente, el rendimiento en estas áreas es una compensación. Así, los diferentes códigos son óptimas para diferentes aplicaciones. Las propiedades necesarias de este código dependen principalmente de la probabilidad de errores ocurre durante la transmisión. En un CD normal, el deterioro es principalmente por el polvo o arañazos. Así, los códigos se utilizan de manera intercalada. Los datos se extiende a lo largo del disco. Aunque no es un código muy bueno, un código de repetición simple puede servir de ejemplo comprensible. Supongamos que tenemos un bloque de bits de datos (en representación de sonido) y enviar tres veces. En el receptor se examinarán las tres repeticiones poco a poco y tomar un voto de la mayoría. El giro de esta es que no se limitan a enviar los bits de orden. Nosotros los de la interpolación. El
bloque de bits de datos por primera vez dividido en cuatro bloques más pequeños. Luego pasar por el bloque y enviar un poco de la primera, luego el segundo, etc Esto se hace tres veces para difundir los datos a lo largo de la superficie del disco. En el marco del código de repetición simple, esto puede no parecer eficaz. Sin embargo, hay códigos más potente que se conoce que son muy eficaces en la corrección de la "explosión" error de un rasguño o una mancha de polvo cuando esta técnica se utiliza interpolación. Otros códigos son más apropiados para diferentes aplicaciones. El espacio de las comunicaciones profundas es limitado por el ruido térmico del receptor que es más de carácter continuo de carácter ráfagas. Del mismo modo, los módems de banda estrecha están limitados por el ruido, presente en la red telefónica y también el modelo más como una perturbación continua. Los teléfonos celulares están sujetos a una rápida decoloración. Las altas frecuencias utilizadas pueden causar decoloración rápida de la señal, incluso si el receptor se mueve unos centímetros. Una vez más hay una clase de códigos de canal que están destinadas a luchar contra la decoloración.
Codificadores de la forma de onda Los codificadores de la forma de onda intentan reproducir la forma de la onda de la señal de entrada. Generalmente se diseñan para ser independientes a la señal, de tal forma que pueden ser usados para codificar una gran variedad de señales. Presentan una degradación aceptable en presencia de ruido y errores de transmisión. Sin embargo, para que sean efectivos, sólo se deben usar a bit-rates medios. La codificación se puede llevar a cabo tanto en el dominio del tiempo como de la frecuencia. Los codificadores de forma de onda dividen en dos grupos:
Codificadores en el dominio del tiempo
Dentro de este grupo tenemos los siguientes codificadores:
PCM DPCM ADPCM Modulación por codificación de impulsos (PCM) La modulación por codificación de impulsos es la codificación de forma de onda más sencilla. Básicamente, consiste en el proceso de cuantificación. Cada muestra que entra al codificador se cuantifica en un determinado nivel de entre un conjunto finito de niveles de reconstrucción. Cada uno de estos niveles se hace corresponder con una secuencia de dígitos binarios, y ésto es lo que se envía al receptor. Se pueden usar distintos criterios para llevar a cabo la cuantificación, siendo el más usado el de la cuantificación logarítmica: Modulación por codificación de impulsos diferencial (DPCM) Puesto que PCM no tiene en cuenta la forma de la onda de la señal a codificar, funciona muy bien con señales que no sean las de la voz, sin embargo, cuando se codifica voz hay una gran correlación entre las muestras adyacentes. Esta correlación puede aprovecharse para reducir el bit-rate. Una forma sencilla de hacerlo sería transmitir solamente las diferencias entre las muestras. Esta señal de diferencia tiene un rango dinámico mucho menor que el de la voz original, por lo que podrá ser cuantificada con un número menor de niveles de reconstrucción. En la figura siguiente se muestra el funcionamiento de DPCM,donde la muestra anterior se usa para predecir el valor de la muestra actual:
Sistema DPCM (a) codificador (b) decodificador Normalmente, el valor predicho,s' n, es una combinación lineal de un número finito de muestras anteriores, sn:
y La señal de diferencia, d n, se denomina residuo y es el residuo lo que se cuantifica y se envía al receptor. Los coeficientes de predicción , {ak }, se eligen para minimizar el error cuadrático medio, E :
Modulación por codificación de impulsos diferencial adaptativa (ADPCM) En DPCM tanto el predictor como el cuantificador permanecen fijos en el tiempo. Se podría conseguir una mayor eficiencia si el cuantificador se adaptase a los cambios del residuo de predicción. Además, también se podría hacer que la predicción se adaptase a la señal de la voz. Esto aseguraría que la raíz cuadrada del error de predicción se minimice contínuamente, con independencia de la señal de voz y de quién la emita.
La siguiente figura muestra un codificador/decodificador ADPCM:
Hay dos métodos para adaptar los cuantificadores y los predictores, llamados adaptación en feedforward y adaptación en feedbackward . En la adaptación feedforward los niveles de reconstrucción y los coeficientes de predicción se calculan en el emisor, usando un bloque de voz. Después son cuantificados y transmitidos al receptor como información lateral. Tanto el emisor como el receptor usan estos valores cuantificados para hacer las predicciones y cuantificar el residuo. En la adaptación feedbackward los niveles de reconstrucción y los coeficientes de predicción se calculan a partir de la señal codificada. Puesto que la señal es conocida tanto por el emisor como por el receptor, no hay necesidad de transmitir información lateral, así el predictor y el cuantificador pueden actualizarse para cada muestra. La adaptación feedbackward puede dar menores bir rates, pero es más sensible a los errores de transmisión que la adaptación feedforward. ADPCM es muy útil para codificar voz a bit rates medios.La CCITT propone un estandar de codificación de voz telefónica a una velocidad de 32 kb/s. Es el estandar G.721. Usa un esquema de adaptación feedbackward tanto para el cuantificador como para el predictor. El predictor tiene dos polos y
seis ceros, por lo que produce una calidad de salida aceptable para señales que no son de voz. En el ejemplo audiovisual podrá ver el efecto de aplicar codificación ADPCM a una señal de voz.
Codificación en el dominio de la frecuencia Este tipo de codificadores dividen la señal en distintas componentes en frecuencia y codifican cada una de éstas de forma independiente. El número de bits usados para codificar cada componente en frecuencia puede variar dinámicamente. Algunos codificadores son: Codificación en sub-bandas Es el más sencillo de los métodos en el dominio de la frecuencia. Sea el siguiente codificador en sub-bandas:
La señal atraviesa un conjunto de filtros paso-banda (BPF). Después, cada sub-banda se pasa a banda baja y se realiza un proceso de decimación, es decir, se quitan muestras. Las sub-bandas se codifican usando algún método basado en el dominio del tiempo. El número de bits asignados a cada banda pueden variar en función de la importancia de dicha banda. En el
receptor, se añaden muestras y se vuelven a modular las bandas a sus posiciones originales. Al final, se suman para obtener la señal de voz de salida. La principal ventaja de la codificación en subbandas es que el ruido de cuantificación que se produce en cada banda queda confinado a la misma. La codificación en subbandas se usa mucho en señales de un gran ancho de banda, como puede ser en teleconferencia. Para más información, consultar el estandar G.722 de la CCITT. Codificación por transformada Consiste en una codificación por bloques. La señal de entrada se transforma en un dominio diferente y se codifican los coeficientes de la transformación. En el receptor, el decodificador calcula la transformada inversa para obtener la señal original reconstruída. La transformación más usada es la Transformada Discreta del Coseno, DCT, cuya representación es la siguiente:
La codificación por transformada se utiliza en la codificación de señales de banda ancha de imagen y sonido. Sin embargo, no se usa mucho en codificación de voz debido a su complejidad.
La detección de errores Debido a los numerosos problemas a la hora de realizar la transmisión,
es necesario utilizar técnicas que permitan detectar y corregir los errores que se hayan producido. Estas técnicas se basan siempre en la idea de añadir cierta información redundante a la información que desee enviarse. A partir de ella el receptor puede determinar, de forma bastante fiable, si los bits recibidos corresponden realmente a los enviado. Algunos métodos son: Paridad Uno de los métodos más comúnmente empleados para detectar errores, cuando el número de bits de información a transmitir es pequeño y la probabilidad de que ocurra un error es baja, es el uso de un bit adicional de paridad por elemento transmitido. Puede conseguirse una importante mejora añadiendo un segundo grupo de bits de paridad, como puede verse en la siguiente tabla. Para ello deben agruparse los datos en bloques y aplicar el control de paridad a dos dimensiones (filas y columnas). Para cada carácter se añade un bit de paridad, como en el caso anterior. Además, se genera un bit de paridad para cada posición de bit a través de todos los caracteres. Es decir, se genera un carácter adicional en que el i-ésimo bit del carácter es un bit de paridad para el i-ésimo bit de todos los caracteres en el bloque.
Códigos de redundancia cíclica Los códigos de redundancia cíclica, también conocidos como códigos polinomiales constituyen el método de detección de errores más empleado en
comunicaciones. Se utiliza con esquemas de transmisión orientados a tramas (o bloques). Permiten sustanciales mejoras en fiabilidad respecto a los métodos anteriores, siendo a la vez una técnica de fácil implementación. Imponiendo condiciones bastante simples sobre los polinomios divisores es posible detectar un gran número de errores. Existen tres polinomios G(x) que se han convertido en estándares internacionales. CRC-12 X12 + x11 + x3 + x2 + x +1 CRC-16 X16 + x15 + x2 + 1 CRC-CCITT X16 + x12 + x5 + 1 Con secuencias de control de 16 bits, utilizando los polinomios CRC-16 y CRC-CCITT es posible detectar todos los errores simples y los dobles, todos los que afectan a un número impar de bits, todos los errores tipo ráfaga de 16 bits o menores, el 99,997% de errores ráfaga de 17 bits y el 99.998% de los de 18 bits y mayores.
Código Hamming El algoritmo de Hamming, puede corregir cualquier error de un solo bit, pero cuando hay errores en más de un bit, la palabra transmitida se confunde con otra con error en un sólo bit, siendo corregida, pero de forma incorrecta, es decir que la palabra que se corrige es otra distinta a la original, y el mensaje final será incorrecto sin saberlo. Para poder detectar (aunque sin corregirlos) errores de dos bits, se debe añadir un bit más.
El algoritmo es el siguiente:
1. Todos los bits cuya posición es potencia de dos se utilizan como bits de paridad (posiciones 1, 2, 4, 8, 16, 32, 64, etc.). 2. Los bits del resto de posiciones son utilizados como bits de datos (posiciones 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.). 3. Cada bit de paridad se obtiene calculando la paridad de alguno de los bits de datos. La posición del bit de paridad determina la secuencia de los bits que alternativamente comprueba y salta, a partir de éste, tal y como se explica a continuación. •
Posición 1: salta 0, comprueba 1, salta 1, comprueba 1, etc.
•
Posición 2: salta 1, comprueba 2, salta 2, comprueba 2, etc.
•
Posición 4: salta 3, comprueba 4, salta 4, comprueba 4, etc.
•
Posición 8: salta 7, comprueba 8, salta 8, comprueba 8, etc.
•
Posición 16: salta 15, comprueba 16, salta 16, comprueba
16, etc. •
Regla general para la posición n es: salta n-1 bits,
comprueba n bits, salta n bits, comprueba n bits... •
Y así sucesivamente.
En otras palabras, el bit de paridad de la posición 2 k comprueba los bits en las posiciones que tengan al bit k en su representación binaria. Dicho a la inversa, el bit 13, por ejemplo, es chequeado por los bits 8, 4 y 1, al ser estos los de su representación binaria: 13=1101(2); 8=1000(2); 4=0100(2); 1=0001(2). Así, por ejemplo, para los primeros términos se tiene: •
En la Posición 1 (2^0 = 1), comprobaríamos los bits: 3, 5, 7,
9, 11, 13... •
En la Posición 2 (2^1 = 2), los bits: 3, 6, 7, 10, 11, 14, 15...
•
En la Posición 4 (2^2 = 4), los bits: 5, 6, 7, 12, 13, 14, 15,
20, 21, 22, 23... •
En la Posición 8 (2^3 = 8) tendríamos: 9, 10, 11, 12, 13, 14,
15, 24-31... Siguiendo el algoritmo hasta completar la nueva cadena.
Efectos de los Errores de Información en el Video
Tipos de Control de Errores
Decodificadores Dura y Suave
Codificación de Canal en DVB Este sistema se define como un bloque de equipos funcionales encargados de la adaptación de la señal de banda base de TV, proveniente de la salida del multiplexador de flujos de transporte MPEG-2, para poder enviar esta señal por el canal terrestre de la manera más eficiente. Los siguientes procesos deben ser aplicados al flujo de datos: •
Adaptación del flujo de transporte y randomización para
dispersar energía •
Codificado exterior (código Reed-Solomon)
•
Entrelazado exterior (entrelazado convolucional)
•
Codificado interior (código convolucional punteado)
•
Entrelazado interior (entrelazado de bit y símbolo)
•
Mapeado y modulado
•
Adaptación en tramas (inserción de señales piloto y TPS)
•
Modulación OFDM
•
Inserción del intervalo de guarda
•
Conversión de D/A
•
Transmisión(amplificación y antena)
En la siguiente figura se muestra de manera esquemática el diagrama de bloques funcional del sistema DVB-T, donde el camino discontinuo representa el flujo de baja prioridad si se utilizara la modulación jerárquica.
Diagrama de Bloques del Sistema DVB-T. Marcados con puntos los bloques funcionales para transmisiones jerárquicas El sistema DVB-T dispone de una serie de posibilidades en estos procesos que lo hace flexible a posibles variaciones futuras o diferentes adaptaciones, ofreciendo: •
2 modos de transmisión: 2k (1.705 portadoras); 8k (6.817 portadoras)
•
3 esquemas de modulación: QPSK; 16-QAM; 64-QAM
•
5 relaciones de codificación para protección interna de errores: 1/2, 2/3, 3/4, 5/6, 7/8.
•
4 longitudes para el intervalo de guarda: 1/4, 1/8, 1/16, 1/32
•
Modulación jerárquica o no jerárquica con diferentes valores del parámetro α Como se ve, el sistema DVB-T permite transmisiones jerárquicas, por lo
cual se forman dos flujos de transporte. Uno, denominado de
Alta Prioridad
(HP), que tiene baja velocidad y por tanto menor calidad de imagen, que modula las portadoras con un esquema de modulación muy robusto frente al
ruido (QPSK); mientras que el segundo flujo de transporte, de
Baja Prioridad
(LP), complementa al anterior en cuanto a velocidad y calidad de imagen, combinando su información, de forma que las portadoras son moduladas finalmente con un esquema más exigente en cuanto a relación señal/ruido. En la zona del área de cobertura donde se reciba la señal con buena relación S/N, la imagen recuperada, de alta calidad, corresponderá a la combinación de los dos flujos (alta y baja prioridad) mientras que en caso contrario la calidad de imagen recibida será peor, correspondiendo sólo al flujo de alta prioridad. De los dos modos de operación, el modo 2K es adecuado para trabajar con conexiones SFN pequeñas que tienen limitada la distancia de transmisión, mientras que el modo 8K permite el uso de redes SFN de largas y cortas distancias. El sistema DVB-T permite tres tipos de recepción: •
Recepción fija, método tradicional que utiliza las actuales antenas colectivas, o similares, instaladas en los tejados de los edificios.
•
Recepción portátil, es decir, que se puede recibir la señal desde cualquier parte del edificio sin necesidad que el receptor esté conectado a una clavija fija. Para ello, en lugar de los típicos amplificadores interior, se utilizan los nuevos equipos reemisores conocidos como gap fillers domésticos.
•
Recepción móvil, la televisión no sólo puede ser recibida en cualquier lugar, sino incluso en movimiento (como, por ejemplo, en un autobús o en un tren). Pruebas realizadas demuestran que la señal recibida es útil para velocidades inferiores a 120 km/h. Para que dicha recepción sea adecuada y casi libre de errores (QEF),
según dictamina el Real-Decreto 401/2003 de ICTs, necesitaremos una relación C/N de unos 20 dB para las transmisiones terrestres. La relación
necesaria para el sistema DVB-S vía satélite es un poco menor, siendo de 11 dB la relación necesaria para proveer una recepción QEF.
Ventajas y desventajas Protección contra desvanecimiento selectivo de las portadoras Un desvanecimiento es una distorsión provocada por las variaciones de las características físicas del canal, que tiene como resultado una disminución de la potencia recibida, que es la desventaja de OFDM. Como solución, se agrega a la modulación OFDM un codificador de canal compuesto de dos elementos: un código convolucional y un entrelazador de portadoras, ya sea al nivel de bis o símbolos. El efecto conjunto del código convolucional y del entrelazador puede verse como un promediado de los desvanecimientos locales sobre todo el espectro de la señal.
Modulación Jerárquica La modulación jerárquica permite integrar la modulación QPSK dentro de la constelación de QAM de 16 o más niveles, permitiendo transmitir dos servicios al mismo tiempo, y hace que la transmisión QPSK sea menos susceptible a las interferencias que en el caso de QAM de 16 o de más niveles no jerárquicos. Bajo este criterio se puede transmitir, por ejemplo, en un flujo de datos de baja prioridad, el servicio de HDTV, mientras que en el flujo de alta prioridad enviamos el servicio de SDTV.
Alta eficiencia espectral Debido a que cada portadora es traslapada una con otra con la técnica o esquema de modulación por multiplexación por división de frecuencia ortogonal (OFDM), se logra incrementar notablemente la tasa binaria útil a transmitir, en comparación con respecto a la técnica de FDM.
Simplificación de la ecualización Una de las características de este esquema de modulación es que facilita la ecualización en el receptor, debido a que distribuye una serie de
portadoras llamadas portadoras pilotos a lo largo de todo el ancho de banda que se va a usar en la transmisión. Por lo tanto, es fácil hallar la respuesta en frecuencia
del
canal mediante la transmisión
de una
secuencia
de
entrenamiento, es decir, una serie de portadoras pilotos, con lo que se consigue reducir, e incluso eliminar, la influencia del canal sobre los datos transmitidos.
Protección contra interferencias de intersímbolos (ISI) La utilización del intervalo de guarda provee la tolerancia contra la interferencia de intersímbolo. Mientras el retardo de las señales que llegan al receptor COFDM sea menor que el intervalo de guarda se consigue con esto evitar que unos símbolos OFDM se vean afectados por otros, solo permaneciendo de este modo la interferencia intrasímbolo.
La tasa binaria de datos puede escalarse para diferentes condiciones El sistema COFDM se puede adaptar al canal de comunicaciones variando la tasa binaria útil a transmitir perforando el código base del codificador
convolucional
para
canales
menos
selectivos
o
de
baja
interferencia. También se puede reducir cuando se requiere ajustar la distancia máxima entre el transmisor y un receptor ajustando la duración del intervalo de guarda.
Redes de Frecuencia Única (SFN: Single-Frequency Networks) La posibilidad de crear una red de SFN constituye una de las grandes ventajas de un sistema basado en COFDM. Un aspecto a destacar de dicha técnica es que permite la operación tanto en áreas pequeñas como en grandes. En este tipo de redes, es posible la recepción en un área de cobertura donde los transmisores radian a la misma frecuencia y todas las emisiones modulan la misma
señal,
teniendo para
ello
que
estar sincronizados todos
los
transmisores. Como desventaja podemos decir que no se pueden realizar desconexiones, pues la señal debe ser la misma para todos los equipos transmisores del área de cobertura.
Por el contrario, en estas condiciones, su planificación es más sencilla y se obtiene la máxima eficiencia del espectro, lo cual adquiere especial relevancia cuando se usa en las bandas de UHF asignadas para TV. En recepción se producen ganancias de la señal por los propios ecos que se generan durante la transmisión, debido a la utilización del intervalo de guarda la señal, que se utiliza para reducir los efectos del multitrayecto ya sea natural o artificial pudiendo así utilizar varias transmisores separados a una distancia adecuada generando así multitrayecto artificial, entonces se produce una suma de todas las señales de la red que llegan al receptor COFDM.
Muy sensible a la sincronización en tiempo y frecuencia Para el receptor es difícil encontrar el comienzo del símbolo OFDM, proceso necesario para así poder establecer la sincronización en tiempo y en frecuencia. También le es difícil encontrar la posición de las portadoras dentro del símbolo OFDM, aún con la ayuda de las portadoras piloto, que poseen una potencia superior al resto.
Mayor complejidad del sistema Los requerimientos de la corrección del error de fase común, la alta linealidad del amplificador de potencia para el transmisor, la utilización de un codificador secundario más entrelazamiento para mejorar el BER en el receptor y otros requerimientos adicionales, son funciones que incrementan la complejidad del sistema.
Perdida de eficiencia espectral Es causada por la duración del intervalo de guarda y las tasas de codificación utilizadas, ya que es necesario ajustar dichas características del sistema COFDM por varias condiciones de funcionamiento, prescindiendo en ocasiones de tasa binaria por mejorar la prevención de futuros errores.
Más sensible al ruido de fase y al desplazamiento en frecuencia en las portadoras El ruido de fase es causado por todos los osciladores locales que hay desde la salida de la IFFT del transmisor hasta la entrada de la FFT en el receptor que trae como consecuencia la rotación de la constelación del esquema de la modulación de las portadoras. El desplazamiento de frecuencia puede dar lugar a causar interferencia interportadora (ICI) y una reducción en la potencia en las portadoras.
Alta relación de potencia pico-promedio (Peak to average power ratio) Por ser una modulación multiportadora que causa gran fluctuación en la envolvente de la señal transmitida, reduciendo de esta manera la eficiencia del amplificador de potencia de RF del transmisor, causando a la vez productos de intermodulación en la señal transmitida. Este efecto es reducido por filtros.
Códigos de Bloque Los códigos de bloque son técnicas utilizadas para transformar un conjunto de datos binarios "N" en otro un poco más largo "K" donde se agregan unos bits de más para dar redundancia al código saliente K, donde (K>N). El número de dígitos de comprobación o redundancia sera M=K-N; donde M son la cantidad digitos adicionados. El principio que se utiliza en los códigos de bloque consiste en estructurar los datos en bloques de longitud fija y añadir a cada bloque un cierto número de bits llamados bits de redundancia. Sólo ciertas combinaciones de bits son aceptables y forman una colección de palabras de código válidas. Cuando los datos se transmiten y llegan al receptor hay dos posibilidades: •
Que la palabra que se recibe sea una palabra de código válido.
•
Que la palabra que se recibe no sea un código válido, en cuyo caso hay dos posibilidades:
o
El receptor puede recrear el bloque original FEC (código autocorrector ).
o
El receptor puede pedir que se retransmita el bloque ARQ(código de autochequeo).
Códigos Reed-Solomon El codificador Reed-Solomon toma un bloque de información digital y añade bits redundantes. Los errores pueden ocurrir durante la transmisión o almacenamiento de información por varios motivos (p. Ej. Ruido o interferencia, ralladuras en los discos compactos etc.). El decodificador Reed-Solomon procesa cada bloque e intenta corregir los errores y recuperar la información original. El número y tipo de errores que pueden ser corregidos depende de las características del código Reed-Solomon. El código Reed-Solomon es un subconjunto de los códigos BCH y son de bloques lineales. Un código Reed-Solomon se especifica como RS(n,k) con símbolos de s bits. Lo anterior significa que el codificador toma k símbolos de los s bit y añade símbolos de paridad para hacer una palabra de código de n símbolos. Existen n-k símbolos de paridad de s bits cada uno. Un decodificador puede corregir hasta t símbolos que contienen errores en una palabra de código, donde 2t=n-k. El siguiente diagrama muestra una típica palabra de código ReedSolomon (este se conoce como un código sistemático puesto que los datos se dejan inalterados y los símbolos de paridad se anexan): Ejemplo: Un código popular Reed-Solomon es RS(255,223) con símbolos de 8 bits. Cada palabra de código contiene 255 bytes de palabra de código, de los cuales 223 bytes son datos y 32 bytes son paridad. Para este código se tiene: •
N=255, k=223, s=8
•
2t=32, t=16
El decodificador puede corregir cualquier error de 16 símbolos en la palabra de código, es decir, errores de hasta 16 bytes en cualquier lugar de la palabra pueden ser automáticamente corregidos. Dado un tamaño de símbolo s, la máxima longitud de la palabra de código (n) para un código Reed-Solomon es n=2 s − 1. Por ejemplo, la máxima longitud de un código con símbolos de 8 bits (s=8) es de 255 bytes. Los códigos Reed-Solomon pueden ser acortados haciendo un número de símbolos de datos igual a cero en el codificador, no transmitiendo estos, y reinsertando éstos en el decodificador.
Códigos Convolucionales Los códigos convolucionales se describen a partir de ciertos elementos como son la tasa del código, la longitud del código, la memoria del codificador y los polinomios generadores. La tasa del código, k/n, es la relación entre el número de bits que entran al codificador (k) y el número de bits que se obtienen a la salida del codificador (n). En cuanto a la longitud del código, K, denota en cuántos ciclos de codificación tiene influencia un bit que tengamos a la entrada del mismo a partir de un instante dado, ya que recordemos que este bit que tenemos a la entrada del codificador en un instante dado irá recorriendo la cadena de flip-flops que forman el registro de desplazamiento. Así, un parámetro muy relacionado con K es la memoria del codificador, m, que precisamente es el número de flip-flops que contiene el codificador. Por último, los polinomios generadores son también muy importantes a la hora de definir el funcionamiento de un codificador convolucional, y veremos mejor su significado mediante un ejemplo. La codificación convolucional se realiza básicamente mediante el uso de un registro de desplazamiento y una lógica combinacional encargada de la realización de la suma en módulo 2. El registro de desplazamiento está implementado mediante la concatenación de una serie de flips-flops, de manera que cada vez que llega un ciclo de reloj, el dato que tenemos a la entrada de un flip-flop pasa a su salida y se sitúa por tanto en la entrada del siguiente flip-flop, que ha hecho lo propio con el dato que tenía en su entrada
cuando llegó el ciclo de reloj. En cuanto a la lógica combinacional que realiza la suma en módulo 2, basta con utilizar puertas XOR. En la siguiente figura podemos apreciar un ejemplo de codificador convolucional, en el que la tasa del código es 1/2, K=3 y m=2. En este codificador, los bits de entrada llegan con una tasa de k bits por segundo y obtenemos una tasa a la salida del codificador de n=2k bits por segundo. El bit de entrada se mantiene estable durante el ciclo de codificación, el cual comienza cada vez que llega un ciclo de reloj. Cuando llega el ciclo de reloj, la salida del flip-flop izquierdo se introduce en el flip-flop derecho, es decir, pasa a la salida de éste, y el bit que teníamos a la entrada del codificador previamente pasa a la salida del primer flip-flop. Es entonces cuando el nuevo bit está disponible en la entrada. En cuanto al multiplexor que tenemos a la salida, conmuta durante el ciclo de reloj entre las dos posiciones, de manera que primero selecciona la salida del sumador superior y posteriormente selecciona la salida del sumador inferior, formando así el símbolo de dos bits. En cuanto a los polinomios generadores, en este caso se trata de un codificador (7,5). Estos dos
números
representan
los
polinomios
generadores,
ya
que
las
representaciones binarias de estos números (111 y 101) se corresponden con las conexiones del registro de desplazamiento y los sumadores superior e inferior respectivamente. En este caso los polinomios generadores serían 1 + x + x2 y 1 + x2 respectivamente. Veamos ahora el funcionamiento de la codificación convolucional mediante
un
ejemplo.
Supongamos
la
secuencia
de
entrada
010111001010001. Supongamos también que las salidas de ambos flip-flops están inicialmente a 0. El primer ciclo de reloj hace que el primer bit a la entrada, 0, esté disponible a la entrada del codificador. Las salidas de los flipflops son ceros y por tanto todas las entradas a ambos sumadores son también ceros, por los que la salida de ambos sumadores es 0, de manera que el símbolo de salida sería el 00. El segundo ciclo de reloj hace que el segundo bit de entrada esté disponible para el codificador. Ambos flip-flops leen los bits que tenían en sus entradas previamente, que en ambos caso eran 0. Así, las entradas al sumador
superior son 100, de manera que su salida es 1. Análogamente las entradas al sumador inferior son 10, por lo que su salida también es un 1. Por tanto, el símbolo codificado esta vez sería el 11. El tercer ciclo de reloj hace que el tercer bit de entrada, un cero, esté disponible para el codificador. El primer flip-flop lee su entrada anterior, que era un 1, y el segundo flip-flop hace lo mismo leyendo el cero que tiene en este caso en su entrada, por lo que ahora las entradas a los sumadores son 010 y 00, lo que hace que el símbolo obtenido en esta ocasión sea el 10. Después de que todos los bits de entrada hayan pasado por el codificador, la secuencia de salida sería: 00 11 10 00 01 10 01 11 11 10 00 10 11 00 11. En este ejemplo se puede ver claramente como cada bit de entrada tiene efecto en los 3 símbolos de salida siguientes, ya que se trata de un codificador con K=3. De hecho este es un punto extremadamente importante y es lo que le da a la codificación convolucional la potencia para corregir errores. Por este motivo, si queremos que el último bit afecte a tres símbolos de salida se necesitan dos símbolos de salida adicionales. Esto se consigue introduciendo dos bits a cero en el codificador en los dos siguientes ciclos de reloj. Con esto conseguimos los dos símbolos adicionales que necesitamos y además "limpiamos" el registro de desplazamiento, de manera que para la próxima secuencia a codificar tendremos a las entradas de los flip-flops un 0, como supusimos inicialmente. En general, el número de ceros que tenemos que introducir es igual al número de flip-flops que contiene nuestro codificador. De esta explicación se pueden extraer algunas conclusiones, y es que podemos ver el algoritmo de codificación convolucional como una máquina de estados. El codificador del ejemplo tiene dos bits de memoria, lo que significa que tenemos cuatro estados posibles. Podemos decir que el estado lo definen las entradas que tienen los flip-flops en un instante dado. Por ejemplo, si en ambas entradas tenemos un cero, estaremos en el estado 00, si la primera entrada es un cero y la segunda es un uno, estaremos en el estado 01 y así
sucesivamente. Asimismo, si estando en el estado 00 (ambas entradas a cero) el bit que tenemos a la entrada cuando llega el siguiente ciclo de reloj es un cero, entonces permaneceremos en el estado 00. Sin embargo, si el siguiente bit a la entrada es un uno en lugar de un cero, pasaremos al estado 10. Análogamente, si estando en el estado 10 el siguiente bit a la entrada es un cero, pasaremos al estado 01 mientras que si el bit de entrada es un 1, pasaríamos al estado 11. Por tanto podemos completar la tabla 1 que nos indica cuál es el siguiente estado dependiendo del estado en el que estamos y del bit que nos llega a la entrada y la tabla 2, que nos indica cuál es el símbolo de salida en función de nuevo del estado en el que nos encontramos y del bit de entrada que nos llega.
Estado Actual
Estado siguiente si... Entrada = 0 Entrada = 1
00
00
10
01
00
10
10
01
11
11
01
11
Estado Actual
Símbolo de salida si... Entrada = 0 Entrada = 1
00
00
11
01
11
00
10
10
01
11
01
10
CONCLUSION En esta investigación nos referimos al bloque de codificación de canal de un sistema de comunicaciones digitales en una televisión, detallando distintos códigos que nos ayudan a la detección y corrección de errores. Cuando transmitimos información, uno de los objetivos principales es el de minimizar la cantidad de errores que pudieran producirse en el proceso. Esta transmisión depende del factor Señal a Ruido (S/N), potencia y velocidad de transmisión. Si optimizando estas variables se necesita aún mejorar la calidad de la transmisión, entonces se deben buscar ciertos métodos que aseguren y mejoren la fiabilidad. Es a partir de aquí que surge el concepto de la codificación para control de errores. La codificación de canal para el control de errores se encarga, básicamente, de la adición de dígitos extra al mensaje a transmitir. Ellos no poseen información como tal, pero hacen posible la detección y corrección de errores en el bloque de recepción del mensaje.