Anda di halaman 1dari 23

Software Defined Radio: USRP y GNU Radio

Captulo 6. USRP Y MATLAB


Este captulo trata del funcionamiento del Universal Software Radio Peripheral y el entorno Matlab. Trabajar con GNU Radio o Matlab es una decisin que en general depende de muchos aspectos. Matlab es un lenguaje matemtico interpretado que permite de forma sencilla simular sistemas de todo tipo. Ya sea mediante su programacin en un script o utilizando, de forma parecida al GNU Radio Companion, Simulink. Hace una dcada Matlab tena tiempos de ejecucin muy elevados comparados con otros lenguajes de programacin como C++. Sin embargo una mayor depuracin de Matlab unido una mejora sustancial en la carga computacional de los PC o workstations ha hecho que se utilice ampliamente en el diseo de sistemas de comunicaciones. A esto hay que aadir que, adems, algunas funciones se pueden programar en C++ para llamarse desde Matlab. Por otro lado, comparado con GNU Radio Companion, Matlab lleva utilizndose casi tres dcadas en simulacin de sistemas de comunicaciones. De forma que los toolboxes o libreras de funciones especializados en comunicaciones digitales estn muy depurados. Hay que destacar que en la versin de Matlab 2011 se ha hecho un esfuerzo por mejorar estos toolboxes. Ettus, fabricante de USRP, proporciona un driver que puede utilizarse en los sistemas operativos ms importantes y que permiten enlazar programas con el USRP. As, se pueden encontrar herramientas, como el SDR4all, que permiten escribir un script en Matlab para generar una secuencia de datos que mediante una funcin sencilla se mandan al USRP para su transmisin. De igual forma, se puede recibir desde el USRP para procesar luego las muestras recibidas por el USB, en el caso del USRP1, a travs de una funcin de Matlab. En Simulink tambin se han diseado bloques que funcionan de igual forma que las fuentes y sumideros de GNU Radio Companion. Con lo que es inmediato simular un sistema a partir de los bloques de Simulink. El mayor inconveniente, por otra parte, es el precio de las licencias de Matlab, Simulink, y de los toolboxes. Para evitar este coste, hay otras alternativas que aqu no se exploran, pero que se

90

Ivn Pinar Domnguez basaran en utilizar el driver facilitado por Ettus adaptada a otros programas, como el SciLab, un software libre similar a Matlab. En este captulo se comenzar explicando cmo aadir un toolbox del USRP para Simulink y as aprovechar el entorno de trabajo de ste. Por ltimo se especificar como trabajar con el USRP y Matlab a partir del toolbox SDR4all, si bien es necesario para este ltimo utilizar una versin de Windows de 32 bits.

6.1 Toolbox USRP para Simulink


El proyecto Simulink-USRP es un paquete de software Open Source que permite a los usuarios del USRP construir modelos en Simulink en tiempo real. Este paquete de software ha sido desarrollado por el Communication Engineering Lab (CEL) del Karlsruhe Institute of Technology (KIT). Para instalar este toolbox se seguirn los siguientes pasos: 1) Instalacin del driver USRP: Para instalar el driver del USRP lo primero que hay que haces es descargarse el programa libusb-win32 con el que se pueden instalar dispositivos que no sean plug-and-play. Se puede descargar de la siguiente URL: http://sourceforge.net/apps/trac/libusb-win32/wiki. Una vez instalado, conectar el USRP a un puerto USB y en la carpeta libusb del men inicio pinchar en el icono Inf-Wizard, tras lo cual se selecciona Next y aparecen los dispositivos USB conectados, similar a como aparece en la siguiente figura:

Figura 6-1 Dispositivos USB reconocidos por libusb Se selecciona Unknown Device (ser el USRP) y se pincha en Next. En el siguiente paso se selecciona la configuracin del dispositivo, eligiendo el nombre del mismo.

91

Software Defined Radio: USRP y GNU Radio

Figura 6-2 Propiedades del dispositivo USRP Se guarda en cualquier lugar del disco duro y a continuacin se selecciona Install Now para instalar el driver que se acaba de crear.

Figura 6-3 Instalacin del driver Tras esto, debe aparecer el driver si se abre el administrador de dispositivos:

Figura 6-4 Driver instalado del USRP 92

