Sie sind auf Seite 1von 10

UNIVERSIDAD NACIONAL DE INGENIERIA ESCUELA DE TELECOMUNICACIONES LABORATORIO DE TELECOMUNICACIONES II (IT564)

LABORATORIO 4. EL EFECTO DE ISI Y DEL RUIDO MEDIANTE LA OBSERVACIN DEL DIAGRAMA DE OJO
La realizacin del laboratorio es grupal, se llevar a cabo en funcin de un programa ejecutable que resuelve el problema, que muestre de forma clara y ordenada las respuestas exigidas. Se recomienda la utilizacin de los comandos disp(texto), disp(var), pause, title, xlabel, ylabel, legend, clg y clc. en los ficheros .m para documentar los resultados presentados en pantalla. OBJETIVOS El objetivo de este laboratorio consiste en hacer comprender al alumno el efecto que el canal y el ruido tienen sobre las seales de comunicaciones digitales. As mismo trata sobre el estudio de receptores y de sus prestaciones (probabilidad de error). En particular se estudiarn: Las causas ms comunes de distorsin en los sistemas de comunicaciones digitales El efecto de la ISI y del ruido mediante la observacin del diagrama de ojo. Los receptores basados en el filtro adaptado Prestaciones de receptores no adaptados.

Preguntas para el Informe Previo: 1. Cuando y para que se obtiene el diagrama de ojos? 2. Que es el Jitter? 3. Que representa el BER o tasa de bit en error? 4. Defina la interferencia inter simbolo. NOTA: Si le falta algun dato asuma un valor. Preguntas para el Informe Final: 1. Que informacin obtiene del diagrama de ojo? 2. En qu casos se usa? 1. SIMULACION DE CANALES.

N(t) ruido Filtro transmisor seal CANAL Filtro receptor

Figura 1. Etapas analgicas de un sistema de comunicaciones digitales en banda base Uno de los resultados ms interesantes del procesado de seal es que es posible procesar seales continuas mediante filtros digitales (ver Figura 2). Esto es, dado un

sistema LTI continuo con respuesta al impulso h(t) y respuesta en frecuencia H(f) que para una entrada x(t) da una salida y(t), es posible sustituirlo por un sistema en tiempo discreto equivalente, siempre que la seal x(t) se muestree cumpliendo el criterio de Nyquist.

x(t)

Sistema continuo H(f)

y(t)

x(t)

A/D

Sistema discreto H()

D/A

y(t)

