Diseño e implementación de un beamformer en una FPGA Spartan-3 y pruebas con transmisión de ultrasonido
76
0
0
Texto completo
(2) Resumen. En este trabajo se presentan los resultados del diseño e implementación de un Beamformer de antenas transmisoras en una FPGA Spartan-3 de Xilinx. Para el cálculo de los pesos complejos de las antenas se utilizó el método de muestreo en frecuencia de Woodward-Lawson. La descripción VHDL se realizó por medio de la herramienta Xilinx System Generator. El estudio se centra en la direccionalidad del arreglo y en su comportamiento para diferentes frecuencias. Se presentan los resultados de un sistema de prueba, implementado con emisores de ultrasonido a una frecuencia de 40kHz..
(3) Índice General 1. Introducción. 1. 2. Ob jetivos. 3. 3. Marco Teórico. 4. 3.1. Beamforming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 4. 3.2. Métodos de Diseño de Arreglos . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 3.2.1. Método de Woodward-Lawson . . . . . . . . . . . . . . . . . . . . .. 6. 3.2.2. Ejemplo de Diseño por el Método de Woodward-Lawson con una Ventana Rectangular . . . . . . . . . . . . . . . . . . . . . . . . . . .. 8. 3.3. Introducción a Xilinx System Generator (XSG) . . . . . . . . . . . . . . . .. 9. 4. Diseño y Descripción de la Arquitectura Hardware. 10. 4.1. Descripción General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 4.1.1. Weights Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1.2. Beamformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2. Descripción Detallada en XSG . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.2.1. Control y Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2.2. IFFT (Weights Generator) . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.3. Beamformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5. Resultados Previos a la Implementación Hardware y Simulaciones. 34. 5.1. Direccionalidad del arreglo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34. i.
(4) 5.2. Frecuencia Máxima de Respuesta . . . . . . . . . . . . . . . . . . . . . . . . 38 5.3. Resultados de la Síntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6. Pruebas Hardware Usando Emisión de Ultrasonido. 41. 6.1. Restricciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.2. Conguración de XSG para la Síntesis . . . . . . . . . . . . . . . . . . . . . 42 6.3. Implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.4. Toma de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 6.5. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 7. Conclusiones y Trabajos Futuros. 53. A. Código en Matlab. 55. A.1. main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 A.2. plotAF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 B. Módulos VHDL. 58. B.1. P2S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 B.2. P2S_16bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 B.3. S2P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 B.4. Multiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 B.5. Demultiplexer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 B.6. DDS_reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 C. PCB. 66. Bibliografía. 68. ii.
(5) Índice de Figuras 3.1. Arreglo lineal de antenas isotrópicas equidistantes, con número de elementos par e impar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 4.1. Arquitectura General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2. Weights Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.3. Beamformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4.4. Arquitectura Completa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.5. Módulo Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.6. Módulo Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.7. Módulo IFFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.8. Módulo Control_IFFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.9. Módulo Timer_IFFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.10. Módulo P2S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.11. Módulo IFFT_serial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.12. Módulo Rect2Pol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.13. Módulo S2P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.14. Módulo Beamformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.15. Módulo P2S_Beamformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4.16. Módulo Six_Channels_Sine_Gen_with_Phase_Shift . . . . . . . . . . . . 32 4.17. Módulo Multiplexed_Multiplicator . . . . . . . . . . . . . . . . . . . . . . . 33 5.1. Etapas del Sistema para el caso φp = 105° . . . . . . . . . . . . . . . . . . . 35 5.2. Diagrama de Tiempos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 iii.
(6) 5.3. Respuesta del Arreglo para Diferentes Casos de Direccionalidad . . . . . . . 37 5.4. Respuesta del arreglo para diferentes frecuencias con φp = 90° . . . . . . . . 39 6.1. Grating Lobes debido al aumento de d/λ . . . . . . . . . . . . . . . . . . . . 42 6.2. Montaje Completo para el Arreglo de Ultrasonido . . . . . . . . . . . . . . 45 6.3. Etapa Análoga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.4. Esquemático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.5. Spartan-3 Starter Kit Board . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.6. Montaje utilizado para la toma de datos . . . . . . . . . . . . . . . . . . . . 48 6.7. Respuesta Experimental del Arreglo . . . . . . . . . . . . . . . . . . . . . . 51 C.1. Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66. iv.
(7) Índice de Tablas 3.1. Dualidad entre el procesamiento de señales en el dominio del tiempo y el dominio del espacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 5. 3.2. Relación entre φ y de n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 7. 4.1. Tabla de estados del módulo Control . . . . . . . . . . . . . . . . . . . . . . 18 4.2. Tabla de estados del módulo Control_IFFT . . . . . . . . . . . . . . . . . . 22 5.1. Error de dirección en grados en función de la frecuencia deseada . . . . . . 39 5.2. Porcentaje utilizado de una FPGA Spartan-3 1000k para una implementación con 16 puntos de muestreo y 6 canales de salida . . . . . . . . . . . . . 40 6.1. Ubicación de las entradas y salidas del sistema en el Spartan 3 Starter Kit Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.2. Primera Toma de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.3. Segunda Toma de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.4. Raíz Cuadrada del Error Cuadrático Medio (RMSE) para Diferentes Casos de Direccionalidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52. v.
(8) Agradecimientos A Elkin García por su constante y dedicada asesoría durante el desarrollo de este proyecto. A mis amigos, porque gracias a ellos la etapa, los años y la experiencia que hoy nalizan, los recordaré gratamente toda mi vida. Finalmente, este trabajo está dedicado a mis papás, quienes siempre me han apoyado de manera incondicional, para ellos innitas gracias.. vi.
(9) Capítulo 1. Introducción Una antena típica, conformada por un único elemento, posee un patrón de radiación estático, que depende exclusivamente de la geometría de la antena y la única forma de redirigirlo es moverla físicamente para que ésta apunte hacia la dirección deseada. En la mayoría de los casos realizar este movimiento no es conveniente. Por el contrario, a un arreglo de antenas idénticas, al que electrónicamente se le controla la fase y la amplitud de cada elemento individual, es posible dirigirle su patrón de radiación total hacia una o varias direcciones deseadas, evitando así tener que mover físicamente la antena. Esta operación de combinar linealmente la respuesta de cada uno de los M elementos individuales, basado en un vector de pesos complejos en magnitud y fase am , para obtener una respuesta total, con ciertas características deseadas, es conocida como Beamforming [1] [2] [3]. En este documento se presenta el diseño y análisis de una arquitectura hardware para un beamformer y los resultados de un sistema de prueba basado en transmisión de ultrasonido. Se presentan resultados de direccionalidad del arreglo y se busca determinar el alcance del diseño implementado en una FPGA Spartan 3 de Xilinx. Una de las características de esta FPGA que hace que se haya utilizado para la implementación, es su alta capacidad computacional comparada con su bajo precio. Esta característica se ve reejada en que la familia Spartan-3 posee el menor costo por lógica (CPL) del mercado [4]. Para realizar la descripción VHDL se utilizó la herramienta Xilinx System Generator 1.
(10) Capítulo 1: Introducción. 2. 9.1® (XSG) en conjunto con los programas Simulink® y MATLAB®. En la sección 3.3 hay una breve descripción de la herramienta. Dada la amplitud y la complejidad del problema a abordar, es necesario imponer ciertas restricciones en las características del sistema: Transmisión y recepción de una onda portadora únicamente, ya que el objetivo no es implementar una transmisión de datos sino realizar pruebas de desempeño.. Análisis de direccionalidad, mas no de ganancia. No se consideran obstáculos ni fuentes de interferencia. Arreglo lineal con distancia entre antenas d constante. Solo se trabaja en las dimensiones r y φ, es decir en el plano horizontal del arreglo. En los trabajos de Barrera G. C. [5] y de Amaya P. A. [6], dos tesis locales, se diseñaron prototipos de Beamformers receptores que trabajan con audio-frecuencia. El estudio en estos trabajos comprueba que el estudio de Beamforming es igualmente aplicable a ondas mecánicas y a ondas electromagnéticas. Es por esto que en este trabajo para las pruebas de direccionalidad en hardware se va utilizar ultrasonido, ya que además de su fácil implementación, permite el análisis en cortas distancias debido a su corta longitud de onda (λ ≈ 8,5mm). El problema de arreglos de antenas utilizando el principio de beamforming ha sido ámpliamente estudiado en la literatura desde ya varias décadas atrás [7], en este trabajo se pretende contribuir al estudio de la implementacipon hardware de arreglos de antenas transmisores..
(11) Capítulo 2. Objetivos Implementar una solución hardware para un arreglo de emisores de ultrasonido, capaz de redirigir su patrón de radiación. Crear una maqueta para realizar pruebas de funcionalidad del arreglo de emisores de ultrasonido. Obtener datos para realizar proyecciones de escalabilidad física y tecnológica.. 3.
(12) Capítulo 3. Marco Teórico 3.1. Beamforming El efecto completo de un arreglo de antenas idénticas es el de modicar el patrón de radiación de cada antena individual F (k), por un factor A(k) que incorpora todos los desfases y las amplitudes de los respectivos pesos am de los elementos del arreglo. Así el patrón de radiación total está dado por las ecuaciones 3.1 y 3.2 [8]. Ftot (k) = A(k)F (k). (3.1). A(k) = a0 ejk·d0 + a1 ejk·d1 + a2 ejk·d2 + .... (3.2). En el diseño de los arreglos de antenas hay dos parámetros principales que determinan su comportamiento: la distribución espacial de las antenas y los pesos am que le sean asignados. Para este trabajo solo se consideran los arreglos lineales uniformemente distribuidos [2]. En la gura 3.1 se aprecian los casos para un número de elementos par e impar. La distancia entre antenas d es un factor de diseño determinante de la direccionalidad del arreglo, si se desea que éste sea dirigible entre 0°≤ φ ≤ 180° sin obtener réplicas se requiere que d = λ/2, limitado únicamente por la apertura de las antenas individuales. 4.
(13) 5. 3.2 Métodos de Diseño de Arreglos. Figura 3.1: Arreglo lineal de antenas isotrópicas equidistantes, con número de elementos par e impar Este caso es llamado comúnmente en la literatura arreglo lineal estándar [2].. 3.2. Métodos de Diseño de Arreglos En el caso de arreglos lineales de antenas uniformemente espaciados, los métodos de diseño son los mismos utilizados para el diseño de ltros digitales no recursivos FIR (Finite Impulse Response). Esta propiedad se debe a la dualidad que existe entre el procesamiento de señales en tiempo discreto y el procesamiento por medio de arreglos de espacio discreto, resumida en la Tabla 3.1 [8]. Tabla 3.1: Dualidad entre el procesamiento de señales en el dominio del tiempo y el dominio del espacio Tiempo Discreto. Intervalo de muestreo T Frecuencia Ω Frecuencia digital ω = ΩT Respuesta en Frecuencia A(ω). Espacio Discreto. Intervalo de muestreo d Número de Onda kx = k · cosφ Número de Onda dig. Ψ = kd · cosφ Factor del Arreglo A(Ψ). Aprovechando los métodos de diseño de ltros FIR, algunos de la métodos para el diseño de arreglos de antenas son: Schelkuno's Zero Placement Method. Fourier Series Method with Windowing Sector Beam Array Design.
(14) 6. Capítulo 3: Marco Teórico. Woodward-Lawson Frequency-Sampling Design Narrow-Beam Low-Sidelobe Designs Binomial Arrays Dolph-Chebyshev Arrays Taylor-Kaiser Arrays Estos métodos están ampliamente explicados en [8] y [9]. 3.2.1.. Método de Woodward-Lawson. Se decidió utilizar el de muestreo en frecuencia de Woodward-Lawson [8], que es análogo al método de muestreo en frecuencia en diseño de ltros FIR. Éste se escogió debido principalmente a que es de fácil implementación en hardware. En el método de Woodward-Lawson los coecientes de los M elementos del arreglo se aproximan a la respuesta impulso obtenida al aplicarle la Transformada Inversa de Fourier Discreta (IDFT) a un vector de N muestras de la función de transferencia deseada, haciendo uso de la ecuación 3.3, en el caso de tener un número de elementos par y de la ecuación 3.4 para el caso impar. Para obtener M coecientes se trunca la respuesta utilizando una ventana w(m).. a±m = w(±m). am = w(m). N −1 1 X A(Ψi )e∓j(m−0,5)Ψi N n=0. N −1 1 X A(Ψi )ej(m)Ψi N n=0. ,m = 1, 2, ..., M/2. (3.3). ,m = 0, ±1, ±2, ..., ±M/2. (3.4). La principal razón para que se tomen más muestras que coecientes, es que a mayor número de muestras se posee mayor resolución en cuanto a la direccionalidad del arreglo [9]. Dado que el muestreo se hace sobre A(Ψn ), es necesario hacer una transformación desde el dominio de φ, que es el ángulo que realmente interesa. La relación entre el índice.
(15) 7. 3.2 Métodos de Diseño de Arreglos. n de A(Ψn ) y el φ deseado esta dada por la ecuación 3.5 [8]. En la Tabla 3.2 está el valor. de φ con su respectivo índice n, para un caso de 16 muestras y d = λ/2.. Nd cos(φ) + N + 1, λ Nd cos(φ) + 1, n=− λ. n=−. n. 1. 2. φ. 90°. 97°. 3. 4. 5. 6. 7. 8. 0 < φ ≤ 90. (3.5). 90 ≤ φ ≤ 180. 9. 10. 11. 12. 13. 14. 15. 16. 105° 112° 120° 129° 139° 151° 180° 29°. 41°. 51°. 60°. 68°. 76°. 83°. Tabla 3.2: Relación entre φ y de n. Tipos de ventanas. Existes varios tipos de ventanas w(m) que se pueden utilizar para truncar los coecientes h(n) en M pesos complejos a(m). Dependiendo de la ventana utilizada se puede mejorar la respuesta obtenida en términos de sidelobes y de rango-dinámico. Algunas de las ventanas que se han estudiado en el campo de procesamiento de señales son las siguientes [8] [10] [11]: Rectangular Gauss Hamming Hann Bartlett Trinagular Bartlett Hann Blackman Kaiser.
(16) Capítulo 3: Marco Teórico. 8. Nuttall Blackman Harris Flat top Sine Bessel Exponential Tukey En este trabajo se utilizó una ventana rectangular, en ésta se trunca la respuesta de la IDFT, considerando únicamente los primeros M coecientes. Esta aproximación está basada en el criterio de minimización de la suma de las diferencias en magnitud al cuadrado, entre la respuesta deseada y la obtenida, evaluadas en las frecuencias de muestreo Ψi [9]. 3.2.2.. Ejemplo de Diseño por el Método de Woodward-Lawson con una Ventana Rectangular. Para el caso en que se desee obtener un patrón de radiación que esté dirigido hacia 105°, utilizando un arreglo de 6 antenas separadas d = λ/2 y un muestreo del patrón en. 16 puntos, los pasos a realizar son los siguientes: Determinar el(los) coecientes n que corresponden a el(los) ángulo(s) φ deseados. Para el caso φ = 105°, el coeciente obtenido es n = 3, por medio de la ecuación 3.5. Asumiendo que los posibles valores de An únicamente pueden ser 1 ó 0, se obtiene el muestreo del patrón deseado: [0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]. Cálculo de la IFFT del patrón deseado. Los coecientes obtenidos en amplitud y fase son: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A(n) = [ 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 , 16 ].
(17) 9. 3.3 Introducción a Xilinx System Generator (XSG) −3π −π −π π π 3π −3π −π −π P (n) = [0, π4 , π2 , 3π 2 , π, 4 , 2 , 4 , 0, 4 , 2 , 2 , π, 4 , 2 , 4 ]. Los pesos complejos se obtienen truncando los coecientes, utilizando una ventana rectangular y normalizando las amplitudes: 1 1 −3π a(m) = [ 16 ∠0, 16 ∠ π4 , 16 ∠ π2 , 61 ∠ 3π 2 , 6 ∠π, 6 ∠ 4 ]. 3.3. Introducción a Xilinx System Generator (XSG) Xilinx System Generator for DSP es una herramienta de diseño de alto nivel para sistemas de procesamiento de señales utilizando Field Programmable Gate Arrays (FPGAs). Dentro de sus principales características se encuentran [12]: Permite el diseño y la depuración de modelos utilizando Simulink®. Permite importación y exportación de variables a Matlab®. Permite la importación de módulos HDL con interfaces de cosimulación. Posee generación automática de código VHDL o Verilog desde Simulink®. Posee abstracción aritmética, es decir, trabaja con representaciones en punto jo con una precisión arbitraria, incluyendo la cuantización y el sobreujo. Permite el codiseño Harware/Software para sistemas embebidos. Permite Cosimulación Hardware..
(18) Capítulo 4. Diseño y Descripción de la Arquitectura Hardware 4.1. Descripción General Se diseño un sistema capaz de sintetizar M ondas portadoras a una frecuencia determinada, para las respectivas M antenas del arreglo, con las amplitudes y fases necesarias para que el patrón de radiación total esté dirigido hacia una o varias direcciones deseadas. En la Figura 4.1 se aprecia la arquitectura diseñada usando la plantilla Pirbhai-Hatley [13]. Ésta se encuentra distribuida de la siguiente manera: Un módulo de Control, dos módulos de procesamiento de datos (Weights. Generator, Beamformer ),. un módulo de. procesamiento de salida (D/A Converter & Power Stage ) y un módulo de servicio (Timer ). Las funciones resumidas de cada uno de estos módulos son: El módulo. Weights Generator. se encarga de calcular los pesos complejos a(m) de. cada una de las M antenas en magnitud y fase, a partir del vector de muestras A(Ψn ) del patrón de radiación deseado, determinado por las direcciones φp a las que éste se desea dirigir. El módulo. Beamformer. se encarga de generar la portadora respectiva de cada una. de las M antenas a determinada frecuencia F , basado en los pesos complejos a(m) 10.
(19) 11. 4.1 Descripción General. Figura 4.1: Arquitectura General previamente calculados. El módulo Control es el encargado de dar las ordenes de funcionamiento a los demás módulos y el módulo. es un módulo auxiliar para evitar que el sistema se. Timer. quede atascado en un estado intermedio. La etapa análoga es la encargada de realizar las conversiones digital-análogo y la respectivas etapas de potencia para los elementos del arreglo. 4.1.1.. Weights Generator. Este módulo implementa el cálculo de los coecientes complejos a(m) del arreglo, utilizando el método de muestreo en frecuencia de Woodward-Lawson [8], las bases de este método están explicadas en la subsección 3.2.1. En la Figura 4.2 se muestra el diseño de este módulo, compuesto por los siguientes submódulos: El módulo. Paralel to Serial. (P2S ) se encarga de realizar la conversión paralelo a. serial del vector de muestras A(Ψn ) del patrón de radiación deseado. El módulo IFFT. Serial,. se encarga de calcular de manera serial la IFFT del vector. de muestras A(Ψn ) del patrón de radiación deseado..
(20) 12. Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. Figura 4.2: Weights Generator El módulo Serial. to Paralel. (S2P ) se encarga de calcular los pesos a(m) al truncar. los coecientes x(n) utilizando una ventana w(m) y de realizar la conversión serial a paralelo del vector de pesos a(m). El módulo Control es el encargado de dar las ordenes de funcionamiento a los demás módulos. El módulo. Timer. el módulo IFFT 4.1.2.. cumple la función de facilitar la interfaz entre el módulo. P2S ). y. serial.. Beamformer. Este módulo se encarga de sintetizar las ondas portadoras a la frecuencia deseada, con los respectivos pesos complejos a(m) calculados por el módulo. Weights Generator.. En la. Figura 4.3 se muestra su diseño. Éste está compuesto por los siguientes submódulos: El módulo Paralel. to Serial. se encarga de realizar la conversión paralelo-serial de el. vector de fases ∠a(m). El módulo Multiplexed Sine Generator with Phase Shift, basado en el sintetizador de ondas DDS v5.0 incluido en el blockset de XSG, se encarga de generar las m ondas portadoras, multiplexadas en tiempo, con las respectivas fases ∠a(m) calculadas previamente..
(21) 13. 4.2 Descripción Detallada en XSG. El módulo. Multiplexed Multiplicator,. se encarga de tomar las señal que contiene. las ondas portadoras multiplexadas y la multiplica por una señal que contiene las amplitudes |a(m)| multiplexadas, por medio de un multiplicador embebido, para ser posteriormente demultiplexadas en las m ondas portadoras.. Figura 4.3: Beamformer. 4.2. Descripción Detallada en XSG La descripción VHDL se realizó haciendo uso de la herramienta Xilinx System Generator 9.1® (XSG) que actúa en conjunto con los programas Simulink® y MATLAB®. En la sección 3.3 hay una breve descripción de esta herramienta. El periodo de muestreo utilizado en el diseño del sistema en XSG fue de 20ns que corresponde a un reloj de 50M Hz .. Para el caso especíco implementado se utilizaron M = 6 salidas a una frecuencia F = 40kHz y N = 16 puntos de muestreo del patrón de radiación deseado.. En la Figura 4.4 se presenta el diseño del sistema completo en XSG, éste posee las siguientes entradas y salidas: Entradas.
(22) Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. 14. 16 entradas (A1...A16) de un bit cada una, que corresponden al vector de mues-. tras A(Ψn ) del patrón de radiación deseado. Una entrada booleana de carga del patrón de radiación deseado (S_L), activa. alta. Una entrada booleana de reset, activa alta.. Salidas 6 ondas portadoras (Sine_Out1... Sine_Out6) con resolución de 8 bits sin signo.. El sistema completo está compuesto por los módulos IFFT(Weights Generator), Beamformer, Control. El módulo. y Timer. Las funciones resumidas de cada uno de estos módulos son: IFFT (Weights Generator). se encarga de calcular los pesos complejos. a(m) de cada una de las 6 antenas en magnitud y fase, a partir del vector de muestras A(Ψn ) del patrón de radiación deseado, determinado por las direcciones φp a las que. éste se desea dirigir. El módulo. Beamformer. se encarga de generar la portadora respectiva de cada una. de las 6 antenas a una frecuencia de 40kHz , basado en los pesos complejos a(m) previamente calculados. El módulo Control es el encargado de dar las ordenes de funcionamiento a los demás módulos y el módulo. Timer. es un módulo auxiliar para evitar que el sistema se. quede atascado en un estado intermedio.. 4.2.1.. Control y Timer. El módulo Control es el encargado de dar las órdenes de funcionamiento a los demás módulos. Sus entradas y salidas son las siguientes: Entradas: Done : Señal proveniente del Timer que indica que se supero el tiempo máximo. de espera en el estado S2, activa alta..
(23) 15. 4.2 Descripción Detallada en XSG. Figura 4.4: Arquitectura Completa.
(24) 16. Capítulo 4: Diseño y Descripción de la Arquitectura Hardware S_L_in : Señal externa de carga del patrón deseado, activa alta.. ready : Señal proveniente del módulo IFFT que le avisa al control que ya nalizó. el calculo de los pesos complejos a(m). reset : Señal externa de reset global, activa alta.. Salidas: S_L_1 : Señal que le ordena al módulo IFFT que cargue el patrón deseado,. activa alta. S_L_2 : Señal que le ordena al módulo Beamformer que cargue los pesos a(m). calculados por el módulo IFFT, activa alta. timer_enable : Señal de habilitación del Timer, activa alta. timer_reset : Señal de reset del Timer, activa alta.. El diseño de su máquina de estados tipo Moore está resumido en la Tabla 4.1. En la Figura 4.5 se aprecia la descripción de este módulo en XSG. En resumen, los estados de este módulo son: S0: Espera la orden de cargar el muestreo del patrón de radiación con la señal S_L_in.. Adicionalmente mantiene el Timer apagado y reseteado.. S1: Una vez recibida la señal de S_L_in, se habilita el módulo IFFT por medio de la señal S_L1. Adicionalmente se prende el Timer. S2: Apaga la señal S_L_1 así la entrada S_L_in siga encendida, para asegurar que el módulo. IFFT. solo reciba un pulso de reloj. Queda a la espera de la señal. ready. proveniente del módulo IFFT. S3: Una vez recibida la señal ready, se le da la orden de inicio al módulo Beamformer por medio de la señal S_L_2. Adicionalmente se apaga el Timer. La señal Timer. reset. lleva al sistema al estado. S0. en cualquier momento. La función del. es la de evitar que el sistema se quede estancado en el estado. S2,. en caso de que. entre por error al estado S1 sin haber recibido el pulso de S_L. El Timer lleva al sistema.
(25) 17. 4.2 Descripción Detallada en XSG. Figura 4.5: Módulo Control al estado S2.. S0. en caso de que después de un tiempo de 30µs no se haya salido del estado. El tiempo de 30µs se escogió teniendo en cuenta que el tiempo de reacción típico del. sistema completo es de 25,7µs. En la Figura 4.6 se aprecia la descripción de este módulo es XSG, sus entradas y salidas son las siguientes: Entradas: enable : Señal de habilitación del Timer proveniente del control, activa alta. reset : Señal de reset del Timer proveniente del control, activa alta.. Salidas: Done : Señal que le indica al control que se supero el tiempo máximo de espera. en el estado S2, activa alta.. 4.2.2.. IFFT (Weights Generator). Este módulo implementa el cálculo de los coecientes complejos a(m) del arreglo, utilizando el método de muestreo en frecuencia de Woodward-Lawson [8], las bases de este método están explicadas en la subsección 3.2.1. En la Figura 4.7 se aprecia la descripción del módulo IFFT en XSG, sus entradas y salidas son las siguientes: Entradas:.
(26) 18. Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. Figura 4.6: Módulo Timer. Entradas:. [Done, S_L_in, ready, reset]. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Estado. Siguiente Estado. 0. 0. 0. 0. 0. 1. 0. 1. 0. 0. 0. 0. 0. 1. 0. 1. 0. 1. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 0. 2. 2. 0. 3. 0. 2. 0. 3. 0. 0. 0. 0. 0. 0. 0. 0. 0. 3. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. Salidas Estado. S_L1. S_L2. timer_enable. timer_reset. 0. 0. 0. 0. 1. 1. 1. 0. 1. 0. 2. 0. 0. 1. 0. 3. 0. 1. 0. 0. Tabla 4.1: Tabla de estados del módulo Control.
(27) 19. 4.2 Descripción Detallada en XSG 16 entradas (X1...X16) de un bit cada una, que corresponden al vector de. muestras A(Ψn ) del patrón de radiación deseado. Una entrada booleana de carga del patrón de radiación deseado (S_L), activa. alta. Una entrada booleana de reset, activa alta.. Salidas: Vector de fases (P 1...P 6) que corresponde a las fases de los pesos complejos. ∠a(m). Vector de amplitudes (A1...A6) que corresponde a las amplitudes de los pesos. complejos |a(m)|. ready : Señal que le avisa al módulo de control que ya nalizó el calculo de los. pesos complejos a(m), activa alta.. Figura 4.7: Módulo IFFT.
(28) Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. 20. El módulo IFFT está compuesto por los siguientes submódulos: El módulo (P2S ) se encarga de realizar la conversión paralelo a serial del vector de muestras A(Ψn ) del patrón de radiación deseado. El módulo IFFT_Serial, se encarga de calcular de manera serial la IFFT del vector de muestras A(Ψn ) del patrón de radiación deseado. El módulo (S2P ) se encarga de calcular los pesos a(m) al truncar los coecientes x(n) utilizando una ventana rectangular de seis elementos, y de realizar la conversión. serial a paralelo del vector de pesos a(m). El módulo Control es el encargado de dar las ordenes de funcionamiento a los demás módulos. El módulo. Timer. cumple la función de facilitar la interfaz entre el módulo. P2S ). y. el módulo IFFT_serial. Control y Timer. El módulo. Control. es el encargado de dar las órdenes de funcionamiento a los demás. módulos. Sus entradas y salidas son las siguientes: Entradas: Done : Señal proveniente del Timer que indica que la transmisión serial del. módulo P2S ya terminó, activa alta. S_L_1 : Señal de carga del patrón deseado proveniente del módulo de control. del sistem completo, activa alta. Salidas: S_L_2 :Señal que le ordena al módulo IFFT_serial que inicie el cálculo de la. IFFT, activa alta. El diseño de la máquina de estados tipo Moore está resumido en la Tabla 4.2. En la Figura 4.8 se aprecia la descripción de este módulo en XSG. En resumen, los estados de este módulo son:.
(29) 21. 4.2 Descripción Detallada en XSG. S0: Espera la orden de cargar el muestreo del patrón de radiación con la señal S_L1. Adicionalmente mantiene el Timer apagado y reseteado. S1: Una vez recibida la señal de S_L, se habilita el módulo IFFT_serial por medio de la señal S_L_2. Adicionalmente se prende el Timer. Pasa al estado S0 cuando es habilitado por la señal done proveniente del Timer.. Figura 4.8: Módulo Control_IFFT La señal reset lleva al sistema al estado S0 en cualquier momento. La función del Timer es la de facilitar la interfaz entre el módulo P2S y el módulo IFFT_serial. Éste le indica al control por medio de la señal done cuando haya transcurrido el tiempo de transmisión serial. En la Figura 4.9 se aprecia la descripción de este módulo en XSG, sus entradas y salidas son las siguientes: Entradas: enable : Señal de habilitación del Timer proveniente del control, activa alta. reset : Señal de reset del Timer proveniente del control del sistema completo,. activa alta. Salidas: Done : Señal que le indica al control que la transmisión serial del módulo P2S. ya terminó, activa alta.. P2S. En la Figura 4.10 está la descripción del módulo código VHDL incluido en el Anexo B.2.. P2S. P2S. en XSG, éste implementa el. se encarga de transmitir cada 300ns de.
(30) 22. Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. Figura 4.9: Módulo Timer_IFFT Entradas:. [S_L_1, done]. 00. 10. Estado. 01. 11. Siguiente Estado. Salidas S_L_2. 0. 0. 0. 1. 1. 0. 1. 1. 0. 1. 0. 1. Tabla 4.2: Tabla de estados del módulo Control_IFFT manera serial, cada uno de los 16 bits del muestreo del patrón de radiación, una vez haya recibido la orden de. S_L.. Este tiempo está determinado por el bloque. Rect2Pol,. que se. explica en la sección 4.2.2. Las entradas y salidas del módulo P2S son: Entradas: 16 entradas (In1...In16) de un bit cada una, que corresponden al vector de. muestras A(Ψn ) del patrón de radiación deseado. Una entrada booleana de da la orden de inicio de la conversión paralelo-serial (S_L),. activa alta.. Una entrada booleana de reset, activa alta.. Salidas: X_serial: Salida serial de las muestras A(Ψn ) del patrón de radiación deseado.. IFFT serial. En la Figura 4.11 está la descripción del módulo IFFT_serial en XSG, éste se encarga de calcular de manera serial la magnitud y la fase de los coecientes h(n) obtenidos al.
(31) 23. 4.2 Descripción Detallada en XSG. Figura 4.10: Módulo P2S.
(32) Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. 24. calcular la IFFT del patrón de radiación muestreado. Las entradas y salidas de este bloque son: Entradas Xk_re: Muestreo del patrón de radiación deseado de manera serial, donde cada. bit llega cada 300ns. Esta señal proviene de el módulo P2S. S_L: Señal proveniente del módulo de control (S_L_2 ) que indica el comienzo. de la transmisión serial del bloque P2S. reset: Reset activo alto.. Salidas Abs: Magnitud serial de los coecientes |h(n)| obtenidos al calcular la IFFT. del vector de muestras A(Ψn ) del patrón de radiación deseado, donde cada magnitud es transmitida cada 300ns. El tiempo que se demora desde que se recibe el pulso de S_L hasta que comienzan a salir las magnitudes de manera serial es de 23,5µs. La resolución es de 1 bit entero sin signo y 7 bits decimales. Phase: Fase serial de los coecientes ∠h(n) obtenidos al calcular la IFFT del. vector de muestras A(Ψn ) del patrón de radiación deseado, donde cada fase es transmitida cada 300ns. El tiempo que se demora desde que se recibe el pulso de S_L hasta que comienzan a salir las fases de manera serial es de 23,5µs. La resolución es de 3 bits enteros con signo y 5 bits decimales. Out_index: Indica el índice n de cada uno de los coecientes h(n) calculados.. Ya que se está trabajando con 16 muestras, esta señal tiene una resolución de 4 bits sin signo. Valid_Out: Señal activa alta cuando están saliendo los coecientes h(n) calcu-. lados. El módulo. IFFT_serial. está basado en el bloque FFT v3_2. incluido en el blockset. de XSG. Este bloque fue congurado para calcular la IFFT de N = 16 muestras, de la siguiente manera:.
(33) 25. 4.2 Descripción Detallada en XSG. Figura 4.11: Módulo IFFT_serial Implementaion: Pipelined Streaming I/O. Number of sample points: 16 Output Ordering: Natural order Scaling: Unscaled Rounding Mode: COnvergent Rounding Phase factor bit width: 8 Enable dynamic transform size: unchecked Provide synchronous reset port: checked Provide enable port: unchecked Al jar un cero en la entrada fwd_inv se congura el bloque para que calcule la IFFT, junto con la entrada. fwd_inv_we. en uno. La señal de. start. de este bloque debe llegar 4. ciclo de reloj antes que el muestreo del patrón [14]. A las entradas es necesario bajarle el periodo de muestreo en un factor de 15, ya que el módulo. Rect2Pol. tiene un delay total. de z −14 , de esta manera se asegura los coecientes de salida salgan cada 300ns, evitando que se pierdan datos en el módulo Rect2Pol..
(34) 26. Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. Rect2Pol. En la Figura 4.12 se aprecia la descripción del módulo Rect2Pol en XSG, éste se encarga de transformar de Real-Imaginario a Magnitud-Fase las salidas del bloque Esta transformación es necesaria, para que el módulo. Beamformer. IFFT_serial.. pueda sintetizar las. ondas seno con las amplitudes y fases respectivas. Las entradas y salidas de este módulo son: Entradas Re: Parte real de los coecientes Re(h(n)) obtenidos al calcular la IFFT del. vector de muestras A(Ψn ) del patrón de radiación deseado, donde cada valor es transmitida cada 300ns. La resolución es de 1 bit para la parte sin signo y 7 bits para la parte decimal. Im: Parte Imaginaria de los coecientes Im(h(n)) obtenidos al calcular la IFFT. del vector de muestras A(Ψn ) del patrón de radiación deseado, donde cada valor es transmitida cada 300ns. La resolución es de 3 bits para la parte entera incluyendo el signo y 5 bits para la parte decimal. Salidas Mag: Magnitud serial de los coecientes |h(n)| obtenidos al convertir los coe-. cientes h(n) de coordenadas rectangulares a polares. La resolución es de 1 bit para la parte sin signo y 7 bits para la parte decimal. Ph: Fase serial de los coecientes ∠h(n) obtenidos al convertir los coecientes. h(n) de coordenadas rectangulares a polares. La resolución es de 3 bits para la. parte entera incluyendo el signo y 5 bits para la parte decimal. Este módulo está compuesto principalmente por el bloque. Cordic Atan,. que viene. incluido dentro del blockset de XSG, su función es la realizar la conversión de coordenadas rectangulares a polares. La conguración utilizada para este bloque es la siguiente: Number of processing elements: 8 X,Y Data Width: 13.
(35) 27. 4.2 Descripción Detallada en XSG. Figura 4.12: Módulo Rect2Pol X,Y Binary point position: 7 Latency for each processing element: ones(1,8) La salida de Magnitud está escalada en un factor de 1,646760 [14], por lo que es necesario remover este factor, adicionalmente se necesita dividir por el número de salidas para que la amplitud esté normalizada, por lo tanto la salida de Magnitud es multiplicada por. 1 1,65·6. .. El retardo total que incluyen el bloque Cordic Atan y el multiplicador es de z −14 . Éste determina el tiempo de retardo mínimo que debe tener el módulo IFFT_serial, para evitar sobrelapamiento de los datos y el tiempo de transmisión de el módulo P2S. El retardo que se decidió utilizar para estos módulos es de z −15 , que equivale a 300ns con el reloj utilizado de 50M Hz . S2P. En la Figura 4.13 se aprecia la descripción del módulo. S2P. en XSG, éste se encarga. de truncar los coecientes h(n) por medio de una ventana rectangular de seis elementos para obtener los pesos complejos a(n) y posteriormente realiza la conversión a paralelo en amplitud y fase. Las entradas y salidas de este módulo son: Entradas Xn_a : Magnitud serial de los coecientes |h(n)| obtenidos al calcular la IFFT. del vector de muestras A(Ψn ) del patrón de radiación deseado, donde cada.
(36) 28. Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. magnitud es transmitida cada 300ns. La resolución es de 1 bit entero sin signo y 7 bits decimales. Xn_p : Fase serial de los coecientes ∠h(n) obtenidos al calcular la IFFT del. vector de muestras A(Ψn ) del patrón de radiación deseado, donde cada fase es transmitida cada 300ns. La resolución es de 3 bits enteros con signo y 5 bits decimales. Xn_index : Indica el índice n de cada uno de los coecientes h(n) calculados.. Ya que se está trabajando con 16 muestras, esta señal tiene una resolución de 4 bits sin signo. Valid_in : Señal activa alta cuando están saliendo los coecientes. h(n) calcu-. lados. reset : Señal de reset activa alta.. Salidas Vector de fases (P 1...P 6) que corresponde a las fases de los pesos complejos. ∠a(m). Vector de amplitudes (A1...A6) que corresponde a las amplitudes de los pesos. complejos |a(m)|. S2P_ready : Señal que le avisa al módulo de control que ya nalizó el calculo. de los pesos complejos a(m), activa alta. El módulo. S2P. está compuesto por el bloque. S2P_internal. que implementa la des-. cripción VHDL incluida en el Anexo B.3. 4.2.3.. Beamformer. En la Figura 4.14 se aprecia la descripción del módulo. Beamformer. en XSG, éste se. encarga de sintetizar las ondas portadoras a la frecuencia deseada, con los respectivos pesos calculados por el módulo IFFT. Sus entradas y salidas son las siguientes: Entradas:.
(37) 29. 4.2 Descripción Detallada en XSG. Figura 4.13: Módulo S2P Vector de fases (P 1...P 6) que corresponde a las fases de los pesos complejos. ∠a(m). Vector de amplitudes (A1...A6) que corresponde a las amplitudes de los pesos. complejos |a(m)|. reset : Señal de reset activa alta. S_L: Señal que le ordena al módulo Beamformer que cargue los pesos a(m). calculados por el módulo IFFT, activa alta. Salidas: 6 ondas portadoras (Out1... Out6) con resolución de 8 bits sin signo.. El módulo Beamformer está compuesto por los siguientes submódulos: El módulo (P2S ) se encarga de realizar la conversión paralelo a serial del vector de fases (P 1...P 6) que corresponde a las fases de los pesos complejos ∠a(m). El módulo. Six Channels Sine Gen with Phase Shift,. se encarga de generar las seis. ondas seno, multiplexadas en tiempo, con las respectivas fases ∠a(m) calculadas previamente..
(38) 30. Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. Figura 4.14: Módulo Beamformer El módulo (Multiplexed. Multiplicator ). se encarga de tomar las señal que contiene. las ondas multiplexadas y multiplicarla por una señal que contiene las amplitudes multiplexadas, por medio de un multiplicador embebido. Posteriormente el resultado se demultiplexa y se ajusta, de tal forma que se obtienen las salidas con una resolución de 8 bits sin signo (para la máxima amplitud), con oset de (128)2 , amplitud variable entre (0)2 y (128)2 y fase variable entre −π y π P2S. En la Figura 4.15 se aprecia la descripción del módulo. P2S. en XSG, éste se encarga. realizar la conversión Paralelo-Serial del vector de fases (P 1...P 6) calculadas por el módulo IFFT,. y adiciona dos señales de control que son necesarias para el módulo. Sine Gen with Phase Shift : channel. y. conv_ready.. Six Channels. Adicionalmente realiza la siguiente. conversión de las Fases para que puedan ser interpretadas por el bloque DDS v5_0 : π → 1 y −π → −1. Las entradas y salidas del módulo P2S son: Entradas: Vector de fases (P 1...P 6) que corresponde a las fases de los pesos complejos.
(39) 31. 4.2 Descripción Detallada en XSG ∠a(m). reset : Señal de reset activa alta. S_L: Señal que le ordena al módulo P2S que inicie la conversión serial a para-. lelo, activa alta. Salidas: channel : indica el índice m correspondiente a la fase ∠a(m) que está siendo. transmitido en ese momento. conv_ready : Pulso de load en cada fase transmitida, para el módulo Six Channels Sine Gen with Phase Shift.. Phase_serial : Vector de fases (P 1...P 6) transmitido de manera serial cada. 320ns.. Figura 4.15: Módulo P2S_Beamformer. Six Channels Sine Gen with Phase Shift. En la Figura 4.16 se aprecia la descripción del módulo Phase Shift. Six Channels Sine Gen with. en XSG, que está basado en el sintetizador de ondas DDS v5.0, incluido en. el Blockset de XSG. Éste se encarga de generar las seis ondas seno, multiplexadas en tiempo, con las respectivas fases calculadas previamente. La conguración utilizada para este bloque es la siguiente:.
(40) 32. Capítulo 4: Diseño y Descripción de la Arquitectura Hardware. Function: Sine Channels: 6 Type: Fixed Output frequency array (MHz): [F,F,F,F,F,F] Phase Oset: Programmable Optional Ports: Provide channel port Sample period source: explicit period: 20E-9. Figura 4.16: Módulo Six_Channels_Sine_Gen_with_Phase_Shift Fue necesario incluir el módulo. DDS_reset. para que la señal de. reset. hiciera efecto. sobre los registros de las fases internas de este bloque. El respectivo código VHDL está icluido en el Anexo B.6. Multiplexed Multiplicator. En la Figura 4.17 se aprecia la descripción del módulo. Multiplexed_Multiplicator. en. XSG, éste se encarga de tomar las señal que contiene las ondas multiplexadas y multiplicarla por una señal que contiene las amplitudes multiplexadas, por medio de un multiplicador embebido. Posteriormente el resultado se demultiplexa y se ajusta, de tal forma que se obtienen las salidas con una resolución de 8 bits sin signo (para la máxima amplitud), con oset de (128)2 , amplitud variable entre (0)2 y (128)2 y fase variable entre −π y π ..
(41) 33. 4.2 Descripción Detallada en XSG. Figura 4.17: Módulo Multiplexed_Multiplicator Los módulos que componen el Multiplexed_Multiplicator son: Banco de registros para las amplitudes, Multiplexor (MUX ), Multiplicador Embebido, Bloque de oset, y un Demultiplexor (DEMUX ). El módulo MUX se encarga de multiplexar las amplitudes con base en la señal selectora channel,. proveniente del módulo Six Channels Sine Gen with Phase Shift. El código VHDL. del módulo MUX se encuentra en el Anexo B.4. El multiplicador se encarga de multiplicar las señal que contiene las amplitudes multiplexadas, con la onda que contiene las ondas sintetizadas multiplexadas. Posteriormente a este resultado se le añade un oset de (128)2 para que las ondas resultantes no tengan valores negativos y se pueda utilizar un DAC estandar de 8 bits (ej, DAC0808) para realizar la conversión. Finalmente el resultado es demultiplexado por medio del módulo DEMUX, utilizando como selector la misma senal channel utilizada para la multiplexación. El código código VHDL de este módulo se encuentra en el Anexo B.5..
(42) Capítulo 5. Resultados Previos a la Implementación Hardware y Simulaciones 5.1. Direccionalidad del arreglo Para las siguientes simulaciones se utilizó una frecuencia base de 40kHz (a no ser que se especique lo contrario), considerando el caso del arreglo lineal estándar (d = λ/2) de seis elementos, y tomando 16 muestras del patrón de radiación deseado: En la Figura 5.1b se muestra las salidas digitales del arreglo para el patrón de radiación deseado que se muestra en la gura 5.1a, este caso corresponde a la dirección deseada φp = 105°. En la Figura 5.1c se muestra la respectiva respuesta del Arreglo A(φ). Las. amplitudes y las fases (pesos complejos) de las salidas de la Figura 5.1b fueron calculadas por el módulo Weigths Generator y sintetizadas por el módulo Beamformer. El vector de 1 1 −3π pesos complejo calculado es: a(m) = [ 61 ∠0, 16 ∠ π4 , 16 ∠ π2 , 16 ∠ 3π 2 , 6 ∠π, 6 ∠ 4 ].. Con 16 muestras, los ángulos φ a los que se puede apuntar son: 29°, 41°, 51° 60°, 68°, 76°, 83°, 90°, 97°, 105°, 112,° 120°, 129°, 139°, 151° y 180°, determinados por la ecuación 3.5, cabe resaltar que estos ángulos no están igualmente espaciados debido a la relación 34.
(43) 35. 5.1 Direccionalidad del arreglo. (a) Muestreo del Patrón de Radiación Deseado. (b) Salida Digital del Arreglo para el caso. (c) Respuesta del arreglo para. φp = 105°. φp = 105°. Figura 5.1: Etapas del Sistema para el caso φp = 105°.
(44) Capítulo 5: Resultados Previos a la Implementación Hardware y Simulaciones. 36. no lineal entre Ψ y φ. A continuación se presentan algunas respuestas del arreglo para diferentes casos de direcciones deseadas: En la Figura 5.2 se presenta el diagrama de tiempos típico del sistema: El tiempo de respuesta del sistema, desde que se le da el pulso de Load Desired Pattern (S_L) hasta que se ve el respectivo cambio en las salidas es de 25,7µs, este tiempo determina con que frecuencia se puede redirigir el patrón de radiación hacia una dirección deseada. El pulso de reset, resetea las amplitude y las fases, y lleva todas las salidas a fase cero y amplitud máxima.. Figura 5.2: Diagrama de Tiempos En la gura 5.3a se muestra la respuesta del arreglo para tres casos unidireccionales: φp = 90°,φp = 120°,φp = 41°. En la gura 5.3b se muestra la respuesta del arreglo para. dos casos bidireccionales: φp1 = 90°,φp2 = 120° y φp1 = 41°,φp2 = 139° y en la gura 5.3c se muestra la respuesta del arreglo para el caso en que se apunta a una región determinada entre φp = 60° y φp = 90°. De los casos anteriores se puede concluir que la precisión en la direccionalidad del arreglo depende principalmente del número de muestras que se tomen del patrón de radiación deseado. El aumento de éstas implicaría un mayor uso de los recursos de la FPGA pero.
(45) 37. 5.1 Direccionalidad del arreglo. (a) Respuesta del arreglo para casos unidireccionales. (b) Respuesta del arreglo para casos bidireccionales. (c) Respuesta del arreglo para el caso de una región. Figura 5.3: Respuesta del Arreglo para Diferentes Casos de Direccionalidad.
(46) Capítulo 5: Resultados Previos a la Implementación Hardware y Simulaciones. 38. no representa ningún cambio en la arquitectura. También se puede resaltar que no es necesario apuntar hacia una dirección especíca sino que se pueden mezclar a discreción. En algunos casos se aumenta el tamaño de los Sidelobes, pero este efecto se puede reducir en gran parte si se escoge otro tipo de ventana diferente a la rectangular, como se mencionó en la Subsección 3.2.1.. 5.2. Frecuencia Máxima de Respuesta Para determinar la frecuencia máxima de respuesta del sistema hay dos parámetros que hay que tener el cuenta: El primero es la frecuencia máxima a la que puede funcionar la FPGA, y el segundo, es que es necesario evaluar el impacto que tiene el origen digital de las salidas del arreglo en las fases de las reconstrucciones análogas respectivas. Se encontró que la frecuencia máxima es de 57,514M Hz , según el reporte de tiempos tras la síntesis con XST. La frecuencia máxima que se puede generar con el DDS v5.0 de XSG, teniendo en cuenta que la salida es multiplexada en tiempo, está dada por la ecuación 5.1. Esto implica que la frecuencia máxima para un caso de M = 6 antenas es de 4,79M Hz . Hay que resaltar que esta frecuencia corresponde al caso extremo, determinado. por el teorema de muestreo de Nyquist [1]. f outmax =. f clkmax 2M. (5.1). Teniendo en cuenta el límite máximo de 4,79M Hz , se realizaron simulaciones para determinar el efecto del tratamiento digital de las salidas del arreglo. En éstas se simuló la interferencia de las señales para un receptor situado a un radio r del centro del arreglo, entre 0°≤ φ ≤ 180°. Los pasos principales del algoritmo utilizado son: 1. Cálculo de la distancia desde cada antena hasta un receptor a partir del ángulo φ, el radio r, y las distancias entre antenas d. 2. Cálculo del desfase de cada salida en el punto donde se encuentra el receptor, a partir de las distancias anteriormente calculadas y la longitud de onda de la frecuencia transmitida..
(47) 39. 5.2 Frecuencia Máxima de Respuesta. Figura 5.4: Respuesta del arreglo para diferentes frecuencias con φp = 90° 3. Suma de las ondas con el respectivo desfase calculado anteriormente. 4. Obtención de la amplitud de la componente de la frecuencia deseada por medio de la FFT, simulando un ltro ideal en la recepción. En la Tabla 5.1 se presentan los errores en grados de la dirección del patrón obtenido para diferentes frecuencias por medio del algoritmo anterior, junto con la distorsión armónica respectiva de las salidas. Este error de dirección se muestra más claramente en la Figura 5.4. Éste se debe a que el tiempo de multiplexación de las salidas en el módulo Beamformer se vuelve relevante a frecuencias del orden de la frecuencia del reloj de la FPGA, introduciendo un desfase adicional en cada onda que genera un corrimiento del patrón de radiación. Basado en estos resultados, la frecuencia máxima de funcionamiento del sistema depende de las tolerancias en grados que maneje la aplicación especíca. Tabla 5.1: Error de dirección en grados en función de la frecuencia deseada Frecuencia. Error en grados. Distorsión Armónica. 40kHz 100kHz 400kHz 1M Hz 4M Hz. 0° 0° 1° 1° 9°. 2,26 % 3,03 % 8,99 % 21,91 % 48,64 %.
(48) Capítulo 5: Resultados Previos a la Implementación Hardware y Simulaciones. 40. 5.3. Resultados de la Síntesis Se decidió implementar el diseño en una FPGA Spartan-3 1000k. En la Tabla 5.2 se encuentra el porcentaje utilizado para una implementación con 16 puntos de muestreo y 6 canales de salida. Tabla 5.2: Porcentaje utilizado de una FPGA Spartan-3 1000k para una implementación con 16 puntos de muestreo y 6 canales de salida 4 Input LUTs 18x18 Mults Block RAMs Package - User I/O. Total. % Utilizado. 15360 24 24 173. 16 % 29 % 20 % 41 %. Los porcentajes de uso de los recursos de la FPGA sugieren que la arquitectura diseñada se puede escalar para ampliar las características del sistema. Este espacio extra se puede explotar especialmente en el módulo Weights Generator, buscando la implementación de otro método de diseño de ltros FIR o mejorando el método actualmente implementado, por ejemplo, utilizando otro tipo de ventana con el n de reducir el tamaño de los sidelobes, como se mencionó en la subsección 3.2.1, o tomando mas muestras del patrón de radiación deseado para obtener mayor precisión en la direccionalidad. El espacio extra también se puede utilizar en la ampliación del módulo Beamformer, aunque hay que tener en cuenta que el número de salidas de este bloque inuye directamente en la frecuencia máxima de respuesta del sistema, por lo tanto la ampliación de este bloque está limitada por el tipo de aplicación deseada. Este tema está tratado en la subsección 5.2..
(49) Capítulo 6. Pruebas Hardware Usando Emisión de Ultrasonido 6.1. Restricciones Para las pruebas experimentales se decidió implementar el arreglo utilizando emisores de ultrasonido 400ST/R160. Estos poseen una frecuencia central de 40kHz ± 1kHz y un ángulo de apertura de 55° [15]. Dada la restricción del tamaño físico de los emisores, la mínima distancia que se puede lograr entre ellos es de 1,59λ, tomando la velocidad del sonido como 340m/s. Esta distancia implica la aparición de Grating Lobes (lóbulos no deseados del mismo tamaño que el principal) [2]. En la Figura 6.1 se presenta la simulación para un arreglo de seis antenas apuntando a φp = 90° para el caso lineal estándar y el caso d=1,59λ. Como se puede ver, para este segundo caso, aparecen dos Grating Lobes en φ = 50° y φ = 130° aproximadamente, lo que limita la región sobre la cual se puede trabajar sin obtener réplicas a 40°, delimitada por φ = 70° y φ = 110°. Con 16 muestras, los ángulos φ a los que se puede apuntar, teniendo en cuenta la restricción de d = 1,59λ son: 74°, 76°, 79°, 81°, 83°, 86°, 88°, 90°, 92°, 95°, 97°, 99°, 101°, 104°, 106° y 108°, determinados por la ecuación 3.5. Con las restricciones anteriores, las especicaciones del arreglo son:. 41.
(50) Capítulo 6: Pruebas Hardware Usando Emisión de Ultrasonido. 42. Figura 6.1: Grating Lobes debido al aumento de d/λ Arreglo lineal uniformemente espaciado conformado por seis emisores de ultrasonido 400ST/R160. Muestreo del patrón de radiación deseado en 16 puntos. Frecuencia de emisión de 40kHz. Distancia entre emisores d = 1,59λ, asumiendo la velocidad del sonido como 340m/s. Región de visibilidad sin réplicas entre φ = 70° y φ = 110°. Distancia para pruebas de recepción de 50cm y 85cm.. 6.2. Conguración de XSG para la Síntesis Se utilizó la siguiente conguración del módulo System Generator: Compilation: HDL Netlist Part: Spartan 3 xc3s1000-4ft256 Synthesis tool: XST Hardware description Language: VHDL FPGA clock period (ns): 20.
(51) 43. 6.2 Conguración de XSG para la Síntesis. Clock pin location: T9 Create testbech: check Provide clock enable clear pin: uncheck Simulink system period: 20E-9 Block icon display: Default IOB timing constraint: Data rate, Set FAST attribute En la Tabla 6.1 están los pines utilizados para el Place&Route de las entradas y las salidas, junto con su respectivo nombre en el Spartan 3 Starter Kit Board. Las entradas pares (A2, A4,... A16) se jaron a cero para hacer uso de los slide-switch en el muestreo del patrón de radiación. Para S_L y reset se utilizaron dos push-button. Para las salidas se utilizaron los conectores de expansión. Para una descripción detallada de los pines y puertos remitirse a [16]. IOB pad location {'MSB'... 'LSB'}. Nombre. A1. 'K13'. SW7. A3. 'K14'. SW6. A5. 'J13'. SW5. Entradas. A7. 'J14'. SW4. A9. 'H13'. SW3. A11. 'H14'. SW2. A13. 'G12'. SW1. A15. 'F12'. SW0. S_L. 'M13'. BTN0. reset. 'L14. BTN3 (User Reset). Salidas. Sine_Out1. {'B5','B4','D10','D8','D7','E7','D6','D5'}. A2 Expansion Connector. Sine_Out2. {'E6','C5','C6','C7','C8','C9','A3','A4'}. A2 Expansion Connector. Sine_Out3. {'A5','B7','B8','A9','A10','B12','B13','B14'}. A2 Expansion Connector. Sine_Out4. {'C10','E10','C11','D11','C12','D12','E11','B16'}. B1 Expansion Connector. Sine_Out5. {'L15','K16','H16','G16','F15','E15','D15','C15'}. B1 Expansion Connector. Sine_Out6. {'M6','N6','R7','T7','R10','P10','N11','T3'}. B1 Expansion Connector. Tabla 6.1: Ubicación de las entradas y salidas del sistema en el Spartan 3 Starter Kit Board Las siguientes variables se importaron a Simulink desde el Workspace de Matlab para poder controlar la dirección deseada por medio del vector de muestras del patrón deseado A(1)...A(16) y la frecuencia F desde el archivo main.m (Ver Anexo A.1):.
(52) Capítulo 6: Pruebas Hardware Usando Emisión de Ultrasonido. 44. A(1)...A(16): Muestreo del patrón de radiación. F : Frecuencia de la portadora en M Hz .. Las siguientes variables exportaron desde Simulink al Workspace de Matlab para poder realizar las simulaciones del patrón de radiación generado con las Amplitudes y las Fases calculadas por medio del módulo IFFT_serial. OutP :. Vector que contiene las 6 fases en el tiempo, calculadas por el módulo IFFT.. OutA:. Vector que contiene las 6 amplitudes en el tiempo, calculadas por el módulo. IFFT. Sine_Out : S_L:. Matriz que contiene las 6 salidas de 8 bits en el tiempo.. Variable que contiene la entrada S_L en el tiempo.. time: Tiempo de simulación.. 6.3. Implementación En la Figura 6.2 se muestra una foto del montaje completo. Está compuesto por el Spartan-3 Starter Kit Board [16], la etapa análoga, y el arreglo de emisores de ultrasonido. En la Figura 6.3 se muestra una foto de la PCB que se desarrollo para la etapa análoga del sistema, que está compuesta por 6 etapas análogas individuales. En la Figura C.1 está el archivo .brd desarrollado por medio de Eagle Layout Editor 4.16r2. En la Figura 6.4 se muestra el esquemático de cada una de las etapas análogas individuales. Cada una de estas está compuesta por un conversor digital-análogo, una etapa de amplicación, y una etapa de salida. En la Figura 6.5 se muestra una foto del Spartan-3 Starter Kit Board [16]. Para el muestreo del patrón de radiación se utilizaron los ocho Slide Switches que incluye el Spartan-3 Starter Kit Board, tal que se tuviera control sobre los ángulos: 76°, 81°, 86°, 90°, 95°, 99°, 104° y 108°. Los demás ángulos se jaron a cero. Se utilizaron dos Push Button, uno para el Reset y otro para el Load Desired Pattern..
(53) 45. 6.3 Implementación. Figura 6.2: Montaje Completo para el Arreglo de Ultrasonido.
(54) Capítulo 6: Pruebas Hardware Usando Emisión de Ultrasonido. Figura 6.3: Etapa Análoga. Figura 6.4: Esquemático. 46.
(55) 47. 6.3 Implementación. Figura 6.5: Spartan-3 Starter Kit Board.
(56) Capítulo 6: Pruebas Hardware Usando Emisión de Ultrasonido. 48. 6.4. Toma de datos Para la toma de datos se realizó una calibración de los emisores utilizados, variando la ganancia de la etapa de amplicación individual, para que la amplitud recibida en un receptor a una distancia ja fuera la misma con los seis emisores. Sin embargo no se logró obtener una respuesta exactamente igual en los seis casos, lo que generó una fuente de error debido a que no se tenía un arreglo isotrópico del todo. En la Figura 6.6 se muestra un esquema de el montaje utilizado para la toma de datos. Por medio de una viga pivotada en el centro del arreglo se tomaron datos a 50cm y a 85cm, utilizando un transportador jo al arreglo para determinar el ángulo φ. Se utilizó. un receptor de ultrasonido en el otro extremo de la viga y se realizó una amplicación previa a la toma de datos. Se realizaron dos calibraciones modicando la posición en el arreglo de los emisores con la ganancia mas diferente a la de los demás. En la Tabla 6.2 y en la Tabla 6.3 se presentan los datos tomados. En el primer caso los datos fueron tomados cada 2,5° en el intervalo 70° - 110° y para el segundo caso los datos fueron tomados cada 5° en el intervalo 40° 140°. Los datos presentados son de la amplitud de la onda recibida.. Figura 6.6: Montaje utilizado para la toma de datos.
(57) 49. 6.5 Resultados. Deg. φp = 90°. φp = 95°. φp = 99°. φp = 104°. φp = 108°. φp = 76°. φp = 81°. φp = 86°. 70. 0,6. 0,64. 0,88. 1,92. 1,22. 0,72. 0,82. 1,08. 72,5. 0,84. 0,58. 0,66. 1,48. 1,96. 0,66. 0,94. 1,14. 75. 1,28. 0,56. 0,66. 0,86. 1,88. 1,48. 0,88. 0,78. 77,5. 1,24. 1. 0,72. 0,64. 1,36. 2,28. 0,76. 0,88. 80. 0,74. 1,3. 0,68. 0,56. 0,74. 2,08. 1,46. 0,76. 82,5. 0,86. 1,1. 1,04. 0,6. 0,54. 0,62. 2,14. 0,84. 85. 0,66. 0,86. 1,21. 0,88. 0,58. 0,64. 1,86. 1,74. 87,5. 1,24. 0,96. 0,76. 1,36. 0,6. 0,62. 0,84. 1,9. 90. 2,12. 0,58. 1,1. 1,24. 1,36. 0,58. 0,66. 1,32. 92,5. 1,8. 1,76. 0,7. 0,84. 1,54. 0,76. 0,62. 0,78. 95. 1,22. 2,2. 0,68. 1,12. 1,34. 1,12. 0,64. 0,72. 97,5. 0,8. 1,84. 1,9. 0,74. 0,98. 1,36. 0,66. 0,76. 100. 0,72. 1,3. 2,2. 0,96. 1,1. 0,96. 1,3. 0,52. 102,5. 0,64. 0,8. 1,58. 1,88. 0,88. 0,76. 1,44. 0,62. 105. 0,66. 0,78. 1,18. 1,96. 0,78. 1,08. 1,12. 1,2. 107,5. 0,88. 0,62. 0,7. 1,42. 1,74. 0,7. 1,12. 1,28. Tabla 6.2: Primera Toma de Datos. 6.5. Resultados De los resultados en la Tabla 6.2 se puede resaltar que el máximo experimental siempre coincidió con el máximo teórico. El problema en estos casos es que aparece un sidelobe consideráblemente mas grande de lo esperado, que se debe a la calibración de los emisores. Es por esto que se realizó un reposicionamiento y una recalibración del arreglo. Los nuevos resultados se presentan en la Tabla 6.3. En la Figura 6.7a se muestran los resultados obtenidos a 50cm y a 85cm comparados con la respuesta ideal, para un φp = 90°. Para obtener estas grácas se muestreó el patrón de radiación cada 5° y se interpoló los datos de la Tabla 6.3 utilizando la función interp1(...'splines') de Matlab. En las Figuras 6.7b y 6.7c se presentan otros dos casos, para φp = 81° y φp = 104°. En la Tabla 6.4 se presenta la raíz cuadrada del error cuadrático medio para diferentes casos de direccionalidad. Para estos cálculos se compararon las amplitudes teórica y.
(58) 50. Capítulo 6: Pruebas Hardware Usando Emisión de Ultrasonido. Deg. φp = 90°. φp = 90°. φp = 99°. 40. 1,08. 0,42. 0,44. 45. 0,82. 0,88. 50. 1,26. 55. φp = 81°. φp = 81°. φp = 104°. 1,6. 1,36. 0,56. 0,54. 0,6. 0,94. 0,34. 1,2. 0,68. 0,66. 0,48. 0,64. 0,88. 0,86. 0,6. 0,66. 0,54. 0,58. 60. 0,54. 0,52. 1,38. 0,7. 0,46. 0,7. 65. 0,66. 0,64. 1,287. 1,98. 0,74. 1,48. 70. 0,46. 0,48. 0,42. 1,07. 0,8. 1,46. 75. 0,72. 0,62. 0,62. 0,46. 0,48. 0,4. 80. 0,86. 0,74. 0,5. 2,28. 1,96. 0,62. 85. 0,98. 0,84. 0,42. 1,06. 1,22. 0,58. 90. 1,7. 1,6. 1,06. 0,46. 0,68. 0,46. 95. 0,64. 0,74. 1,18. 0,54. 0,52. 0,96. 100. 0,88. 0,66. 1,68. 1,98. 0,7. 1,36. 105. 0,46. 0,38. 0,74. 1,1. 0,56. 1,4. 110. 0,72. 0,72. 0,52. 1,16. 0,7. 0,82. 115. 0,64. 0,42. 0,42. 1,6. 1,22. 0,48. 120. 0,66. 0,54. 0,78. 1,08. 1,12. 0,36. 125. 0,9. 0,74. 0,54. 1,2. 0,54. 0,64. 130. 0,98. 0,92. 0,82. 0,66. 0,58. 0,34. 135. 0,88. 0,72. 0,42. 0,98. 0,38. 0,9. 140. 0,68. 0,56. 0,8. 0,66. 0,44. 0,6. y. 104°. Tabla 6.3: Segunda Toma de Datos experimental, normalizadas al cuadrado, cada 5° en el intervalo entre 70° y 110°. Los errores altos en el patrón de radiación obtenido se deben principalmente a pequeños corrimientos en φ del patrón obtenido(ej. φp = 86° y φp = 104°), causados por las diferencias entre las respuestas individuales de cada emisor y a la dicultad en lograr un posicionamiento preciso de los emisores en el arreglo. Sin embargo, los resultados obtenidos fueron buenos, logrando RMSE en la amplitud normalizada al cuadrado de hasta 0,043 para el caso φp = 90° a 85cm. Uno de los principales factores que determinan el desempeño del arreglo es su estructura física. En el arreglo implementado se encontró que el patrón de radiación resultante es altamente sensible a movimientos de un emisor con respecto a los demás, por lo que.
(59) 51. 6.5 Resultados. (a) Resultados para. φp = 90°. (b) Resultados para. φp = 81°. (c) Resultados para. φp = 104°. Figura 6.7: Respuesta Experimental del Arreglo.
(60) Capítulo 6: Pruebas Hardware Usando Emisión de Ultrasonido. 52. Tabla 6.4: Raíz Cuadrada del Error Cuadrático Medio (RMSE) para Diferentes Casos de Direccionalidad Dirección. φp = 90° a 50cm φp = 90° a 85cm φp = 81° a 50cm φp = 86° a 50cm φp = 95° a 50cm φp = 99° a 50cm φp = 104° a 50cm φp = 81° y φp = 104° a 50cm. RMSE. 0, 0722 0, 043 0, 0357 0, 1931 0, 116 0, 0955 0, 2789 0, 2563. hay que tomar especial cuidado en su calibración y posicionamiento físico para evitar uctuaciones en la forma obtenida..
(61) Capítulo 7. Conclusiones y Trabajos Futuros Se logró diseñar e implementar un Beamformer capaz de dirigir su patrón de radiación en la dimensión φ, con capacidad de direccionalidad múltiple (unidireccional o multidireccional), determinado por el número de muestras que se tomen del patrón de radiación deseado. Para probar su desempeño experimental se desarrollo un sistema de prueba basado en transmisión de ultrasonido por medio de un arreglo de seis emisores, a una frecuencia de 40kHz . Para estas pruebas se utilizó un muestreo del patrón de radiación deseado en 16 puntos. Los resultados obtenidos fueron satisfactorios, ya que se obtuvo una respuesta acorde a las simulaciones, donde los principales errores que se obtuvieron fueron pequeños corrimientos en φ del lóbulo principal, que se deben principalmente a la dicultad que se tuvo en lograr un montaje preciso de los emisores en el arreglo y de las diferencias entre las características de los emisores individuales. Para un futuro análisis de comportamiento del Beamformer se plantea diseñar un sistema de prueba basado en transmisión de radiofrecuencia, utilizando antenas omnidireccionales separadas una distancia d = λ/2, con el n de poder obtener direccionalidad en todo el rango entre 0°≤ φ ≤ 180°. Se recomienda que la frecuencia utilizada esté en el rango de kHz , para evitar errores de corrimiento en φ y distorsiones armónicas altas. Teniendo en cuenta los recursos extra de la FPGA utilizada y el desempeño logrado, hay algunas modicaciones que se pueden hacer con el n de mejorar las características de la respuesta. Por un lado está el módulo Weights Generator, éste puede ser mejorado 53.
(62) Capítulo 7: Conclusiones y Trabajos Futuros. 54. utilizado una ventana diferente para truncar la IFFT del patrón de radiación muestreado, con el n de reducir el tamaño de los Sidelobes. Es posible tomar un número mayor de muestras del patrón de radiación para obtener mayor direccionalidad, adicionalmente se puede pensar en realizar el muestreo por medio de un módulo de mapeo más complejo que incluya regiones y amplitudes. En el trabajo de Aik F. Eric [17], se analizan los resultados del uso de diferentes métodos de mapeo del patrón de radiación deseado. El reciente uso de algoritmos de optimización para beamformers transmisores también puede ser tomado en cuenta en el aprovechamiento de los recursos de la FPGA. En el trabajo de Mats Bengtsson [18] se presentan varias referencias a los estudios en este tema..
(63) Anexo A. Código en Matlab A.1. main clc close all %clear %% definición de variables %phi=[90 92 95 97 99 101 104 106 108 74 76 79 81 83 86 88] d=0.0135 %phi=[90 97 105 112 120 129 139 151 180 29 41 51 60 68 76 83] d=lambda/2 A= [0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0]; %Muestreo en Frecuencia %n= [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16] índices %n2= [1 2 3 4 5 6 7 8 ]; índices 2 r=0.5; f=4E6; F=f/1E6; v=350; lambda=v/f; %d=0.0135; d=lambda/2; L=5000; Fs=1/20E−9; NFFT=2^20;. % % % % % % % % % %. Radio en m Frecuencia en Hz Frecuencia en MHz Velocidad de propagación del sonido 340 m/s Longitud de onda Distancia entre antenas Distancia entre antenas para un arreglo lineal estandar # de Muestras para la supersposición Frecuencia de muestreo para la superposición 50MHz # puntos de la FFT para la superposición 50MHz. %% simulacion sim('Completo_V5',200E−6); tiempo=Sine_Out.time; salidas=Sine_Out.signals.values; Xn_exp=pol(OutA(2,:),OutP(2,:)); % Quita el offset de (128)_2 s1=salidas(:,1)−128; s2=salidas(:,2)−128; s3=salidas(:,3)−128; s4=salidas(:,4)−128;. 55.
Documento similar