Anda di halaman 1dari 120

NDICE

Objetivos .....................................................................................................................3 Introduccin.................................................................................................................4 UP-Converter ..............................................................................................................7 ASIC............................................................................................................................8 Dispositivos DSP.........................................................................................................8 Dispositivos de Lgica programable (FPGAs)...........................................................11 Comparativas entre arquitecturas hardware ASIC, FPGA y DSP .............................14 1. Modulacin.........................................................................................................16 Introduccin ...........................................................................................................16 1.1. Modulacin QPSK.......................................................................................16 Introduccin........................................................................................................16 1.1.1. Desarrollo ............................................................................................16 1.1.2. Simulaciones........................................................................................17 1.2. Modulacin MSK .........................................................................................21 Introduccin........................................................................................................21 1.2.1. Desarrollo ............................................................................................21 1.2.2. Simulaciones........................................................................................22 1.3. Modulacin GMSK ......................................................................................25 Introduccin........................................................................................................25 1.3.1. Desarrollo ............................................................................................25 1.3.2. Simulaciones........................................................................................26 1.3.3. Observaciones: ....................................................................................29 2. Interpolacin.......................................................................................................30 2.1. Simulaciones estructura linearinterp ...........................................................31 2.1.1. Observaciones .....................................................................................43 2.2. Simulaciones estructura firinterp .................................................................43 2.2.1. Observaciones .....................................................................................55 2.3. Simulaciones estructura cicinterp ...............................................................55 2.4. Conclusin final...........................................................................................69 3. Subida en frecuencia .........................................................................................71 3.1. Simulacin desplazamiento en frecuencia ..................................................72

Generacin de la seal........................................................................... 7

Recepcin de la seal .......................................................................... 78

Down-converter .........................................................................................................78 4. Bajada en frecuencia .........................................................................................80 4.1. Simulacin bajada en frecuencia ................................................................80 5. Diezmado ...........................................................................................................84 5.1. Simulaciones estructura firdecim ................................................................86 5.2. Simulaciones estructura cicdecim ...............................................................90 5.3. Conclusiones ..............................................................................................94 6. Demodulacin y Deteccin.................................................................................95 6.1. Demodulador QPSK....................................................................................95 6.2. Demodulador MSK y GMSK .......................................................................96 6.3. Simulaciones...............................................................................................98 1

Apndice A (Conceptos Tericos)...........................................................................102 1. Algoritmo de CORDIC ......................................................................................102 Apndice B (Cdigos fuente)...................................................................................108 2. Funcin mi_pskmod.mat ..................................................................................108 3. Funcin mi_mskmod.mat .................................................................................109 4. Funcin gmskmod.mat .....................................................................................110 5. Funcin cordic.mat ...........................................................................................112 6. Funcin mi_cordic.mat .....................................................................................113 7. Funcin mi_pskdemod.mat ..............................................................................114 8. Funcin mi_mskdemod.mat .............................................................................115 9. Funcin gmskdemod.mat .................................................................................116 Presupuesto ............................................................................................................117 Conclusiones...........................................................................................................118 Bibliografa ..............................................................................................................119 Glosario ...................................................................................................................120

Objetivos

El objetivo fundamental del desarrollo de este proyecto es estudiar y simular el funcionamiento de un sistema de comunicacin digital para arquitecturas Software Radio. Para ello se va desglosar el proyecto en dos bloques. El primer bloque va a consistir en la generacin de una seal digital para ser transmitida en un canal de radio-frecuencia, donde los objetivos primarios de este bloque son: Ver el funcionamiento de un modulador en banda base, con tres esquemas posibles QPSK, MSK y GMSK. Comprobar la diferencia entre la interpolacin real y la ideal, y la diferencia entre el filtro FIR y el CIC. Comprobar el funcionamiento del algoritmo de CORDIC para desplazar una seal en frecuencia. El segundo bloque consiste en estudiar y analizar un receptor para transformar la seal digital recibida a su naturaleza binaria original. Los objetivos que se van a abordar en este bloque son: Diseo de una primera etapa de bajada de frecuencia, de nuevo, mediante el uso del algoritmo de CORDIC. Recuperar el espectro original de la seal digital en banda base mediante el diezmado. Comprobar el funcionamiento del demodulador en banda base comprobando el error producido al introducir ruido en la seal transmitida.

Introduccin
La elaboracin del proyecto se basa en el concepto SDR (Software Defined Radio). Este concepto est revolucionando la tecnologa de las comunicaciones rumbo a la integracin de mltiples arquitecturas de redes de telecomunicaciones inalmbricas. Sin embargo, la reconfiguracin del hardware a travs del software exige tambin un comportamiento similar del software destinado a regular el intercambio de informacin. En otras palabras, es importante contar con esquemas que permitan la reconfigurabilidad del software de protocolos empleados en las comunicaciones actuales y futuras para su intercomunicacin. El trmino Software Radio fue acuado por Joe Mitola en 1991 para referirse a la clase de radios re-programables o re-configurables. En otras palabras, una misma pieza de hardware puede realizar diferentes funciones en diferente tiempo. Con lo anterior podemos especular con el hecho de tener un dispositivo hardware de propsito general en un mbito de comunicaciones. Este concepto abre un amplio panorama de oportunidades para la industria de las comunicaciones y la investigacin en ese mismo sentido. La definicin de SDR que ms se ajusta a las caractersticas de este proyecto podra ser: Trmino utilizado para describir control de software para una aplicacin de radio el cual provee tcnicas de modulacin, operaciones de banda angosta y banda ancha, funciones de seguridad en comunicaciones y requerimientos de forma de onda. En este proyecto se ve una particularizacin del concepto SDR para la definicin de un sistema de comunicacin digital donde se pretende integrar los componentes descritos en el esquema que viene a continuacin en un mismo componente hardware.

SISTEMA DE COMUNICACIN DIGITAL

Como se ve en la ilustracin, el bloque transmisor se compone bsicamente de tres etapas: 1. Modulacin en banda base: Se van a implementar tres esquemas diferentes: QPSK, MSK y GMSK. 2. Diseo del bloque Up-Converter que consiste en: 2.1. Interpolador 2.2. Desplazamiento a FI A su vez, el bloque receptor implementa las tres etapas inversas a la transmisin para poder recuperar la secuencia binaria transmitida: 1. Diseo del bloque Down-Converter que engloba las etapas : 1.1. Bajada en frecuencia 1.2. Diezmador 2. Implantacin del demodulador en banda base.

En el proyecto se pretende realizar un anlisis tanto desde el punto de vista del diseo como desde el punto de vista de la implementacin hardware. Por lo que se va exponer en cada etapa las diferentes opciones hardware que ofrece el mercado para llevar a cabo la implementacin del sistema. Para desarrollar la implementacin del proyecto se va a utilizar el programa MATLAB versin 7.1. Matlab es un programa de clculo numrico, orientado a matrices y vectores. Posee un lenguaje de programacin creado para proporcionar un acceso sencillo al software de matrices, tambin posee su propio compilador. La gran utilidad que proporciona Matlab para el desarrollo de este proyecto es la posibilidad de programar directamente procesadores digitales de seal.

Generacin de la seal
UP-Converter
El digital UP-Converter (DUC) principalmente se encarga de generar, a partir de una seal modulada en banda base, una seal a una frecuencia intermedia ms apropiada para ser transmitida a travs de un canal de radio-frecuencia. El bloque up-converter recibe las componentes en banda base, de fase y cuadratura, de la salida del modulador.

Figura 1

El primer bloque realiza un ajuste de la ganancia para los canales de datos IQ. El segundo bloque pertenece a la fase de la interpolacin. La primera etapa de la interpolacin es generada por el filtro PFIR. La segunda etapa de la interpolacin se realiza con un filtro CIC de seis etapas y con un retraso diferencial igual a 1. El objetivo de realizar la interpolacin es reducir el espectro de la seal para su envo a travs de radio-frecuencia. La ltima fase consiste en desplazar la seal a una frecuencia

intermedia. Para ello la seal interpolada es multiplicada por una sinusoide de frecuencia generada por el oscilador NCO.

Las aplicaciones ms usuales en las que se utiliza el bloque up-converter son: SDRs (Software Defined Radios) Transmisores digitales Cable modems BPSK, QPSK y QAM moduladores Sistemas de comunicacin de banda ancha CDM2000 y estaciones base 3G Para realizar la implementacin hardware del up-converter existen varas alternativas: -ASIC: Circuito integrado de aplicacin especfica -FPGA: Dispositivos de lgica programable -Procesador DSP. -GPP: Procesador de propsito general.

ASIC

Son dispositivos definibles por el usuario, diseados para aplicaciones ad hoc. Los ASICs, al contrario que otros dispositivos, pueden contener funciones analgicas, digitales y combinaciones de ambas. En general, son programables mediante mscara y no programables por el usuario. Esto significa que los fabricantes configurarn el dispositivo segn las especificaciones del usuario. Se usan para combinar una gran cantidad de funciones lgicas en un dispositivo. Sin embargo estos dispositivos tienen un coste inicial alto, por lo que slo suele utilizarse cuando es necesaria una gran cantidad.

Dispositivos DSP