Ivn Pinar Domnguez 2) Seleccionar el compilador Microsoft Visual C++ en Matlab: Por problemas de licencia, no hay una versin precompilada del proyecto SimulinkUSRP. Sin embargo, compilarlo es tan fcil como ejecutar un comando desde Matlab. Antes de esto, hay que escoger el compilador correcto, para ello en el prompt de Matlab se escribe mex setup y se selecciona el compilador. Se debera obtener algo similar a lo siguiente:

Figura 6-5 Seleccin de compilador Aparte de esto, se debe tener instalado .NET Framework 3.5 que se puede bajar desde la web de Microsoft. Si a la hora de compilar hubiera algn problema (posiblemente por tener instalada una versin de 64 bits) tambin hay que instalar Software Development Kit de Microsoft para Windows Server 2008 desde la pgina de Microsoft. 3) Instalar Simulink-USRP: Lo ltimo que queda es instalar el toolbox Simulink-USRP en Matlab, para ello hay que descargarlo de http://www.cel.kit.edu/download.php y descomprimirlo en cualquier lugar del disco duro. En Matlab habr que aadir la carpeta donde se est el toolbox, para ello se selecciona File > Set Path, click en Add Folder y seleccionar la carpeta X:\simulinkusrp\bin\ en primer lugar, donde X es la ruta donde se encuentre el toolbox y a continuacin aadir X:\simulink-usrp\blockset\. Despus se selecciona Save y Close. Finalmente se compila el toolbox escribiendo en el prompt de Matlab usrpBuilBinaries, obteniendo un resultado similar al siguiente:

Figura 6-6 Compilacin de Simulink-USRP Ahora ya se pueden seleccionar los bloques del USRP en la librera Simulink:

93

Software Defined Radio: USRP y GNU Radio

Figura 6-7 Bloques Simulink-USRP

6.1.1 Analizador de espectros con Simulink-USRP


A continuacin se analizar el diseo del analizador de espectros implementado con el siguiente diagrama de bloques en Simulink:

Figura 6-8 Diagrama de bloques del analizador en Simulink La configuracin de la fuente usrp_source tiene la siguiente configuracin:

94

Ivn Pinar Domnguez

Figura 6-9 Configuracin usrp_source Como se puede apreciar, se selecciona un factor de diezmado de 8, es decir, una tasa de muestras y ancho de banda de 8 MHz (64 MS/s / 8) y cada una de las muestras se cuantifica con 16 bits. En cuanto a la configuracin de la tarjeta secundaria (RFX 2400) se selecciona el tipo de datos complejo de 16 bits cada componente, una frecuencia de 2.4 GHz y una ganancia total de 80 dB. El otro bloque involucrado en el diseo es el Spectrum Scope para visualizar la FFT de la seal recibida. Su configuracin aparece en la Figura 6-10.

Figura 6-10 Parmetros del Spectrum Scope Entre los parmetros a elegir se encuentran las unidades del espectro (en este caso se ha seleccionado la densidad espectral en dBW/Hz), el enventanado, la longitud de la FFT, el promediado,

95

Software Defined Radio: USRP y GNU Radio Tras ejecutar el diseo, el resultado obtenido es el siguiente, donde se puede apreciar la seal WiFi a 2.4 GHz:

Figura 6-11 Configuracin usrp_source

6.2 Toolbox SDR4all


En este apartado se describir el funcionamiento del toolbox SDR4all con el que se pueden realizar diseos en Matlab y transmitir/recibir con el USRP. El toolbox se encuentra disponible en la siguiente URL: http://www.sdr4all.eu/Freeware.html#uiow y no es necesario la instalacin de ningn componente extra como suceda en el caso anterior. Para el funcionamiento de esta herramienta se necesita tener instalado en las computadoras cualquier versin de Windows 32 bits. En los diseos se utilizarn dos computadoras, ambas con Matlab, utilizando una para transmitir las seales a partir del USRP y otra para recibir la seal transmitida a partir de otro USRP. Existen aplicaciones contenidas en el toolbox instalado que sustituyen la parte transmisora o receptora no necesitndose trabajar desde el entorno Matlab en la parte sustituida (como por ejemplo Tx_bursts o Rx_to_file), aunque en los diseos no se tendr en cuenta esta opcin y siempre se utilizarn scripts en Matlab. En la primera seccin de este apartado se introducir a la transmisin de seales utilizando este toolbox y en una segunda se acometer la transmisin de una secuencia de bits utilizando modulacin D-QPSK calculando la BER. Los scripts generados para la realizacin de diseos en Matlab con el toolbox SDR4all aparecen en el Anexo IV. No obstante, se irn analizando en los siguientes apartados.