Figura 2. Simulacin digital de un sistema continuo. Por tanto sustituiremos en nuestra simulacin los sistemas en tiempo continuo por sus equivalentes discretos. Es ms, como la entrada al filtro transmisor es una seal en tiempo discreto (los smbolos) podemos eliminar el A/D y sustituir el filtro transmisor por su equivalente discreto (de hecho, en la mayora de los sistemas reales de Comunicaciones Digitales los filtros transmisor y receptor se implementan digitalmente. De igual manera podemos sustituir el canal por su sistema digital equivalente, aadir a la seal de salida un ruido generado digitalmente de la misma densidad espectral de potencia del que existe en la realidad y filtrar la seal resultante por un filtro receptor digital. Si esta simulacin digital se lleva a cabo cuidadosamente, el efecto es exactamente igual al del sistema continuo. Adicionalmente, podremos enviar a la tarjeta de sonido cualquiera de las seales con el fin de observarlas en el osciloscopio y comprobar la veracidad de las simulaciones. Nota: Para que el entorno de simulacin funcione adecuadamente es necesario inicializar una serie de variables globales ejecutando el comando iniciar. Al ejecutar iniciar el programa le solicitar el nmero de experimento: >>Introduzca el nmero de experimento debe introducir un #. El programa deber responder: >>================================================= >> En esta sesin de MATLAB se utilizan 10 muestras por smbolo. >> Asumiendo un rgimen binario de 800 bits/seg, la frecuencia >> de muestreo es 8 [kHz]. >> La componente frecuencial ms alta que pueden manejar las >> rutinas MATLAB es menor o igual que 4.00 [kHz]. >> >>=================================================== Se utilizan 10 muestras por smbolo, con lo que una seal de comunicaciones binaria a 800 baudios se muestrear a 8 KHz (ancho de banda de simulacin 4 KHz). En el caso de que el programa no se comporte de esta manera, ejecute el comando clear global y repita la operacin. Si sigue sin dar los resultados previstos pregunte al profesor. Recuerde que si en algn momento ejecuta el comando clear o abandona Matlab deber ejecutar de nuevo iniciar.

En esta seccin vamos a analizar el efecto de un canal en la seal transmitida utilizando la funcin channel: channel (entrada, ganancia, potencia de ruido, ancho de banda) donde se definen la ganancia del filtro (normalmente se fija a 1), la potencia de ruido que introduce el canal y el ancho de banda del mismo. Si se ejecuta la funcin channel sin variable de salida dibuja la respuesta en frecuencia y fase del filtro de canal: channel([],1,0,2500) a) Efecto del ancho de banda en la forma de onda transmitida: Vamos a comprobar el efecto de un canal limitado en banda sobre la seal de comunicaciones: b=binary(10); x=wave_gen (b,'polar_nrz'); % Seal NRZ polar de 800 bps (recuerde iniciar) y=channel(x,1,0,3300); subplot(211), waveplot(x) subplot(212), waveplot(y) envia([x ,y']/2,10000);pause;cierra(0) % Observe ambas seales en el osciloscopio b) Repita el apartado a) para diferentes anchos de banda: {2500, 1500,1000 y 500}. Observe el retardo introducido por el canal y la dispersin e interferencia entre smbolos que provoca. Observe las distintas seales en el osciloscopio y responda a la pregunta del cuestionario. 2. DIAGRAMA DE OJO. El diagrama de ojo es una herramienta muy til para apreciar la distorsin introducida por el canal en nuestra seal de comunicaciones. El diagrama de ojo se obtiene dibujando superpuestas partes de la forma de onda siguiendo los disparos de una seal de reloj. La anchura de cada tramo es ligeramente superior que el perodo de smbolo Ts. En esta simulacin el diagrama de ojo se obtiene con una anchura de 2Ts. Los parmetros bsicos en un diagrama de ojo son:

Figura 3. Diagrama de ojo. A: Intervalo de tiempo en el que se puede muestrear la seal para decidir.

B: C: D: E: t*:

Margen de ruido Distorsin de los cruces por cero Pendiente: Sensibilidad a errores en el instante de muestreo Distorsin mxima Instante ptimo de muestreo medido con respecto al origen de tiempos. Si el perodo de smbolo es Ts, la forma de onda se muestrear en t*, en t*+Ts, t*+2Ts,... para recuperar la informacin transmitida.

a) Diagrama de ojo de una seal nrz polar: Generemos una seal polar_NRZ conocida b=[1 0 0 1 0 1 1 0]; x=wave_gen (b, 'polar_nrz'); subplot(211), waveplot(x); subplot(212), eye_diag(x); El diagrama de ojo que se ha obtenido es lo que se espera de una forma de onda no distorsionada. Para observar como se genera un diagrama de ojo y como refleja la distorsin introducida por el canal en la seal x ejecute: y=channel(x,1,0,3900); subplot(211),waveplot(y) subplot(212),eye_diag(y,-1) Si el segundo argumento de la funcin eye_diag es negativo, se debe pulsar la tecla de retorno para que se dibuje el siguiente segmento de seal. No pase este apartado sin entender perfectamente como se genera un diagrama de ojo. En los siguientes apartados se utilizar codlin para observar el diagaram de ojo (as como la seal en lnea y su DEP) de distintas seales y el efecto del ruido y del canal. Recuerde que para ello codlin tambin utiliza las funciones wave_gen, channel, eye_diagram, waveplot y envia, etc. b) Usando codlin genere el diagrama de ojo de una seal NRZ polar de 4410 bps muestreada a 44100 muestras/s para valores de potencia de ruido 2 = {0.02, 0.1} sin limitacin en el ancho de banda (use Ancho de Banda = 21000Hz) y para 2 = 0.01 con anchos de banda Bw={5000, 10000}. Obsrvelo tambin en el osciloscopio. Para poder sincronizar el osciloscopio utilice como disparo la seal del canal derecho (seleccione la opcin reloj en el cuadro Disparo de codlin para observar ojos y la opcin pulso para observar la seal en lnea) c) Repita el apartado anterior con cdigo manchester (se muestrea en uno de los dos ojos). NOTA: Recuerde que, estrictamente, para observar el diagrama de ojo tendramos que tener en cuenta tambin el efecto del filtro receptor, y no slo el filtro transmisor y el canal.