Un DSP es un sistema basado en un procesador o microprocesador que posee un juego de instrucciones, un hardware y un software optimizados para

aplicaciones que requieran operaciones numricas a muy alta velocidad. Debido a esto es especialmente til para el procesado y representacin de seales analgicas en tiempo real: en un sistema que trabaje de esta forma (tiempo real) se reciben samples (muestras), normalmente provenientes de un conversor analgico/digital (ADC), el sistema debe hacer todas las operaciones con el sample recibido antes de que llegue el siguiente. Se ha dicho que puede trabajar con seales analgicas, pero es un sistema digital, por lo que necesitar unos conversores analgicos/digitales a sus entradas y salidas. Como todo sistema basado en procesador programable necesitar una memoria donde almacenar los datos con los que trabajar y el programa que ejecutar. Si se hace notar que un DSP puede trabajar con varios datos en paralelo y un diseo e instrucciones especficas para el procesado digital, se puede dar una idea de su enorme potencia para este tipo de aplicaciones. Estas caractersticas constituyen la principal diferencia de un DSP y otros tipos de procesadores. Las aplicaciones software de un DSP se caracterizan por: Aplicaciones cclicas, de duracin acotada, donde se requiere altsima eficiencia de ejecucin No suelen usarse sistemas operativos para evitar el overhad del sheduling Uso de ensamblador y dialectos del lenguaje C para optimizar el cdigo Algoritmos usuales: o Filtrado o Convolucin (interaccin de dos seales) o Correlacin (comparacin entre seales) o Transformacin (alinealidades, rectificacin) Los recursos hardware por los que se compone un DSP son:

Arquitecturas tipo HARVARD con mapas de datos e instrucciones separados. Dos o ms mapas de memoria de datos que permiten leer concurrentemente operandos y coeficientes. Manejo especializado de punteros de direcciones a travs de unidades de clculo dedicadas. Operaciones para la digitalizacin y captura de seales con intervalos regulares (DMA). Elevada capacidad de procesamiento aritmtico de datos en tiempo real, con elevada precisin, para evitar problemas de redondeo y truncamiento. Etapas Multiplicadora/Acumuladora (MAC) apta para resolver ecuaciones del tipo A=A + (B x C). Circuitos BS (Barrel Shifter) para desplazar un dato varios bits a derecha/izquierda en nico ciclo de instruccin. Una ALU operando en forma independiente al MAC y al BS. Cdigos de operando para controlar al MAC, ALU y BS en una nica instruccin .

Resuminedo, un DSP se puede definir como: Procesador optimizado para operaciones de tratamiento de seal. Avance tecnolgico equiparable al avance en FPGAs y ASICs. Solucin viable para gran parte de las aplicaciones de tratamiento de seal. Arquitectura fija, la adecuacin algoritmo-arquitectura no es tan flexible como en un FPGA.

10

Dispositivos de Lgica programable (FPGAs)

Los dispositivos de Lgica Programable son circuitos digitales cuya funcin interna puede ser modificada a voluntad. Esta funcionalidad los diferencia de los circuitos lgicos tradicionales donde la funcin que realiza el circuito viene predefinida de fbrica. La posibilidad de definir a posteriori la funcin a implementar da al usuario mucha mayor flexibilidad para construir diseos ms complejos con mayor integracin y a un menor coste. La ltima etapa de desarrollo, en cuanto a circuitos digitales se refiere, corresponde a la arquitectura de las FPGAs. Empleando las nuevas tecnologas de fabricacin de circuitos, con mayor nmero de compuertas, estos dispositivos permiten definir no slo mapas de entrada/salida y sistemas lgicos simples, sino que dan paso a la construccin de prcticamente cualquier tipo de aplicaciones. La arquitectura de las FPGAs se caracteriza por distribuir recursos lgicos programables y no programables en distintas reas del chip, y definir recursos para interconectar estas distintas subunidades. Una FPGA es un dispositivo de lgica reconfigurable que es capaz de implementar prcticamente cualquier funcin deseada. Esto se logra a travs de una arquitectura extremadamente flexible donde existen elementos bsicos que realizan operaciones simples, los cuales son interconectados entre ellos por una densa malla de conexiones. La gran cantidad de elementos bsicos y la capacidad de interconectarlos arbitrariamente hacen que las FPGAs puedan fragmentar e integrar cualquier sistema digital. Evidentemente existen restricciones de capacidad y velocidad que hacen las FPGAs poco efectivas para ciertas aplicaciones, sin embargo los avances tcnicos, la flexibilidad y bajo coste convierten las FPGAs en alternativas econmicamente viables. Podra pensarse que el circuito digital que subyace a un dispositivo de estas caractersticas es extremadamente complejo y difcil de aprehender. En realidad no lo es. La existencia de las FPGA mucho ms que en una invencin prolfica se basa

11

en un cambio de enfoque respecto de las capacidades disponibles en el rea de dispositivos digitales. Las FPGAs son circuitos con un gran nmero de componentes dispuestos en la menor rea posible, en estructuras que maximizan la velocidad de propagacin de las seales y que sean realizables en una cadena de produccin masiva de bajo coste por unidad. La proeza se encuentra en la capacidad de realizar estos circuitos y en las tecnologas de software que logran dar un uso eficiente a los recursos disponibles. A continuacin se describe someramente la arquitectura lgica de una FPGA. En la figura 1.2 se presenta la estructura general de una FPGA. Tal y como se mencion anteriormente, una FPGA, a diferencia de otros dispositivos de lgica reconfigurable, contiene un arreglo de elementos lgicos y recursos para interconectarlos en forma arbitraria. En las zonas perifricas se encuentra una gran cantidad de conectores y los circuitos de entrada/salida asociados. Finalmente las FPGAs modernas incluyen dentro de s elementos especializados que facilitan la realizacin de ciertas tareas comunes. Por ejemplo, dentro de una FPGA se pueden encontrar sectores de memoria RAM, circuitos para manejar seales de reloj, circuitos multiplicadores e incluso procesadores embebidos. El elemento bsico de procesamiento se denomina CLB (Configurable Logic Block, bloque de lgica configurable).

12

Figura 2: Estructura macroscpica de una FPGA (SpartanII)

Dado que las FPGA se emplean como elementos verstiles, es del inters de fabricantes y usuarios que stas puedan conectarse con distintos estndares de lgica digital. Debido a esto los circuitos de entrada/salida son relativamente sofisticados, pues permiten cumplir con decenas de estndares distintos (LVTTL, LVCMOS, GTL, HSTL, PCI, AGP, etc.). Adems, es evidente que cada pin puede ser configurado como entrada, salida o bien en un estado de alta impedancia de entrada. La mayor ventaja de estos dispositivos reside en que los fabricantes pueden realizar grandes tiradas de estos CI lo que abarata sus costes de produccin y los usuarios posteriormente pueden personalizar sus diseos en sus propios laboratorios sin grandes inversiones: Consumos medios, aunque hay familias especializadas en bajo consumo Velocidad intermedia Fiabilidad alta

13

Tiempo de desarrollo muy bajo, sin dependencia de terceros Metodologa sencilla Equipamiento sencillo Aumentan la confidencialidad de las placas

Comparativas entre arquitecturas hardware ASIC, FPGA y DSP

Figura 3

Figura 4

14

FPGAS vs DSP

Figura 5

En esta ltima grfica se puede observar que las FPGAs son de 10 a 100 veces ms rpidos que un DSP.

15

1. Modulacin

Introduccin
La modulacin digital consiste en modular una seal de entrada binaria con una onda portadora que vara bien su amplitud bien su fase o bien su frecuencia de acuerdo con el smbolo del mensaje transmitido en cada periodo de tiempo.

1.1.

Modulacin QPSK

Introduccin
Esta modulacin se denomina transmisin por desplazamiento en fase cuaternaria o modulacin por cambio de fase en cuadratura. Es una tcnica de codificacin M-ario en donde M=4. Con QPSK tenemos cuatro posibles fases de salida diferentes para slo una frecuencia portadora. A la entrada del modulador los bits se agrupan de dos en dos, por lo que tenemos cuatro smbolos posibles 00, 01, 10, 11 para las cuatro fases posibles. Esta modulacin es una modulacin lineal ya que es el resultado de multiplicar un pulso (smbolo) por una portadora.

1.1.1. Desarrollo
En la figura 1.1 se ve cmo se descompone la seal de entrada en su componente en fase y en su componente en cuadratura. En el caso de una seal binaria, los bits impares representan la componente en fase del smbolo, y los bits pares la componente en cuadratura. A continuacin, como se puede ver en el esquema, se multiplica cada uno de los bits por una seal portadora, en el caso de la componente en fase es un coseno y en el caso de la cuadratura es un seno (portadora+90). Finalmente se obtienen las seales generadas para la componente

16

en fase y para la componente en cuadratura. Para conocer con mayor detalle cmo se desarrolla la modulacin, ver el algoritmo mi_pskmod.mat [apndice a].

Figura 1.1

