Está en la página 1de 64

AGRUPACIONES DE ANTENAS

AGRUPACIONES ADAPTATIVAS Y ALGORITMO GENTICO

TRABAJO DE: MIGUEL GABAL LANAU DIRECTOR: JUAN CARLOS MARTN LICENCIATURA: FSICA DEPARTAMENTO DE FSICA APLICADA FACULTAD DE CIENCIAS, UNIVERSIDAD DE ZARAGOZA

-2-

INDICE:
1) Introduccin. 5 2) Agrupaciones de antenas en comunicaciones inalmbricas 7 2.1) Introduccin. 7 2.2) Sistemas de antenas simples 8 2.3) Sistemas de diversidad. 9 2.4) Sistemas de antenas inteligentes........... 10 2.4.1) Tipos de antenas inteligentes. 12 2.5) Diseo de estacin base..... 15 3) Agrupaciones de antenas. Teora y mtodos de sntesis. 17 3.1) Introduccin............ 17 3.2) Campos radiados por agrupaciones. 17 3.3) Sntesis de agrupaciones 20 4) Algoritmo gentico. 23 4.1) Definicin 23 4.2) Codificacin 24 4.3) Operadores genticos. 24 4.4) Estructura del algoritmo........... 29 5) Resultados.......... 31 5.1) Estructura del programa........... 32 5.2) Clculo del campo radiado 34 5.3) Funcin de mrito.. 36 5.4) Configuraciones a estudiar 37 5.5) Casos estudiados. 38 5.5.1) Resultados en funcin de la geometra y el nmero de antenas. 39 5.5.2) Resultados en funcin de la separacin entre elementos 44 5.6) Evolucin de la puntuacin........... 46 6) Conclusiones........... 49 7) Bibliografa. 51 APENDICE: Cdigo fuente.... 53

-3-

-4-

1) INTRODUCCIN:
El propsito de este trabajo es el estudio y diseo de agrupaciones de antenas inteligentes de haz adaptativo, para ello se plantea el desarrollo de un programa que controle la alimentacin de cada una de las antenas que conforman la agrupacin para que el diagrama de radiacin de esta se adapte a las condiciones del entorno. Se van a estudiar varias agrupaciones con diferentes caractersticas: diversas geometras, nmero de elementos y separacin entre antenas. De este modo podremos dar argumentos a tener en consideracin a la hora de disear una agrupacin real. Debido a que el sistema debe responder en tiempo real se hace uso de mtodos numricos para afrontar el problema, ms concretamente de los algoritmos genticos, que imitando a los sistemas biolgicos se adaptan a las condiciones del medio por seleccin natural. El control de un sistema electrnico por medio de un algoritmo gentico es una forma impactante y original de resolver el problema, haciendo uso de la demostrada capacidad de adaptacin de los seres vivos. Se va a comenzar por dar una introduccin en orden creciente de complejidad desde los sistemas de estacin base ms sencillos (antena simple omnidireccional), a los ms sofisticados (agrupacin de antenas inteligentes de haz adaptativo). Tambin aportaremos la base terica necesaria para el desarrollo de los clculos en la simulacin. Se explicarn a continuacin la estructura y los operadores necesarios en el uso de algoritmos genticos. Y finalmente presentaremos los resultados que se han obtenido mediante las simulaciones y las conclusiones pertinentes. Habitualmente, en cursiva y encerrados por parntesis, se van a presentar trminos en ingls acompaando a la palabra en castellano. Debido a que para muchos de los temas tratados no hay prcticamente bibliografa en castellano, los trminos en ingls pueden resultar tiles para la posterior bsqueda de informacin del lector interesado.

-5-

-6-

2) AGRUPACIONES DE ANTENAS EN COMUNICACIONES INALMBRICAS:


2.1) INTRODUCCIN: Para dar cobertura inalmbrica, usualmente se subdivide el espacio en celdas hexagonales, en cada una de las cuales hay una estacin base que da servicio a dicha celda. Este hecho incluso le ha dado el nombre a la telefona celular.

Figura 1. Esquema de comunicacin con antenas base en celdas hexagonales

Una de las caractersticas principales de este tipo de configuracin es la reutilizacin de frecuencias. Es decir, permite el uso ms eficiente de las frecuencias utilizadas y por tanto la posibilidad de conexin de muchos usuarios al mismo tiempo. En otras palabras, varias celdas diferentes pueden usar la misma frecuencia para la comunicacin, mientras que en redes de un solo transmisor debera usarse una frecuencia diferente para cada usuario. Por otra parte es inevitable cierto nivel de interferencia en la seal producida por otras celdas que usan la misma frecuencia, lo que deber ser solventado de algn modo. Durante una comunicacin el usuario se conecta a travs de la estacin base ms cercana que a su vez, est comunicada con el resto de clulas y con los dems sistemas de telefona (mvil o fija). Este hecho garantiza la comunicacin en movimiento, es decir, cuando el usuario est en movimiento y atraviesa distintas clulas de cobertura. En adelante nos vamos a centrar en una breve descripcin del elemento principal de cada celda: La estacin base. Se mencionarn diferentes tipos, configuraciones y sistemas de antenas. Desde lo ms simple, una simple antena omnidireccional, a lo ms sofisticado, una agrupacin de antenas inteligentes de haz adaptativo.

-7-

2.2) SISTEMAS DE ANTENAS SIMPLES:


Antenas Omnidireccionales: Desde los inicios de los sistemas de comunicacin inalmbricos se han usado antenas con un diagrama de radiacin omnidireccional, es decir simples dipolos.

Figura 2. Diagrama de radiacin en 3D de un dipolo de media onda orientado segn el eje z

Este tipo de diagrama indica que la antena radia la misma potencia en todas las direcciones del plano XY. Aunque puede ser adecuado para aplicaciones sencillas en las que no se posee informacin de la localizacin de los usuarios, este tipo de antenas dispersa mucho la seal, con lo que a los usuarios slo les llega un pequeo porcentaje del total de la energa radiada. Dada esta limitacin, las estrategias que se siguen con este tipo de antenas solo pueden estar encaminadas a aumentar el nivel de potencia de las seales emitidas. En un entorno de mltiple usuarios (e interferencias), se empeora la situacin, ya que este tipo de sistemas no puede rechazar selectivamente las seales que interfieran con las de los usuarios. Estas limitaciones imponen a los diseadores condiciones para elaborar sistemas ms sofisticados y costosos.

Antenas Direccionales: En principio, una sola antena que emita y reciba la radiacin de forma direccional, como por ejemplo la yagui, es muy til en una comunicacin punto a punto, pero no para el caso de una estacin base que de cobertura a usuarios en movimiento a su alrededor.

-8-

Figura 3. Diagrama de radiacin de una antena direccional

Pero s puede usarse un conjunto de ellas para formar un sistema sectorial. Habitualmente se divide el plano en tres sectores de 120, y se cubre cada uno de ellos con una antena direccional. Podemos ver un sistema de este tipo en la figura 4.

Figura 4. Agrupacin de 3 antenas sectoriales Hyperlink, cada una da cobertura a un sector de 120

Presentan varias caractersticas que lo hacen mejor que el uso de una antena omnidireccional: Cada sector se considera una celda. Por lo tanto si la seal llega a una celda en concreto se pueden desechar las seales que se reciben en el resto de celdas y as recibir menos interferencias que en el caso simple. Para mejorar sus caractersticas pueden usarse ms antenas para subdividir el espacio en ms sectores. En la prctica se han usado hasta seis sectores, con una antena direccional en cada uno para cubrir todas las direcciones.

2.3) SISTEMAS DE DIVERSIDAD (DIVERSITY SYSTEMS):


El siguiente paso que se da para mejorar las prestaciones de las estaciones base es el uso de sistemas de diversidad. Bsicamente consiste en que el sistema durante la comunicacin con el usuario recibe varias seales diferentes, ya sea la seal que llega de l en lnea recta, ya sea la
-9-

proveniente de reflexiones. Posteriormente se procesan las seales recibidas mediante el uso de algoritmos para lograr una seal resultante de mejores caractersticas. Hay dos posibles mtodos de trabajo: Conmutacin de diversidad (switched diversity): Se analizan las seales y se escoge la que sea mejor en cada momento. Combinacin de diversidad (diversity combining): Mediante el uso de algoritmos se combinan las diferentes seales recibidas. En cada caso debe corregirse el error de fase entre las seales debido al diferente camino seguido por cada una de ellas (multicamino). Es necesario lograr que la transmisin a numerosos usuarios sea ms eficiente evitando el problema de las interferencias, ya que en estos mtodos no se tiene en cuenta. Para ello se debe aumentar an ms la complejidad del sistema creado, lo que se conoce como antenas inteligentes.

2.4) SISTEMAS DE ANTENAS INTELIGENTES:


Un sistema de antenas inteligentes es una agrupacin de antenas con una unidad de Procesamiento Digital de Seales (DSP) que optimiza los diagramas de transmisin y recepcin dinmicamente en respuesta a una seal de inters en el entorno.

Figura 5. Diagrama simple de un sistema de antenas inteligentes

Puede sorprender el uso de la palabra inteligente para referirse a un sistema electrnico, pero una de las definiciones de inteligencia es la capacidad de resolver problemas. Este tipo de sistemas actan a partir de la informacin que extraen del medio, y encuentran una buena solucin del problema al que se enfrentan, lo que se ajusta a la definicin propuesta. La caracterstica de las antenas inteligentes de tener unos haces de radiacin con una mayor directividad (es decir, mayor ganancia y mayor selectividad angular), hace pensar en las siguientes ventajas potenciales de estos sistemas:

- 10 -

Incremento de la zona de cobertura. Dado que la ganancia es mayor que en el caso de antenas omnidireccionales o sectoriales para igual potencia transmitida, la seal se podra recibir a una mayor distancia. Este hecho podra permitir reducir el nmero de estaciones base necesarias para cubrir una zona. Reduccin de la potencia transmitida. Si se opta por mantener la densidad de estaciones base, el uso de sistemas inteligentes permitir incrementar su sensibilidad, por lo que los mviles podrn transmitir con menor potencia, ahorrando consumo de la batera. De igual modo, gracias a la ganancia de la agrupacin, es posible que el usuario reciba una seal de la estacin base similar a la suministrada por un sistema fijo, pese a que cada elemento de la agrupacin est radiando una potencia muy inferior. As, se relajaran las especificaciones sobre los amplificadores de potencia utilizados, que podran resultar ms baratos. Reduccin de la propagacin multitrayecto. Debido a la menor dispersin angular de la potencia radiada por la estacin base, se reducir el nmero de trayectos mltiples que alcanzarn al usuario.

Figura 6. Onda directa y onda reflejada (multicamino) entre estacin base y usuario

Reduccin del nivel de interferencia. La mejor selectividad espacial de la antena permitir a la estacin base discriminar las seales de usuarios secundarios en favor de la seal del mvil deseado, as como reducir, o incluso eliminar, el nivel de potencia transmitida en direcciones de las que provengan ondas secundarias causadas por reflexin con elementos del entorno que vayan a empeorar la calidad de la seal. Mejora de la seguridad. Gracias a que la transmisin entre la estacin base y el terminal mvil es direccional, no ser posible que un equipo ajeno intercepte la comunicacin, a menos que se site en la misma direccin en la que apunta la antena.