3. CONFORMACION CON COSENO ALZADO. En canales limitados en banda es importante utilizar filtros transmisores que den lugar a seales del menor ancho de banda posible, de forma que se use el ancho de banda disponible de la forma ms eficiente. Una de las formas ms utilizadas de conformar sin ISI consiste en que la respuesta conjunta del filtro transmisor y el receptor sea un filtro en coseno alzado. Estos filtros dependen de un parmetro llamado factor de "roll off" (exceso de ancho de banda) que vara entre 0 y 1. Utilice preferentemente la frecuencia de muestreo de 44100 Hz para que las seales se observen ms estables en el osciloscopio. En este apartado vamos a generar seales de comunicaciones conformadas con un filtro en coseno alzado. Para ello el programa codlin hace uso de la funcin: nyq_gen( secuencia binaria, factor de roll off) a) Forma de onda y diagrama de ojo: Utilice codlin para generar una seal con 10 muestras por smbolo y conformada con un coseno alzado con r=0.25. Observe la seal (tanto en la pantalla como en el osciloscopio) y comprela con una NRZ polar de la misma velocidad de smbolo. Observando sus respectivos diagramas de ojo (en el ordenador y en el osciloscopio) se pueden apreciar las peculiaridades de cada sistema de transmisin. b) Observe el diagrama de ojo para seales conformadas en coseno alzado con r=[0.25 0.5 0.75 1]. Responda a las preguntas del cuestionario. c) Resulta interesante comparar las densidades espectrales de las seales en lnea para conformaciones con pulsos rectangulares y con cosenos alzados. Calcule el ancho de banda necesario en cada caso del apartado b. Compare los espectros que se obtienen con los de la NRZ polar. EL FILTRO ADAPTADO En la Figura 4 repetimos el modelo de un sistema de comunicaciones digitales banda base: como se recordar la seal en el receptor es una versin ruidosa, distorsionada y atenuada de la enviada por el transmisor. La misin del filtro receptor es eliminar la mayor parte posible de ruido distorsionando lo menos posible la seal de comunicaciones. El muestreador recupera una versin distorsionada y ruidosa de la secuencia de salida del codificador, el decisor decide que smbolo fue transmitido en cada instante (por ejemplo en el caso de una seal multinivel {-3 -1 1 3} el decisor presenta tres umbrales en 2, 0 y -2: si la muestra obtenida es mayor que 2 decide que se ha envidado un 3; si menor que 2 y mayor que 0 un 1, y as sucesivamente). Finalmente el decodificador recupera los bits originales. La calidad de este sistema se mide en probabilidad de error, esto es, cuantos smbolos (o bits) transmitidos se recuperan errneamente.

TRANSMISOR bits
Codificador Filtro transmisor

seal

CANAL

N(t) ruido

bits recep.

Decodificador

decisor

muestreador

Filtro receptor

RECEPTOR

