Sei sulla pagina 1di 8

Laboratorio de Comunicaciones Digitales

ETSII Telecomunicacin Ingeniera de Telecomunicacin Universidad de Cantabria Curso 2011/2012

PRACTICA 4
18/1/2012

METODOLOGA La realizacin de la prcticas es individual, aunque la evaluacin se har por parejas y se llevar a cabo en funcin de la entrega resuelta de la hoja de respuestas (una por pareja) y de un programa ejecutable que resuelve el epgrafe "PROBLEMA" (X:\practica4\problema.m) que muestre de forma clara y ordenada las respuestas exigidas y que se dejar en la propia cuenta de cada alumno (las parejas dejarn el mismo programa en ambas cuentas). 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 esta prctica es analizar las modulaciones lineales, sus transmisores y receptores. Tambin se discutirn los problemas de recuperacin de reloj y de portadora. As mismo se implementarn enlaces completos de comunicaciones paso banda, tratando especialmente su anlisis en tiempo continuo. En particular se estudiarn: Las diferentes modulaciones lineales La recuperacin de portadora y de reloj Mtodos de anlisis en tiempo continuo Implementacin y anlisis de comunicaciones digitales paso banda

1. MODULACIONES LINEALES En este apartado se analizarn las modulaciones QPSK y 16QAM. ATENCION Hay que ejecutar nuevamente la funcin iniciar, esta vez con el experimento 3:
>>Introduzca el nmero de experimento 3 >>================================================= >> En esta sesin de MATLAB se utilizan 100 muestras por smbolo. >> Asumiendo un rgimen binario de 1000 bits/seg, la frecuencia >> de muestreo es 100.00 [kHz]. >> La componente frecuencial ms alta que pueden manejar las >> rutinas MATLAB es menor o igual que 50.00 [kHz]. >>===================================================

a) Enlace QPSK: Para generar una seal modulada QPSK, en primer lugar se generan dos seales banda base conformadas (rectangularmente en este ejemplo) y se modulan por dos portadoras desfasadas noventa grados. Sumando ambas componentes obtenemos la seal QPSK.

fp=8000; Pn=5; % frecuencia de portadora y potencia de ruido bI=[1 0 0 1 binary(1500)]; bQ=[1 0 1 0 binary(1500)]; tt=[1:500]; xI=wave_gen(bI,'polar_nrz'); xQ=wave_gen(bQ,'polar_nrz'); sI=mixer(xI,sqrt(2)*osc(fp,90)); %osc(fp,90) genera un coseno (componente en fase) sQ=mixer(xQ,sqrt(2)*osc(fp)); %osc(fp) genera un seno (componente en cuadratura) sqpsk=sI+sQ; % estrictamente habra que restarlos subplot(211),waveplot(sI(tt));title('Seal BPSK rama I') subplot(212),waveplot(sqpsk(tt));title('Seal QPSK') ;pause

Dibujamos el espectro y aadimos ruido.


fr=20000;Np=1024*8; subplot(211);espect(sI,Np,fr);title('DEP Seal rama I') subplot(212);espect(sqpsk,Np,fr);title('DEP Seal QPSK') pause rqpsk=sqpsk+sqrt(Pn)*randn(1,length(sqpsk));

Ntese como el espectro de una de las seales BPSK que componen la QPSK es similar al de la QPSK; estamos mandando dos seales BPSK en el mismo ancho de banda aprovechando la ortogonalidad entre el seno y el coseno. El receptor simplemente demodula las dos componentes banda base de la seal e implementa el receptor adaptado para cada una de ellas.
yI=mixer(rqpsk,osc(fp,90)); yQ=mixer(rqpsk,osc(fp)); I=match('polar_nrz',yI); Q=match('polar_nrz',yQ); subplot(211);eye_diag(I); subplot(212);eye_diag(Q);pause;

