Vous êtes sur la page 1sur 10

Cuantificacin y Codificacin PRCTICA 6

( 2 sesiones)

Laboratorio de Seales y Comunicaciones 3 curso, Ingeniera Tcnica de Telecomunicacin Especialidad Sistemas de Telecomunicacin
er

Javier Ramos Lpez, Fernando Daz de Mara, Fernando Prez Cruz y David Luengo Garca

1. Objetivos
1.1. Objetivos de las prcticas de comunicaciones El objetivo de las prcticas de comunicaciones es simular un sistema de comunicaciones completo, en el que se consideren todos los aspectos bsicos que pueden influir en una correcta transmisin desde la fuente hasta el destinatario de la informacin que se pretende transmitir. Para realizar este sistema de comunicaciones va a ser necesario tener en cuenta los conocimientos adquiridos en las asignaturas de Teora de la Comunicacin (2 curso, 2 cuatrimestre) y Comunicaciones Digitales (3er curso, 1er cuatrimestre). Los bloques fundamentales de un sistema de comunicaciones se muestran en la Figura 1.

Figura 1: Bloques bsicos de un sistema de comunicaciones

En un sistema de comunicaciones pueden aparecer los siguientes elementos: Muestreo: Bloque que proporciona a su salida un conjunto de muestras discretas equiespaciadas de una seal continua de entrada limitada en banda. Si el periodo de muestreo cumple el criterio de Nyquist (es decir, si la frecuencia de muestreo es mayor que el doble del ancho de banda de la seal continua) se

puede recuperar la seal original a partir de las muestras sin error (al menos en teora) mediante un filtrado paso bajo. Codificador: Bloque que transforma las muestras discretas (pero con amplitud continua) obtenidas en el proceso de muestreo, en un conjunto finito de posibles amplitudes que se puedan codificar mediante una expresin binaria. Forma, junto con el bloque de muestreo, el conversor analgico/digital. Codificador de Fuente: Bloque que transforma la seal de entrada binaria en una seal de salida binaria con una tasa menor o igual que la de la seal original eliminando su redundancia. Codificador de Canal: Bloque que transforma la entrada binaria en una salida binaria de mayor o igual tasa que la original, introduciendo en ella redundancia controlada. Dicha redundancia se va a emplear para detectar y/o corregir los errores producidos por el canal de comunicaciones. Modulador: Bloque que transforma la entrada binaria en una seal continua adecuada para ser transmitida por el canal de comunicaciones. Tambin recibe el nombre de codificador de forma de onda. Canal de Comunicaciones: Bloque que simula el medio de transmisin existente entre el transmisor y el receptor, y que engloba todos los efectos indeseados (ruido, distorsin, etc.) que se producen durante la transmisin. Los canales de comu-nicaciones considerados van a ser de dos tipos: canal aditivo blanco Gaussiano (slo aade ruido Gaussiano) y canal limitado en banda (canal que se comporta como un filtro paso bajo o paso banda y que adems introduce ruido Gaussiano).

Los bloques del receptor realizan la operacin inversa de los bloques en el transmisor, y en el orden inverso. Esto es, la primera operacin realizada es la ltima del transmisor (decodificacin de canal) y viceversa (la ltima etapa consiste en la reconstruccin de la seal analgica a partir de las muestras). Las operaciones de muestreo y reconstruccin ya se han visto en la primera parte de la asignatura, de modo que en general se supondr que se disponen, bien de muestras discretas que hay que cuantificar, bien directamente de bits. En cualquier caso, en el receptor se decodificarn los bits en muestras, pero no se reconstruir la seal analgica de la que provienen. En esta asignatura no se van a tratar muchos de los aspectos que aparecen en las comunicaciones digitales y que son tan relevantes como los antes expuestos: igualacin, sincronizacin, diseo de sistemas, etc. Puesto que el objetivo de este curso es asentar los conocimientos bsicos acerca de la cadena de elementos de un sistema de comunicaciones, se ha preferido dejar el estudio de estos aspectos para cursos ms avanzados.

