490 likes | 658 Views
EE7780 Array Signal Processing. Class p1c1: Introducción del curso. Entrega prontuarios, reglas de clase, proyectos y exámenes. Primera clase: Introducción a ASP, definiciones y términos. Problemas para la primera semana. 1. Introducción.
E N D
EE7780 Array Signal Processing Class p1c1: Introducción del curso. Entrega prontuarios, reglas de clase, proyectos y exámenes. Primera clase: Introducción a ASP, definiciones y términos. Problemas para la primera semana. EE7780 Array Signal Processing clase p1c1 1
Introducción • Entrega prontuarios, reglas de clase, exámenes, asignaciones y proyectos. Clase p1c1 • Introducción a ASP, definiciones y términos. • Problemas para la primera semana. EE7780 Array Signal Processing clase p1c1 2
Profesor: Dr. Luis M. Vicente Oficina: DSP Lab L 308B (dentro del laboratório de DSP) Horas de oficina: 3:00 – 6:30 PM (lunes) Teléfono: 787 622 8000 - ext: 340 Fax: 787 760 7815 Correo electrónico : lvicente@pupr.edu Internet: http://www.lmvicente.com Prerequisitos Hablar con el coordinador. Libros de Texto Dr. Vicente Thesis. H. L. Van Trees, Optimum Array Processing: Part IV of Detection, Estimation and Modulation Theory. New York, NY: Wiley, 2002. EE7780 Array Signal Processing clase p1c1 3
Referencias bibliográficas: D. G. Manolakis, V. K. Ingle, and S. M. Kogon, Statistical and Adaptive Signal Processing. Boston, MA: McGraw-Hill, 2000. J. Li and P. Stoica, Robust Adaptive Beamforming. Hoboken, NJ: Wiley, 2006. B. Widrow and S. D. Stearns Adaptive signal processing, Englewood Cliffs, NJ: Prentice-Hall, 1985. EE7780 Array Signal Processing clase p1c1 4
Formato de examen: Take home. Examen 1: 25% Examen 2: 25% Problemas semanales: 50% (se darán varios problemas cada semana que de deben entregar el lunes de la siguiente semana). Asistencia virtual: 10% (penalización). El estudiante deberá confirmar por e-mail cada semana que ha estudiado las notas y el vídeo antes del viernes para así poder completar los problemas semanales. Si no se recibe un e-mail del estudiante antes del jueves 11:59pm se apuntará una falta de asisténcia. A las 2 faltas de asistencia el estudiante perderá un 10% de la nota final. EE7780 Array Signal Processing clase p1c1 5
Reglas del curso Para enviar notificaciones necesito un e-mail con una dirección que incluya de algún modo su nombre y apellido (por ejemplo nightrider@hotmail.com no es muy recomendable). Los mensajes deberán titularse (subject) EE7780 nombre apellido – (motivo del e-mail). Así evitaremos confusiones innecesarias. El estudiante debe estudiar las notas de clase y los videos de clase cada semana ántes del viernes, deberá enviar un e-mail al profesor confirmandolo para que el profesor le apunte la asistencia virtual. El estudiante debe hacer los problemas de la semana y entregarlos antes o el lunes de la siguiente semana. No se admitirán trabajos despues de las 11:59pm los lunes. Las fechas oficiales serán expuestas en el calendario del curso de la página web y en Blackboard (BB). Los exámenes serán para hacer en casa. Sigan el código de honor. El estudiante es responsable de leer todos los anuncios expuestos en BB, por favor activen su cuenta en BB Enterprise. EE7780 Array Signal Processing clase p1c1 6
Objetivos: Los estudiantes deben familiarizarse con los siguientes temas: • Descripción de un sistema general de Array Processing. • Diseño de linear, planar, circular y arrays esféricos. Técnicas de beamformers determinísticos y estadísticos. • Direction of arrival estimación (DOA). • Programación de software con Matlab. Temas: • Propagación de señales en espacio y tiempo, campos cercanos y lejanos (near and far field). • Geometría de arrays. • Narrowband/Broadband beamforming. • Element space and beamspace beamformers. • Statistical beamformers. • Partial adaptive beamforming. • Robust beamforming y (DOA). EE7780 Array Signal Processing clase p1c1 7
Introducción ASP • Introducción a ASP, definiciones y términos. • Problemas para la primera semana. • Nomenclatura: • a : número escalar. • a : vector de dimensiones (Kx1) • A : matriz de dimensiones (MxN) EE7780 Array Signal Processing clase p1c1 8
Introducción ASP • Coordenadas cartesianas y esféricas en 3-D. EE7780 Array Signal Processing clase p1c1 9
Introducción ASP • Coordenadas esféricas en 3-D.: definiciones • El ángulo sobre el plano x-y se llama ángulo de azimuth fp. • El ángulo de altura, que es medido desde el eje z+ se llama ángulo polar, de elevación o de altura qp. • Cualquier punto en el eje x-y tiene un ángulo polar de q=p/2 • El eje x tiene como ángulos q=p/2 y f=0. EE7780 Array Signal Processing clase p1c1 10
Introducción ASP • Relación coordenadas cartesianas y esféricas en 3-D. EE7780 Array Signal Processing clase p1c1 11
Introducción ASP • Ecuacion de onda y solución: • El campo medido en un punto p al instante t es: • Ecuación de onda que se transmite en un medio isotrópico a una velocidad c: • Solución a señal monocromática o narrow-band de frecuencia angular w: EE7780 Array Signal Processing clase p1c1 12
Introducción ASP • Definiciones para comprender: • Wavenumber vector: • vector DOA o dirección de la onda: • A(t) es la amplitud compleja cuya variación es lenta con respecto a la frecuencia angular de la onda w. En unos casos es la amplitud de la señal interés (SOI) y en otros la amplitud de la interferencia que debemos eliminar. Esto depende de la dirección de procedencia de la onda a. EE7780 Array Signal Processing clase p1c1 13
Introducción ASP • Campos cercanos y lejanos (near y far field) • Una onda medida no muy lejos de la fuente de energía se dice que se mide en campo cercano. En ese caso A(t) es diferente en cada sensor, debido a que se produce atenuación de la onda entre sensores. • Una onda medida lejos de la fuente de energía se dice que se mide en campo lejano. A(t) es considerada constante en cada sensor, ya que la atenuación de la onda entre sensores es despreciable. • En antenas campo lejano se produce a distancias mayores que 2l. • Otra definicion indica que far field se produce a distancias mayores que 2D2/l. Donde D es la apertura (dimensión máxima) del array o antena. EE7780 Array Signal Processing clase p1c1 14
Introducción ASP • El campo medido en un sensor se puede escribir como: • En este caso k=w/c es la magnitud del wavenumber. • Los dos primeros factores son independientes de la posición del sensor. EE7780 Array Signal Processing clase p1c1 15
Introducción ASP • El campo medido en K sensores se puede agrupar en un vector de dimensiones (Kx1): • El término A(t)ejwt se denomina s(t). • El ultimo termino se agrupa en el steering vector: EE7780 Array Signal Processing clase p1c1 16
Introducción ASP • El steering vector es uno de los conceptos más importantes en array processing. Cada señal que viene de diferente dirección tiene un steering vector diferente. • En array processing habrá una señal de interés SOI con DOA a0 y con un steering vector s0. El campo medido en el array es: EE7780 Array Signal Processing clase p1c1 17
Introducción ASP • En general puede haber l interferencias que provienen de las direcciones al y con steering vectors il. El campo debido a cada interferencia es: EE7780 Array Signal Processing clase p1c1 18
Introducción ASP • Aparte de SOI e interferencias, hay siempre ruido uncorrelado o termal en cada sensor. El ruido en todos los sensores se agrupa en un vector de ruido n(t) donde para cada t las amplitudes de n son random variables. • La señal que llega al array está compuesta de SOI, interferencias y ruido. La expresión general es: • Esta expresión es general. La geometría del array está implicita en las expresiones de los steering vectors. Cada array tiene diferentes expresiones de steering vectors. EE7780 Array Signal Processing clase p1c1 19
Introducción ASP • El objetivo de array signal processing es obtener la información de la SOI que está en s(t). Para ello se aplica un vector de pesos v a la señal de entrada, obteniendo la salida del beamformer. • donde el vector de pesos es: • La expresión equivalente sin usar vectores es: EE7780 Array Signal Processing clase p1c1 20
Introducción ASP • La salida del beamformer se puede descomponer en la salida de la SOI, las interferencias y el ruido: • zs(t)=s(t)vHs0 • . • zn(t)=vHn(t) • El objetivo es eliminar la interferencia y el ruido y obtener z(t)=s(t) • Para ello se deben satisfacer tres condiciones: • zs(t)= s(t)vHs0=s(t), o lo que es lo mismo vHs0=1. • 0= zi(t) • 0= zn(t) EE7780 Array Signal Processing clase p1c1 21
Introducción ASP • La primera condición es denominada Unity Gain SOI response. Se puede observar que hay infinitas posibilidades de valores de v que logran esta condición, ya que hay una ecuación y K incógnitas (los K valores de v). • La segunda condición se satisface cuando los vectores v y il son ortogonales. Nótese que la operación vH iles un producto interno de vectores, y es cero cuando son ortogonales. Nótese que esta condición no depende de la amplitud de la interferencia, solamente de su steering vector. EE7780 Array Signal Processing clase p1c1 22
Introducción ASP • La tercera condición no se cumple en general, ya que n(t) es un vector de valores aleatorios en cada t por tanto para un determinado v puede que se cumpla en un instante t1pero no al siguiente instante t2. Lo único que se puede hacer es encontrar la solución para v que minimize la varianza o potencia del ruido a la salida del beamformer. EE7780 Array Signal Processing clase p1c1 23
Problema1 semana 1 • Implementar un programa de Matlab para generar una señal monocromática o narrow-band de frecuencia fbin=3kHz. donde la amplitud es una señal senoidal de frecuencia fA(t)=300Hz con un DC offset de 1V. La señal debe tener 50msec de duración. • Debido a que en las computadoras no se pueden generar señales analógicas, vamos a generar una señal digital con periodo de muestreo/sampling de fs=44.1kHz. • Se adjunta un ejemplo con otros valores de frecuencias, etc. Usted debe modificar los valores en el código para satisfacer los requisitos del problema y añadir comentarios. • Crear una función [st]=fCreateNBSig(fs,Tlength,fAt,fbin) EE7780 Array Signal Processing clase p1c1 24
Problema 1 semana 1 • Código ejemplo: EE7780 Array Signal Processing clase p1c1 25
Problema 1 semana 1 • Código ejemplo (cont): EE7780 Array Signal Processing clase p1c1 26
Geometría de Arrays • Consideraciones de diseño: para diseñar arrays, necesitamos seleccionar la geometría, la frecuencia de trabajo y la resolución espacial que queremos. Con estas condiciones obtendremos la longitud del array y el número de elementos. • Geometría: lineal, circular, esférica, etc. La geometría es seleccionada dependiendo de la aplicación. Por ejemplo, en aplicaciones de sonar para localizar submarinos, se ha usado el array lineal. • Frecuencia de trabajo: se necesita para determinar la distáncia máxima entre elementos. Se debe satisfacer el criterio spacial de Nyquist que dicta d≤l/2 donde l es la longitud de onda mínima igual a l=c/f. EE7780 Array Signal Processing clase p1c1 27
Geometría de Arrays • La resolución espacial es inversamente proporcional a la separación mínima entre dos señales que el array puede diferenciar. Para obtener mayor resolución espacial (y poder resolver dos señales que estén cerca) el array deberá tener una apertura mayor. La apertura se define como la extensión del array. • Es de tener en cuenta que a mayor apertura, debemos tener más elementos, ya que la distancia máxima entre elementos es dictada por el criterio de Nyquist. Por un lado queremos una apertura máxima, pero por otro lado queremos el mínimo número de elementos por rapidez y menor número de cálculos. Este compromiso debe ser tomado en cuenta al diseñar un array. EE7780 Array Signal Processing clase p1c1 28
Linear Arrays • Arrays lineales: Los elementos están distribuidos en una línea. Si la distancia es constante se denomina ULA (Uniform Linear Array). Si la distancia es d=l/2 se denomina SLA (Standard Linear Array). • La posición de los elementos en un y-ULA construido sobre el eje y centrado en el origen tiene como ecuación: • Para un array de 3 elementos, las posiciones serían: p1=[0,-d,0]T, p2=[0,0,0]T, p3=[0, d,0]T. Es decir, el primer elemento está d a la izquierda del origen ,el segundo elemento en el origen, y el tercero a la derecha del origen con distancia d. EE7780 Array Signal Processing clase p1c1 29
Linear Arrays • Geometría de un SLA: EE7780 Array Signal Processing clase p1c1 30
Linear Arrays • Steering vector de un SLA: usando la expresión general del steering vector: • Particularizando para: • Obtenemos: EE7780 Array Signal Processing clase p1c1 31
Linear Arrays • Angulo de Cono y DOA ambiguity: si definimos: • esto es llamado el ángulo de cono. La siguiente figura lo muestra: • Cualquier señal procedente cualquier parte del cono es tratada como si fuera la misma señal. Esto es debido a la simetría cilíndrica que presenta el LA. EE7780 Array Signal Processing clase p1c1 32
Linear Arrays • El cono de ambigüedad limita el array a una cubierta espacial (coverage) de 180o. Por tanto el LA es usado para 2-D beamforming siempre que las señales procedan de un rango inferior o igual a 180o. Para 3-D beamforming se usan los arrays circulares o esféricos. • Debido a la estructura del ULA, el delay que sufre la señal en cada sensor es constante (Vandermonde structure), por tanto se puede usar la transformada discreta de Fourier (DTFT) para calcular el beampattern, donde el eje de frecuencias es cambiado por el eje de ángulo de cono. EE7780 Array Signal Processing clase p1c1 33
Linear Arrays • Esta propiedad de los ULA simplifica mucho el uso de algoritmos de beamforming, como el Dolph-Chebishev tapered beamforming y diversos algoritmos de estimación de DOA. • Es por ello que a veces se intenta “linearizar” otros tipos de array como los circulares o esféricos. El proceso de “linearizar” otros tipos de array llama Virtual Array Processing. EE7780 Array Signal Processing clase p1c1 34
Circular Arrays • Arrays circulares: Los elementos están distribuidos alrededor de un círculo de radio r. Si la distancia es constante se denomina UCA (Uniform Circular Array). • La posición de los elementos tiene como ecuación: • Para un array de 4 elementos, las posiciones serían: p1=[r,0,0]T, p2=[0, r,0]T, p3=[-r, 0,0]T y p4=[0, -r,0]T. Es decir, el primer elemento está en el eje positivo x a una distancia r del centro, el segundo en el eje positivo y a r del centro y sucesivamente. EE7780 Array Signal Processing clase p1c1 35
Circular Arrays • Geometría de un UCA: EE7780 Array Signal Processing clase p1c1 36
Circular Arrays • Steering vector de un UCA: usando la expresión general del steering vector: • Particularizando para: • Obtenemos: EE7780 Array Signal Processing clase p1c1 37
Circular Arrays • DOA ambiguity: Debido a la simetría del array circular, existen dos ángulos de elevación que producen el mismo steering vector, a saber qup y qdown = p-qup Debido a este fenómeno, el CA se dice que tiene dos ángulos de ambigüedad. • Si dos señales llegan al array, una por encima del array con un ángulo qup y otra por debajo del array con un ángulo polar qdown = p-qup, el array no las distingue y piensa que es la misma señal. EE7780 Array Signal Processing clase p1c1 38
Circular Arrays • El array circular tiene una cobertura de 360o en azimuth y 180o en elevación (de –p/2 a p/2). Por tanto el CA es usado para 2-D o 3-D beamforming siempre que en éste último caso las señales lleguen por arriba o por abajo solamente. Para eliminar totalmente la ambigüedad se usan los arrays esféricos. EE7780 Array Signal Processing clase p1c1 39
Spherical Arrays • Arrays esféricos: Los elementos están distribuidos alrededor de una esfera de radio r. Existen varias maneras de colocar los elementos del array (equiangle, Gaussian sampling, etc). • La posición de los elementos tiene como ecuación: • Para un array de 6 elementos, las posiciones “equiangle” serían: p1=[0,0, r]T, p2=[r,0,0]T , p3=[0, r,0]T, p4=[-r, 0,0]T ,p5=[0, -r,0]T y p6=[0,0, -r]T. Es decir, el primer elemento está en el eje positivo z a una distancia r del centro, el segundo en el eje positivo x a r del centro y sucesivamente. EE7780 Array Signal Processing clase p1c1 40
Spherical Arrays • Geometría de un SA: EE7780 Array Signal Processing clase p1c1 41
Spherical Arrays • Steering vector de un SA: usando la expresión general del steering vector: • Particularizando para: • Obtenemos: EE7780 Array Signal Processing clase p1c1 42
Spherical Arrays • DOA ambiguity: El SA no tiene ningún ángulo de ambiguedad. EE7780 Array Signal Processing clase p1c1 43
Spherical Arrays • El array esférico tiene una cobertura de 360o tanto en azimuth como en elevacion. Por tanto el SA es usado para 3-D beamforming. EE7780 Array Signal Processing clase p1c1 44
Problema 2 semana 1 • Implementar un programa de Matlab para construir un y-SLA de 11 elementos. La frecuencia de trabajo del array es fbin=2kHz. • Obtener la distancia entre elementos d. • Obtener la posición de los elementos p. • Modificar el código de manera que sea una función de Matlab con nombre [p,d]=fSLA(K,fbin) donde K es el número de elementos del array y fbin la frecuencia de trabajo. Como parámetros de salida la función deberá generar p (coordenadas de los sensores en una matriz cuyas columnas sean las coordenadas xyz de cada sensor) y d (distancia entre sensores). EE7780 Array Signal Processing clase p1c1 45
Problema 2 semana 1 • Código ejemplo: EE7780 Array Signal Processing clase p1c1 46
Problema 3 semana 1 • Implementar un programa de Matlab que use la función [p,d]=fSLA(5,2e3) para obtener p. • a) Obtener el steering vector para una señal que proceda del eje +z. (calcule primero el vector de llegada a). • b) Obtener el steering vector para una señal procedente del eje +x. Comparar con el anterior. Que ha pasado? • c) Obtener el steering vector para una señal con q = p/2 y f = p/3 . • d) Obtener el steering vector si q = p/2 y f = 2p/3. Comparar. • e) Por que la fase del elemento central es siempre cero? • f) Por que cuando la señal viene del eje y, el steering vector es [1, -1, 1, -1, 1]T. Explíquelo con un dibujo. EE7780 Array Signal Processing clase p1c1 47
Problema 3 semana 1 • Código ejemplo: EE7780 Array Signal Processing clase p1c1 48
Fin de la clase EE7780 Array Signal Processing clase p1c1 49