Figura 4. Sistema de comunicaciones en banda de base. Nota. Para que el entorno de simulacin funcione adecuadamente es necesario inicializar una serie de variables globales ejecutando la funcin iniciar. Al ejecutar iniciar el programa le solicitar el nmero de experimento: >>Introduzca el nmero de experimento debe introducir otro #. El programa debe responder: >>================================================= >> En esta sesin de MATLAB se utilizan 8 muestras por smbolo. >> Asumiendo un rgimen binario de 1000 bits/seg, la frecuencia >> de muestreo es 8 [kHz]. >> La componente frecuencial ms alta que pueden manejar las >> rutinas MATLAB es menor o igual que 4.00 [kHz]. >> >>=================================================== Se utilizan 8 muestras por smbolo, con lo que una seal de comunicaciones binaria a 1000 baudios se muestrear a 8 KHz (ancho de banda de simulacin 4 KHz). En el caso de que el programa no se comporte de esta manera, ejecute el comando clear global y repita la operacin. Si sigue sin dar los resultados previstos pregunte al profesor. Recuerde que si en algn momento ejecuta el comando clear o abandona Matlab deber ejecutar de nuevo iniciar. 4. FILTRO ADAPTADO PARA PULSOS RECTANGULARES a) Genere un pulso rectangular de amplitud un voltio y duracin 1 msegundo. r=wave_gen(1, 'polar_nrz'); Dibuje r y la respuesta al impulso de un filtro adaptado basado en r subplot(311), waveplot(r) subplot(312), match('polar_nrz'); Observe la salida del filtro adaptado si se le aplica r a su entrada:

rm=match('polar_nrz', r); subplot(313), waveplot(rm); Determine el instante de tiempo en que la salida del filtro alcanza su valor mximo. b) Repita los apartados anteriores para un filtro triangular de 1 milisegundo de duracin: r=wave_gen(1, 'triangle'); subplot(311), waveplot(r) subplot(312), match('triangle'); rm=match('triangle', r); subplot(313), waveplot(rm); c) Repita nuevamente los comandos anteriores para un pulso de manchester de duracin 1 milisegundos. Prediga la respuesta al impulso del filtro adaptado y verifique su prediccin. d) Genere una seal NRZ polar que represente la secuencia [1 0 0 1 0]. x=wave_gen([1 0 0 1 0], 'polar_nrz'); subplot(211), waveplot(x); Aplique la seal x a un filtro adaptado. subplot(212), waveplot(match('polar_nrz', x)); Como se recordar, el filtro adaptado maximiza la relacin seal a ruido en recepcin de un pulso aislado. La necesidad de filtro receptor se pone de manifiesto en el siguiente apartado. 5. DETECCION DE SEALES a) Se genera una secuencia binaria de longitud 10 y la codificamos en NRZ polar: b= binary(10); x=wave_gen(b,'polar_nrz'); subplot(311), waveplot(x) b) Procese la seal x aandindole ruido aditivo, blanco y Gaussiano de potencia 2 W. Dibuje la salida del canal y=x+sqrt(2)*randn(length(x),1); subplot(312), waveplot(y); c) Filtre y con el filtro adaptado. Dibuje la seal resultante z=match('polar_nrz',y); subplot(313),waveplot(z); Sea T el perodo de smbolo. Compruebe (sobre la grfica) cuantos errores se cometeran si muestresemos la seal de salida del filtro adaptado en kT con k=1,..., 10. Utilice un criterio razonable de decisin. Y si para decidir utilizsemos las muestras de la seal sin filtrar, y, cometeramos ms errores?, resulta por tanto de utilidad el filtro adaptado?