6.2.1 Introduccin a la transmisin de seales utilizando SDR4all


En esta primera parte se analizar como transmitir seales entre los diferentes equipos utilizando Matlab en una serie de pasos: 1) Seleccin de USRP. En primer lugar, se arrancar la aplicacin SDR4All server (Inicio/Programas/SDR4All/SDR4All server) en ambas computadoras para permitir la comunicacin entre Matlab y USRP, seleccionando el USRP detectado: 96

Ivn Pinar Domnguez

Figura 6-12 Seleccin USRP con SDR4All server 2) Configuracin de la parte transmisora. Para ello lo primero es crear un puerto en Matlab a partir de la funcin SDR4All_Connect del toolbox, especificando el USRP (#0), el lugar de la tarjeta secundaria (Slot B) y la funcin (transmisora en este caso) :
sock=SDR4All_Connect(0,'SlotB','TX');

Despus se seleccionan los parmetros configurables, es decir, la ganancia (el mximo, 20 dB del PGA), frecuencia de transmisin (2,422 GHz) e interpolado (256 para ancho de banda de 500 KHz) a partir de las funciones mostradas a continuacin:
SDR4All_SetGain(sock,20); SDR4All_SetFreq(sock,2422e6); SDR4All_SetInterpRate(sock,256);

Tras esto, se define la funcin en Matlab a enviar (en banda base), en este caso se transmitirn una serie de rfagas con modulacin BPSK simplemente para observar la recepcin de la seal. La definicin de esta seal se puede ver en el fichero mostrado en el anexo IV apartado 7.4.1 y aparece en la siguiente figura:

Figura 6-13 Seal transmitida banda base Finalmente en este paso, para enviar la seal de rfagas generada al USRP se utilizar el siguiente comando:
SDR4All_SendData(sock,Sig);

Decir que tambin se podra haber generado la seal en primer lugar y despus configurar los parmetros del USRP, es indiferente. De esta manera se har en el prximo ejemplo. 97

Software Defined Radio: USRP y GNU Radio 3) Configuracin de la parte receptora. La configuracin de la parte receptora es idntica a la transmisora, con la salvedad de que la ganancia de recepcin se especificar en el punto medio (45 dB), el diezmado ser de 128 (ancho de banda 500 KHz) y el lugar de la tarjeta receptora ahora es el A, tal y como puede verse en el Anexo IV, Apartado 7.4.1. Para recibir la seal durante 5 segundos se ejecuta la siguiente instruccin: [Data] = SDR4All_GetData(sock,5*500e3); La seal recibida est afectada por las adversidades del canal como el multitrayecto, el error en frecuencia, interferencias propias de la banda utilizada o ruido. La seal obtenida es la siguiente seal. Para obtener la mejor seal posible, se han colocado los USRP a poca distancia, obteniendo la siguiente seal:

Figura 6-14 Seal recibida banda base En el siguiente apartado se intentarn abordar los problemas que supone la transmisin en un canal radioelctrico. Como nota de uso de este toolbox, se recomienda que cada vez que se desee realizar una nueva transmisin se reinicie el programa SDR4All Server.

98

Ivn Pinar Domnguez

6.2.2 Diseo de un sistema de transmisin DQPSK utilizando SDR4all


En este apartado se explicar cmo transmitir una secuencia de bits utilizando modulacin DQPSK entre dos USRP mediante enlace radio. El proceso que se ha seguido es el siguiente:

Figura 6-15 Proceso de diseo sistema QPSK El diseo de este sistema se analizar en una serie de pasos, no obstante, para ms detalle vase el ANEXO IV apartado 7.4.2 donde aparece el cdigo implementado. Se empezar explicando la parte transmisora, donde primeramente se ha generado la seal y despus se configuran los parmetros de la aplicacin USRP Server (al contrario que en el ejemplo anterior). PASO1) Informacin a transmitir: Los bits de informacin a transmitir se cargan de una variable mat previamente generada (a partir de la funcin randn, asignando 0 1 en funcin de que el valor sobrepase o no 0.5) tal y como se puede apreciar en el cdigo: load datos_b; Los datos se tienen guardados en una variable para poder comparar posteriormente los datos decodificados en receptor y poder calcular la BER. PASO 2) Codificacin de canal: Para proteger la informacin frente a errores, se aade un cdigo convolucional a partir de las funciones poly2trellis y convenc de tasa , es decir, por cada bit de informacin se generan dos bits a la salida del codificador convolucional. PASO 3) Modulacin D-QPSK: A partir de los datos codificados se realiza un mapeo complejo DQPSK agrupando los bits en bloques de longitud 2 y dando un valor complejo correspondiente al estado anterior ms un desfase, teniendo en cuenta adems que se realiza un mapeado Gray. La tabla de asignacin de bits a diferencias de fase sera la siguiente:

Bits de informacin 00 01 11 10

Desfase con respecto al smbolo anterior 0 /2 -/2

Tabla 6-1 Asignacin de bits a desfase del smbolo

El resultado del mapeo DQPSK se puede observar en la Figura 6-16.

99

Software Defined Radio: USRP y GNU Radio

Figura 6-16 Smbolos DQPSK generados PASO 4) Filtro conformador: Tras realizar el mapeo DQPSK, se est en disposicin de aplicar el filtro RRC. Como la tasa de muestras se elegir 500 KS/s y el nmero de muestras por smbolo 16, el tiempo de smbolo (Ts) ser:

Ts

samp / symbol 16 1 32s Rs 31,25Kbaudios Rb 2Rs 62,5Kbps 3 fm 50010 Ts

El factor de roll-off por su parte se especificar en 0.22, por tanto, el ancho de banda de la seal a transmitir es: BWTx (1 )Rs 38,125KHz En la siguiente figura se puede observar la densidad espectral de potencia de la seal transmitida:

Figura 6-17 Densidad espectral de la seal transmitida

100

Ivn Pinar Domnguez Por su parte, el diagrama vectorial y la constelacin de la seal DQPSK aparece a continuacin:

Figura 6-18 Diagrama vectorial y constelacin de la seal transmitida

PASO 5) Seal transmitida por USRP: Para no tener que realizar una sincronizacin manual a la hora de poner en funcionamiento el USRP transmisor y receptor, la seal transmitida est formada por la repeticin de la misma rfaga. Para definir la seal transmitida se inserta la siguiente sentencia: sig_Tx=kron(ones(1,5),[200*ones(1,0.2*BW) zeros(1,0.1*BW) sig zeros(1,0.1*BW)]); Como se puede apreciar, la seal transmitida a la interfaz aire consta de 5 rfagas idnticas y cada una de ellas formada por un tramo de continua (0,2 segundos de valor 200), un tramo de ceros para separar la rfaga de sincronizacin de frecuencia y la de datos y finalmente la seal de informacin (variable sig). En la siguiente figura se ilustra las componentes I/Q de dicha seal:

Figura 6-19 Parte en fase de la seal transmitida

101

Software Defined Radio: USRP y GNU Radio PASO 6) Transmisin: Una vez generada la seal a transmitir, es necesario abrir la aplicacin USRP Server, si no se ha hecho antes, contenida dentro del paquete SDR4All (Inicio/Programas/SDR4All/SDR4All server) y seleccionar el USRP que detecte. Tras ello, ejecutar el script y seleccionar los parmetros de transmisin en la ventana principal de Matlab (el cdigo implementado est pensado para que el usuario defina los parmetros in situ, aunque tambin se podran seleccionar previamente a la ejecucin del script, vase ANEXO IV, apartado 7.4.2). Una vez configurado, aparecer el mensaje Pulsar enter para comenzar la transmisin, lo cual no debe hacerse hasta que no se configure la parte receptora. La ventana del programa USRP Server debera presentar un aspecto similar al siguiente:

Figura 6-20 Configuracin USRP Server transmisor Como se puede visualizar en la configuracin de la figura anterior, en la prueba se ha seleccionado una ganancia de transmisin de 20 dB, una frecuencia de 2,5 GHz (para disminuir la interferencia) y un interpolado de 256 (por tanto 500 KS/s en la interfaz USB como se ha mencionado). En este punto, el transmisor se quedara en Stand-by a la espera de que se pulse la tecla Enter y comenzar la transmisin. Esto se realizar cuando se tenga configurado el receptor. Tras analizar el transmisor DQPSK implementado, se pasar a la parte receptora, lo cual se detalla en una serie de pasos nuevamente: PASO 1) Recepcin: Al igual que se realiz en la parte transmisora, se debe configurar los parmetros del equipo receptor. Para ello, lo primero es abrir el programa USRP Server en la computadora donde est conectado el USRP que recibir la seal y a continuacin ejecutar el script de la parte receptora, tras lo cual se irn configurando los parmetros desde la pantalla principal de Matlab. Una vez aparece el mensaje Pulsar enter para comenzar la recepcin, la ventana del programa USRP Server de la parte receptora debe ser similar a la siguiente figura:

102

Ivn Pinar Domnguez

Figura 6-21 Configuracin USRP receptor Tras esto se pulsar la tecla Enter en la parte transmisora y receptora simultneamente, aunque no se precisa una sincronizacin total ya que la seal transmitida definida consta de varias rfagas idnticas, por lo que con recibir una de las cinco rfagas por completo es suficiente. PASO 2) Seal recibida del USRP: La seal captada por el USRP tiene una duracin de 10 segundos. Se ha configurado este tiempo de recepcin para que sea mayor que el tiempo de la seal transmitida y as poder obtenerla completamente. El resultado se muestra a continuacin:

Figura 6-22 Seal recibida, componente I/Q

103

Software Defined Radio: USRP y GNU Radio Se puede apreciar como la seal recibida consta de las 5 rfagas que se transmitieron. Adems, la rfaga de sincronizacin recibida no tendr un valor de continua, sino que constar de una exponencial compleja cuya fase ser (2ft), donde f es la diferencia entre la frecuencia de transmisin y la de recepcin, es decir, la desviacin de frecuencia que posteriormente se compensar, ya que el transmisor emite a la frecuencia de f RF + f y no a los 2,5 GHz exactamente tal y como se haba especificado. El receptor por su parte est ajustado exactamente a fRF, gracias al bloque NCO en el USRP de recepcin . En la siguiente figura se describe la situacin comentada de la frecuencia de la rfaga de sincronizacin:

USB

USRP Tx

USRP Tx

USB

fRF + f

Figura 6-23 Diagrama de la rfaga de sincronizacin PASO 3) Seleccin de rfaga: Tras obtener la seal enviada, se debe seleccionar una de las rfagas a partir de la cul demodular. Para obtenerla, el mtodo seguido se basa en buscar la primera muestra donde se sobrepasa el valor RMS de la seal total, obteniendo lo siguiente:

Rfaga de sincronizacin

Rfaga de datos

Figura 6-24 Rfaga seleccionada La rfaga de datos propiamente dicha no comienza hasta los 0,3 segundos de la rfaga total, tal y como se especific en la seal transmitida. A partir de este dato y sabiendo que la rfaga de datos transmitida dura 0,8 segundos, se selecciona la rfaga de datos con la que posteriormente se demodular (se selecciona un intervalo algo mayor, 0,9 s). La Figura 6-25 muestra el resultado.

104

Ivn Pinar Domnguez

Figura 6-25 Rfaga de datos Una vez seleccionada la rfaga de datos, se analizar que ocurre con el espectro de esta seal. En principio, el espectro de la seal recibida debe estar desplazado respecto a banda base justamente la desviacin de frecuencia que se ha comentado. A partir de este desplazamiento se podra obtener dicha desviacin de frecuencia, pero la rfaga de sincronizacin inicial permite obtener un valor ms preciso de este offset. Cabe decir que la desviacin de frecuencia adems vara con el tiempo, por lo que un cierto offset de frecuencia residual no se corregir, es por ello que se ha realizado un sistema D-QPSK, ya que cuando se demodule de manera diferencial se podr soportar estas pequeas desviaciones de frecuencia residuales. El espectro de la rfaga de datos aparece a continuacin:

Figura 6-26 Densidad espectral de la rfaga de datos Se puede apreciar como el espectro aparece desplazado a f y adems una componente espectral est atenuada frente a la otra debido a una prdida de potencia. En el siguiente paso se intentar solucionar este error. 105