1.1.2. Simulaciones
A continuacin se presenta una serie de simulaciones para comprobar el funcionamiento correcto de la modulacin. Para hacer las simulaciones se ha fijado un nmero de 100 muestras por cada periodo de smbolo. Al tratarse cada bit por separado, se extiende el periodo de bit al periodo de smbolo. La frecuencia portadora es de 1 KHz y la frecuencia de muestreo es de 10 KHz, cumpliendo as el criterio de Nyquist. Simulacin 1: Para la entrada [1 0 0 1] se obtienen los resultados que se ilustran en las figuras 1.2 y 1.3. Simulacin 2: Para la entrada [1 0 1 0 0 1 1 1 0 0 0 1] ver figura 1.4 y 1.5.

17

Figura 1.2

Figura 1.3

18

Figura 1.5

19

Figura 1.5

20

1.2.

Modulacin MSK

Introduccin
A diferencia de la modulacin anterior, la MSK es una modulacin no lineal, ya que no se puede expresar como resultado de multiplicar un pulso (smbolo) por una portadora. Con MSK entramos en las modulaciones de cambio de fase continua, como se puede ver en la figura 1.6, en la modulacin MSK no hay discontinuidad en la fase, lo que permite una mayor eficiencia espectral.

Figura 1.6

1.2.1. Desarrollo
En primer lugar, lo que hemos de hacer es obtener la contribucin de fase total ( (t)) a lo largo del tiempo para cada uno de los bits de entrada. La fase se obtiene mediante el sumatorio, como se ve en la ecuacin 1.1. A continuacin, en la figura 1.7 se ilustra la funcin q(t) perteneciente al sumatorio.

21

ecuacion 1.1

Figura 1.7

Una vez calculada la fase total, obtenemos la componente en fase y la componente en cuadratura del siguiente modo: xi(t)=Re{exp(j(t))*exp(j0t)} xq(t)=Img{ exp(j(t))*exp(j0t)} componente en fase componente en cuadratura

Lo que se hace es multiplicar el fasor que tiene como argumento (t) por el fasor que tiene como argumento 0t , siendo 0 la frecuencia portadora de la seal moduladora. De esta manera sabemos que la parte real del producto realizado se corresponde a la componente en fase y la parte imaginaria a la componente en cuadratura. Para mayor detalle de cmo se desarrolla la modulacin ver el algoritmo mi_mskmod.mat [apndice a].

1.2.2. Simulaciones
Para realizar las simulaciones de la modulacin MSK se ha establecido un nmero de 100 muestras por smbolo (bit), una frecuencia de portadora de 10 KHz y una frecuencia de muestreo de 80 KHz (cumpliendo el criterio de Nyquist). Simulacin 1: Para la entrada [1 1 0 0 1 0 0 1 1 0 1] se ve en la figuras 1.8 y 1.9 las componentes en fase y en cuadratura resultantes.

22

Simulacin 2: Para la entrada [0 0 0 0 1 1 1 1] el resultado obtenido se refleja en las figuras 1.10 y 1.11.

Figura 1.8

Figura 1.9

23

Figura 1.10

Figura 1.11

24

1.3.

Modulacin GMSK

Introduccin
La modulacin GMSK es una variacin de la MSK. La diferencia es que en la GMSK se suavizan los cambios de direccin de fase mediante un filtro gaussiano, como se ve en la figura 1.12. El hecho de suavizar los cambios de direccin, repercute en una mejora de la eficiencia espectral de la modulacin con respecto a la modulacin MSK.

Figura 1.12

1.3.1. Desarrollo
La forma de desarrollar la modulacin GMSK es exactamente igual que para la modulacin MSK, ya que al ser tambin de fase continua siguen el mismo modelo. Primero hay que hallar la contribucin de fase total con respecto a cada

25

uno de los bits de entrada, mediante la ecuacin vista en la frmula 1.1. En GMSK, la funcin q(t) vara con respecto a la MSK (ver figura 1.13). Una particularizacin es su duracin temporal: puede ocupar 3 4 periodos de smbolo. Este hecho implica memoria, es decir, para conocer la contribucin temporal de cada periodo de bit hay que tener en cuenta la aportacin de los bits anteriores. Una vez calculada la contribucin de fase total, la componente en fase y la componente en cuadratura se obtienen de igual forma que en la modulacin MSK, obteniendo la parte real y la parte imaginaria del producto de la seal moduladora por la exponencial de argumento (t).

xi(t)=Re{exp(j(t))*exp(j0t)} xq(t)=Img{ exp(j(t))*exp(j0t)}

componente en fase componente en cuadratura

Figura 1.13

1.3.2. Simulaciones

Simulacin 1: Para la entrada [1 1 0 0 1 0 0 1 1 0 1] se puede ver en las figuras 1.14 y 1.15 la componente en fase y la componente en cuadratura resultantes.

26

Simulacin 2: Para la entrada [0 0 0 0 1 1 1 1] el resultado de la modulacin se puede observar en las figuras 1.16 y 1.17.

Figura 1.14

Figura 1.15

27

Figura 1.15

Figura 1.16

28

1.3.3. Observaciones:
Lo que se aprecia en esta modulacin es que tanto para la componente en fase como para la componente en cuadratura, el primer periodo corresponde al transitorio de la memoria de modulacin, lo que puede provocar una prdida de informacin en los ltimos bits transferidos.

29

2. Interpolacin
El proceso de interpolacin consta de dos etapas. En la primera etapa la seal muestreada es muestreada nuevamente a una frecuencia N veces superior, de forma que se intercalan N-1 ceros entre cada dos muestras consecutivas de la secuencia original mediante un insertador de ceros. El segundo paso consiste en calcular los valores de las muestras intercaladas mediante un filtro interpolador (ver figura 2.1).

Figura 2.1

En la siguiente figura se puede ver con mayor detalle el proceso de interpolado de una seal digital:

Figura 2.2

30

Para realizar la interpolacin se van a utilizar los filtros MULTIRATE. stos son filtros digitales que cambian la frecuencia de una seal, convirtiendo un conjunto de muestras dado en otro conjunto de muestras, manteniendo la informacin de la seal original. Para disear los filtros multirate se van a utilizar los objetos llamados Multirate Filters (mfilt) de Matlab.. El objetivo de esta fase es comprobar el funcionamiento de estos objetos. Para ello se van a utilizar las diferentes estructuras que proporcionan los mfilt. De lo que se trata es de realizar una comparativa entre el resultado de aplicar los diferentes tipos de estructuras de los Multirate Filters, y el resultado de aplicar una interpolacin ideal. Entendiendo como interpolacin ideal el aumento directo, sobre la modulacin, de la tasa de muestreo. La comparativa se basa en calcular el error producido en las interpolaciones con respecto a la interpolacin ideal. Para ello se va a calcular la media aritmtica de la diferencia entre las muestras de la interpolacin ideal y las muestras de la interpolacin realizada.

2.1.

Simulaciones estructura linearinterp

Esta estructura se caracteriza por usar un filtro FIR de fase lineal como filtro interpolador (ver figura 2.3). Los filtros FIR tienen la gran ventaja de que pueden disearse para ser de fase lineal, lo cual hace que presenten ciertas propiedades en la simetra de los coeficientes. Una propiedad importante que los caracteriza es que son siempre estables, no estando afectada esta caracterstica por la cuantificacin de los coeficientes. Por el contrario, tienen la desventaja de necesitar un orden mayor respecto a los filtros IIR para cumplir las mismas caractersticas. Esto se traduce en un mayor coste computacional.

31

Figura 2.3

La estructura linearinterp, de entrada permite la definicin del factor de interpolacin, parmetro n, as como la definicin del valor de los coeficientes del filtro fir, parmetro num. Para variar la precisin finita del filtro se modifica el parmetro Arithmetic de single a fixed, lo que te permite variar la precisin de la palabra de entrada (InputWordLength), as como la precisin de los coeficientes del filtro (CoeffWordLength). Para variar los parmetros internos del filtro hay que modificar el valor del parmetro FilterInternals de FullPrecision a SpecifyPrecision. Con ello se pasa a poder modificar valores como la longitud de las palabras de las operaciones internas del filtro (ProductWordlLength, AccumWordLength), o como longitud de la palabra de la seal de salida (OutputWordLength). La cadena de bits de entrada para todas para realizar las simulaciones va a ser: [1 0 1 0 1 1 0 1 0 1] Objeto 1: Filtro con parmetros por defecto y con un factor de interpolacin de orden 2. A continuacin se describe detalladamente cada uno de los parmetros del objeto:

32

h= FilterStructure: 'Direct-Form FIR Polyphase Linear Interpolator' Arithmetic: 'double' InterpolationFactor: 2 PersistentMemory: false Objeto 2: Se disminuye la precisin finita a 8 bits para la longitud de las palabras de entrada, de salida y de operacin: h2 = FilterStructure: 'Direct-Form FIR Polyphase Linear Interpolator' Arithmetic: 'fixed' InterpolationFactor: 2 PersistentMemory: false CoeffWordLength: 8 CoeffAutoScale: true Signed: true InputWordLength: 8 InputFracLength: 7 FilterInternals: 'SpecifyPrecision' OutputWordLength: 8 OutputFracLength: 7 AccumWordLength: 8 AccumFracLength: 7 RoundMode: 'convergent' OverflowMode: 'wrap' 33