6. RECEPTOR BASADO EN FILTRO ADAPTADO Uno de los objetivos de la simulacin de sistemas de comunicacin es calcular las probabilidades de error de un determinado sistema de transmisin. Para ello se simula el envo de una determinada cantidad de smbolos y se calcula el nmero de errores cometidos en la transmisin. En general, si se buscan probabilidades de error del orden de p hay que enviar, al menos, 10/p smbolos. Las probabilidades de error habituales oscilan entre 10-6 y 10-12 con lo que habra que enviar entre 10 millones y 10 millones de millones de smbolos para poder simular ese tipo de sistemas. Naturalmente nuestro simulador no puede manejar (en tiempos razonables) tal cantidad de bits. Por ello nos conformaremos con enviar 5000 smbolos y veremos las probabilidades de error que se alcanzan con potencias de ruido muy elevadas. Vamos, pues, a implementar el receptor completo y al calcular la probabilidad de error que obtenemos, tanto de forma terica como por simulacin. Recuerde ejecutar el comando iniciar con la opcin 2 (Rb=100 bits/s, fs=8000 Kmuestras/s) a) Se genera un secuencia binaria b de logitud 5000 y una seal NRZ polar basada en b. b=binary(5000) x=wave_gen(b,'polar_nrz'); Sume a x ruido aditivo, blanco y Gaussiano de potencia 0.5 W. y=x+sqrt(0.5)*randn(length(x),1); Filtre y con su filtro adaptado. Dibuje el diagrama de ojo de la seal resultante. z=match('polar_nrz',y); clf, eye_diag(z); A partir del diagrama de ojo, determine los instantes de muestreo ptimos y el valor del umbral de decisin v_th para que el detector pueda recuperar la secuencia binaria transmitida b. Los instantes ptimos de muestreo se miden con respecto al origen de tiempos. Si el perodo de smbolo es T y el instante de muestreo t, el detector muestrear la seal en t, t+T, t+2T... A partir de esos valores estimados (v_th y t), utilice la funcin detect(z,v_th, t, b) para recuperar la seal transmitida. La funcin imprime la probabilidad de error estimada como el nmero de smbolos incorrectos partido por el nmero de smbolos transmitidos. b) Repita el apartado a) para potencias de ruido 1, 1.5 y 2 W, no es necesario que dibuje el diagrama de ojo, pues el sistema sigue siendo el mismo y por tanto los valores v_th y t anteriores siguen siendo adecuados. c) Si se produce un error en el instante de muestreo, la probabilidad de error aumenta. Simule este hecho utilizando valores para t que sean 0.9 y 0.5 veces el valor ptimo utilizado en los apartados a) y b). De este apartado se deduce la enorme importancia de disear circuitos adecuados de recuperacin de sincronismo. d) Construya una funcin y=funcq(x) que nos de, para un parmetro x de entrada, el valor de Q(x). Utilice para ello la funcin erfc(x) de Matlab. Compare los resultados obtenidos en b) con los tericos. Si considera que la diferencia es importante repita la simulacin 10 veces para cada potencia de ruido y promedie las probabilidades de error obtenidas (o incremente la longitud de las secuencias binarias que utiliza).

NOTA: Recuerde que la potencia de ruido en discreto coincide con la potencia del ruido continuo que hemos muestreado. Por tanto, para calcular la potencia de ruido en tiempo discreto, se aplica la frmula que nos da la potencia de ruido a la salida de un filtro paso bajo ideal: = WNo,
2