Al utilizar el filtro adaptado tambin como filtro paso bajo para eliminar la componente a doble frecuencia aparecen una ciertas oscilaciones en el diagrama de ojo que se deben al no perfecto rechazo de la componente a doble frecuencia. Este hecho se aprecia ms claramente si eliminamos el ruido (haciendo Pn=0). A partir del diagrama de ojo determine el instante ptimo de muestreo t y el valor del umbral v_th. Obtenga la probabilidad de error en el smbolo de la QPSK utilizando detect(I,vth,t,b) y detect(Q,vth,t,b) para potencias de ruido de 5, 10, 20 y 30 W. b) Enlace QAM: Vamos ahora a implementar un enlace 16 QAM. Recuerde que aprendi a construir seales banda base multinivel en una prctica anterior.
fp=8000; tt=[1:1600]; Pn=12; b1=[0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 binary(1500)]; b2=[0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 binary(1500)]; b3=[0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 binary(1500)]; b4=[0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 binary(1500)]; x1=wave_gen(b1,'polar_nrz');x2=wave_gen(b2,'polar_nrz'); x3=wave_gen(b3,'polar_nrz');x4=wave_gen(b4,'polar_nrz');

Genere ahora a partir de estas 4 seales polares dos seales banda base de 4 niveles, que denotaremos xI y xQ. Modulando ambas con dos portadoras desfasadas 90 grados y sumndolas obtendremos la seal 16QAM.
. % genere usted las seales de 4 niveles subplot(211),waveplot(xI(tt)); subplot(212),waveplot(xQ(tt));pause sI=mixer(xI,sqrt(2)*osc(fp,90)); sQ=mixer(xQ,sqrt(2)*osc(fp)); sqam=sI+sQ;

Recibimos una seal ruidosa, demodulamos en fase y cuadratura y aplicamos el filtro adaptado.
. % introduzca usted los comandos para demodular I=match('polar_nrz',yI); Q=match('polar_nrz',yQ); subplot(211);eye_diag(I); subplot(212);eye_diag(Q);

La funcin detect no puede manejar seales multinivel, as que tendr que implementar usted el resto del receptor. Como ayuda la funcin zI=sample(I, to) le permite muestrear cualquier seal zI en mltiplos del tiempo de smbolo ms el valor de to, es decir, se muestrea en to+kTs. A partir del diagrama de ojo puede determinar el instante ptimo de muestreo to. Para poder recuperar los bits transmitidos tambin hay que implementar el decisor. Una sugerencia para implementar el decisor en MATLAB es que utilice comandos como el que sigue
I_dec=3*(zI>vth1)+1*( (zI<=vth1)&(zI>vth2) )+.;

Si un elemento de zI es mayor que vth1 el primer trmino ser verdadero (y el resto falsos) y se devolver el valor 3. Si por el contrario se encuentra entre vth1 y vth2 se devolver un 1 y as sucesivamente. Obtenga la probabilidad de error de smbolo para potencias de ruido de 12, 24, 36 y 48 W.

2. MODULACIONES LINEALES EN TIEMPO DISCRETO Vamos a volver a implementar el enlace QPSK del apartado anterior pero utilizando simplemente comandos MATLAB (no es necesario ejecutar iniciar ni usar funciones propias del laboratorio). Para generar una seal QPSK paso banda con conformacin rectangular en tiempo discreto con L muestras por smbolo basta hacer lo siguiente:
L=100; N=1500; % Nmero de muestras por smbolo y nmero de smbolos Nc=8; Pn=12; % Nmero de ciclos de portadora en un Ts y potencia de ruido p=ones(1,L); % Pulso NRZ compuesto por L muestras de valor 1 voltio bI=[1 0 0 1 1 1 (randn(1,N-6)>0)]; bQ=[0,1,0,1,0,1,(randn(1,N-6)>0)]; bpI=(bI==1)-(bI==0); bpQ=(bQ==1)-(bQ==0); % codificamos polarmente los bits xI=zeros(1,(N-1)*L+1);xQ=zeros(1,(N-1)*L+1); xI(1:L:end)=bpI;xQ(1:L:end)=bpQ; yI=conv(xI,p);yQ=conv(xQ,p); % Convolucionamos con el pulso bsico tt=1:500; % dibujaremos las primeras 500 muestras subplot(211);stem(xI(tt)); % stem: funcin MATLAB que dibuja seales en tiempo discreto subplot(212);stem(yI(tt));pause;

Hasta ahora solamente hemos generado dos seales banda base como en la prctica 3. Para obtener la seal QPSK hay que modularlas con dos portadoras desfasadas 90 grados.
ind=[1:length(yI)]; pI=sqrt(2)*cos(2*pi*ind*Nc/L); pQ=sqrt(2)*sin(2*pi*ind*Nc/L); z=yI.*pI+yQ.*pQ;