Simulacin 1: Partiendo de una modulacin QPSK, si se interpola con el Objeto 1, el error producido en la componente en fase es componente en cuadratura 0.0159. Ver figuras 2.4, 2.5, 2.6 y 2.7 Simulacin 2: Partiendo de una modulacin QPSK, si se interpola con el Objeto 2, el error producido en la componente en fase es componente en cuadratura 0.0158. Ver figuras 2.8, 2.9, 2.10 y 2.11 Simulacin 3: Partiendo de una modulacin MSK, si se interpola con el Objeto 1, el error producido en la componente en fase es 0.00000983 y en la componente en cuadratura 0.0000098. Ver figuras 2.12 y 2.13 Simulacin 4: Partiendo de una modulacin MSK, si se interpola con el Objeto 1, el error producido en la componente en fase es componente en cuadratura 0.0901. Ver figuras 2.14 y 2.15 Simulacin 5: En las figuras 2.16 y 2.17 se ilustran las componentes en fase y cuadratura resultantes de interpolar con el Objeto 1, la seal modulada con GMSK. Simulacin 6: En las figuras 2.18 y 2.19 se ilustran las componentes en fase y cuadratura resultantes de interpolar con el Objeto 2, la seal modulada con GMSK. 0.0922 y en la 0.0168 y en la 0.0160 y en la

34

Figura 2.4

Figura 2.5

35

Figura 2.6

Figura 2.7

36

Figura 2.8

Figura 2.9

37

Figura 2.10

Figura 2.11

38

Figura 2.12

Figura 2.13

39

Figura 2.14

Figura 2.15

40

Figura 2.16

Figura 2.17

41

Figura 2.18

Figura 2.19

42

2.1.1. Observaciones
Tan slo se han expuesto las simulaciones ms significativas, de forma que se vea la diferencia entre aumentar y disminuir la precisin finita. Para la modulacin QPSK apenas se aprecia diferencia, y el error producido es prcticamente el mismo para los dos objetos. Para la modulacin MSK el aumento del error es bastante significativo y se puede observar claramente la distorsin producida en sus componentes de fase y cuadratura. Por ltimo, en la modulacin GMSK la distorsin ms significativa se produce en el periodo transitorio de su componente en fase.

2.2.

Simulaciones estructura firinterp

Esta estructura se caracteriza por usar un filtro fir polifsico como filtro interpolador. La idea subyacente en los filtros polifsicos es subdividir el filtro en N subfiltros hn donde se reparten los coeficientes del filtro original, N es el factor de interpolacin deseado. En la figura 2.20 se presenta una ilustracin de este tipo de filtros. A cada paso de reloj la seal digital de entrada conmuta de un subfiltro a otro, generando entonces un ciclo de N pasos de relojes antes de volver a pasar por el mismo subfiltro.

Figura 2.20

43

A su vez, al construir el filtro polifsico, los coeficientes a1, a2,. . . aK del filtro original se reparten en los subfiltros en forma cclica tal como se ejemplifica en la ecuacin 2.1, donde K = 6 y R = 3.

ecuacin 2.1

Esta distribucin en cada subfiltro puede escribirse, algo ms formalmente, como sigue: hr = [ a(i+R0), a(i+R1), . . . ] , r = 1, 2, . . . ,R

Una salida vlida se conforma al haber pasado una muestra de entrada por cada uno de los subfiltros. Mientras esto no ocurra, la salida tiene un valor intermedio no vlido. El punto clave de los filtros polifsicos es que cada subfiltro recibe muestras a 1/N veces la tasa de entrada. Ya que cada filtro es ms pequeo puede lograrse implementaciones de menor rea que cumplan con el requisito de velocidad. Los parmetros a modificar en este tipo de estructuras son prcticamente los mismos que en la estructura linerainterp, a excepcin del PoductWordLength, parmetro interno del filtro que no apareca en la estructura anterior. Para realizar las simulaciones se van a definir tres objetos. La entrada a utilizar en todas las simulaciones va a ser: [1 0 1 0 1 1 0 1 0 1] Objeto 1: Se define con un factor de interpolacin 2, y resto de parmetros por defecto: h= FilterStructure: 'Direct-Form FIR Polyphase Interpolator' Arithmetic: 'double' Numerator: [1x48 double] InterpolationFactor: 2 PersistentMemory: false 44

Objeto 2: Se baja la resolucin en la precisin finita de cada uno de los parmetros del filtro, tanto en las operaciones internas como en las palabras de entrada y de la salida: h2 = FilterStructure: 'Direct-Form FIR Polyphase Interpolator' Arithmetic: 'fixed' Numerator: [1x48 double] InterpolationFactor: 2 PersistentMemory: false CoeffWordLength: 8 CoeffAutoScale: true Signed: true InputWordLength: 8 InputFracLength: 7 FilterInternals: 'SpecifyPrecision' OutputWordLength: 8 OutputFracLength: 7 ProductWordLength: 8 ProductFracLength: 7 AccumWordLength: 8 AccumFracLength: 7 RoundMode: 'convergent' OverflowMode: 'wrap'

45

Simulacin 1: Partiendo de una modulacin QPSK, si se interpola con el Objeto 1, el error producido en la componente en fase es 0.002308 y en la componente en cuadratura 0.0005308. Ver figuras 2.21, 2.22, 2.23 y 2.24. Simulacin 2: Partiendo de una modulacin QPSK, si se interpola con el Objeto 1, el error producido en la componente en fase es 0.0156 y en la componente en cuadratura 0.0121. Ver figuras 2.25, 2.26, 2.27 y 2.28. Simulacin 3: Partiendo de una modulacin MSK, si se interpola con el Objeto 1, el error producido en la componente en fase es 000019057 y en la componente en cuadratura 0.000039288. Ver figuras 2.29 y 2.30. Simulacin 4: Partiendo de una modulacin MSK, si se interpola con el Objeto 2, el error producido en la componente en fase es 0.0136 componente en cuadratura 0.0121. Ver figuras 2.31 y 2.32. Simulacin 5: En las figuras 2.33 y 2.34 se ilustran las componentes en fase y cuadratura resultantes de interpolar con el Objeto 1, la seal modulada con GMSK. Simulacin 6: En las figuras 2.35 y 2.36 se ilustran las componentes en fase y cuadratura resultantes de interpolar con el Objeto 2, la seal modulada con GMSK. y en la

46

Figura 2.21

Figura 2.22

47

Figura 2.23

Figura 2.24

48

Figura 2.25

Figura 2.26

49

Figura 2.27

Figura 2.28

50

Figura 2.29

Figura 2.30

51

Figura 2.31

Figura 2.32

52

Figura 2.33

Figura 2.34

53

Figura 2.35

Figura 2.36

54

2.2.1. Observaciones
Las conclusiones extradas sobre las simulaciones realizadas son similares a las conclusiones obtenidas en las simulaciones realizadas con la estructura anterior. La mayor ventaja de los filtros FIR polifsicos respecto a los FIR de fase lineal es que son implementados de tal forma que no se computan las muestras a interpolar. Integrando la interpolacin junto con el filtraje se ahorran recursos tanto de rea como de energa, al realizar slo las operaciones necesarias.

2.3.

Simulaciones estructura cicinterp

Un filtro CIC se construye como la conexin en cascada de integradores, un interpolador de muestras (insertador de ceros) y una serie de derivadores (de ah el nombre Cascaded integrator-comb (CIC) filter). En la figura 2.37 se presenta un diagrama de la estructura de un filtro CIC.

Figura 2.37

Se aprecia la primera seccin correspondiente a una serie de integradores, implementados como sumadores realimentados. Sigue una etapa de interpolacin, la salida del interpolador corresponde a la entrada muestreada por un factor entero R (factor de interpolacin). Finalmente sigue una serie de derivadores, implementados como restadores de la muestra actual menos la muestra M tiempos anteriores, siendo M el parmetro denominado retraso diferencial. El nmero de integradores debe ser idntico al nmero de derivadores y ser denominado como N.

55

Para realizar las simulaciones se van a definir cuatro objetos. La entrada a utilizar en todas las simulaciones va a ser: [1 0 1 0 1 1 0 1 0 1] Objeto 1: Objeto por defecto con un factor de interpolacin 2, que viene definido por los siguientes parmetros h= FilterStructure: 'Cascaded Integrator-Comb Interpolator' Arithmetic: 'fixed' DifferentialDelay: 1 NumberOfSections: 2 InterpolationFactor: 2 PersistentMemory: false InputWordLength: 16 InputFracLength: 15 SectionWordLengthMode: 'MinWordLengths' OutputWordLength: 16 Objeto 2: Se aumenta el nmero de secciones hasta 4, dejando la configuracin de la precisin finita a 64 bits para la palabra de entrada, de salida y de operaciones: h2 = FilterStructure: 'Cascaded Integrator-Comb Interpolator' Arithmetic: 'fixed' DifferentialDelay: 1 NumberOfSections: 4 InterpolationFactor: 2 PersistentMemory: false 56