- 11 -

Introduccin de nuevos servicios. Puesto que la red podra tener acceso a informacin acerca de la posicin de los mviles, es posible pensar en servicios tales como radiolocalizacin en llamadas de emergencia, publicidad de servicios cercanos, informacin en lugares tursticos, etc.

2.4.1) TIPOS DE ANTENAS INTELIGENTES:


Podemos dividir los sistemas de antenas inteligentes en varios tipos dependiendo de sus caractersticas y funcionamiento: Sistema de haz conmutado (Switched Beam): Es la configuracin ms simple de antenas inteligentes. Bsicamente consiste en lo siguiente: El sistema genera varios haces a ngulos prefijados que se van conmutando secuencialmente dando como resultando un barrido discreto de la zona de cobertura en posiciones angulares fijas. En cada posicin discreta del haz se activa el sistema de recepcin para detectar la posible existencia de seales. En caso de recibir seal, el sistema guarda informacin correspondiente a la posicin del haz y se establece la comunicacin con el usuario en un intervalo de tiempo. Despus de este intervalo se conmuta al siguiente haz para detectar la existencia de otros posibles usuarios hasta llegar al lmite angular de la zona de cobertura. Este proceso de repite permanentemente en el tiempo.

Figura 7. Sistema de haz conmutado

Esta tcnica no garantiza que el usuario se encuentre en la direccin de mxima radiacin del haz que le da servicio, ni que las seales interferentes se vean notablemente reducidas (ya que siempre es posible que se reciba alguna por uno de los
- 12 -

lbulos secundarios). De hecho, sera posible recibir una seal interferente por un punto del diagrama de radiacin con mayor ganancia que la seal deseada, empeorando apreciablemente las prestaciones del sistema. Haz de seguimiento (Scaning): Este sistema es un poco ms complejo que el anterior. Est conformado por una agrupacin de antenas con una red de excitacin que permite controlar electrnicamente las fases de las corrientes de excitacin que llegan a los elementos de la agrupacin para modificar la direccin del haz convenientemente y establecer comunicacin con el usuario respectivo. A esto se le llama agrupacin progresiva (phased array). A diferencia del sistema de haz conmutado, el sistema haz de seguimiento ejecuta algoritmos DoA (Direction of Arrival) para identificar la direccin de llegada de las seales de los usuarios. Con esta tcnica s se puede garantizar que el usuario se encuentra posicionado en todo momento en la direccin del lbulo principal y con mxima ganancia (dentro de las limitaciones de los algoritmos que se empleen). Sin embargo, tampoco puede evitarse la recepcin de seales no deseadas procedentes de la direccin correspondiente a algn lbulo secundario del diagrama de radiacin. Para aprovechar las seales multitrayecto sera necesario detectar y seguir con otros haces dichas componentes. Notar que en el sistema conmutado se realizan barridos en unos pocos ngulos prefijados, mientras que en el sistema de haz de tiene mucha mayor resolucin angular.

Figura 8. Sistema de haz de seguimiento. El lbulo principal se reorienta para dar servicio al usuario 1, en movimiento

- 13 -

Haz adaptativo: La tcnica de haz adaptativo constituye el mximo nivel de inteligencia que se consigue hoy en da con un sistema de antenas. En este caso, la salida de cada elemento de la agrupacin se pondera con un factor de peso cuyo valor se asigna dinmicamente, de modo que se conforma el diagrama de radiacin para maximizar algn parmetro de la seal (por ejemplo, la relacin seal-ruido). De este modo el diagrama presentar un lbulo principal en la direccin del usuario deseado, lbulos secundarios en las direcciones de las componentes multitrayecto y mnimos (e incluso nulos) de radiacin en las direcciones de las fuentes de interferencia. Esta tcnica requiere el uso de algoritmos (DoA) para la deteccin de las seales de llegada e interferentes. Un algoritmo ampliamente utilizado para este propsito es el llamado MUSIC (Multiple Signal Clasification) [Lal Chand Godara,2004].

Figura 9. Sistema de haz adaptativo


Antenas xW1 xW2 xW3 xW4 Referencia xW5 xW6 xW7 xW8 Algoritmo adaptativo Error Procesador digital de seal Receptor. Modulador de amplitud y fase

Figura 10. Esquema de funcionamiento de una agrupacin adaptativa

- 14 -

2.5) DISEO DE ESTACIN BASE:


Hay multitud de parmetros que hay que tener en cuenta a la hora de disear el sistema completo de una estacin base de comunicaciones inalmbricas. Este trabajo solo aborda una pequea parte del problema. Para la configuracin fsica de la estacin se deben elegir el nmero de elementos antena que conformarn el sistema, la disposicin de estos, el tipo de antenas En este trabajo se van a analizar las ventajas e inconvenientes respecto al uso de ms o menos elementos y su disposicin geomtrica. El factor econmico tiene una importancia significativa e impone importantes restricciones en el diseo del proyecto, pero no se ha tenido en cuenta en este estudio. Tampoco se ha analizado que clase de antena sera la ms apropiada para componer el sistema. Solamente est centrado en el diseo de la agrupacin. En el presente trabajo se supone que se conocen de antemano las direcciones de inters (direccin de la seal del usuario y direcciones de las seales de interferencia), o sea, que ya han sido determinadas por algoritmos DoA. Se realizaran simulaciones con diferentes tipos de agrupaciones y se tratar de determinar las ventajas e inconvenientes de cada una. Puesto que se trata de un sistema de antenas inteligentes, debe haber un procesamiento para decidir cules van a ser los valores de alimentacin de cada una de las antenas para obtener el diagrama de radiacin deseado en cada momento. Para este propsito se har uso del algoritmo gentico, que inspirndose en la teora de la evolucin de las especies, trata de encontrar las mejores soluciones para cada caso. En este algoritmo un conjunto de soluciones es tratado como una poblacin viva: Mediante reproduccin sexual dos individuos (dos posibles soluciones) dan lugar a dos descendientes. Los mejores individuos tienen ms probabilidad de reproducirse. Hay una pequea probabilidad de mutacin en cada nacimiento. Existen restricciones que mantienen ciertas caractersticas de los individuos inalterables Conforme van sucedindose las generaciones los individuos estn mejor adaptados al medio en el que viven. El algoritmo escoger como solucin final al mejor individuo que haya existido una vez superado un determinado nmero de generaciones. As pues en este trabajo se analizar que configuraciones responden de mejor manera a las seales del entorno y se analizar si es factible el uso de algoritmos genticos en el control de una estacin base de antenas inteligentes.

- 15 -

- 16 -

3) AGRUPACIONES DE ANTENAS. TEORA Y MTODOS DE SNTESIS. 3.1) INTRODUCCIN:


Se define una agrupacin como un conjunto de N antenas iguales que radian o reciben simultneamente. El diagrama de radiacin del conjunto se obtiene como la interferencia de los campos radiados por cada una de las antenas, mientras que en recepcin la seal recibida es una combinacin lineal de las seales que capta cada antena. Por reciprocidad, si los pesos y desfases de la combinacin lineal en recepcin son iguales a los de la alimentacin en transmisin, los diagramas de radiacin en recepcin y transmisin son iguales (teorema de reciprocidad [Collin,1985]). Las agrupaciones de antenas proporcionan ciertas caractersticas de radiacin deseadas, para lo cual, se sitan formando diversas configuraciones (lineal, tringulo, crculo...) y se alimentan con amplitudes y fases convenientemente escogidas. Los elementos radiadores se escogen iguales, por comodidad de diseo y fabricacin.

3.2) CAMPOS RADIADOS POR AGRUPACIONES:


En una agrupacin de antenas el campo total es el resultado de la suma vectorial de los campos de cada elemento de la agrupacin. Puesto que en muchas ocasiones se pretende conseguir una alta directividad es necesario que los campos interfieran constructivamente en la direccin de inters y destructivamente en el resto del espacio. Los parmetros que permiten controlar el diagrama de radiacin del sistema son los siguientes: El nmero de elementos que componen la agrupacin. La configuracin geomtrica de los elementos que conforman el sistema. Es decir, la disposicin en que estn colocados (lineal, triangular...) y la separacin entre los elementos. El diagrama de radiacin de cada elemento, diferente segn el tipo de antena: dipolo, yagi, apertura... La alimentacin de cada elemento: la distribucin de amplitudes y fases. Por simplicidad hacemos los clculos para una agrupacin lineal de antenas (figura 11), pero los resultados son extensibles a agrupaciones de cualquier geometra.

- 17 -

Figura 11. Agrupacin lineal de antenas

La expresin del campo lejano en el punto individual situada en origen de coordenadas es:

radiado por una antena

Donde: : Nmero de ondas. : Factor que determina la amplitud relativa del elemento. : Diagrama de radiacin normalizado del elemento i (su valor mximo es la unidad). : Fase de la alimentacin del elemento i. : Polarizacin del campo radiado por el elemento i (vector unitario complejo). Como la agrupacin es un conjunto de antenas idnticas los diagramas de radiacin normalizados son iguales: . Por otra parte podemos escribir el campo como una variable compleja dependiente de la amplitud y la fase:

De esta forma, el campo total ser la suma vectorial de los campos producidos por cada elemento:

Si estamos suficientemente alejados de la agrupacin (campo lejano) se cumple que . Esta aproximacin es vlida para el denominador, pero no para el trmino de la exponencial, en donde debe usarse una aproximacin ms fina:
- 18 -

Por otro lado, a una distancia de la agrupacin suficientemente grande, las polarizaciones de las antenas pueden considerarse idnticas . Podemos escribir finalmente:

El primer trmino slo es dependiente del diagrama de radiacin de la antena bsica y de las distancia del origen de coordenadas al punto . El segundo trmino tiene en cuenta la interferencia de las N ondas generadas por las N antenas. Este factor depende nicamente de la separacin entre los elementos de la agrupacin, de la alimentacin (amplitud y fase) y de la frecuencia de trabajo, y se denomina factor de la agrupacin (FA). A la posibilidad de expresar el campo elctrico radiado por una agrupacin como producto de estos dos factores se lo conoce como principio de multiplicacin de diagramas. Si consideramos el diagrama de radiacin normalizado del elemento (D) y el factor de la agrupacin normalizado FAn, el diagrama de radiacin normalizado de la agrupacin, , viene dado por:

Este principio es vlido para cualquier agrupacin de elementos iguales. Es consecuencia de la relacin mediante transformada de Fourier entre la distribucin de corrientes y el campo lejano: En una agrupacin de antenas idnticas, la distribucin de corriente es igual al producto de convolucin de la distribucin de un elemento por el peine caracterstico de la agrupacin (conjunto de deltas de Dirac). Por lo tanto, el campo lejano es igual al producto ordinario de dos funciones: La transformada de Fourier de la distribucin de corriente del elemento La transformada de Fourier del peine

Figura 12. Esquema ilustrativo del principio de multiplicacin de diagramas

- 19 -

NOTA: Se define el producto de convolucin como:

Propiedad: Teorema de convolucin:

El principio de multiplicacin de diagramas asegura que la influencia del elemento radiador en el diagrama de radiacin de la agrupacin y la influencia de las caractersticas de la agrupacin estn desacopladas. Por tanto pueden analizarse por separado. Este trabajo est centrado en la optimizacin del factor de agrupacin.