1.2. Objetivos de esta prctica Los objetivos principales de esta prctica son los siguientes: Aprender a construir cuantificadores uniformes y no uniformes. Estudiar los diferentes factores que intervienen en su diseo. Evaluar su rendimiento, mediante el ruido de cuantificacin y la relacin seal a ruido, para distintos tipos de seales.

2. Contenido Terico
A continuacin se va a realizar una breve descripcin de los dos elementos que van a ser necesarios para la realizacin de esta primera prctica: el cuantificador, y el codificador. Esta descripcin no va a sustituir la informacin recibida en las asignaturas de Teora de la Comunicacin y Comunicaciones Digitales, y se deber acudir a las referencias bibliogrficas de estas asignaturas para comprender todos los aspectos tericos que se van a tratar en estas prcticas.

2.1. Cuantificacin y codificacin Este bloque se encarga de transformar las muestras discretas en bits. En este curso nicamente se va a tratar el problema de la cuantificacin escalar, en la que las muestras provenientes del muestreador se procesan de forma independiente unas de las otras. El objetivo del cuantificador es asignar a cada valor dentro de un rango continuo (seal sin cuantificar) una muestra representativa del mismo de entre un conjunto discreto de elementos posibles (seal cuantificada). A su vez, estos valores discretos se pueden caracterizar unvocamente mediante un nmero finito de bits utilizando un codificador posterior (seal codificada). Existen dos tipos bsicos de cuantificadores. La cuantificacin uniforme es aquella en la que todos los segmentos en que se divide la recta real son de igual longitud, salvo en los extremos del cuantificador. Si las amplitudes de la seal sin cuantificar se distribuyen uniformemente dentro del rango dinmico del cuantificador, entonces la funcin de densidad probabilidad del error de cuantificacin es uniforme entre -/2 y /2 ( es el escaln de cuantificacin). Dentro de los cuantificadores uniformes se pueden distinguir dos clases bsicas: los cuantificadores mid-tread y mid-riser.

Figura 2: Cuantificadores mid-tread y mid-riser.

Ambos tipos de cuantificadores (mid-tread y mid-riser) se muestran en la Figura 2. En un cuantificador mid-tread, si la muestra a cuantificar (seal de entrada) es cero o prcticamente cero (esto es, se encuentra entre 0.5 y 0.5), el cuantificador va a devolver siempre el valor cero. Desafortunadamente, no se trata de un cuantificador simtrico: para los valores positivos tiene un escaln de cuantificacin menos que para los negativos. Por otro lado, un cuantificador mid-riser presenta el mismo nmero de escalones para la parte positiva y negativa de la seal, pero las muestras prximas a cero van a fluctuar entre dos niveles (en el caso en que slo haya muestras de ruido a la entrada del cuantificador y no exista seal a codificar). Esta fluctuacin puede ser indeseable (porque puede forzar a que se transmitan bits cuando no hay informacin que transmitir) o puede ser deseable (en sistemas de transmisin continua asegura que la lnea se mantiene siempre activa, ya que hay bits constantemente cambiando de valor a causa del ruido a la entrada del cuantificador). Por ltimo, el rango dinmico de los cuantificadores se define como el rango de valores de la seal de entrada dentro del cual el error mximo entre la seal de entrada y la cuantificada es menor o igual a /2. El rango dinmico para los dos cuantificadores presentados es de 4 a 3 para el cuantificador mid-tread, Figura 2(a), y de 3.5 a 3.5 para el cuantificador mid-riser. Los valores de entrada fuera del rango dinmico producen un error que se conoce como error de sobrecarga, y que se debe tratar de evitar ajustando cuidadosamente el rango dinmico del cuantificador con el de la seal, ya que puede ser mucho mayor que el error de cuantificacin e independiente de . En muchas ocasiones la cuantificacin uniforme no es la mejor opcin porque existe mucha actividad en algunas zonas del rango dinmico y muy poca en otras. Un caso tpico es aquel en el que aparecen muchas muestras entorno a cero y muy pocas en los extremos del rango dinmico. Por ejemplo, este el caso de las seales de voz, para las