InputWordLength: 64 InputFracLength: 15 SectionWordLengthMode: 'SpecifyWordLengths' SectionWordLengths: [64 64 64 64 64 64 64 64] OutputWordLength: 64 Objeto 3: Se aumenta el retraso diferencial a 5 y se deja el resto de parmetros por defecto: h3 = FilterStructure: 'Cascaded Integrator-Comb Interpolator' Arithmetic: 'fixed' DifferentialDelay: 5 NumberOfSections: 2 InterpolationFactor: 2 PersistentMemory: false InputWordLength: 16 InputFracLength: 15 SectionWordLengthMode: 'MinWordLengths' OutputWordLength: 16 Objeto 4: Se disminuye la precisin finita a 8 bits : h4 = FilterStructure: 'Cascaded Integrator-Comb Interpolator' Arithmetic: 'fixed' 57

DifferentialDelay: 1 NumberOfSections: 2 InterpolationFactor: 2 PersistentMemory: false InputWordLength: 8 InputFracLength: 7 SectionWordLengthMode: 'SpecifyWordLengths' SectionWordLengths: [8 8 8 8] OutputWordLength: 8 Simulacin 1: Partiendo de una modulacin QPSK, con el Objeto 1 se obtiene un error en fase de 0.0161 y en cuadratura de 0.0159. Ver figuras 2.38, 2.39, 2.40 y 2.41. Simulacin 2: Partiendo de una modulacin QPSK, con el Objeto 2 se produce error en fase de 0.0020, y un error en cuadratura de 0.00062767. Simulacin 3: Partiendo de una modulacin QPSK, con el Objeto 3 se produce un error de 0.0259 en fase y de en cuadratura de 0.2141. Ver 2.42, 2.43, 2.44 y 2.45. Simulacin 4: Partiendo de una modulacin QPSK, al interpolar con el Objeto 4, se puede apreciar que tanto la componente en fase como la componente en cuadratura pierden su forma sinusoidal. Ver 2.46, 2.47, 2.48 y 2.49. Simulacin 5: Partiendo de una modulacin MSK, con el Objeto 1 se produce un error de 0.000015743 en fase y de en cuadratura de 0.000015416. Ver figuras 2.50 y 2.51. Simulacin 6: Partiendo de una modulacin MSK, con el Objeto 2 se produce un error de 0.000075569 en fase y de en cuadratura de 0.0000139. Ver 2.52 y 2.53. 58

Simulacin7: Partiendo de una modulacin MSK, con el Objeto 3 se produce un error de 0.00097638 en fase y de en cuadratura de 0.00028968. Simulacin 8: Partiendo de una modulacin MSK, al interpolar con el Objeto 4, se puede apreciar que tanto la componente en fase como la componente en cuadratura pierden su forma sinusoidal. Ver 2.54 y 2.55. Simulacin 9: En las figuras 2.56 y 2.57 se ilustran las componentes en fase y cuadratura resultantes de interpolar con el Objeto 2, la seal modulada con GMSK. De las simulaciones realizadas tan slo se ilustran las ms significativas, de forma que se puedan comparar las diferencias entre unas y otras.

Figura 2.38

59

Figura 2.39

Figura 2.40

60

Figura 2.41

Figura 2.42

61

Figura 2.43

Figura 2.44

62

Figura 2.45

Figura 2.46

63

Figura 2.47

Figura 2.48

64

Figura 2.49

Figura 2.50

65

Figura 2.51

Figura 2.52

66

Figura 2.53

Figura 2.54

67

Figura 2.55

Figura 2.56

68

Figura 2.57

2.4.

Conclusin final

El objetivo de esta parte ha sido comprobar el error producido por cada una de las estructuras, por lo que se ha visto ajustando los parmetros de cada tipo de filtro el error producido es muy bajo, llegando incluso a ser despreciable para el caso de la modulacin MSK. Tras las simulaciones realizadas se pueden sacar conclusiones al respecto de las estructuras utilizadas. Las estructuras se diferencian por el tipo de filtro interpolador utilizado. La primera estructura utiliza un filtro FIR de fase lineal, mientras que la segunda utiliza un filtro FIR polifsico, la diferencia ms significativa que se aprecia entre ambas, es el retardo producido por el transitorio del filtro, observndose que el retardo producido por el FIR polifsico es considerablemente mayor al producido con el FIR lineal, por otro lado el error generado es semejante para ambas estructuras.

69

En la tercera estructura se utiliza un filtro CIC, este tipo de filtro es el que se utilizara en una implementacin real, debido a su bajo coste computacional con respecto los filtros FIR. Por otra parte el error generado, no difiere al generado con los filtros FIR. En las simulaciones realizadas, para cada estructura se ha implementado un objeto con precisin finita de baja resolucin. El objetivo es ver los efectos producidos en la seal a la salida del interpolador. En la simulacin 8 de la estructura cicinterp, se puede ver un ejemplo de la saturacin que se produce tanto en la componente en fase como en la componente en cuadratura. Una forma de solucionar este problema, manteniendo la misma resolucin, es bajar la amplitud de la seal de entrada.

70

3. Subida en frecuencia
El ltimo paso en la generacin de la seal consiste en desplazar la seal a una frecuencia intermedia. Para desplazar una seal en frecuencia lo que se hace es multiplicarla por una seal exponencial, de manera que: y = xin*exp(j*(t)) = xin*cos[(t)] + j*sen[(t)]
ecuacin 3.1

Siendo xin = xi +jxq tenemos que yi = xi*cos [(t)] xq*sen [(t)] yq=xi* sen [(t)] + xq*cos [(t)]
ecuacin 3.2

Para realizar la subida en frecuencia se pueden emplear diferentes mtodos. De entre ellos pueden analizarse los siguientes: Una primera opcin podra ser multiplicar cada componente por una sinusoide, a una determinada frecuencia de portadora, como se ilustra en la figura siguiente:

Figura 3.1

71

La segunda opcin para realizar la subida en frecuencia es utilizar el algoritmo de CORDIC. Conceptualmente, el algoritmo lo que hace es rotar cada vector de la seal de entrada, compuesto por el par de muestras de fase y cuadratura, a partir del ngulo correspondiente de la seal exponencial, teniendo en cuenta que el ngulo de la exponencial vara cada instante de tiempo t.

Ventajas y desventajas de CORDIC: Posee un coste computacional muy bajo comparado con el primer esquema, ya que no usa multiplicadores. Se implementa exclusivamente con sumas y desplazamientos. Esto hace que los recursos hardware que se requieren y el gasto computacional se reduzcan en gran medida. Es menos preciso que el primer esquema, debido a que se trata de un algoritmo basado en aproximaciones. Su implementacin fsica est orientada a FPGAs, lo que supone un coste menor en hardware, ya que no necesita de ningn microprocesador.

3.1.

Simulacin desplazamiento en frecuencia

A continuacin se va a ver cmo se realiza el desplazamiento en frecuencia a travs de los algoritmos cordic.m y mi_cordic.m descritos en el apndice b. La cadena de entrada binaria para realizar las simulaciones es: [1 0 1 0 1 1 0 1 0 1] Simulacin 1: Partiendo de una modulacin QPSK, con una portadora inicial de 1Khz y una frecuencia de muestreo de 10 Khz, si se interpola con un factor de orden 2, se desplaza la seal a una frecuencia intermedia de 10 khz. Ver figuras 3.2, 3.3, 3.4 y 3.5.

72

Simulacin 2: Partiendo de una modulacin MSK, con una portadora inicial de 1Khz y una frecuencia de muestreo de 10 Khz, si se interpola con un factor de orden 3, se desplaza la seal a una frecuencia intermedia de 15 khz. Ver figuras 3.6 y 3.7 Simulacin 3: Partiendo de una modulacin GMSK, con una portadora inicial de 1Khz y una frecuencia de muestreo de 10 Khz, si se interpola con un factor de orden 4, se desplaza la seal a una frecuencia intermedia de 20 Khz. Ver figuras 3.8 y 3.9.

Figura 3.2

73

Figura 3.3

Figura 3.4

74

Figura 3.5

Figura 3.6

75

Figura 3.7

Figura 3.8

76

Figura 3.9

77

Recepcin de la seal
Down-converter
El down-converter realiza el mismo proceso que su homlogo en la generacin de la seal. En la primera etapa, baja de la frecuencia intermedia a la banda base. Una vez se obtienen las componentes en banda base, en la segunda etapa se pasa la seal por un filtro diezmador para reducir la frecuencia de muestreo. A continuacin se muestra un esquema representativo del funcionamiento de la arquitectura del downconverter:

Figura 6

Se puede apreciar que la primera etapa consiste en un conversor analgico/digital, donde se transforma la seal de entrada analgica en una seal digital descompuesta en sus dos componentes de fase y cuadratura. La segunda etapa se compone por un mezclador que multiplica las componentes de fase y cuadratura por una sinusoide generada por un oscilador NCO. Con este proceso se consigue bajar la seal en frecuencia de la FI (frecuencia intermedia) a la banda base.

78

La ltima fase del down-converter est compuesta por un filtro diezmador que hace recuperar a la seal su ancho de banda original. La arquitectura del down-converter tiene un uso importante en aplicaciones como: Radio digital Comunicaciones 3G Realizar funciones de acceso al canal en todos lo receptores digitales El hardware para implementar un down-converter es exactamente el mismo que para el up-converter: FPGAs, DSPs o ASICs.

79