Recuerda el canal de la prctica anterior?


h= [1,-1,3,-6,9,90,9,-6,3,-1,1]/102; % respuesta al impulso del canal (Lh=11 coeficientes) r1=conv(z,h); % Ntese que la seal se retarda prI=conv(pI,h); % Filtramos tambin las portadoras para usarlas en el receptor prQ=conv(pQ,h); tt=1:150;subplot(211);stem(z(tt));subplot(212);stem(r1(tt));pause;

Para implementar el receptor ptimo demodulamos cada componente (con las portadoras filtradas para que sufran el mismo retardo que la seal) y la filtramos con el filtro adaptado.
r=r1+sqrt(Pn)*randn(1,length(r1)); rI=r.*prI; rQ=r.*prQ; I=conv(rI,p);Q=conv(rQ,p);

Para recuperar los bits transmitidos hay que muestrear la seal en los instantes adecuados. El diagrama de ojo nos muestra que el filtro h introduce un retardo de (Lh-1)/2 muestras, con lo que
subplot(211) for k=1:N-2 % bucle que dibuja el diagrama de ojo de la seal I plot(I(k*L:(k+2)*L)) hold on end axis([1 2*L min(I) max(I)]);hold off Id=I(L+5:L:end-5); Qd=Q(L+5:L:end-5); subplot(212); plot(Id,Qd,'.'); axis('square'); hold off brI=(Id>0); brQ=(Qd>0); % Retardo: 5 muestras el canal y L/2 los filtros Tx y Rx. % Retardo: 5 muestras el canal y L/2 los filtros Tx y Rx. % dibujamos la constelacin en recepcin

Compruebe el efecto del ruido sobre la constelacin en recepcin. Compruebe que obtiene la misma probabilidad de error que en el caso de la QPSK simulada en el apartado 1.

3. ANALISIS DE MODULACIONES En este apartado vamos a analizar diferentes propiedades de las modulaciones digitales utilizando el osciloscopio. Para ello disponemos de dos programas Mod_tx y Mod_rx. Mod_tx implementa transmisores para diferentes modulaciones paso banda, mientras que Mod_rx implementa los receptores correspondientes. Cuando observe seales en el osciloscopio, recuerde que stas han sido atenuadas por un factor de 2 para evitar saturar el conversor D/A.

a) Modulaciones lineales. Ejecute el programa Mod_tx. Es muy parecido al Codlin_tx. Fije los siguientes parmetros: Nmero de smbolos: 40 Nmero de muestras/smbolo: 100 Frecuencia de muestro: 44100 Conformacin: rect (rectangular) Frecuencia de portadora (fc)=1764 % nmero entero de ciclos de portadora por smbolo Modulacin: ASK Si activa el comando Dibujar aparecern las componentes en fase y cuadratura, la seal modulada y su densidad espectral de potencia, as como el diagrama de ojo de la seal banda base. Para ver las seales con detalle puede ampliar ciertas zonas de cualquier grfica usando el ratn. No introduzca ningn parmetro en la parte reservada al canal. Se repetir 100000 veces la seal a la salida de la tarjeta de sonido. Seleccionaremos la seal modulada (seal de radio frecuencia: RF) para el canal 1 y un pulso de sincronismo para el canal 2: Canal: No activar Nmero de veces: 100000 Seales: RF/pulso Pulse el botn Enviar. Conecte el osciloscopio a la salida de la tarjeta de sonido (TX) y dispare con la seal del pulso (canal 2, conector rojo). Ajuste convenientemente el trigger, el foco y la intensidad para ver la seal lo ms ntida y estable posible. Compruebe que coincide con la seal mostrada en la pantalla de MATLAB. Repita el proceso para las seales BPSK, DPSK, QPSK y 16QAM. Recuerde que primero debe Dibujar las seales y luego Enviar al osciloscopio. b) Diagramas I-Q. Si la herramienta para analizar en tiempo continuo modulaciones banda base es el diagrama de ojo, su contrapartida para modulaciones paso banda es el diagrama IQ. Este diagrama se consigue sencillamente representando en el osciloscopio en modo X-Y la componente en fase con la componente en cuadratura sin modular (dos seales banda base, una contra la otra). Vamos a representar el diagrama I-Q para la QPSK. Nmero de smbolos: 1000 Nmero de muestras/smbolo: 10 Frecuencia de muestro: 44100 Conformacin: rect (rectangular) Frecuencia de portadora (fc)=8820 % nmero entero de ciclos de portadora por smbolo Modulacin: QPSK Si activa el comando Dibujar aparecern las componentes en fase y cuadratura, la seal modulada y su densidad espectral de potencia as como el diagrama de ojo de la seal banda base de la rama I. Para ver las seales con detalle puede ampliar ciertas zonas de cualquier grfica usando el ratn o bien activando y desactivando el comando Todo.