que es mucho ms probable tener muestras con amplitudes pequeas, que adems van a requerir una mayor resolucin que las muestras de gran amplitud. Una posibilidad para solucionar este problema consiste en utilizar un cuantificador uniforme con la precisin mxima requerida, pero esto puede llevar a transmitir muchos ms bits de los necesarios en la zona donde dicha precisin no es necesaria. En consecuencia, la solucin habitual consiste en emplear cuantificadores no uniformes en los que los segmentos adjudicados a cada escaln no son de igual longitud. La forma usual de realizar un cuantificador no uniforme es pasando la seal por un compresor (funcin no lineal de la entrada) que expanda la parte del rango dinmico que hay que cuantificar con mayor calidad y contraiga la parte del rango dinmico que hay que cuantificar con menor calidad. A la salida del decuantificador hay que colocar la funcin inversa (expansor) para recuperar la seal original (obviamente con un cierto error de cuantificacin inevitable). En la Figura 3 se muestra de forma esquemtica el funcionamiento del compresor-expansor (compansor).

Figura 3: Construccin de un cuantificador/codificador no uniforme con un compansor.

Una de las leyes empleadas para el compresor-expansor es la conocida como Ley A empleada en Telefona:

x 1 $ A x / xmax si 0 % % ! 1 + ln A xmax A c( x ) ! =# xmax !1 + ln (A x / x ) x 1 max si % %1 ! 1 + ln A A xmax "


La funcin anterior proporciona la salida para valores de x positivos. Para valores negativos simplemente hay que tomar c(|x|). El valor estndar de A es 87.56.

3. Cuestionario previo
3.1. Desarrolle sobre el papel las funciones q_midriser, c_midriser y d_midriser de los ejercicios 4.1 al 4.3. Qu niveles de salida debe proporcionar el cuantificador mid-riser para N = 3 y N = 4? Obtenga la expresin terica de la potencia del ruido de cuantificacin suponiendo que este se encuentra distribuido uniformemente entre -/2 y /2. Calcule la potencia media para las siguientes seales: Sinusoide con amplitud A. Seal con fdp uniforme de la amplitud entre -1 y 1. Seal con fdp Gaussiana de la amplitud con media cero y varianza 2. Cul es la relacin seal a ruido de cuantificacin (en dBs) en funcin del nmero de bits del cuantificador para cada uno de los tres casos anteriores (asuma que la potencia del ruido de cuantificacin es la obtenida en 3.2)? Cmo vara la relacin seal a ruido al aumentar el nmero de bits? 3.4. Se dispone de una variable aleatoria Gaussiana, x, de media nula y varianza unidad. A partir de x se genera una nueva variable aleatoria, y = ax + b. Deduzca la expresin de la fdp de y. Si se desea obtener una variable aleatoria Gaussiana con media y varianza 2, cunto tienen que valer a y b? La forma ms sencilla y habitual de estimar la fdp de una variable aleatoria X es mediante un histograma: un diagrama que divide el rango del vector x en segmentos de igual longitud y cuenta el nmero de elementos de x que caen dentro de cada segmento. La fdp as estimada se puede poner como
Nb ' x ) xi f ( x ) = ! p i *% % ( i =1 & i

3.2. 3.3.

3.5.

$ " ", #

donde xi es el centro de cada segmento del histograma, Nb es el nmero de segmentos, i representa su anchura (igual para todos los segmentos habitualmente), y () representa un pulso centrado en xi y de anchura total i. Si se dispone de un vector de longitud M y Ni es el nmero de puntos que caen dentro del segmento i-simo, obtenga el valor de pi en funcin de Ni, M, Nb y (el rango total de posibles valores de x). 3.6. Desarrolle sobre el papel las funciones ley_A y ley_A_inv del ejercicio 4.9. Qu niveles de salida debe proporcionar el cuantificador mid-riser para N = 3 y valores de A = 10, 20 y 87.6? Dibuje su relacin entrada-salida en el caso en que N = 3 y A = 20.