donde W es 4 KHz (ancho de banda de la simulacin: la mitad de la frecuencia de muestreo). Se trata ahora de implementar un sistema de comunicaciones digitales real, en el cual un alumno actuar como transmisor y el otro como receptor. Para ello recuerde conectar la salida del alumno que transmite (cable TX) con la entrada del alumno que recibe (cable RX). e) Uno de los alumnos de la pareja utilizar el programa codlin_tx para generar distintas seales de comunicaciones digitales mientras que el otro alumno intentar recibirlas ejecutando codlin_rx. Utilice filtros raz cuadrada de coseno alzado (roll_off=0.5), fs=44100 y 10 muestras por bit. Observe las distintas seales y diagramas de ojo (en la pantalla del transmisor, del receptor y en el osciloscopio). Reflexione sobre el problema denominado baseline wander: observe como se manifiesta en el receptor en la seal recibida, en la filtrada y en el diagrama de ojo (distorsin mxima del diagrama de ojo como muestra la figura 3). Medite cmo mitigar este fenmeno y conteste el cuestionario en consecuencia. PROBLEMAS ATENCION: Para realizar los problemas recuerde inicializar el entorno del laboratorio ejecutando iniciar con experimento # (el primero) SAMPLING_FREQ = 8000 muestras/s BINARY_DATA_RATE = 800 bps SAMPLING_CONSTANT = 10 muestras/smbolo. 1. Genere dos secuencias b1 y b2 b1=[1 0 0 1], b2=[1 0 1 0]; y, a partir de las funciones utilizadas en esta prctica, genere y dibuje una seal que transmita ambas seales simultneamente utilizando una transmisin banda base de cuatro niveles (-3,-1, 1 y 3). Repita la operacin para conformacin en coseno alzado con r=0.5 y compare el diagrama de ojo (tanto en pantalla como en el osciloscopio) para dos y cuatro niveles de la seal conformada (genere una seal de 1000 smbolos). Razone si la inmunidad a errores en el sincronismo se ve afectada por el incremento en el nmero de niveles. 2 En este problema se compararn las prestaciones de un receptor ptimo (el basado en el filtro adaptado) con las de un receptor cuyo filtro de entrada es un simple circuito RC.

Filtro Rx b Transmisor
Raiz Cuadrada Coseno alzado r=1 Adaptado

z_ad

Decisor
t, v_th

b_ad

x n

y Filtro Rx
RC 1er orden W=1 KHz

z_rc

Decisor
t, v_th

b_rc

a) Genere una seal x de 20000 bits a 800 bps conformada en raiz cuadrada de coseno alzado con roll_off=1 (utilize la funcin x=nyq_gen(b,roll_off,sqrt) ), smele ruido 2 blanco gaussiano de media cero y potencia =1 wat. Para detectarla utilizar dos filtros distintos: el filtro adaptado y un filtro RC de 1er orden de 1 KHz de ancho de banda (utilize las funciones z_ad=nyq_match(y,roll_off,sqrt) y z_rc=rc(1000,y) ). b) Observe en la pantalla el diagrama de ojo y la DEP (use espect(seal,500) ) de la seal de comunicaciones sin ruido, x. Calcule con Matlab la energa de bit, Eb. c) Observe en la pantalla el diagrama de ojo y la DEP de la seal de comunicaciones con ruido, y . d) Observe en pantalla las seales filtradas sin ruido , su diagrama de ojo y la DEP. A partir de la grfica de la seal (use waveplot(z) ) y del diagrama de ojo, determine el instante ptimo de muestreo t y el valor del umbral v_th para cada uno de los dos receptores (necesitar estos valores en los apartado e y g). e) Observe en pantalla el diagrama de ojo y la DEP de las seales filtradas con ruido, es decir, z_ad y z_rc. Detecte ambas seales utilizando la funcin detect. Obtenga la probabilidad de error en cada caso. f) Repita los anteriores apartados para un filtro RC de 200 Hz de ancho de banda. Apunte el valor del instante ptimo de muestreo y umbral correspondiente a este filtro para utilizarlo en el apartado g.

g) Simule el comportamiento de los tres receptores (adaptado, RC 1KHz y RC 200 Hz) para potencias de ruido de 0.5, 1, 1.5, 2 y 5 vatios. No es necesario que presente ninguna grfica de seales en este apartado. Presente en una grfica la potencia de ruido en el eje horizontal y la BER de los tres receptores. Presente en pantalla otra grfica con Eb/No (dB) en el eje horizontal y la BER de los tres receptores en escala logartmica (use semilogy en lugar de plot). Dibuje en la misma grfica la BER terica.

10