3.3) SINTESIS DE AGRUPACIONES:


La flexibilidad de las agrupaciones para proporcionar diagramas de radiacin muy variados puede aprovecharse para sintetizar un diagrama de radiacin que cumpla unas determinadas caractersticas. Para ello deben determinarse las amplitudes y fases con las que se alimentarn a los elementos de la agrupacin de forma que la interferencia de los campos radiados se aproxime al diagrama deseado. La sistematizacin de los procedimientos de sntesis de agrupaciones ha llevado al desarrollo de multitud de mtodos. Vamos a describir brevemente alguno de ellos (ms informacin [Cardama, 1998]): Mtodo de Schelkunoff: Parte de la especificacin de la direccin de los ceros en el plano Z o los nulos en el espacio real. Mtodos de modelado del haz (beam-shaping), en los que se especifica la forma del diagrama en el espacio real. Suelen utilizarse dos mtodos: o Sntesis de Fourier, que permite obtener el diagrama de error cuadrtico medio mnimo respecto a las especificaciones. Se aplica cuando se conoce una expresin matemtica del factor de la agrupacin deseado. o Sntesis de Woodward, que permite obtener un diagrama que coincide con las especificaciones en un nmero finito de puntos. Es til cuando el diagrama especificado no puede expresarse matemticamente, pero s puede muestrearse. Para diagramas de haz principal estrecho y bajos lbulos secundarios, suelen especificarse el nivel de lbulo principal a secundario y el

- 20 -

nmero de elementos de la agrupacin. Para realizar el diseo existen varios mtodos: o Sntesis de Chebychev, que obtiene el diagrama con mnimo ancho de haz principal para el nivel de lbulo principal a secundario especificado. o Sntesis de Taylor, basada en los mismos principios que la de Chebychev pero con menor radiacin en direcciones alejadas del haz principal a costa de empeorar ligeramente el ancho de haz y la directividad. Por sus ventajosas caractersticas, es muy utilizada en la prctica Agrupaciones superdirectivas: Existen una serie de mtodos para sintetizar agrupaciones con una directividad en teora tan elevada como se desee, a costa de enormes problemas en su realizacin prctica, que las hacen inviables. Es posible, aunque no en todos los casos, calcular analticamente las amplitudes y fases con las que deben alimentarse a las antenas de una agrupacin para conseguir el diagrama de radiacin deseado. Pero estos mtodos, debido a la complejidad del clculo y a que no siempre es posible llegar a la solucin, slo son tiles en agrupaciones estticas. Nuestro propsito es conseguir disear una agrupacin adaptativa, y los mtodos de sntesis no aportan resultados satisfactorios en este caso. Por ello se debe afrontar el problema desde otro ngulo: En los ltimos aos, el desarrollo de la informtica ha revolucionado los mtodos de sntesis. Gracias a la elevada capacidad de clculo que ofrecen los ordenadores actuales es ms eficiente resolver el problema numricamente mediante el uso de los algoritmos apropiados para tal fin. De entre los diversos mtodos, los basados en algoritmos genticos son objeto de estudio actualmente.

- 21 -

- 22 -

4) ALGORITMO GENTICO: 4.1) DEFINICIN:


Los algoritmos genticos son mtodos sistemticos para la resolucin de problemas que aplican a estos los mismos mtodos de la evolucin biolgica: seleccin basada en la poblacin, reproduccin sexual y mutacin. En los aos 70 John Holland desarroll la base de los algoritmos genticos en un curso titulado Teora de sistemas adaptativos. Los objetivos de su investigacin fueron, imitar los procesos adaptativos de los sistemas naturales y disear sistemas artificiales que retengan los mecanismos ms significativos de los sistemas naturales. Ms tarde David Goldberg (estudiante de Holland) fue uno de los primeros en tratar de aplicar los algoritmos genticos a problemas industriales, ms concretamente al diseo de tuberas. Los algoritmos genticos son mtodos de optimizacin que tratan de hallar (conjunto de parmetros del sistema) tales que (funcin a estudiar) sea mximo. Tras parametrizar el problema en una serie de variables se deben codificar en un cromosoma. Todos los operadores genticos utilizados se aplicarn sobre esos cromosomas o sobre poblaciones de ellos. Hay que tener en cuenta que un algoritmo gentico es independiente del problema, lo cual lo hace un algoritmo robusto, por ser til para cualquier problema, pero a su vez dbil, ya que no est especializado en ninguno. Las soluciones codificadas en un cromosoma compiten para ver cul constituye la mejor solucin (aunque no necesariamente la mejor de todas las soluciones posibles). El entorno creado por el conjunto de soluciones, ejercer una presin selectiva sobre la poblacin, de forma que solo los mejor adaptados (aquellos que resuelvan mejor el problema) consiguen sobrevivir y trasmitir su material gentico a poblaciones venideras. La diversidad gentica se introduce mediante mutaciones y reproduccin sexual. Por lo tanto abordar un problema mediante el uso de algoritmos genticos consiste en lo siguiente: Hallar de qu parmetros depende el sistema. Codificarlos en un cromosoma. Aplicar los mtodos de evolucin: seleccin, reproduccin sexual con intercambio de material gentico y mutaciones que generen diversidad.

- 23 -

4.2) CODIFICACIN:
Los algoritmos genticos requieren la codificacin en cromosomas de cada posible solucin del problema, cada uno de ellos tendr varios genes, que corresponden a parmetros del sistema. Para poder trabajar con estos genes en el ordenador es necesario codificarlos en una cadena de smbolos generalmente ceros y unos. Usualmente una vez elegidos los parmetros del sistema se codifican en binario para su posterior tratamiento con los operadores genticos y se vuelven a decodificar a decimal a la hora de evaluar la funcin de mrito de la solucin. Hay otras codificaciones posibles, pero uno de los resultados fundamentales en la teora de los algoritmos genticos, el teorema de los esquemas [Goldberg, 1989] afirma que la codificacin ptima es aquella que emplea base 2. En el caso de estudio de este trabajo en concreto los parmetros de los que depende el sistema son las amplitudes (Ai) y fases (Fi) de las antenas individuales, que se ordenan de la forma siguiente: A1 F1A2F2........AN_ANTFN_ANT donde N_ANT es el nmero de antenas de la configuracin. La longitud de cada uno de los genes (Ai o Fi) es de 8 bits, por lo que existen 2 =256 niveles para cada uno de ellos. La amplitud vara entre 0 y 255 y la fase entre 0 y radianes en pasos de radianes.
8

As pues la longitud del cromosoma ser

El conjunto de cromosomas que existen se denomina poblacin (N). Para este problema se ha escogido una poblacin de N=100 individuos.

4.3) OPERADORES GENTICOS:


Va a ser necesario realizar modificaciones de las cadenas de bits. Para ello se usan operadores binarios, denominados en este caso operadores genticos. Fundamentalmente son cuatro: Evaluacin, seleccin, entrecruzamiento y mutacin. Se presentan a continuacin los diversos operadores usados. Ms adelante se explicar cmo a partir de ellos se forma la estructura del algoritmo gentico propiamente dicho. 1) Evaluacin: Durante la evaluacin, se decodifica el gen, convirtindolo en los parmetros que se estudian en el problema, se halla la solucin del problema a partir de estos parmetros, y se le da una puntuacin (fitness) a esa solucin de acuerdo con una funcin de mrito que valora lo cerca que est de ser la solucin ptima.
- 24 -

En algunos casos, como en el que se trata en este trabajo, la puntuacin no depende solo de una magnitud, sino que debe tener en cuenta varios factores para determinarla. Por lo tanto ser necesario crear una funcin que asigne esta puntuacin teniendo en cuenta todos los parmetros que se desean optimizar. La correcta eleccin de la funcin que asigna la puntuacin es de vital importancia para el buen funcionamiento y convergencia del algoritmo. La puntuacin determina los cromosomas que se van a reproducir, por lo tanto los que van a transmitir parte de su informacin gentica a prximas generaciones, y aquellos que se van a eliminar. Una vez que cada cromosoma tiene una puntuacin otorgada, se crea una nueva poblacin mediante el mecanismo que se describe a continuacin.

2) Seleccin de Rueda de Ruleta (Roulette Wheel Selectin): Para la seleccin de los miembros de la poblacin que se deben reproducir se pueden usar varios mtodos. En nuestro caso usamos el mtodo de seleccin de rueda de ruleta. Es una forma de escoger a miembros de la poblacin de forma proporcional a la puntuacin de cada individuo. Esto no garantiza que el miembro con mayor puntuacin vaya a reproducirse, simplemente que tiene mayor probabilidad de hacerlo. El procedimiento es el siguiente: Imaginamos que la puntuacin total de la poblacin se representa por el rea total de una rueda de ruleta. Se asigna una porcin de la ruleta a cada individuo, de rea proporcional su puntuacin. De este modo la mayor proporcin de la ruleta corresponder al mejor individuo.

Figura 13. Rueda de ruleta para poblacin de 4 cromosomas, la porcin es proporcional a la puntacin de cada cromosoma

- 25 -

Posteriormente se hace girar a la ruleta y se escoge el individuo donde sta se ha parado.

Figura 14. Esquema ilustrativo del giro de la ruleta para escoger al cromosoma que se reproducir

En la prctica esta operacin se realiza de la siguiente forma: Se genera un n aleatorio entre 0 y la puntuacin total. Se va sumando la puntuacin de cada individuo en una variable auxiliar (puntuacin_acumulada). Si la puntuacin_acumulada es mayor que el n aleatorio se elige como padre al individuo del que se ha sumado la ltima puntuacin. Repitiendo este mtodo se seleccionan los todos los cromosomas que se van a reproducir. Es un mtodo aleatorio, por lo que preserva diversidad gentica, a la vez que favorece que las caractersticas de los mejores individuos pasen a la siguiente generacin, ya que los que tengan mayor puntuacin tienen ms probabilidad de ser elegidos.

3) Reproduccin: Entrecruzamiento (Crossover): El entrecruzamiento consiste en el intercambio de material gentico entre dos cromosomas. El entrecruzamiento es el principal operador gentico, hasta el punto que se puede decir que no es un algoritmo gentico si no tiene entrecruzamiento. Se aplica el entrecruzamiento sobre dos miembros de la poblacin seleccionados anteriormente por el mtodo de la rueda de la ruleta. No pasa nada si se emparejan dos descendientes de los mismos padres, ello garantiza la perpetuacin de un individuo con
- 26 -

buena puntuacin. Sin embargo, si esto sucede demasiado a menudo puede crear problemas: toda la poblacin puede aparecer dominada por los descendientes de algn cromosoma, que, adems, puede tener caracteres no deseados. Es decir el algoritmo se puede quedar estancado en un mnimo local. Este es uno de los mayores problemas a la hora de aplicar un algoritmo gentico. El entrecruzamiento es el encargado de mezclar bloques de informacin gentica de los individuos seleccionados. La presin selectiva se encarga de que solo los buenos bloques se perpeten, y poco a poco vayan formando una buena solucin. La cantidad de buenos bloques se va incrementando con el tiempo de ejecucin de un algoritmo gentico. El entrecruzamiento se puede llevar a cavo de muchas formas, pero el mtodo usado en nuestro trabajo es el de un nico punto de cruce (Single point crossover): Se selecciona un punto aleatorio a lo largo de la longitud del cromosoma. Se cortan a los dos padres por ese punto. Se crean los dos hijos intercambiando los trozos de cromosoma. Grficamente es lo siguiente:

Figura 15. Esquema de entrecruzamiento con un nico punto de cruce

En nuestro caso se escoge una tasa de entrecruzamiento de 0,7. Esta magnitud nos dice la probabilidad de que se aplique el entrecruzamiento, es decir se aplicar el 70% de las veces. En el resto de casos (30%) dos individuos de la poblacin anterior pasaran directamente a la nueva poblacin.

- 27 -

4) Mutacin: En la evolucin natural una mutacin es un suceso bastante poco comn (sucede aproximadamente una de cada mil replicaciones). En la mayora de los casos las mutaciones son letales, pero a la larga, contribuyen a la diversidad gentica de la especie. En un algoritmo gentico tienen el mismo papel, y una frecuencia del mismo orden. En nuestros clculos la probabilidad de mutacin de un bit es del uno por mil (PM = 0.001). El procedimiento es simple: Se pasa por todos los bits de todos los cromosomas uno a uno. En cada caso se genera un n aleatorio comprendido entre 0 y 1 y se compara con el PM. Si el n aleatorio es menor, se cambia el estado del bit, es decir se pasa de 0 a 1 o viceversa.

11001001 => 10001001


Figura 16. Ejemplo del efecto del operador mutacin

La mutacin es un mecanismo generador de diversidad, por lo que permite en ciertos casos salir de mnimos locales, pero no se puede abusar de l ya que el algoritmo gentico se convertira en un algoritmo de bsqueda aleatoria de soluciones.

- 28 -

4.4) ESTRUCTURA DEL ALGORITMO:


El algoritmo gentico propiamente dicho comienza por generar una poblacin de soluciones de forma aleatoria usando la codificacin expuesta anteriormente y se entra en el siguiente bucle (ver figura 17): 1) Se evala la funcin de mrito de cada uno de los cromosomas. Si la puntuacin es la buscada o se supera un nmero prefijado de generaciones se sale del bucle. 2) Reproduccin sexual (intercambio de material gentico) dependiendo de la puntuacin. 3) Mutacin: probabilidad de cambio de algn bit con cierta probabilidad. 4) Nueva generacin: la poblacin nueva sustituye a la vieja 5) Se vuelve al punto 1.

Figura 17. Estructura general del algoritmo gentico

- 29 -

- 30 -

5) RESULTADOS:
Una vez explicados los conceptos necesarios pasamos a realizar simulaciones con distintos tipos de configuraciones a las que se aplica el algoritmo gentico para encontrar las soluciones que satisfagan las especificaciones deseadas en cada momento. Se ha realizado la simulacin mediante un programa creado en lenguaje C [Kernighan, 1988]. Se presenta el cdigo fuente del programa en el apndice adjunto al final del trabajo. Para el estudio de situaciones lo ms reales posible, se va a simular un entorno en el que existe un usuario al que se le desea dar cobertura, que puede posicionarse en cualquier direccin del plano en el que est la agrupacin. Tambin existen dos direcciones de las cuales llegan interferencias a la estacin base. Estas interferencias son habituales: a la estacin base puede llegar la seal del usuario en lnea recta, y tambin seal que haya sufrido algunas reflexiones en edificios, montaas, etc. La superposicin de estos campos desfasados empeora considerablemente la calidad de la seal recibida. De este modo se tratar de optimizar el diagrama de radiacin de la agrupacin a dicho entorno. Es decir, se busca la mejor solucin que satisfaga que la potencia radiada en la direccin principal sea mxima y la radiada en dos direcciones secundarias sea mnima. Aunque el entorno propuesto (con un solo usuario) pueda parecer ficticio, nada ms lejos de la realidad, ya que es habitual para las estaciones base trabajar con canales frecuenciales. Es decir, se asigna a cada usuario un determinado rango de frecuencias y se optimiza el diagrama de radiacin como si el usuario 1 fuese el nico que existe y el resto de usuarios fuesen interferencias que se deben evitar. Se repite el mismo proceso para todos los usuarios que estn en el radio de alcance de la estacin. Notar que slo se va a analizar el diagrama de radiacin en el plano de la agrupacin, no lo estudiamos en todo el espacio.

Figura 18. Ejemplo del entorno en el que se desarrolla la simulacin

- 31 -

5.1) ESTRUCTURA DEL PROGRAMA:


El programa a partir de unos datos de entrada (direccin angular del usuario y dos direcciones interferentes) devuelve unos datos de salida (diagrama de radiacin total, valores de la potencia en direcciones principales y valores de alimentacin de cada antena). El esquema simplificado de funcionamiento del programa sera el siguiente: 1) Lectura de las direcciones principales: direccin del usuario y las dos direcciones interferentes. 2) Se genera una configuracin aleatoria de partida. Es decir se generan aleatoriamente los cromosomas de los N individuos que conformaran la poblacin. Lo que ser la primera generacin. 3) Se traduce el valor del cromosoma a los respectivos valores decimales de amplitud/fase que corresponden a cada antena 4) Se corrige el cromosoma para ajustarlo al valor de la restriccin de potencia total impuesto. 5) Se evala el valor de la potencia radiada en las direcciones de inters. 6) Se asigna a cada cromosoma una puntuacin que indica como de buena es la solucin 7) Se va guardando el cromosoma que hasta ese momento tiene la puntuacin mxima 8) Se aplican los operadores genticos (ruleta, entrecruzamiento y mutacin) que crean la siguiente generacin de cromosomas. 9) Si se ha traspasado la generacin mxima prefijada el programa se queda con el mejor cromosoma que ha existido durante todo el proceso. Si no es as se vuelve al punto 3. 10) Se analiza el mejor cromosoma para crear varios ficheros: Diagrama de radiacin total con un canal angular de 360/500=0,72 Valores relativos de las amplitudes y fases de alimentacin de cada antena Valor relativo de la potencia radiada en las direcciones de inters y puntuacin de la solucin final.

- 32 -

Los parmetros fijos con los que trabaja el programa, aunque explicados la mayora con anterioridad, son los siguientes: 100 Nmero de individuos de la poblacin 8 Longitud de los genes individuales 0,001 Probabilidad de mutacin 0,7 Tasa de entrecruzamiento 500 Nmero de canales angulares en el clculo del diagrama de radiacin 0,1364 m Longitud de onda (corresponde a una frecuencia de 2,2 GHz) 1000 m Distancia entre la agrupacin y el usuario Tabla 1: Parmetros fijos del programa Cada uno de los genes de 8 bits representa las magnitudes de amplitud y fase con las que se alimentan a cada una de las antenas. Debido a ello la longitud total del cromosoma (solucin total) es 8*N_ANT*2. Debido a este tipo de codificacin cuando hablamos de amplitud no nos estamos refiriendo al valor absoluto de esta, sino a valores relativos. Dada la longitud del gen escogida tenemos 28 = 256 niveles para la amplitud y la fase de alimentacin. Para el caso de la fase s que se usan las unidades absolutas, ya que se transforman los niveles en radianes. El diagrama de radiacin es la representacin polar de la potencia radiada en funcin del ngulo. Esta potencia no es una magnitud absoluta, est referida a unidades arbitrarias dadas por la eleccin de los parmetros del sistema, pero es proporcional a la potencia real, por lo que el diagrama de radiacin real tiene la misma forma. Para la bsqueda de soluciones con el algoritmo gentico se ha incluido una restriccin: que la potencia total de alimentacin se mantenga constante. Restriccin de la potencia de alimentacin: La inclusin de esta restriccin en la simulacin tiene varias justificaciones: En un sistema real habr limitaciones fsicas respecto a la potencia mxima con que se puede alimentar a las antenas. Adems es lgico alimentar siempre a la misma potencia. Para el correcto funcionamiento del algoritmo gentico es til esta restriccin: De otro modo, de forma natural, el sistema evolucionara a situaciones en las que la alimentacin de las todas las antenas sea la mxima, ya que en estos casos la potencia total radiada sera tambin mxima. Pero interesa un compromiso entre seal mxima en la direccin principal y seales mnimas en direcciones secundarias, lo que conseguimos imponiendo dicha restriccin. Tambin es til para comparar las distintas configuraciones. Se trata de ver que agrupacin se comporta mejor gastando la misma potencia.
- 33 -

Se mantiene el mismo valor de potencia total de alimentacin para todas las agrupaciones, incuso en los casos que tengan diferente nmero de antenas. De este modo es posible comparar mejor que agrupacin se comporta ms eficientemente consumiendo la misma potencia.

5.2) CALCULO DEL CAMPO RADIADO.


Como se ha comentado la potencia radiada en las direcciones de inters se debe calcular para cada individuo generado. A partir de estas y mediante la funcin de peso se le asignar su puntuacin correspondiente. Veamos cmo se calcula: Se puede obtener el campo radiado mediante la ecuacin [3]. El principio de multiplicacin de diagramas [6] nos dice que el diagrama de radiacin total es igual al producto del diagrama del elemento antena por el factor de la agrupacin. En la simulacin se considera que los elementos antena son isotrpicos, es decir radian igual en todas las direcciones ( . Por lo que solo se debe calcular el factor de la agrupacin.

Figura 19. Diagrama de radiacin de una antena isotrpica

Este resultado ser til, ya que si quisiramos extrapolar los resultados simulados a un posible diseo de una agrupacin real solo tendramos que multiplicar el diagrama obtenido por el del tipo de antena que se haya escogido para construir la agrupacin. Con esta consideracin podemos escribir la ecuacin [3] como:

En C, mediante las libreras adecuadas (<complex.h>) [Kernighan,1988] es posible el tratamiento de nmeros complejos. Pero como es un clculo que se realiza repetidamente, para aumentar la velocidad de la simulacin, evitaremos usar dicha

- 34 -

librera. As pues usando la equivalencia campo creado por una antena isotrpica como:

se puede escribir el

Generalizando para el conjunto de N antenas de la agrupacin:

Puesto que la potencia es proporcional a potencia en el punto es:

, se obtiene finalmente que la

La ecuacin [12] nos sirve tanto para calcular las potencias radiadas en las direcciones de inters con las que se asigna la puntuacin, como para calcular el diagrama de radiacin total evaluando la potencia en los 500 canales angulares una vez obtenida la solucin. Los clculos estn referidos nicamente en el plano de la agrupacin, no en todo el espacio. Este hecho es lgico puesto que los usuarios se mueven aproximadamente en este plano si estn lo suficientemente alejados de la estacin base.

Figura 20. Diagrama de radiacin en 3D y su descomposicin en plano horizontal y vertical

Todos los diagramas de radiacin que se incluyen en este trabajo son los correspondientes al plano horizontal.

- 35 -

5.3) FUNCIN DE MRITO:


La funcin de mrito, es decir la que asigna la puntuacin a cada cromosoma es la piedra angular de la simulacin. Se va a encargar de hacer evolucionar a la poblacin en el sentido deseado, premiando a los individuos que conducen a las mejores soluciones y castigando al resto. Dicha funcin debe asignar una puntuacin directamente proporcional al valor de la potencia radiada en la direccin principal e inversamente proporcional a la potencia radiada en las direcciones secundarias (direcciones interferentes). Existen varios factores a tener en cuenta: Hay que encontrar los pesos adecuados que premien al mximo y penalicen a los mnimos. A partir de un valor mnimo de potencia en las direcciones interferentes la puntuacin no debe aumentar. Ya que el sistema podra evolucionar premiando en exceso a los mnimos, cuando lo que ms importa es una potencia elevada en la direccin del usuario. As pues la funcin de mrito usada es la siguiente:

Siendo P la puntuacin del cromosoma, del usuario, y

la potencia radiada en la direccin

las potencias radiadas en las direcciones interferentes.

Los respectivos pesos (600 y 0,05) se han elegido por inspeccin, es decir tras probar diferentes pesos se han escogido los que parece que llevan a mejores soluciones. La puntuacin es un valor relativo expresado en unidades arbitrarias, cuya funcin es el poder comparar de forma objetiva la calidad de la solucin. As pues no importa su valor absoluto, sino la diferencia que existe entre las puntuaciones de los diversos casos estudiados.

- 36 -

5.4) CONFIGURACIONES A ESTUDIAR:


Debemos elegir qu configuraciones se van a simular para ver si podemos obtener argumentos para justificar ventajas e inconvenientes de cada una para su posible aplicacin prctica. La configuracin ms simple a la hora de simular el comportamiento de una agrupacin de antenas sera una configuracin lineal con separacin uniforme. Se trabaj con ella para poner a punto el programa, pero para nuestro propsito presenta un claro inconveniente. Debido a su simetra una agrupacin lineal siempre va a presentar un diagrama de radiacin con un eje de simetra, es decir siempre obtendremos dos lbulos principales simtricos, por lo que, al menos perderemos la mitad de la potencia radiada en una direccin que no corresponde a la posicin del usuario (ver figura 21).

Figura 21. Diagrama de radiacin de agrupacin lineal de 12 antenas dispuestas a lo largo del eje de abscisas

As pues, el siguiente paso en complejidad del diseo ser el uso de agrupaciones bidimensionales. En este caso perdemos una direccin de simetra por lo que se pueden obtener diagramas de radiacin ms variados. Aunque se han probado ms configuraciones nos centraremos en el estudio de las que se muestran a continuacin: Circular, cuadrada y triangular, con 8 y 12 antenas.

- 37 -

AGRUPACIN N=8

Figura 22. Agrupaciones estudiadas de 8 antenas

AGRUPACIN N=12

Figura 23. Agrupaciones estudiadas de 12 antenas

5.5) CASOS ESTUDIADOS:


Para hacer un estudio de las diferentes configuraciones y poder comparar los resultados debemos estudiar los mismos casos. Elegimos cinco situaciones tratando de que sean lo ms representativas posibles, es decir que cada una cubra distintas zonas del plano y que las direcciones interferentes estn unas veces ms cerca y otras ms alejadas de la direccin del usuario.
- 38 -

Las situaciones propuestas son las siguientes: USUARIO D.INTERFERENTE 1 D.INTERFERENTE 2 30 120 240 95 40 190 150 95 320 250 70 320 300 0 240 Tabla 2: Direcciones angulares de los casos estudiados

CASO 1 () CASO 2 () CASO 3 () CASO 4 () CASO 5 ()

Las magnitudes que indican la calidad de la solucin son las potencias radiadas en las direcciones de inters de las que se obtiene la puntuacin. Vamos a estudiar las soluciones que nos proporciona la simulacin en funcin de la geometra de la configuracin, de la separacin entre elementos y del nmero de antenas.

5.5.1) RESULTADOS EN FUNCION DE LA GEOMETRA Y EL NMERO DE ANTENAS:


Se han realizado simulaciones con las diferentes geometras. En todos los casos la separacin entre elementos corresponde a . Para las agrupaciones de 8 antenas se han obtenido los resultados siguientes: N_ANT=8 MXIMO mnimo1 mnimo2 PUNTUACIN CASO 1 () 30 120 240 CUADRADA 84,946 0,030 0,079 534,674 CIRCULAR 91,913 0,807 22,351 551,692 CASO 2 () 95 40 190 CUADRADA 89,338 8,278 1,781 536,528 CIRCULAR 90,880 11,084 2,904 545,639 CASO 3 () 150 95 320 CUADRADA 83,965 1,640 21,559 504,005 CIRCULAR 88,803 25,383 8,079 532,965 CASO 4 () 250 70 320 CUADRADA 90,087 5,959 4,584 540,998 CIRCULAR 90,115 4,608 9,034 541,055 CASO 5 () 300 0 240 CUADRADA 82,613 8,296 16,800 495,880 CIRCULAR 84,530 30,171 8,232 507,313 Tabla 3: Potencia (u.a.) en las direcciones de inters y su puntuacin correspondiente.

- 39 -

Se presentan a continuacin los diagramas de radiacin obtenidos para el caso 1: CUADRADA CIRCULAR

Figura 24. Ejemplos de diagramas de radiacin para el caso 1.

Para las agrupaciones de 12 antenas los resultados son: N_ANT=12 MXIMO mnimo1 mnimo2 PUNTUACIN CASO 1 () 30 120 240 CUADRADA 137,703 7,681 4,010 826,648 CIRCULAR 139,647 0,672 9,587 838,368 TRIANGULAR 132,424 0,002 0,002 819,541 CASO 2 () 95 40 190 CUADRADA 132,486 9,753 2,312 795,328 CIRCULAR 127,420 1,263 0,922 766,806 TRIANGULAR 134,748 1,768 0,593 810,604 CASO 3 () 150 95 320 CUADRADA 129,926 0,252 0,112 793,295 CIRCULAR 120,050 7,160 14,210 720,532 TRIANGULAR 134,865 1,826 0,419 811,415 CASO 4 () 250 70 320 CUADRADA 135,164 34,015 5,134 811,113 CIRCULAR 137,294 2,992 7,529 824,240 TRIANGULAR 137,507 2,759 1,110 826,336 CASO 5 () 300 0 240 CUADRADA 130,591 0,496 0,515 788,491 CIRCULAR 128,217 2,564 0,600 770,883 TRIANGULAR 128,091 0,379 0,406 774,908 Tabla 4: Potencia (u.a.) en las direcciones de inters y su puntuacin correspondiente

- 40 -

Veamos por ejemplo los diagramas de radiacin obtenidos para el caso 1 para las tres geometras: CUADRADA CIRCULAR

TRIANGULAR

Figura 25. Ejemplos de diagramas de radiacin para el caso 1

Como se ha comentado, uno de los ficheros de salida del programa es el valor relativo de las amplitudes y fases con las que se alimenta al sistema para la solucin encontrada. Por ejemplo, la agrupacin circular de 12 antenas en el caso 1 est alimentada por los valores mostrados en la tabla 5. Las antenas estn numeradas de la siguiente forma: la antena 1 est en el eje x positivo y en sentido antihorario se numera al resto.

- 41 -

Antena Amplitud (u.a.) Fase (rad) 66 1,725 1 107 0,813 2 102 1,404 3 104 3,868 4 116 0,567 5 99 3,080 6 88 0,025 7 96 6,283 8 132 5,938 9 99 4,090 10 125 0,542 11 100 3,795 12 Tabla 5: Valores relativos de amplitud y fase de alimentacin para agrupacin circular de 12 antenas en el caso 1. Para dejar claro que el programa no solo sita el lbulo principal en la direccin del usuario, sino que tambin escoge las posiciones de los secundarios, en la medida de lo posible, fuera de las direcciones interferentes veamos algn caso concreto ampliado (figura 26).

Figura 26. Agrupacin circular de 12 antenas. Diagrama total y zoom de los lbulos secundarios

Trataremos de analizar los resultados obtenidos hasta ahora: Puesto que la potencia total con la que se alimenta al sistema es la misma para las agrupaciones de 8 y 12 antenas es evidente que los resultados son mejores en el caso de 12, ya que las puntuaciones estn en torno a 500 y 800 respectivamente (obviamente, este resultado no es sorprendente).
- 42 -

La geometra cuadrada presenta menos lbulos secundarios, pero mayores que en el caso circular. Debido a esto es ms fcil evitar direcciones interferentes. Este hecho se aprecia claramente para agrupaciones de 8 antenas en la tabla 3 observando los valores de las potencias radiadas en los mnimos. Para agrupaciones de 12 antenas ya no est tan claro, ya que al aumentar el n de elementos tambin aumenta el nmero de lbulos secundarios. En el diagrama de la geometra triangular presentado se aprecia un hecho curioso: En este caso el rea (potencia total radiada) es mayor que en los otros. Cmo es esto posible si se alimenta a todas las agrupaciones con la misma potencia? La respuesta est en que solo estamos evaluando la potencia en el plano horizontal, no en todo el espacio. La geometra triangular debe presentar mayor directividad en el plano horizontal que el resto de geometras. De este modo sus valores de potencia en la direccin del usuario son grandes, pero a costa de obtener haces principales muy anchos. En el entorno en el que el programa trabaja (un usuario y dos interferencias) no podemos decir qu configuracin es ms eficiente, es decir no hay una configuracin que tenga siempre una puntuacin mayor que el resto. Podemos concluir que la simulacin obtiene soluciones satisfactorias en todos los casos y estas son bastante independientes del tipo de configuracin. En otro tipo de entorno s que podra resultar til la eleccin de una u otra configuracin. Por ejemplo en un entorno con un elevado ndice de interferencias resultara ms adecuada la geometra circular, ya que ella es la que presenta un haz ms directivo en la direccin de inters con lbulos secundarios menores.

- 43 -

5.5.2) RESULTADOS EN FUNCIN DE LA SEPARACIN ENTRE ELEMENTOS:


En esta ocasin variamos la separacin D entre los elementos radiantes, de 0,3 0,7 . Todas las agrupaciones estn compuestas de 12 antenas. CUADRADA CIRCULAR TRIANGULAR a

*0,3 CASO 1 796,230 846,429 827,275 CASO 2 827,281 832,783 833,528 CASO 3 756,695 839,824 790,068 CASO 4 815,005 695,196 768,925 CASO 5 807,573 715,565 840,225 MEDIA 800,557 785,959 812,004 *0,4 CASO 1 850,244 817,677 790,127 CASO 2 788,476 803,426 841,175 CASO 3 803,272 824,489 756,225 CASO 4 781,096 796,093 841,652 CASO 5 773,347 770,917 815,180 MEDIA 799,287 802,521 808,872 *0,5 CASO 1 826,648 838,368 819,541 CASO 2 795,328 766,806 810,604 CASO 3 793,295 720,532 811,415 CASO 4 811,113 824,240 826,336 CASO 5 788,491 770,883 774,908 MEDIA 802,975 784,166 808,561 *0,6 CASO 1 827,405 801,773 837,305 CASO 2 755,699 781,577 803,268 CASO 3 770,655 840,145 848,124 CASO 4 828,877 800,193 656,907 CASO 5 790,629 813,032 757,836 MEDIA 794,653 807,344 780,688 *0,7 CASO 1 842,110 791,139 788,494 CASO 2 800,644 802,633 796,365 CASO 3 774,521 828,891 827,077 CASO 4 845,214 801,432 811,806 CASO 5 778,215 755,925 694,454 MEDIA 808,141 796,004 783,639 Tabla 6: Valores de la puntuacin obtenidos para las 3 geometras con diferente separacin entre antenas
- 44 -