Software Defined Radio: USRP y GNU Radio PASO 4) Sincronizacin: Sin duda la sincronizacin es una de las partes ms laboriosas a la hora de trabajar con el USRP y Matlab. La arquitectura GNU Radio facilitaba esta labor gracias al bloque MPSK Receiver que realizaba una sincronizacin en frecuencia, fase y tiempo con el nico requisito de especificar un ajuste grueso de la frecuencia. En este diseo, se debe hallar el valor de frecuencia de offset fino adems de realizar la sincronizacin en tiempo, lo cual se ha realizado antes de aplicar el filtro RRC para poder mostrar la constelacin en este punto e igualmente se har tras aplicar el filtrado, ya que la sincronizacin debe ser ms exacta al aumentar la Signal Noise Ratio (SNR) tras ello. Empezando por la sincronizacin en frecuencia, se ha obtenido el valor de la frecuencia de offset a partir de la rfaga de sincronizacin como se ha comentado. La densidad espectral de esta rfaga se muestra a continuacin:

Figura 6-27 Densidad espectral de la rfaga de sincronizacin En la figura aparecen dos picos espectrales en f, por lo que calculando la posicin en la que se encuentran estos mximos se obtiene el ajuste fino de frecuencia, resultando un valor de f=39896 Hz. Con este valor ya se puede sincronizar en frecuencia la rfaga de datos a partir de la expresin 6.1, obteniendo el resultado mostrado en la Figura 6-28.

rafdatos_ f rafdatose j2 f

(6-1)

Figura 6-28 Densidad espectral de la rfaga de datos sincronizada en frecuencia 106

Ivn Pinar Domnguez Ahora ya se tiene la rfaga de datos centrada en banda base. Cuando se aplique el filtro RRC adaptado se seleccionar el lbulo central de esta densidad espectral. Aunque el valor de desviacin variar con el tiempo, la demodulacin diferencial paliar el error residual. En cuanto a la sincronizacin en tiempo, el proceso se ha divido en dos partes: 1) Obtencin del instante ptimo de muestreo: Como se tienen 16 muestras por smbolo, en este primer paso se hallar el instante de muestreo ptimo de entre las 16 posibilidades que existen. Para ello, se formarn 16 vectores cada uno de los cules contiene las muestras en un instante de muestreo diferente. En la siguiente figura se aclara este paso:

Muestras de la rfaga de datos

Vector 1

Vector 2

Figura 6-29 Reordenacin de la rfaga de datos para obtener instante de muestreo Una vez se realiza esta reordenacin de las muestras, aquel vector cuya varianza de la magnitud sea mnima corresponder con el instante ptimo de muestreo. La varianza de cada uno de los vectores en este caso se muestra a continuacin, donde se puede observar que el instante ptimo es el 6:

107

Software Defined Radio: USRP y GNU Radio

Figura 6-30 Varianza de la magnitud para cada instante de muestreo 2) Para conseguir la sincronizacin completa en tiempo, se debe conocer el punto inicial de muestreo, es decir, se debe eliminar el transitorio inicial. Se sabe que este punto inicial de muestreo se encuentra en el vector que contiene las muestras en el instante ptimo de muestreo calculado en el paso anterior, por tanto lo que se har es una correlacin entre la rfaga de datos y el pulso Root Raised Cosine, de tal manera que el mximo de la correlacin da una primera aproximacin de donde est el punto inicial de muestreo. En la Figura 6-31 se muestra el resultado.

Figura 6-31 Correlacin entre la parte inicial de la rfaga de datos y el pulso RRC

108

Ivn Pinar Domnguez Para obtener el punto inicial de muestreo ptimo se seleccionar el valor ms cercano a la posicin del mximo de correlacin ms la mitad de la longitud del pulso RRC (para tener en cuenta que la correlacin no se hace con el pulso centrado en 0, sino que tendr una cola inicial), que denominaremos punto de asignacin, que este contenido dentro del vector del instante ptimo de muestreo. En este caso: Vector_instante_ptimo = (6,22,38,54,70,86,102,) Mximo de la correlacin = posicin 10 Punto de asignacin = 91 (10 + 81) Notar que la separacin del vector instante_ptimo es el nmero de muestras por smbolo. Como el punto de asignacin es 91, se escoger como punto inicial de muestreo 86, ya que es el valor ms cercano en el vector instante de muestreo. De esta manera ya se tiene la sincronizacin en tiempo deseada, puesto que los valores complejos se tomarn a partir de la muestra 86 cada samples/symbol (16).