4. Cuantificacin y Codificacin
Ejercicio 4.1. Codifique la funcin xq = q_midriser(x,N), que proporciona la salida de un cuantificador mid-riser uniforme de N bits y margen dinmico entre 1 y 1, cuando a la entrada del cuantificador se encuentra el vector de muestras x. La funcin q_midriser proporciona un vector xq de longitud igual a la longitud de x, y que slo puede tomar un nmero finito de 2N valores. Compruebe el correcto funcionamiento del cuantificador generando una seal de entrada cuya amplitud vaya desde -1.2 a 1.2 con paso 0.001, y dibujando la relacin entre la seal de entrada y la seal cuantificada para N = 3. Ejercicio 4.2. Utilizando la funcin q_midriser desarrollada en el ejercicio anterior, construya otra funcin y = c_midriser(x,N) que realice el proceso completo de cuantificacin y codificacin. La entrada ser el vector de muestras x, y la salida debe ser una secuencia binaria de longitud N veces la de x. Para ello puede emplear las funciones xpcm = bin_enc(xq,N) e y = par2ser(xpcm). La primera pasa de un vector de nmeros reales cuantificados/decuantificados a una matriz de tamao la longitud de xq por N. La segunda serializa la matriz xpcm por filas. Compruebe el correcto funcionamiento del cuantificador/codificador construyendo una seal de entrada de longitud 2N tal que sus muestras se encuentren de manera consecutiva dentro de cada uno de los 2N escalones del cuantificador para N = 3, y observando los bits transmitidos. Para cada muestra, se transmite primero el bit ms significativo (MSB) o el menos significativo (LSB)? Ejercicio 4.3. Codifique la funcin xr = d_midriser(y,N) que proporciona la salida de un decuantificador mid-riser uniforme de N bits y margen dinmico entre 1 y 1, cuando a la entrada del decuantificador se dispone de un vector binario en el que cada N bits representan un valor a reconstruir. La funcin d_midriser proporciona un vector, xr, real de longitud igual a la longitud de y entre N. Para ello puede emplear las funciones x_bin = ser2par(y,N) y xr = bin_dec(x_bin). La primera parareliza un vector binario en una matriz con N columnas. La segunda convierte un vector binario de N bits en un valor de reconstruccin entre 1 y 1. Compruebe su correcto funcionamiento dibujando la relacin entrada-salida en este caso (es decir, la relacin entre la seal original, x, y la decuantificada, xr) y viendo que coincide con la del ejercicio 4.1. Ejercicio 4.4. Codifique la funcin x = coseno(A,fo,phi,M) que genera un vector x con M muestras de un coseno con amplitud A, frecuencia discreta fo y fase phi. Usando esta funcin genere un vector, x, de 100 muestras de un seno con frecuencia f0 = 0.03 y amplitud A = 1.5. Dibuje la sinusoide y la seal de salida tras pasar por el cuantificador/decuantificador, xr, en la misma grfica, y el ruido de cuantificacin (la diferencia entre la seal original y la reconstruida) para N = 3 y N = 8 en otra grfica. Observa algn efecto extrao? Realice los ajustes necesarios sobre la seal para corregirlo y repita el ejercicio.

Ejercicio 4.5. Genere una nueva sinusoide con amplitud A = 1, fo = 0.05 y fase aleatoria entre 0 y 2 (utilice la funcin rand). Calcule la potencia del ruido de cuantificacin para esta seal con N comprendido entre 1 y 8 usando M = 1000 puntos, y rellene la columna correspondiente de la Tabla 1. Repita el clculo para una seal distribuida uniformemente entre -1 y 1, y para una seal con amplitud Gaussiana de media nula y varianza 1/4 (use la funcin randn). Rellene las otras dos columnas de la Tabla 1.