No introduzca ningn parmetro en la parte reservada al canal y vamos a repetir 1000 veces la seal a la salida de la tarjeta de sonido. Canal: No activar Nmero de veces: 1000 Seales: I/Q Mantenga los parmetros del apartado anterior, pero al Dibujar elija diagrama I-Q y al Enviar seleccione ahora I-Q. En el osciloscopio observe ambas seales en modo X-Y. Fjese que el dibujo lo que representa son los niveles que tienen ambas componentes, que, lgicamente, tienen mucho que ver con la constelacin utilizada. Repita ahora el mismo experimento simplemente cambiando la conformacin de rect a coseno alzado (fca). Observe el efecto de los siguientes factores de roll-off [0.15,0.5,0.75,1] en la forma del diagrama I-Q. Repita los mismos pasos para la modulacin 16QAM. c) Receptores: El programa Mod_rx implementa receptores para las modulaciones cuyos transmisores se han implementado en Mod_tx. Vamos a construir un enlace de comunicaciones conectando la salida TX de un alumno a la entrada RX del compaero. Los parmetros en transmisin son: Nmero de smbolos: 100 Nmero de muestras/smbolo: 100 Frecuencia de muestro: 44100 Conformacin: frcca roll-off= 1 % raz cuadrada de coseno alzado Frecuencia de portadora (fc)=8820 % nmero entero de ciclos de portadora por smbolo Modulacin: QPSK No introduzca ningn parmetro en la parte reservada al canal y vamos a mandar una sola vez la seal a la salida de la tarjeta de sonido (en concreto se enva la seal modulada por el canal izquierdo y la portadora sin modular por el derecho). Canal: No activar Nmero de veces: 1 Seales: RF/portadora Repita los mismos parmetros en el receptor: Nmero de smbolos: 100 Nmero de muestras/smbolo: 100 Frecuencia de muestro: 44100 Conformacin: frcca roll-off= 1 % raz cuadrada de coseno alzado Frecuencia de portadora (fc)=8820 % nmero entero de ciclos de portadora por smbolo Demodulacin: Portadora Modulacin: QPSK Active el comando Trigger. Deber aparecer en pantalla Esperando Disparo. En ese momento el Transmisor debe activar el comando Enviar. En la ventana del receptor deber de aparecer la seal de RF recibida que debe coincidir con la enviada. 6