Tras realizar el proceso de sincronizacin, el diagrama vectorial y la constelacin de la rfaga de datos tras ajustar en frecuencia y sincronizar en tiempo se puede observar en la siguiente figura:

Figura 6-32 Diagrama vectorial (azul) y constelacin (rojo) de la rfaga de datos sincronizada A pesar de haber realizado la sincronizacin en frecuencia, se observa como la constelacin en lugar de tener 4 puntos define un crculo, debido a que sigue habiendo una desviacin de frecuencia que es lo que provoca el desfase variable en tiempo. Esto ocurre porque la desviacin en frecuencia como se ha comentado es variable con el tiempo.

109

Software Defined Radio: USRP y GNU Radio PASO 5) Filtro adaptado RRC: El siguiente paso en el proceso de recepcin ser aplicar el filtro adaptado Root Raised Cosine con los mismos parmetros que el filtro transmisor. El filtro RRC adems se quedar con la banda central de la rfaga sincronizada mostrada anteriormente. La seal obtenida tras realizar la convolucin se muestra a continuacin:

Figura 6-33 Rfaga de datos sincronizada tras filtro RRC Para obtener la constelacin, se vuelve a realizar el proceso de sincronizacin de la misma manera que en el apartado anterior, puesto que ahora el resultado debe ser ms exacto al haber aumentado la SNR. El resultado aparece en la Figura 6-34.

Figura 6-34 Diagrama vectorial y constelacin rfaga de datos sincronizada tras filtro RRC

110

Ivn Pinar Domnguez La densidad espectral de rfaga tras el filtrado es la siguiente:

Figura 6-35 Densidad espectral de potencia de la rfaga tras filtro RRC

PASO 5) Demodulador DQPSK: Llegados a este punto ya se puede demodular la rfaga de datos (sincronizada y filtrada) a partir de los valores complejos de la misma en los puntos de muestreo, obtenidos a partir del punto de muestreo ptimo inicial (86 + longitud(pulso_RRC)/2 = 86 + 80 = 166) cada samples/symbol (16). El mtodo de demodulacin sigue el siguiente proceso: a) Suponiendo el estado inicial con fase /4, obtener las magnitudes de la diferencia entre el punto complejo actual y el estado anterior multiplicado por cada desfase posible. De esta manera se obtienen 4 valores de magnitud. b) A partir de la magnitud ms pequea se obtiene el desfase que se ha producido en la seal y se seleccionan los bits adecuadamente conforme a la Tabla 6-1. c) Actualizar el valor de la variable que guarda el estado anterior con el valor de la muestra actual y repetir el proceso. Por ejemplo, si la muestra actual tiene una fase 3/4 y el estado anterior es /4, la magnitud de la diferencia mnima se dar cuando al estado anterior se multiplique por e j/2, por tanto se seleccionan los bits 01 que corresponden a un desfase /2. PASO 6) Resultados: Para verificar que todo el proceso se realiz adecuadamente, lo primero que se debe hacer es cargar las variables que contienen los bits de informacin originales y los bits codificados de la parte transmisora para realizar la comparacin. Los bits que se obtienen tras el demodulador DQPSK estn an codificados y si se comparan con los originales se obtienen los siguientes errores:

111

Software Defined Radio: USRP y GNU Radio

Figura 6-36 Errores en bits codificados

Como puede observarse, existen muy pocos errores en los bits codificados puesto que la demodulacin diferencial soluciona el problema de la variacin en el offset de frecuencia y adems el canal de propagacin no es demasiado adverso. La tasa de error en este punto es de: Code BER = 7.9 10-5 Sin embargo, para proporcionar robustez a la seal se introdujo la codificacin convolucional en el esquema y por tanto la tasa de errores en los bits de informacin decodificados debe ser an menor.

Figura 6-37 Errores en bits decodificados Tras el decodificador de canal no existe ningn error en los bits de informacin, por tanto: BER = 0

112

Anda mungkin juga menyukai