4. Bajada en frecuencia
En esta primera etapa de la recepcin se recibe la seal centrada a una frecuencia intermedia, y lo que se pretende es recuperar la seal en banda base. Para ello, lo que se va a hacer es multiplicar la seal de entrada por una seal exponencial, de igual forma que se hizo en la etapa de subida de frecuencia, mediante el algoritmo de CORDIC. Una vez aplicado CORDIC, con una misma frecuencia portadora que la seal recibida, se filtra la seal con un filtro paso bajo, y se obtiene finalmente la seal en banda base. El aspecto ms relevante de esta etapa se centra en el diseo del filtro paso bajo. ste se va a implementar con un filtro FIR. Otro aspecto a definir en esta etapa va a ser la frecuencia de corte del filtro paso bajo.

4.1.

Simulacin bajada en frecuencia

Las simulaciones de este apartado toman como referencia las simulaciones realizadas en el apartado de subida en frecuencia, con el objetivo de recuperar la seal en banda base. Para ello se ha diseado un filtro FIR paso bajo de orden 10, con una frecuencia de corte de /10 radianes para la modulacin QPSK, de 0.2 radianes para la modulacin MSK y de 0,1 radianes para la modulacin GMSK. Simulacin 1: Componente en fase y componente en cuadratura de la modulacin QPSK. Ver figuras 4.1 y 4.2. Simulacin 2: Componente en fase y componente en cuadratura de la modulacin MSK. Ver figuras 4.3 y 4.4. Simulacin 3: Componente en fase y componente en cuadratura de la modulacin GMSK. Ver figuras 4.5 y 4.6.

80

Figura 4.1

Figura 4.2

81

Figura 4.3

Figura 4.4

82

Figura 4.5

Figura 4.6

83

5. Diezmado
El diezmado consiste en reducir la frecuencia de muestreo que subimos con la interpolacin en la fase de transmisin. El esquema bsico que sigue es el siguiente:

Figura 5.1

El diezmado es la operacin contraria a la interpolacin. Consiste en reducir la frecuencia de muestreo en s= s/k, siendo k nmero entero, basta con tomar una de cada K muestras originales, descartando las dems. Para ello, si el ancho de banda de x[n] es mayor que /N al diezmar se produce aliasing por lo que es necesario reducir el ancho de banda de la seal a s/2, mediante un filtro paso-baja como se ve en la siguiente figura:

84

.
Figura 5.2

Una vez filtrada la entrada X[n] se realiza un submuestreo con un factor K, como se puede ver en ejemplo que se ilustra en la figura siguiente:

Figura 5.3

85

Para realizar el diezmado Matlab proporciona de igual forma que en la interpolacin, los objetos mfilt, filtros multirate que se encargan de implementar el filtro paso baja y el submuestreo. Para realizar las simulaciones van a utilizar las dos estructuras posibles que ofrecen los objetos mfilt, la estructura firdecim y la estructura cicdecim

5.1.

Simulaciones estructura firdecim

La estructura firdecim utiliza un filtro FIR polifsico exactamente igual al definido para su estructura homloga firinterp en la fase de interpolacin. Para recuperar la seal original modulada en banda base, el orden del factor de diezmado ha de ser el mismo al orden de factor de interpolacin Para realizar el diezmado se va a definir el siguiente objeto: h= FilterStructure: 'Direct-Form FIR Polyphase Decimator' Arithmetic: 'double' Numerator: [1x48 double] DecimationFactor: N PersistentMemory: false Para realizar las simulaciones se toman como entrada los resultados obtenidos en la etapa anterior de bajada de frecuencia Simulacin 1: Diezmado de la seal modulada con QPSK. Ver figura 5.4 y figura 5.5. Simulacin 2: Diezmado de la seal modulada con MSK. Ver figura 5.6 y figura 5.7. Simulacin 3: Diezmado de la seal modulada con GMSK. Ver figura 5.8 y figura 5.9.

86

Figura 5.4

Figura 5.5

87

Figura 5.6

Figura 5.7

88

Figura 5.8

Figura 5.9

89

5.2.

Simulaciones estructura cicdecim

La estructura cicdecim utiliza un filtro CIC exactamente igual al definido para su estructura homloga cicinterp en la fase de interpolacin. Para recuperar la seal original modulada en banda base, el orden del factor de diezmado ha de ser el mismo al orden de factor de interpolacin. De igual forma que en las simulaciones anteriores, se utiliza como entrada los resultados obtenidos en la etapa de diezmado. Las caractersticas del objeto con el que se realiza el diezmado son: h= FilterStructure: 'Cascaded Integrator-Comb Decimator' Arithmetic: 'fixed' DifferentialDelay: 1 NumberOfSections: 4 DecimationFactor: 4 PersistentMemory: false InputWordLength: 64 InputFracLength: 15 SectionWordLengthMode: 'SpecifyWordLengths' SectionWordLengths: [64 64 64 64 64 64 64 64] OutputWordLength: 64 Simulacin 1: Diezmado de la seal modulada con QPSK. Ver figura 5.10 y figura 5.11. Simulacin 2: Diezmado de la seal modulada con MSK. Ver figura 5.12 y figura 5.13. Simulacin 3: Diezmado de la seal modulada con GMSK. Ver figura 5.14 y figura 5.15.

90

Figura 5.10

Figura 5.11

91

Figura 5.12

Figura 5.13

92

Figura 5.14

Figura 5.15

93

5.3.

Conclusiones

Una vez realizadas las simulaciones con las dos estructuras posibles, se observa que las diferencias entre ambas estructuras son mnimas, prcticamente imperceptibles. Como ya se coment en el apartado de interpolacin, la estructura cicinterp es la ms apropiada a la hora de realizar una implementacin real, ya que supone un ahorro en coste computacional.

94

6. Demodulacin y Deteccin
Se va a realizar una demodulacin con deteccin coherente, que significa que se conoce la fase de la seal portadora. La deteccin se basa en muestrear los pulsos en su mximo y compararlos con un nivel para determinar su valor.

6.1.

Demodulador QPSK

Para demodular una seal modulada con QPSK lo que se hace es implementar dos demoduladores BPSK, uno para la fase y otro para la cuadratura. Al utilizar deteccin coherente, se conoce la fase inicial de cada una de las portadoras de cada smbolo transmitido. En la modulacin QPSK para transmitir un 1 se establece una fase inicial de 0 radianes, y para transmitir un cero una fase inicial de radianes. Por lo que para realizar la demodulacin, se necesita conocer la fase inicial en cada periodo de smbolo, as de esta manera se conoce la naturaleza del bit transmitido. En el algoritmo diseado mi_pskdemod.mat [apndice b], para conocer la fase inicial de cada periodo de smbolo, se obtiene una muestra de la seal en el primer ciclo del periodo de cada smbolo, tanto para la componente en fase como para la componente en cuadratura. Si el signo de la muestra obtenida, para valores comprendidos entre 0 y /2, es positivo significa que el bit transmitido es un uno, si por el contrario el signo de la muestra obtenida es negativo el bit transmitido es un cero. En las siguientes ilustraciones se puede ver una representacin de las componentes en fase y en cuadratura para transmitir un 0 o un 1:

95

Figura 6.1

Figura 6.2

6.2.

Demodulador MSK y GMSK

Las modulaciones MSK y GMSK son modulaciones de fase continua, donde la fase cambia de direccin en funcin del bit transmitido. Para conocer el bit transmitido en el n periodo de tiempo se deben conocer los bits transmitidos en los

96

n-1 periodos anteriores. De esta forma, partiendo de una fase inicial se puede ir averiguando qu bit se ha transmitido en cada periodo de tiempo. Tanto para la modulacin MSK como para la GMSK se va a partir de una fase inicial de = 0 radianes, que para la componente en fase equivale a cos() =1 y para la componente en cuadratura a sen()=0. Las variaciones de fase entre cada periodo son de /2, para transmitir un uno se incrementa la fase en +/2 y para transmitir un cero se decrementa la fase en /2. En la siguiente figura se ven representados los posibles valores del seno y del coseno para ngulos mltiplos de /2:

Figura 6.3

De la figura anterior se puede deducir el siguiente diagrama de estados en el que se basan los dos algoritmos diseados para las demodulaciones MSK y GMSK:

Figura 6.4

97

En el diagrama se representan los cuatro estados posibles que equivalen a los valores que toman las componentes de fase y cuadratura para los ngulos mltiples de /2. A partir del estado inicial y conociendo la variacin de fase se logra obtener la secuencia de bits transmitida.

6.3.

Simulaciones

En esta ltima etapa, lo que se pretende ver es cmo vara el resultado en el detector al introducir ruido en recepcin. Para ello, slo hay que sumarle, tanto a la componente en fase como a la componente en cuadratura, la funcin aleatoria predefinida en Matlab randn(1,long_componente) Seal original Simulacin 1 (QPSK): Simulacin 2 (MSK): Simulacin 3(GMSK): a = 1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0

salida = salida = salida =

A continuacin, en las siguientes figuras se pueden ver las resultantes para cada tipo de modulacin al introducir ruido en el canal. Las figuras ilustradas a continuacin se corresponden a las componentes en fase y en cuadratura de la seal, una vez ha sido bajada en frecuencia y diezmada. El error producido en la deteccin es de carcter aleatorio, debido a que la distorsin introducida en el canal se corresponde a una funcin aleatoria, por ello no siempre se van a obtener los mismos resultados.