Active la opcin ver Diagrama I/Q y el comando Demodula en el receptor. Observe el diagrama I-Q y compruebe si existe algn error de fase (es decir si el diagrama I/Q aparece girado). Si es as modifique el valor de la fase (y vuelva a Demodular) hasta que el diagrama I/Q coincida con el esperado (tenga cuidado con posibles inversiones I-Q pues, por ejemplo, un giro de 90 grados convierte la seal I en la seal Q). En este momento hemos sincronizado en fase la portadora en recepcin. Desactive la opcin Ojo/Diag. I-Q para observar el diagrama de ojo. Elija el instante ptimo de muestreo e introdzcalo en la casilla instante de muestreo. Elija la opcin Dibujar muestras. Debern aparecer en rojo las muestras recibidas tanto si dibuja el diagrama de ojo como el diagrama I/Q. Si elige Decide, el programa detectar los smbolos recibidos y los mostrar en pantalla. Compruebe que recupera los smbolos transmitidos (si no es as, valore que haya ocurrido una inversin I-Q y ajuste nuevamente la fase). Repita el proceso para la seal 16QAM. d) Sincronizacin: Repita ahora exactamente los mismos parmetros en el transmisor del apartado c. En el receptor tambin sern los mismos, excepto que ahora elegiremos como opcin Demodulacin Manual (es decir, no utilizamos la portadora que nos enva el transmisor). Active el comando Trigger. Deber aparecer en pantalla Esperando Disparo. En ese momento el Transmisor debe activar el comando Enviar. En la ventana del receptor deber aparecer la seal de RF recibida que debe coincidir con la enviada. Active la opcin ver Diagrama I/Q en el receptor. Observe el diagrama I-Q y compruebe si existe algn error de frecuencia (qu debera observar?). Si no lo hay, modifique ligeramente (del orden de medio Hercio) la portadora en recepcin y repita la operacin. Posteriormente ajuste la fase de portadora y el instante de muestreo como hicimos en el apartado anterior. 4. ERRORES DE FASE Y FRECUENCIA Vamos a modificar el cdigo del apartado 2 para analizar en detalle como afectan los errores de fase y frecuencia a un enlace QPSK. a) Error de fase: En el cdigo implementado en el apartado 2, utilice para demodular las mismas portadoras que us en transmisin, sin pasarlas por el canal (es decir, emplee en recepcin p1 y p2 en lugar de pr1 y pr2). Observe el efecto en la constelacin recibida. b) Error de frecuencia. En el cdigo del apartado 2, no pase la seal QPSK por el canal (cuidado, ahora ya no hay retardo en la seal recibida) y genere en el receptor la portadora con la frecuencia del transmisor multiplicada por 0.9999. Observe el efecto en la constelacin recibida y en el diagrama de ojo. Pruebe con errores de frecuencia mucho menores (por ejemplo 0.999995 veces la frecuencia del transmisor).

5. PROBLEMA: OFFSET-QPSK Los cruces por cero que posee la envolvente de la modulacin QPSK afectan muy negativamente a la eficiencia de los amplificadores no lineales de RF. Un amplificador RF de potencia comercial tiene una relacin entrada-salida que, de forma simplificada, se puede representar por la siguiente curva: Vout zona zona zona lineal saturacin corte

Vmin

Vmax

Vin

Rango de trabajo donde Vin representa la amplitud instantnea, en voltios, de la envolvente compleja (el valor absoluto de la seal equivalente paso bajo, es decir, |xc(t)|) de la seal de entrada al amplificador. Se puede considerar, tambin de forma aproximada, que el amplificador no modifica la fase de las seales, por lo que la fase de la seal equivalente paso bajo de salida es idntica a la de la entrada. Un amplificador de este tipo es ms eficiente cuanto menor sea su rango de trabajo (zona lineal), siendo sta la razn por la que se buscan modulaciones, como la OQPSK, cuyas fluctuaciones de la envolvente sean lo menores posible (a igualdad de potencia media). Como sabe, la OQPSK se obtiene desplazando medio tiempo de smbolo la componente en cuadratura con respecto a la componente en fase. a) Modifique el cdigo del transmisor QPSK del apartado 2 (las primeras 9 lneas son suficientes) para generar las componentes I y Q de una OQPSK. Dibuje el diagrama I/Q de la QPSK y de la OQPSK. Emplee frec_muestreo(44100);envia([yI;yQ]/2,10000) para observar tambin el diagrama I/Q en el osciloscopio (en modo X-Y). Repita el proceso conformando en raz cuadrada de coseno alzado con r=0.5 (use p=rcosine(1,L,'sqrt',0.5) como pulso transmisor). b) Calcule usando Matlab el rango dinmico (en voltios) de la amplitud de la envolvente compleja1 tanto de la seal QPSK como de la seal OQPSK2. c) Repita los apartados anteriores para filtros raz cuadrada de coseno alzado con distintos valores de roll-off (entre 0.1 y 1). Observe los distintos diagramas I/Q y finalmente dibuje una grfica que muestre la dependencia del rango dinmico de las seales QPSK y OQPSK con el factor de roll-off.

En Matlab, la amplitud de la envolvente compleja no es ms que abs(yI+j*yQ) Para evitar la influencia de los transitorios inicial y final en el diagrama I/Q y en el clculo de las amplitudes mximas y mnimas es necesario eliminar las Lp primeras y ltimas muestras de las seales I y Q, siendo
2

Lp=(length(p)-1)/2

Potrebbero piacerti anche