04/19/23 EE7780 Array Signal Processing clase p1c1
1
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
EE7780 Array Signal Processing
04/19/23 EE7780 Array Signal Processing clase p1c1
2
Introducción
2
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
3
Profesor: Dr. Luis M. VicenteOficina: 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 7815Correo electrónico : [email protected] 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.
3
04/19/23 EE7780 Array Signal Processing clase p1c1
4
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.
4
04/19/23 EE7780 Array Signal Processing clase p1c1
5
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.
5
04/19/23 EE7780 Array Signal Processing clase p1c1
6
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 [email protected] 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.
6
04/19/23 EE7780 Array Signal Processing clase p1c1
7
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).
7
04/19/23 EE7780 Array Signal Processing clase p1c1
8
Introducción ASP
8
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)
04/19/23 EE7780 Array Signal Processing clase p1c1
9
Introducción ASP
9
Coordenadas cartesianas y esféricas en 3-D.
04/19/23 EE7780 Array Signal Processing clase p1c1
10
Introducción ASP
10
Coordenadas esféricas en 3-D.: definicionesEl ángulo sobre el plano x-y se llama ángulo de azimuth p.
El ángulo de altura, que es medido desde el eje z+ se llama ángulo polar, de elevación o de altura p.
Cualquier punto en el eje x-y tiene un ángulo polar de =/2
El eje x tiene como ángulos =/2 y =0.
04/19/23 EE7780 Array Signal Processing clase p1c1
11
Introducción ASP
11
Relación coordenadas cartesianas y esféricas en 3-D.
04/19/23 EE7780 Array Signal Processing clase p1c1
12
Introducción ASP
12
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 :
04/19/23 EE7780 Array Signal Processing clase p1c1
13
Introducción ASP
13
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 . 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.
04/19/23 EE7780 Array Signal Processing clase p1c1
14
Introducción ASP
14
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 2.
Otra definicion indica que far field se produce a distancias mayores que 2D2/. Donde D es la apertura (dimensión máxima) del array o antena.
04/19/23 EE7780 Array Signal Processing clase p1c1
15
Introducción ASP
15
El campo medido en un sensor se puede escribir como:
En este caso =/c es la magnitud del wavenumber.Los dos primeros factores son independientes de la posición
del sensor.
04/19/23 EE7780 Array Signal Processing clase p1c1
16
Introducción ASP
16
El campo medido en K sensores se puede agrupar en un vector de dimensiones (Kx1):
El término A(t)ejt se denomina s(t).El ultimo termino se agrupa en el steering vector:
04/19/23 EE7780 Array Signal Processing clase p1c1
17
Introducción ASP
17
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:
04/19/23 EE7780 Array Signal Processing clase p1c1
18
Introducción ASP
18
En general puede haber l interferencias que provienen de las direcciones al y con steering vectors il. El campo debido a cada interferencia es:
04/19/23 EE7780 Array Signal Processing clase p1c1
19
Introducción ASP
19
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
20
Introducción ASP
20
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:
04/19/23 EE7780 Array Signal Processing clase p1c1
21
Introducción ASP
21
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)=vH n(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)
04/19/23 EE7780 Array Signal Processing clase p1c1
22
Introducción ASP
22
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 il es 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.
04/19/23 EE7780 Array Signal Processing clase p1c1
23
Introducción ASP
23
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 t1
pero 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.
04/19/23 EE7780 Array Signal Processing clase p1c1
24
Problema1 semana 1
24
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)
04/19/23 EE7780 Array Signal Processing clase p1c1
25
Problema 1 semana 1
25
Código ejemplo:
04/19/23 EE7780 Array Signal Processing clase p1c1
26
Problema 1 semana 1
26
Código ejemplo (cont):
04/19/23 EE7780 Array Signal Processing clase p1c1
27
Geometría de Arrays
27
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≤/2 donde es la longitud de onda mínima igual a =c/f.
04/19/23 EE7780 Array Signal Processing clase p1c1
28
Geometría de Arrays
28
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
29
Linear Arrays
29
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=/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.
04/19/23 EE7780 Array Signal Processing clase p1c1
30
Linear Arrays
30
Geometría de un SLA:
04/19/23 EE7780 Array Signal Processing clase p1c1
31
Linear Arrays
31
Steering vector de un SLA: usando la expresión general del steering vector:
Particularizando para:
Obtenemos:
04/19/23 EE7780 Array Signal Processing clase p1c1
32
Linear Arrays
32
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
33
Linear Arrays
33
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
34
Linear Arrays
34
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
35
Circular Arrays
35
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
36
Circular Arrays
36
Geometría de un UCA:
04/19/23 EE7780 Array Signal Processing clase p1c1
37
Circular Arrays
37
Steering vector de un UCA: usando la expresión general del steering vector:
Particularizando para:
Obtenemos:
04/19/23 EE7780 Array Signal Processing clase p1c1
38
Circular Arrays
38
DOA ambiguity: Debido a la simetría del array circular, existen dos ángulos de elevación que producen el mismo steering vector, a saber up y down = up 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 up y otra por debajo del array con un ángulo polar down = up, el array no las distingue y piensa que es la misma señal.
04/19/23 EE7780 Array Signal Processing clase p1c1
39
Circular Arrays
39
El array circular tiene una cobertura de 360o en azimuth y 180o en elevación (de –/2 a /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.
04/19/23 EE7780 Array Signal Processing clase p1c1
40
Spherical Arrays
40
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
41
Spherical Arrays
41
Geometría de un SA:
04/19/23 EE7780 Array Signal Processing clase p1c1
42
Spherical Arrays
42
Steering vector de un SA: usando la expresión general del steering vector:
Particularizando para:
Obtenemos:
04/19/23 EE7780 Array Signal Processing clase p1c1
43
Spherical Arrays
43
DOA ambiguity: El SA no tiene ningún ángulo de ambiguedad.
04/19/23 EE7780 Array Signal Processing clase p1c1
44
Spherical Arrays
44
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.
04/19/23 EE7780 Array Signal Processing clase p1c1
45
Problema 2 semana 1
45
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).
04/19/23 EE7780 Array Signal Processing clase p1c1
46
Problema 2 semana 1
46
Código ejemplo:
04/19/23 EE7780 Array Signal Processing clase p1c1
47
Problema 3 semana 1
47
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 = /2 y = /3 .
d) Obtener el steering vector si = /2 y = 2/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.
04/19/23 EE7780 Array Signal Processing clase p1c1
48
Problema 3 semana 1
48
Código ejemplo:
04/19/23 EE7780 Array Signal Processing clase p1c1
4949
Fin de la clase