98

Figura 6.5

Figura 6.6

99

Figura 6.7

Figura 6.8

100

Figura 6.10

Figura 6.11

101

Apndice A (Conceptos Tericos)

1. Algoritmo de CORDIC

El algoritmo CORDIC proporciona un mtodo iterativo para rotar vectores en un ngulo determinado, basndose exclusivamente en sumas y desplazamientos, redundando en un aumento de la eficiencia computacional. El algoritmo original, tal como fue propuesto originalmente, describe la rotacin de un vector bidimensional en el plano cartesiano. Su funcionamiento se deduce de la frmula general para rotacin de vectores como se muestra a continuacin:

ecuacin 1

Figura 1

102

De la frmula anterior, se puede deducir lo siguiente:

ecuacin 2

Aplicando trigonometra se extrae que:

ecuacin 3

Por lo tanto las componentes x e y se expresan de la siguiente forma:

ecuacin 4

En el algoritmo CORDIC, las rotaciones de vectores son reemplazadas por pseudorotaciones, como se muestra a continuacin:

Figura 2

103

En una rotacin real no cambia la magnitud del vector V una vez rotado, pero como se ve en la figura 2, en una pseudorotacin incrementa su magnitud en

ecuacin 5

La rotacin de un ngulo puede descomponerse en una suma de rotaciones ms pequeas. Si se asume inicialmente que x = x0, y = y0 y z = z0, luego de n iteraciones para una rotacin real se obtiene

ecuacin 6

mientras que para una pseudorotacin,

ecuacin 7

104

en donde,

Frmula 8

Si los ngulos de rotacin se restringen de forma tal que tg = 2 -i, la multiplicacin por la tangente, se reduce a una operacin de desplazamiento. Los diversos ngulos pueden obtenerse realizando una serie de rotaciones elementales cada vez ms pequeas. En cada iteracin, en lugar de determinar si se debe rotar o no, se elige el sentido de rotacin. Partiendo de las ecuaciones dadas en frmula 1, y considerando cos (i) = cos (-i), una iteracin puede expresarse como:

ecuacin 9

en donde,

ecuacin 10

y di= 1 dependiendo del sentido de rotacin. El factor de expansin Ki debe ser multiplicado por las ecuaciones correspondientes a las pseudorotaciones para obtener la rotacin real. El ngulo final de una rotacin est determinado por la suma algebraica, segn el sentido de rotacin, de los ngulos de las rotaciones elementales. Si se elimina Ki de las ecuaciones iterativas, se obtiene un algoritmo basado en sumas y desplazamientos. El factor Ki puede aplicarse al final del proceso como una constante Kn , definida como sigue:

105

ecuacin 11

El valor exacto de Kn depende del nmero de iteraciones. Se define adems

ecuacin 12

Como se explic anteriormente, en cada paso de iteracin, en lugar de decidir si rotar o no, se decide el signo o sentido de la rotacin a efectuar. Por lo tanto cada ngulo final se puede representar mediante un vector de signos, en donde cada componente corresponde a un ngulo de la secuencia de ngulos elementales. Con esto ltimo, se modifica el acumulador angular para dar lugar a la ecuacin

ecuacin 13

El algoritmo CORDIC se opera normalmente en dos modos. El primero, denominado rotacin (rotation), rota el vector de entrada un ngulo especfico que se introduce como parmetro. El segundo modo, denominado vectorizacin (vectoring), rota el vector de entrada hacia el eje X, acumulando el ngulo necesario para efectuar dicha rotacin. En el caso de una rotacin, el acumulador angular se inicializa con el ngulo a rotar. La decisin sobre el sentido de rotacin en cada paso de iteracin, se efecta para minimizar la magnitud del ngulo acumulado. Por ello, el signo que determina el sentido de rotacin, se obtiene del valor de dicho ngulo en cada paso. Para el modo rotacin, las ecuaciones son:

106

ecuacin 14

en donde

ecuacin 15

El

algoritmo

CORDIC

est

restringido

ngulos

tales

que

pi/2 pi/2. Esto quiere decir que para ngulos de rotacin mayores habra que hacerlo en dos pasos, por ejemplo para rotar pi, se rotara pi/2 dos veces.

107

Apndice B (Cdigos fuente)

2. Funcin mi_pskmod.mat
function [fase,quad]=mi_pskmod(a, Fc, Fm) fase=1;% valor inicial del vector fase quad=0;% valor inicial del vector quad j=1; for i=1:2:length(a)% separamos los bits en fase y en cuadratura vimpar(j)=a(i); j=j+1; end n=1; for i=2:2:length(a) vpar(n)=a(i); n=n+1; end t=0:100;% nmero de muestras por smbolo for k=1:1:length(vimpar) if vimpar(k)==1 comp1=cos(2*pi*Fc*t/Fm); else comp1=-cos(2*pi*Fc*t/Fm); end fase=[fase comp1]; if vpar(k)==1 comp2=sin(2*pi*Fc*t/Fm); else comp2=-sin(2*pi*Fc*t/Fm); end quad=[quad comp2]; end fase(:,1)=[]; quad(:,1)=[];

108

3. Funcin mi_mskmod.mat
function [comp_fase,comp_quad]=mi_mskmod(a,fc,fm) Ts=100;% nmero de muestras por simbolo fase=0;% valor inicial de la fase for k=1:length(a) ultimo_valor=fase(1,length(fase)); for i=1:Ts if a(k)==1 fase=[fase (ultimo_valor+((pi/2)/Ts)*i)]; else fase=[fase (ultimo_valor-((pi/2)/Ts)*i)]; end end end banda_base=exp(j*fase); portadora=exp(j*2*pi*fc*0:(length(fase)-1)/fm); compleja=banda_base.*portadora; comp_fase=real(banda_base.*portadora); comp_quad=imag(banda_base.*portadora);

109

4. Funcin gmskmod.mat
Para hallar la contribucin de fase total, se debe calcular la funcin q(t) para cada periodo de smbolo. La funcin q(t) se obtiene al integrar la funcin g(t) (ver ecuacin 4.1 y ecuacin 4.2). La funcin g(t) es una aproximacin real de la campana de Gauss, como se puede ver en la figura 3.

g(t) = 1/2T[ erfc(x1)- erfc(x2)]


ecuacin 16

ecuacin 17

Figura 3

function [fase, quad]=gmskmod(q,ak); % la funcin q la pasamos como parmetro, % ya que ha sido previamente calculada M=4; % nmero de muestras por smbolo h=0.5; % ndice de modulacin N=length(ak); bn=cumsum(ak); phi=zeros(1,N*M); % inicializacin % para k=1,2,3,4 la seal se trata

110

% de forma diferente ya que no contiene % todos los trminos k=1; phi_0=q(1,1:M).*ak(k)*pi*h; phi(1,((k-1)*M+1):k*M)=phi_0; k=2; phi_0=q(1,1:M).*ak(k)*pi*h; phi_1=q(1,M+1:2*M)*ak(k-1)*pi*h; phi(1,((k-1)*M+1):k*M)=phi_0+phi_1; k=3; phi_0=q(1,1:M).*ak(k)*pi*h; phi_1=q(1,(k-2)*M+1:2*M)*ak(k-1)*pi*h; phi_2=q(1,(k-1)*M+1:3*M)*ak(k-2)*pi*h; phi(1,((k-1)*M+1):k*M)=phi_0+phi_1+phi_2; k=4; phi_0=q(1,1:M).*ak(k)*pi*h; phi_1=q(1,(k-3)*M+1:2*M)*ak(k-1)*pi*h; phi_2=q(1,(k-2)*M+1:3*M)*ak(k-2)*pi*h; phi_3=q(1,(k-1)*M+1:4*M)*ak(k-3)*pi*h; phi(1,((k-1)*M+1):k*M)=phi_0+phi_1+phi_2+phi_3; for k=5:1:N phi_0=q(1,1:M).*ak(k)*pi*h; phi_1=q(1,M+1:2*M)*ak(k-1)*pi*h; phi_2=q(1,2*M+1:3*M)*ak(k-2)*pi*h; phi_3=q(1,3*M+1:4*M)*ak(k-3)*pi*h; teta=bn(k-4)*ones(1,M)*pi*h; phi(1,((k-1)*M+1):k*M)=phi_0+phi_1+phi_2+phi_3+teta; %Separamos la contribucin de los bits %anteriores en el intervalo de bit de %anlisis ms el trmino constante end xgmsk=exp(j*phi); fase=real(xgmsk); quad=imag(xgmsk);

111