Bits 1 2 3 4 5 6 7 8

Sinusoide

Uniforme

Gaussiana

Tabla 1: Ruido de cuantificacin para diferentes seales y nmero de bits.

Dibuje la relacin seal a ruido de cuantificacin en dBs para cada caso y comprela con la terica. Coinciden los resultados? En caso negativo indique a qu son debidas las diferencias en cada uno de los tres casos. Ejercicio 4.6. Estime la fdp del ruido de cuantificacin para cada una de las tres seales del ejercicio anterior con N = 4 mediante un histograma con 25 segmentos (bins) usando las funciones hist y bar. Coincide el resultado con la fdp terica? Explica este resultado las diferencias en la relacin seal a ruido de cuanti-ficacin observadas en el ejercicio anterior? Ejercicio 4.7. La funcin chan_bin(xser,Pe) simula un canal binario con probabilidad Pe de que un bit se reciba errneamente. Calcule la potencia del ruido (la diferencia entre la seal decuantificada y la real) cuando se codifica la sinusoide del ejercicio 4.5 con la funcin c_midriser con N = 3 y N = 8 para una probabilidad de error en chan_bin entre Pe = 10-5 y Pe = 10-1 (con paso 10-1). Promedie 1000 realizaciones para obtener resultados ms fiables. Dibuje en una grfica la relacin seal a ruido en dBs para cada

valor de Pe y comprela con la obtenida en el ejercicio 5.5 (sin errores). Qu conclusiones obtiene? Ejercicio 4.8. Un cdigo de Gray es aquel en el que nicamente cambia un bit entre smbolos consecutivos. La ventaja de los cdigos de Gray (frente a la codificacin binaria natural) es que un error en un bit representa un menor error en la seal final decodificada. Repita el ejercicio anterior utilizando cdigos de Gray. Para ello, construya dos nuevas funciones, c_midriser2 y d_midriser2, en las que se deben utilizar (en el punto adecuado) las funciones bin2gray(xpcm) y gray2bin(xrpcm) para convertir de binario natural a cdigo de Gray y viceversa. Ejercicio 4.9. Codifique una funcin que realice la ley A, x_comp = ley_A(x,A), para cuantificacin no uniforme y su funcin inversa, x_exp = ley_A_inv(x_comp,A), supuesto xmax = 1. Para comprobar su correcto funcionamiento genere una seal de entrada como la del ejercicio 4.1 y, para A = 20, represente: la relacin entre x y x_comp, la relacin entre x_exp y x (sin proceso de cuantificacin), y la relacin entrada-salida del cuantificador no uniforme. Ejercicio 4.10. Cargue el fichero voz.wav, [x,fs,nbits] = wavread(voz.wav), y estime su fdp. A la vista de la misma, resulta adecuada una cuantificacin lineal? Aplique la ley A a la seal de voz con A = 87.6. Dibuje la seal original y la seal comprimida en el dominio del tiempo y estime la fdp de esta ltima. Resulta ms adecuada esta nueva seal para aplicar el cuantificador lineal? Calcule, para N = 8, la relacin seal a ruido de cuantificacin en ambos casos (cuantificacin uniforme y no uniforme). Calcule tambin el error medio porcentual (esto es, la media del error en cada punto dividido por el valor de la seal en dicho punto) Cree que ha mejorado la seal codificada al introducir esta no linealidad? Puede comprobarlo escuchando las diferentes seales de voz mediante el comando wavplay(x,fs). Ejercicio 4.11. Cargue ahora la seal proporcionada en el fichero logistico.mat, represntela y estime su fdp mediante un histograma. Resulta adecuado utilizar un cuantificador uniforme en esta ocasin? y un cuantificador no uniforme empleando la ley A? En caso negativo, qu tipo de relacin de compansin es recomendable para esta seal? Comprubelo calculando la relacin seal a ruido de cuantificacin y el error medio porcentual en cada caso para N = 8.

Vous aimerez peut-être aussi