Veamos un par de ejemplos de diagramas. Vamos a los casos lmite en la configuracin circular: *0,3 *0,7

Figura 27. Comparativa de diagramas para diferente separacin entre antenas en agrupacin circular de 12 elementos

Conforme disminuye el valor de la separacin entre elementos el nmero de lbulos secundarios disminuye, y aumenta la anchura del haz principal. Por el contrario con separaciones mayores se obtienen ms lbulos secundarios y el haz principal es mucho ms estrecho. Sin embargo el valor de la potencia radiada en la direccin principal apenas vara. Podemos concluir que con separaciones mayores se consiguen haces ms direccinales, pero al aumentar el nmero de lbulos secundarios es ms difcil evitar direcciones interferentes. Por lo que si se quiere construir una agrupacin real habr que estudiar con detenimiento que es lo que ms interesa: Alta directividad y alto nivel de interferencias o peor directividad y menor nivel de interferencias. Parece razonable la eleccin de /2 como longitud de separacin entre elementos, puesto que proporciona un compromiso aceptable entre anchura de haz principal y nmero de lbulos secundarios.

- 45 -

5.6) EVOLUCIN DE LA PUNTUACIN:


Gracias al algoritmo gentico conforme transcurren las generaciones la puntuacin media de los individuos que conforman la poblacin total debera aumentar.

Figura 28. Evolucin de la puntuacin media

El conjunto de la poblacin total conforme transcurren las generaciones est mejor adaptado al medio. O lo que es lo mismo la puntuacin media de los individuos aumenta. Hay un aumento brusco hasta aprox. la generacin 50 y posteriormente apenas crece. Para la bsqueda de la mejor solucin lo que realmente interesa es el individuo que tenga la mayor puntuacin histrica. Podemos ver una comparativa entre puntuacin media y mxima en un intervalo de 500 generaciones.

Figura 29. Comparativa de evolucin de la puntuacin mxima y la media en agrupacin circular de 12 antenas

- 46 -

Existe un rpido crecimiento, mayor que en la media, en la puntuacin mxima. Para la obtencin de los resultados en este trabajo se han dejado transcurrir 600 generaciones, y as asegurarnos de que el algoritmo ha dado su mximo rendimiento. Pero si quisiramos que el programa formase parte del control de una estacin base se podra reducir el nmero de generaciones transcurridas a unas 50, y los resultados en todos los casos seran ms que aceptables. La rapidez de clculo es significativa, ya que el tiempo de ejecucin del programa con estos parmetros es de unos 2 segundos, lo que indica que el algoritmo gentico puede ser una alternativa factible en el control de alimentaciones de una estacin base real dada su rpida convergencia. Por otra parte, el tiempo de ejecucin mencionado es el relativo a un ordenador personal convencional. Si se desease usar el programa en una estacin real se ejecutara en un ordenador especializado para esta tarea, con lo que el tiempo de ejecucin del programa se reducira an ms.

- 47 -

- 48 -

6) CONCLUSIONES
En este trabajo se ha pretendido mostrar las caractersticas y evolucin de las estaciones base de comunicaciones inalmbricas, con un repaso general desde los sistemas ms simples a los ms sofisticados, todava en fase de estudio en la actualidad, como son las agrupaciones adaptativas. Se ha puesto de manifiesto la versatilidad de las agrupaciones bidimensionales de antenas, as como la eficiencia y rapidez en la respuesta si se controlan mediante el uso de algoritmos genticos. Debido a la rpida convergencia del algoritmo en esta simulacin, as como por los resultados satisfactorios obtenidos en los casos estudiados, se podra decir que este programa podra formar parte del control de una agrupacin de antenas en una estacin base de comunicaciones. Se han realizado ensayos con tres geometras y con diversos espaciados entre antenas. No se ha podido encontrar una ventaja clara de ninguna de las geometras ni de ninguno de los espaciados. Aunque se han simulado situaciones concretas, este es un programa general, que con pequeas modificaciones podra adaptarse a una agrupacin bidimensional de cualquier geometra. Se han dado pequeas pinceladas respecto a las diferencias entre geometras, separacin entre elementos y nmero de antenas. Formar parte de la labor del diseador la eleccin adecuada de estos parmetros para la aplicacin en un sistema real, valorando factores como la densidad interferente del entorno y otros que no se han tenido en cuenta en el trabajo, como el precio de los componentes y la dificultad tcnica de construccin.

- 49 -

- 50 -

7) BIBLIOGRAFA:
ngel Cardama Aznar, Llus Jofre Roca, Juan Manuel Rius Casals, Jordi Romeu Robert, Sebastin Blanch Boris. Antenas. Ed. Edicions UPC (1998) R. E. Collin. Antennas and Radiowave Propagation. Ed. Mc Graw Hill (1985) K. Fujimoto, J. R. James. Movile Antenna Systems Handbook. Ed. Artech House (1994) D.E. Goldberg. Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley, Reading, MA. (1989) Lal Chand Godara. Smart Antennas. Ed. CRC Press (2004) Brian W. Kernighan, Dennis M. Ritchie. The C Programing Language. Ed. Prentice Hall software series (1988) http://www.ai-junkie.com/ga/intro/gat1.html http://fog.neopages.org/helloworldgeneticalgorithms.php

- 51 -

- 52 -

APENDICE: CDIGO FUENTE


1) cabeceras.h
#include <stdio.h> #include <math.h> #define NormRANu ((float)(0.5*4.656612595521636e-10)) #define precision float #define #define #define #define #define #define #define #define #define #define N 100 //num de individuos 100 N_ANT 12 //8 o 12 antenas segn la agrupacin L_GEN 8 L_CROMOSOMA L_GEN*N_ANT*2 CANAL 500 PI 3.141592654 LAMDA 0.1364 //corresponde a f=2.2GHz (UMTS) SEPARACION LAMDA/2 //separacin entre antenas BETA 2*PI/LAMDA POT 16384*8 //128=16384

#define MUTATION_RATE 0.001 #define CROSSOVER_RATE 0.7 #define MAX_GENERATION 5000 #define RAN Random() //aleatorio float (0,1) #define RAN_INT (int)((2)*Random()) //aleatorio entero 0,1

2) Main.c
#include "cabeceras.h" extern void conf(void); extern void evalua_valor(int individuo, precision *Ampl, precision *Fase); extern precision asigna_fitness (precision *Mod_E2); extern void mutacion (char *individuo); extern void crossover (char *padre1,char *padre2, char *hijo1,char *hijo2); extern void roulette (precision total_fitness, precision *fitness_act, char *padre); extern void evalua_diagrama(precision *ampl, precision *fase,precision *Direciones_prin, precision *Mod_E2); extern void calculo_diagrama_tot (precision *ampl,precision *fase,precision *Dir_prin,FILE *out2); extern void restriccion (int individuo,precision *ampl); extern void escribe_potencia(precision *Mod_E2,precision *Direciones_prin,precision fitness_max,FILE *out3); //funciones num aleatorios extern precision Random(void); extern void ini_ran(int SEMILLA); FILE *out;//soluciones de amplitud y fase FILE *out2;//diagrama total FILE *out3;//potencia en ngulos a estudiar //Variables globales => poblacion total char poblacion[N][L_CROMOSOMA];

- 53 -

main() { precision ampl[N_ANT],ampl_max[N_ANT]; precision fase[N_ANT],fase_max[N_ANT]; char poblacion_aux[N][L_CROMOSOMA]; int i,j,IND; int generacion=0; precision Direciones_prin[3]; precision Mod_E2[3]; int boole_sol,count_pob; precision fitness[N],tot_fitness,fitness_max; char padre1[L_CROMOSOMA],padre2[L_CROMOSOMA]; char hijo1[L_CROMOSOMA],hijo2[L_CROMOSOMA]; precision amp_tot2=0; out=fopen("Amp_y_fase.dat","wt"); ini_ran(12345); boole_sol=1; //SOLUCION A BUSCAR (M,m1,m2) //caso1 Direciones_prin[0]=0.5236;Direciones_prin[1]=2.0944;Direciones_prin[2] =4.1888; //caso2 //Direciones_prin[0]=1.6581;Direciones_prin[1]=0.6981;Direciones_prin[ 2]=3.3161; //caso3 //Direciones_prin[0]=2.618;Direciones_prin[1]=1.6581;Direciones_prin[2 ]=5.5851; //caso4 //Direciones_prin[0]=4.3633;Direciones_prin[1]=1.2217;Direciones_prin[ 2]=5.5851; //caso5 //Direciones_prin[0]=5.236;Direciones_prin[1]=0;Direciones_prin[2]=4.1 888; printf("M=%f\tm1=%f\tm2=%f\n\n",Direciones_prin[0]*360/(2*PI),Direc iones_prin[1]*360/(2*PI),Direciones_prin[2]*360/(2*PI)); //getchar(); //Genero configuracin aleatoria de partida: conf(); //BUCLE DE BUSQUEDA DE SOLUCIONES while(boole_sol) { tot_fitness=0.0; for(IND=0;IND<N;IND++) { evalua_valor(IND,ampl,fase); //Aplico la restriccion suma de ampl cte restriccion (IND,ampl); //Calculo el campo para las direcciones de 1 MAX y 2 MIN evalua_diagrama(ampl,fase,Direciones_prin,Mod_E2); //asignamos fitness individual y total fitness[IND]=asigna_fitness(Mod_E2); tot_fitness+=fitness[IND]; //Guardo el mayor fitness hasta ahora y sus amplitudes y fases if(fitness[IND]>fitness_max)

- 54 -

{ fitness_max=fitness[IND]; for(i=0;i<N_ANT;i++) { ampl_max[i]=ampl[i]; fase_max[i]=fase[i]; } printf("fitness_MAX=%f\tgen=%i\n",fitness_max,generacion); } /////////////////COMPUEBA SOLUCIN/////////////////////////// //A partir de esta generacin me quedo con la mejor solucin if(generacion>600) { evalua_diagrama(ampl_max,fase_max,Direciones_prin,Mod_E2); calculo_diagrama_tot (ampl_max,fase_max,Direciones_prin,out2); printf("\nSolucion con fitness=%f\n",fitness_max); for(i=0;i<N_ANT;i++) { printf("A[%i]=%f\tF[%i]=%f\n",i,ampl_max[i],i, fase_max[i]); fprintf(out,"%f\t%f\n",ampl_max[i],fase_max[i]); amp_tot2+=ampl_max[i]*ampl_max[i]; } printf("\n100*E emitido en los angulos: \nM=%f\tm1=%f\tm2=%f\n", Direciones_prin[0]*360/(2*PI),Direciones_prin[1]*360/(2*PI) ,Direciones_prin[2]*360/(2*PI)); printf("MAX:P=%f\tmin1:P=%f\tmin2:P=%f\n",100*Mod_E2[0],100 *Mod_E2[1],100*Mod_E2[2]); printf("\n[N=8=>A_tot=131072]\tA_tot=%f\n",amp_tot2); escribe_potencia(Mod_E2,Direciones_prin,fitness_max,out3); boole_sol=0; break; } } count_pob=0; ////////////CREACIN DE DESCENDIENTES/////////////// while(count_pob<N) { roulette(tot_fitness,fitness,padre1); roulette(tot_fitness,fitness,padre2); crossover(padre1,padre2,hijo1,hijo2); mutacion(hijo1); mutacion(hijo2); //vamos rellenando la matriz de poblacion auxiliar for(i=0;i<L_CROMOSOMA;i++) { poblacion_aux[count_pob][i]=hijo1[i]; poblacion_aux[count_pob+1][i]=hijo2[i]; } count_pob=count_pob+2; }

- 55 -

//copiamos la poblacion auxiliar en la poblacion real for(i=0;i<N;i++) for(j=0;j<L_CROMOSOMA;j++) poblacion[i][j]=poblacion_aux[i][j]; generacion++; } fclose(out); }

3) Gentico.c
#include "cabeceras.h" void conf(void); int conversion_bin_dec(char bit[L_GEN]); void conversion_dec_bin(int value, char *bit); void sub_vector(char *bit,int posicion,int individuo); void evalua_valor(int individuo, precision *Ampl, precision *Fase); precision asigna_fitness (precision *Mod_E2); void mutacion (char *individuo); void crossover (char *padre1,char *padre2, char *hijo1,char *hijo2); void roulette (precision total_fitness, precision *fitness_act, char *padre); void corrige_potencia(precision *potencia); void restriccion (int individuo,precision *ampl); extern precision Random(void); extern void ini_ran(int SEMILLA); extern char poblacion[N][L_CROMOSOMA]; //////////////CONF ALEATORIA DE PARTIDA/////////////////// //Los cromosomas representan A1F1A2F2A3F3A4F4A5F5 void conf(void) { int individuo,gen; for(individuo=0;individuo<N;individuo++) for(gen=0;gen<L_CROMOSOMA;gen++) if(RAN<0.5) poblacion[individuo][gen]='0'; else poblacion[individuo][gen]='1'; } ///////////////////CONVERSION BIN/DEC /////////////////// int conversion_bin_dec(char bit[L_GEN]) { int val=0; int value_to_add=1; int i; for (i=L_GEN;i>0;i--) { if(bit[i-1]=='1') val+=value_to_add; value_to_add *=2; } return val; }