5. Funcin cordic.mat
function f=cordic(x_fase, y_quad, fc, fm) fase=0;%inicializamos el vector donde almacenamos la componente en fase quad=0;%inicializamos el vector donde almacenamos la componente en cuadratura for i=1:length(x_fase) w=(2*pi*fc/fm)*i;%ngulo a rotar x=x_fase(i); y=y_quad(i); %-----------------------% Limita el ngulo entre 0 y 2*pi while (w>2*pi) w=w-2*pi; end while (w<-2*pi) w=w+2*pi; end %-----------------------if w<=pi/2 [xf,xq]=mi_cordic(x,y,w); elseif w<=pi %si el angulo es mayor que pi/2 se aplica dos ves cordic para ello %se divide el angulo por dos y se rota dos veces el mismo angulo w=w/2; [xif,xqf]=mi_cordic(x,y,w); [xf,xq]=mi_cordic(xif,xqf,w); elseif w>pi w=w-2*pi; if w>=-pi/2 x=x_fase(i); y=y_quad(i); [xf,xq]=mi_cordic(x,y,w); else w=w/2; [xif,xqf]=mi_cordic(x,y,w); [xf,xq]=mi_cordic(xif,xqf,w); end end fase=[fase xf];

112

quad=[quad xq]; end fase(:,1)=[];%suprimimos la muestra inicial del vector fase quad(:,1)=[];%suprimimos la muestra inicial del vector quad f=[fase;quad];

6. Funcin mi_cordic.mat
function [xif,xqf]=mi_cordic(xi,xq,phi); z=phi;%ngulo inicial de rotacin K=1/1.64676;%constante Kn=1/An for i=1:13; if z(i)>=0;%direccin del ngulo a rotar sigma=1; else sigma=-1; end z(i+1)=z(i)-sigma*atan(2.^(-(i-1)));%valor del ngulo acumulado xi(i+1)=xi(i)-xq(i)*sigma*2.^(-(i-1));%componente en fase xq(i+1)=xq(i)+xi(i)*sigma*2.^(-(i-1));%componente en cuadratura end xif=xi(i)*K; xqf=xq(i)*K;

113

7. Funcin mi_pskdemod.mat
function [salida]=mi_pskdemod(comp_fase,comp_quad,long_a) fase=0;% inicializacin retardo=20;% retardo correspondiente a al transitorio introducido por los filtros for j=retardo_fase:101:length(comp_fase) if (comp_fase(j)>0) bit=1; else bit=0; end fase=[fase bit]; end fase(:,1)=[];% bits correspondientes a la componente en fase quad=0;% inicializacin for j=retardo:101:length(comp_quad) if (comp_quad(j)>0) bit=1; else bit=0; end quad=[quad bit]; end quad(:,1)=[];% bits correspondientes a la componente en cuadratura salida=ones(1,long_a); j=1;% agrupacin de los bits de fase y cuadratura for i=1:2:long_a salida(i)=fase(j); salida(i+1)=quad(j); j=j+1; end

114

8. Funcin mi_mskdemod.mat
function salida=mi_mskdemod(comp_fase,comp_quad,long) fase_ini=1; %estado inicial de fase y cuadratura quad_ini=0; i=118; % el periodo de bit es de 100 muestras % ms 18 correspondientes al transitorio introducido por los filtros salida=0;% inicializacin del vector salida j=1; while j<=long if i>length(comp_fase) fase_sig=comp_fase(length(comp_fase)); quad_sig=comp_quad(length(comp_quad)); else fase_sig=comp_fase(i); quad_sig=comp_quad(i); end if fase_ini==1&&quad_ini==0% estado inicial (1,0) if quad_sig>0.6 bit=1; quad_ini=1; else bit=0; quad_ini=-1; end fase_ini=0; elseif fase_ini==0&&quad_ini==1% estado (0,1) if fase_sig<-0.6 bit=1; fase_ini=-1; else bit=0; fase_ini=1; end quad_ini=0; elseif fase_ini==0&&quad_ini==-1&% estado(0,-1) if fase_sig>0.6 bit=1; fase_ini=1; else bit=0; fase_ini=-1; end quad_ini=0; elseif fase_ini==-1&&quad_ini==0% estado(-1,0) if quad_sig<-0.6 bit=1; quad_ini=-1; else bit=0; quad_ini=1; end fase_ini=0; end i=i+100; salida=[salida bit]; j=j+1; end salida(:,1)=[];

115

9.

Funcin gmskdemod.mat

function salida=gmskdemod(comp_fase,comp_quad,long) fase_ini=1;%estado inicial de fase y cuadratura quad_ini=0; i=29; salida=0;% inicializacin del vector salida j=1; while j<=long if i>length(comp_fase) fase_sig=comp_fase(length(comp_fase)); quad_sig=comp_quad(length(comp_quad)); else fase_sig=comp_fase(i); quad_sig=comp_quad(i); end if fase_ini==1&&quad_ini==0% estado inicial (1,0) if quad_sig>0.5 bit=1; quad_ini=1; else bit=0; quad_ini=-1; end fase_ini=0; elseif fase_ini==0&&quad_ini==1% estado (0,1) if fase_sig<-0.5 bit=1; fase_ini=-1; else bit=0; fase_ini=1; end quad_ini=0; elseif fase_ini==0&&quad_ini==-1% estado(0,-1) if fase_sig>0.5 bit=1; fase_ini=1; else bit=0; fase_ini=-1; end quad_ini=0; elseif fase_ini==-1&&quad_ini==0% estado(-1,0) if quad_sig<-0.5 bit=1; quad_ini=-1; else bit=0; quad_ini=1; end fase_ini=0; end i=i+4; salida=[salida bit]; j=j+1; end salida(:,1)=[];

116

Presupuesto
Precio Unidad N horas Total parcial Horas de estudio previo: .20.95 Horas de estudio terico: 20.95 Horas de programacin:.. 20.95 Horas de documentacin: 20.95 TOTAL IVA (16%) + 36 57 69 45 754.2 1194.15 1445.55 942.75 4336.65 693.86 5.030,51 ____________________

117

Conclusiones
Tras el anlisis y el estudio realizado, se puede decir que se han cubiertos los objetivos propuestos en un inicio. En la primera etapa del transmisor ha quedado reflejado el funcionamiento de las modulaciones QPSK, MSK y GMSK, pudiendo ver las diferencias existentes entre ellas. En la segunda etapa del transmisor se ha visto con gran detalle el funcionamiento de un interpolador, donde se ha realizado un amplio estudio de las diferencias entre los filtros FIR y CIC. En la ltima etapa se ha podido comprobar el funcionamiento del algoritmo de CORDIC para desplazar una seal en frecuencia. En lo que concierne al receptor se ha visto cmo realizar una bajada en frecuencia a travs, nuevamente, de algoritmo CORDIC. En la segunda fase de recepcin, el diezmado, se ha podido ver cmo se recupera la frecuencia de muestreo original de la seal modulada. Ya en la ltima fase se ha comprobado el funcionamiento de la demodulacin y de la deteccin, analizando el error producido al tratar con una seal ideal o con una seal distorsionada por ruido.

118

Bibliografa

J. Proakis y D.G.Manolakis. "Tratamiento Digital de Seales". Prentice Hall. A.V. Oppenheim, R.W. Schafer: "Digital Signal Processing", Prentice-Hall, 1975. A.V. Oppenheim and R. W. Schafer y John R. Buck ."Tratamiento de seales en tiempo discreto. Prentice Hall, D.L.2000. J.H. McClellan, R.W. Shafer, M. A. Yoder. DSP First: A multimedia Approach. Prentice Hall 1. C. SIDNEY; J. Mc CLELLAN; A. OPPENHEIN etc. "Tratamiento de la Seal utilizando MATLAB V4". Edit. Prentice Hall RABINER. "Theory and Applications of Digital Processing". Edit. Prentice-Hall. Jorge Estudillo-Ramrez, Ren Cumplido. Integracin de Redes y Protocolos con SDR (Software Defined Radio). Reporte Tcnico No. CCC-00-004, 18 de julio de 2005 . Miyeon Kim and Seungjun Lee. Design of Dual-Mode Digital Down Converter for WCDMA and cdma2000.ETRI Journal, Volume 26, Nmero 6, Diciembre 2004, pp 555-558. Ken Turkowski, Apple Computer. Fixed-Point Trigonometry with CORDIC Iterations, 17 de Enero de 1990. Hsiao, S.F and Delosme, J.M, The CORDIC Householder Algorithm, Proceedings of the 10th Symposium on Computer Arithmetic, pp.256-263, 1991. Volder, J., Binary computation algorithms for coordinate rotation and function generation. Convair Report IAR-1 148 Aeroelictrics Group, Junio 1956.

119

Glosario

ASIC: Aplication Spefic Integrator Circuit (Circuito integrado de aplicacin espefica). CIC: Cascaded Integrator-Comb (Integrador combinado en cascada). DSP: Digital Signal Procesing (Procesado digital de la seal). FI: Frecuencia Intermedia. FIR: Finite Impulse Response (Respuesta al impulso finita). FPGA: Field Programmable Gate Array. GPP: General Proposit Procesor (Procesador de propsito general). GMSK: Gaussian Minimum Shift Keying. IIR: Infinite Impulse Response (Respuesta al impulso infinita). MSK: Minimun Shift Keying. NCO: Numeric Control Oscilador (Oscilador controlado numricamente). PFIR: Polifasic Finite Impulse Response (Respuesta al impulso finita polifsica). QAM: Quadrature Amplitud Modulation. QPSK: Quadrature Phase Shift Keying.

120

Anda mungkin juga menyukai