- 56 -

/////////////////////CONVERSION DEC/BIN///////////////////////// void conversion_dec_bin(int value, char *bit) { int i; for(i=L_GEN;i>0;i--) { bit[i-1]=value%2; value/=2; } } /////////////////EXTRAE BITS DE LA CADENA//////////////////////// void sub_vector(char *bit,int posicion,int individuo) { int i,ind; ind=0; for(i=posicion;i<(posicion+L_GEN);i++) { bit[ind]=poblacion[individuo][i]; ind++; } } ////////////////EVALUA VALOR DEL CROMOSOMA//////////////////////// //Calculo del valor de cada cadena => Amplitud y fase de cada antena //Los cromosomas representan A1F1A2F2A3F3A4F4A5F5 void evalua_valor(int individuo, precision *Ampl, precision *Fase) { int i,cont; int boole=0; char bit[L_GEN]; int gen_actual=0.0; cont=0; for(i=0;i<L_CROMOSOMA;i+=L_GEN) { sub_vector(bit,i,individuo);//selecciono el bit a evaluar gen_actual=conversion_bin_dec(bit);//transformacin a valor dec. if(boole==0) { Ampl[cont]=gen_actual; boole=1; } else { //paso el angulo a radianes Fase[cont]=2*PI*gen_actual/255; cont++; boole=0; } } } /////////////////////CALCULO FITNESS//////////////////////////////// precision asigna_fitness (precision *Mod_E2) { precision fit; precision Ea2,Eb2;

- 57 -

//Para que no tenga en cuenta las soluciones de todo 0's if(Mod_E2[0]==0.0) return 0; if (Mod_E2[1]<0.001) Ea2=0.001; else Ea2=Mod_E2[1]; if (Mod_E2[2]<0.001) Eb2=0.001; else Eb2=Mod_E2[2]; fit=600*Mod_E2[0]+(0.05/(Ea2+Eb2)); return fit; } /////////MUTACION CON CIERTA PROB////////// void mutacion (char *individuo) { int i; for(i=0;i<L_CROMOSOMA;i++) { if(RAN<MUTATION_RATE) { if(individuo[i]=='1') individuo[i]='0'; else individuo[i]='1'; } } } ///////////////////////////CROSSOVER////////////////////////////////// void crossover (char *padre1,char *padre2, char *hijo1,char *hijo2) { int i,ind; int cros; //dependiendo del rate del crossover if(RAN<CROSSOVER_RATE) { //creamos un punto aleatorio para el cruce cros=(int)(RAN*L_CROMOSOMA); for(i=0;i<cros;i++) { hijo1[i]=padre1[i]; hijo2[i]=padre2[i]; } for(i=cros;i<L_CROMOSOMA;i++) { hijo1[i]=padre2[i]; hijo2[i]=padre1[i]; } } }

- 58 -

/////////////////////////////ROULETTE WHEEL SELECTION///////////////// void roulette (precision total_fitness, precision *fitness_act, char *padre) { int i,j; precision porcion; //num aleatorio entre 0 y total fitness porcion=(precision)(RAN*total_fitness); //Se pasa //fitness //porcin precision a travs de los individuos comparando la porcin con el acumulado. Cuando el fitness acumulado sea mayor que la nos quedamos con ese padre fitness_acumulado=0.0;

for(i=0;i<N;i++) { fitness_acumulado+=fitness_act[i]; //si fitness acumulado > num random devuelve el cromo en ese punto if(fitness_acumulado>=porcion) { for(j=0;j<L_CROMOSOMA;j++) padre[j]=poblacion[i][j]; break; } } } //////FUNCION QUE CORRIGE LA POTENCIA PARA MANTENERLA CTE///////////// void corrige_potencia(precision *potencia) { int i; int pot_aux=0; int pot_depura; potencia[N_ANT-1]=-2;//para que entre en el while //se ejecuta mientras no se cumpla la condicin deseada while(potencia[N_ANT-1]<0||potencia[N_ANT-1]>65025)//2552=65025 { pot_depura=0; pot_aux=0; for(i=0;i<(N_ANT-1);i++) { potencia[i]=(int)(RAN*2*POT/N_ANT);//Para que salgan valores por en medio pot_aux+=potencia[i]; pot_depura+=potencia[i]; } potencia[N_ANT-1]=POT-pot_aux; pot_depura+=potencia[N_ANT-1]; } } ////////////////////////////////RESTRICCION/////////////////////////// ///////////////////////MANTIENE LA POTENCIA TOTAL CTE///////////////// void restriccion (int individuo,precision *ampl) { int i,cont,n_ant; precision ampl_cuadrado[N_ANT]; precision pot_aux; char bit[N_ANT][L_GEN];

- 59 -

pot_aux=0; for(i=0;i<N_ANT;i++) { ampl_cuadrado[i]=ampl[i]*ampl[i]; pot_aux+=ampl_cuadrado[i]; } if(pot_aux!=POT) { corrige_potencia(ampl_cuadrado); //La amplitud es la raiz de la potencia for(i=0;i<N_ANT;i++) { ampl[i]=sqrt(ampl_cuadrado[i]); conversion_dec_bin(ampl[i],bit[i]); } n_ant=0; for(cont=0;cont<L_CROMOSOMA;cont+=(2*L_GEN)) { for(i=cont;i<(cont+L_GEN);i++) poblacion[individuo][i]=bit[n_ant][i]; n_ant++; } } }

4) Diagrama.c
#include "cabeceras.h" void calculo_distancia (precision angulo,precision D, precision *R); void evalua_diagrama(precision *ampl, precision *fase,precision *Direciones_prin, precision *Mod_E2); void calculo_diagrama_tot (precision *ampl,precision *fase,precision *Dir_prin,FILE *out2); void escribe_potencia(precision *Mod_E2,precision *Direciones_prin,precision fitness_max,FILE *out3); ////////////////////CALCULO DE DISTANCAS ANTENA//////////////////// //D=separacion entre antenas void calculo_distancia (precision angulo,precision D, precision *R) { int i,cont; int A; A=1000;//distancia a la que est el punto para poder considerar campo lejano /////////////////AGRUPACION EN CUADRADO (8 ANTENAS)/////////////////// /*R[0]=sqrt((A*cos(angulo)-D)*(A*cos(angulo)-D)+(A*sin(angulo)D)*(A*sin(angulo)-D)); R[1]=sqrt((A*cos(angulo))*(A*cos(angulo))+(A*sin(angulo)D)*(A*sin(angulo)-D)); R[2]=sqrt((A*cos(angulo)+D)*(A*cos(angulo)+D)+(A*sin(angulo)D)*(A*sin(angulo)-D)); R[3]=sqrt((A*cos(angulo)+D)*(A*cos(angulo)+D)+(A*sin(angulo))*(A*sin(a ngulo))); R[4]=sqrt((A*cos(angulo)+D)*(A*cos(angulo)+D)+(A*sin(angulo)+D)*(A*sin (angulo)+D)); R[5]=sqrt((A*cos(angulo))*(A*cos(angulo))+(A*sin(angulo)+D)*(A*sin(ang ulo)+D));

- 60 -

R[6]=sqrt((A*cos(angulo)-D)*(A*cos(angulo)D)+(A*sin(angulo)+D)*(A*sin(angulo)+D)); R[7]=sqrt((A*cos(angulo)-D)*(A*cos(angulo)D)+(A*sin(angulo))*(A*sin(angulo)));*/ ////////////////////////////////////////////////////////////////////// ////////////////AGRUPACION EN CIRCULO (8 ANTENAS)///////////////////// //la separacion entre antenas es SEPARACION /*precision radio; //radio=SEPARACION/2*sen(22.5)=SEPARACION*1.306562965 radio=D*1.306562965; R[0]=sqrt((A*cos(angulo)-radio)*(A*cos(angulo)radio)+(A*sin(angulo))*(A*sin(angulo))); R[1]=sqrt((A*cos(angulo)-radio*(sqrt(2)/2))*(A*cos(angulo)radio*(sqrt(2)/2))+(A*sin(angulo)-radio*(sqrt(2)/2))*(A*sin(angulo)radio*(sqrt(2)/2))); R[2]=sqrt((A*cos(angulo))*(A*cos(angulo))+(A*sin(angulo)radio)*(A*sin(angulo)-radio)); R[3]=sqrt((A*cos(angulo)+radio*(sqrt(2)/2))*(A*cos(angulo)+radio*(sqrt (2)/2))+(A*sin(angulo)-radio*(sqrt(2)/2))*(A*sin(angulo)radio*(sqrt(2)/2))); R[4]=sqrt((A*cos(angulo)+radio)*(A*cos(angulo)+radio)+(A*sin(angulo))* (A*sin(angulo))); R[5]=sqrt((A*cos(angulo)+radio*(sqrt(2)/2))*(A*cos(angulo)+radio*(sqrt (2)/2))+(A*sin(angulo)+radio*(sqrt(2)/2))*(A*sin(angulo)+radio*(sqrt(2 )/2))); R[6]=sqrt((A*cos(angulo))*(A*cos(angulo))+(A*sin(angulo)+radio)*(A*sin (angulo)+radio)); R[7]=sqrt((A*cos(angulo)-radio*(sqrt(2)/2))*(A*cos(angulo)radio*(sqrt(2)/2))+(A*sin(angulo)+radio*(sqrt(2)/2))*(A*sin(angulo)+ra dio*(sqrt(2)/2)));*/ ////////////////////////////////////////////////////////////////////// ////////////////////AGRUPACION EN CUADRADO (12 ANTENAS)/////////////// /*R[0]=sqrt((A*cos(angulo)-3*D/2)*(A*cos(angulo)3*D/2)+(A*sin(angulo)-D/2)*(A*sin(angulo)-D/2)); R[1]=sqrt((A*cos(angulo)-3*D/2)*(A*cos(angulo)-3*D/2)+(A*sin(angulo)3*D/2)*(A*sin(angulo)-3*D/2)); R[2]=sqrt((A*cos(angulo)-D/2)*(A*cos(angulo)-D/2)+(A*sin(angulo)3*D/2)*(A*sin(angulo)-3*D/2)); R[3]=sqrt((A*cos(angulo)+D/2)*(A*cos(angulo)+D/2)+(A*sin(angulo)3*D/2)*(A*sin(angulo)-3*D/2)); R[4]=sqrt((A*cos(angulo)+3*D/2)*(A*cos(angulo)+3*D/2)+(A*sin(angulo)3*D/2)*(A*sin(angulo)-3*D/2)); R[5]=sqrt((A*cos(angulo)+3*D/2)*(A*cos(angulo)+3*D/2)+(A*sin(angulo)D/2)*(A*sin(angulo)-D/2)); R[6]=sqrt((A*cos(angulo)+3*D/2)*(A*cos(angulo)+3*D/2)+(A*sin(angulo)+D /2)*(A*sin(angulo)+D/2)); R[7]=sqrt((A*cos(angulo)+3*D/2)*(A*cos(angulo)+3*D/2)+(A*sin(angulo)+3 *D/2)*(A*sin(angulo)+3*D/2)); R[8]=sqrt((A*cos(angulo)+D/2)*(A*cos(angulo)+D/2)+(A*sin(angulo)+3*D/2 )*(A*sin(angulo)+3*D/2)); R[9]=sqrt((A*cos(angulo)-D/2)*(A*cos(angulo)D/2)+(A*sin(angulo)+3*D/2)*(A*sin(angulo)+3*D/2)); R[10]=sqrt((A*cos(angulo)-3*D/2)*(A*cos(angulo)3*D/2)+(A*sin(angulo)+3*D/2)*(A*sin(angulo)+3*D/2)); R[11]=sqrt((A*cos(angulo)-3*D/2)*(A*cos(angulo)3*D/2)+(A*sin(angulo)+D/2)*(A*sin(angulo)+D/2));*/ //////////////////////////////////////////////////////////////////////

- 61 -

//////////////////AGRUPACION EN TRIANGULO (12 ANTENAS)//////////////// precision H; H=sqrt(3/4);//altura de tringulo de 3 lados D R[0]=sqrt((A*cos(angulo)+2*D)*(A*cos(angulo)+2*D)+(A*sin(angulo))*(A*s in(angulo))); R[1]=sqrt((A*cos(angulo)+D)*(A*cos(angulo)+D)+(A*sin(angulo))*(A*sin(a ngulo))); R[2]=sqrt((A*cos(angulo))*(A*cos(angulo))+(A*sin(angulo))*(A*sin(angul o))); R[3]=sqrt((A*cos(angulo)-D)*(A*cos(angulo)D)+(A*sin(angulo))*(A*sin(angulo))); R[4]=sqrt((A*cos(angulo)-2*D)*(A*cos(angulo)2*D)+(A*sin(angulo))*(A*sin(angulo))); R[5]=sqrt((A*cos(angulo)-3*D/2)*(A*cos(angulo)-3*D/2)+(A*sin(angulo)H)*(A*sin(angulo)-H)); R[6]=sqrt((A*cos(angulo)-D)*(A*cos(angulo)-D)+(A*sin(angulo)2*H)*(A*sin(angulo)-2*H)); R[7]=sqrt((A*cos(angulo)-D/2)*(A*cos(angulo)-D/2)+(A*sin(angulo)3*H)*(A*sin(angulo)-3*H)); R[8]=sqrt((A*cos(angulo))*(A*cos(angulo))+(A*sin(angulo)4*H)*(A*sin(angulo)-4*H)); R[9]=sqrt((A*cos(angulo)+D/2)*(A*cos(angulo)+D/2)+(A*sin(angulo)3*H)*(A*sin(angulo)-3*H)); R[10]=sqrt((A*cos(angulo)+D)*(A*cos(angulo)+D)+(A*sin(angulo)2*H)*(A*sin(angulo)-2*H)); R[11]=sqrt((A*cos(angulo)+3*D/2)*(A*cos(angulo)+3*D/2)+(A*sin(angulo)H)*(A*sin(angulo)-H)); ////////////////////////////////////////////////////////////////////// /////////////////AGRUPACION EN CIRCULO (12 ANTENAS)/////////////////// //la separacion entre antenas es SEPARACION /*precision radio; //radio=SEPARACION/2*sen(15)=SEPARACION*1,931851653 sin(30)=0.5 cos(30)=sqrt(3)/2 radio=D*1.931851653; R[0]=sqrt((A*cos(angulo)-radio)*(A*cos(angulo)radio)+(A*sin(angulo))*(A*sin(angulo))); R[1]=sqrt((A*cos(angulo)-radio*(sqrt(3)/2))*(A*cos(angulo)radio*(sqrt(3)/2))+(A*sin(angulo)-radio*0.5)*(A*sin(angulo)radio*0.5)); R[2]=sqrt((A*cos(angulo)-radio*0.5)*(A*cos(angulo)radio*0.5)+(A*sin(angulo)-radio*(sqrt(3)/2))*(A*sin(angulo)radio*(sqrt(3)/2))); R[3]=sqrt((A*cos(angulo))*(A*cos(angulo))+(A*sin(angulo)radio)*(A*sin(angulo)-radio)); R[4]=sqrt((A*cos(angulo)+radio*0.5)*(A*cos(angulo)+radio*0.5)+(A*sin(a ngulo)-radio*(sqrt(3)/2))*(A*sin(angulo)-radio*(sqrt(3)/2))); R[5]=sqrt((A*cos(angulo)+radio*(sqrt(3)/2))*(A*cos(angulo)+radio*(sqrt (3)/2))+(A*sin(angulo)-radio*0.5)*(A*sin(angulo)-radio*0.5)); R[6]=sqrt((A*cos(angulo)+radio)*(A*cos(angulo)+radio)+(A*sin(angulo))* (A*sin(angulo))); R[7]=sqrt((A*cos(angulo)+radio*(sqrt(3)/2))*(A*cos(angulo)+radio*(sqrt (3)/2))+(A*sin(angulo)+radio*0.5)*(A*sin(angulo)+radio*0.5)); R[8]=sqrt((A*cos(angulo)+radio*0.5)*(A*cos(angulo)+radio*0.5)+(A*sin(a ngulo)+radio*(sqrt(3)/2))*(A*sin(angulo)+radio*(sqrt(3)/2))); R[9]=sqrt((A*cos(angulo))*(A*cos(angulo))+(A*sin(angulo)+radio)*(A*sin (angulo)+radio));

- 62 -

R[10]=sqrt((A*cos(angulo)-radio*0.5)*(A*cos(angulo)radio*0.5)+(A*sin(angulo)+radio*(sqrt(3)/2))*(A*sin(angulo)+radio*(sqr t(3)/2))); R[11]=sqrt((A*cos(angulo)-radio*(sqrt(3)/2))*(A*cos(angulo)radio*(sqrt(3)/2))+(A*sin(angulo)+radio*0.5)*(A*sin(angulo)+radio*0.5) );*/ ////////////////////////////////////////////////////////////////////// } ////////////CALCULO DE |E|^2 EN LAS DIRECCINES QUE EVALUO///////////// void evalua_diagrama(precision *ampl, precision *fase,precision *Direciones_prin, precision *Mod_E2) { int i,dir; precision R[N_ANT]; precision E_real,E_im; for(dir=0;dir<3;dir++) { calculo_distancia(Direciones_prin[dir],SEPARACION,R); E_real=E_im=0.0; for(i=0;i<N_ANT;i++) { E_real+=(ampl[i]/R[i])*cos(fase[i]-BETA*R[i]); E_im+=(ampl[i]/R[i])*sin(fase[i]-BETA*R[i]); } //E en las direcciones principales Mod_E2[dir]=E_real*E_real+E_im*E_im; } } ////////////////////CALCULO DEL DIAGRAMA TOTAL//////////////////////// void calculo_diagrama_tot (precision *ampl,precision *fase,precision *Dir_prin,FILE *out2) { int i,ANG; precision fact_ang,ang; precision R[N_ANT]; precision E_real,E_im,Mod_E2; out2=fopen("Diagrama.dat","wt"); fact_ang=(precision)2*PI/CANAL;// for(ANG=0;ANG<CANAL;ANG++) { ang=(precision)(ANG*fact_ang);//pasamos el ngulo a rad calculo_distancia(ang,SEPARACION,R); E_real=E_im=0; for (i=0;i<N_ANT;i++) { E_real+=(ampl[i]/R[i])*cos(fase[i]-BETA*R[i]); E_im+=(ampl[i]/R[i])*sin(fase[i]-BETA*R[i]); } Mod_E2=E_real*E_real+E_im*E_im; //Escribo en archivo ang E M m1 m2 fprintf(out2,"%.15f\t%.15f\t%f\t%f\t%f\n",ang,Mod_E2,Dir_prin[0],Dir_p rin[1],Dir_prin[2]); }

- 63 -

fclose(out2); } ////////CREA ARCHIVO CON POTENCIAS DE LOS ANGULOS PRINCIPALES//////// //Crea archivo escribiendo al final con angulos principales y fraccion de potencia x 100 emitida en el canal angular (0,72) void escribe_potencia(precision *Mod_E2,precision *Direciones_prin,precision fitness_max,FILE *out3) { out3=fopen("Potencias.dat","a+"); fprintf(out3,"\n%f\t%f\t%f\n",Direciones_prin[0]*360/(2*PI),Direcio nes_prin[1]*360/(2*PI),Direciones_prin[2]*360/(2*PI)); fprintf(out3,"%f\t%f\t%f\t%f\n",100*Mod_E2[0],100*Mod_E2[1],100*Mod_E2 [2],fitness_max); fclose(out3); }

5) Random.c
#include "cabeceras.h" precision Random(void); void ini_ran(int SEMILLA); /*generador aleatorio*/ unsigned long int irr[256]; unsigned long int ir1; unsigned char ind_ran,ig1,ig2,ig3; precision Random(void) { precision r; ig1=ind_ran-24; ig2=ind_ran-55; ig3=ind_ran-61; irr[ind_ran]=irr[ig1]+irr[ig2]; ir1=(irr[ind_ran]^irr[ig3]); ind_ran++; r=ir1*NormRANu; return r; } void ini_ran(int SEMILLA) { int INI,FACTOR,SUM,i; srand(SEMILLA); FACTOR=67397; SUM=7364893; for (i=0;i<256;i++) { INI=(INI*FACTOR+SUM); irr[i]=INI; } ind_ran=ig1=ig2=ig3=0; }

- 64 -

También podría gustarte