Página 1 de 1 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Introducción: Los sistemas adaptativos tienen particularidades respecto a su comportamiento, principalmente - Varían sus características en el tiempo, ya sea por variaciones en la entrada u otra perturbación externa. Se auto-ajustan ajustan para lograr una performance performa específica Esto implica que los sistemas adaptativos son no lineales.. La figura 1 muestra el concepto de un sistema no lineal. En un sistema no lineal, al combinarse las entradas la salida no es necesariamente una combinación de las salidas que se producirían prod las entradas individuales. Figura 1 – Sistema no lineal Los sistemas adaptativos presentan las siguientes características - Se adaptan automáticamente a condiciones y/o requerimientos cambiantes (no-estacionarias) (no Requieren un proceso de “entrenamiento” “entren No necesitan un proceso de síntesis riguroso. Se “auto-diseñan” “auto Después de entrenarse para un número de señales o patrones acotado, pueden comportarse relativamente bien ante nuevos patrones. Pueden repararse a si mismo, adaptándose por ejemplo a la falla de una de sus partes Son más complejos de analizar que los sistemas no-adaptativos. no Luego de un período de adaptación, y si las señales / patrones de entrada no cambian, se los puede considerar “sistemas adaptativos lineales”. Clasificación: Según la forma en que se realiza la adaptación los sistemas adaptativos se clasifican en sistemas a lazo abierto y sistemas a lazo cerrado. Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 2 de 2 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS La figura 2 muestra un sistema adaptativo a lazo abierto. En este caso, La adaptación se hace basada en las características de la señal de entrada y “otras” señales como por ejemplo características del medio ambiente. Figura 2 – Sistema adaptativo a lazo abierto a) Concepto b) Esquema La figura 3 muestra un sistema adaptativo a lazo cerrado. La adaptación se realiza basada en un criterio de performance esperado para la salida (“Performance feedback”). El operador puede no conocer el sistema. Este esquema es el máss usado usado. Las principales ventajas del sistema a lazo cerrado son - No se requiere conocer el sistema. Los componentes del sistema pueden variar físicamente. Se adaptan a fallas de componentes del sistema, adaptando las componentes que funcionan para lograr optima performance. Mayor confiabilidad del sistema Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 3 de 3 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Figura 3 – Sistema adaptativo a lazo cerrado. a) Concepto Concepto b) Esquema Por otro lado las desventajas son: - Pueden tener varias soluciones “optimas” Pueden ser inestables (como los sistemas de control a lazo cerrado) Pueden divergerr en lugar de converger luego del proceso de aprendizaje. Sistemas adaptativos a lazo cerrado: La mayor utilidad de los sistemas adaptativos se da cuando funcionan a lazo cerrado. La figura 4 muestra el esquema general de un sistema adaptativo a lazo cerrado En la figura se ven las principales señales del sistema x: entrada y: salida d: salida deseada (other data) e: error Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 4 de 4 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Figura 4 – Sistema adaptativo a lazo cerrado con todas sus señales. Dependiendo como se toman las entradas al sistema adaptativo se logran diferentes efectos, como se muestra en la figura 5, a saber: a) Predicción: El sistema debe “predecir” el comportamiento de una señal,, produciendo una salida y lo más parecida posible a la entrada entrada. Usos: Codificación. Reducción de ruido b) Identificación: El sistema debe “identificar” la planta y copiar su respuesta a la señal de entrada. Se debe disponer de la entrada y la salida. El sistema copia la planta y sus variaciones en el tiempo. Usos: Estudio de suelos,, supresión de eco en comunicaciones, etc c) Modelado Inverso: Se retrasa la señal deseada para dar tiempo a que pase por la planta y el sistema adaptativo. Puede agregarse ruido a la salida de la planta. El sistema adaptativo ecualiza o “deconvoluciona” la entrada para anular los efectos de la planta. Usos: Ecualización de ISI de un canal. d) Cancelador de interferencia: La señal de entrada esta corrupta por interferencia o ruido, y el sistema adaptativo dispone de una señal distinta pero correlacionada de la interferencia. Actúa logrando que el error se parezca a la señal limpia (deseada). Usos: Cancelador adaptativo de ruido ruid o interferencia. Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 5 de 5 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Figura 5 – Diferentes esquemas adaptativos La figura 6 muestra la evolución típica de las diferentes señales de un sistema adaptativo. En la medida que avanzan las iteraciones (k) se produce el proceso de aprendizaje y el sistema se adapta dapta de tal modo que la salida se parezca lo más posible a la entrada. Mientras exista una señal de error de determinada magnitud el sistema se auto auto-corregirá. corregirá. Este proceso se detiene cuando la señal de error disminuye a un valor residual. Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 6 de 6 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Figura 6 – El proceso de adaptación Funcionamiento de un sistema adaptativo: adaptativo Para la parte siguiente adoptaremos las siguientes notaciones: - Una letra mayúscula negrita A para una matriz Una letra mayúscula A para un vector fila Una letra minúscula a para una variable, variable, un escalar, o un elemento de una matriz o vector. El subíndice k para indicar evolución temporal de cualquiera de las anteriores. El subíndice i para indicar la posición dentro de una matriz o vector. Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 7 de 7 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS - Un círculo con un valor simboliza a un multiplicador multiplicador.. Si el valor es variable, el círculo presenta una flecha. Un círculo con el signo + o ∑ indica un sumador. Un cuadrado con una T o indica una demora temporal de un período de muestreo. La configuración básica de un sistema adaptativo ad se llama “combinador binador adaptativo lineal”, lineal” y se muestra en la figura 7. Está claro que la palabra “lineal” se refiere a que su salida es el resultado de una suma de productos, más que significar que el sistema es lineal en sí, como vimos en la introducción. Figura 7 – El combinador adaptativo lineal En el esquema de la figura podemos reconocer los siguientes vectores Vector de Pesos (taps): Entradas múltiples: Vector de entrada Salida Entradas única: Vector de entrada Salida … … … … ∑ … … ∑ La figura 7 muestra un combinador adaptativo lineal de L + 1 pesos o coeficientes adaptativos. Este esquema se aplica tanto para el caso de L+1 señales de entrada diferentes (entradas múltiples) cuanto para el caso en que hay una única entrada cuyas L+1 muestras temporales más recientes son recordadas por el combinador adaptativo lineal (entrada única).. El análisis que sigue y sus conclusiones son idénticos para cualquiera de los dos casos. Una neurona es un ejemplo de un combinador adaptativo lineal de entradas múltiples en el campo de la biología. En la figura 8 se muestran las dendritas, que son las entradas al sistema. Cada dendrita Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 8 de 8 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS presenta una señal al núcleo, con una intensidad in (peso) que depende de un proceso de aprendizaje, en base a prueba y error (por por ejemplo para hablar, caminar, etc). El núcleo suma los estímulos “pesados” que le transfieren las dendritas, y el resultado es pasado al Axon, que en su otro extremo puede pu actuar como estímulo para las dendritas de otra neurona. Es común llamar a los sistemas adaptativos “redes neuronales”. ”. De hecho se ha encontrado un gran grado de similitud con muchos sistemas biológicos o de otros campos con los circuitos digitales adaptativos adaptativos que combinan elementos suma-producto. suma Figura 8 – La neurona como combinador adaptativo lineal de multiples entradas. Otro ejemplo práctico de un sistema adaptativo de entradas múltiples múltiples puede ser las reflexiones que se producen en las capas geológicas ológicas de en un terreno a estudiar, o las múltiples trayectorias que puede tomar una onda al reflejar en el suelo entre el transmisor y el receptor. Por otro lado un buen ejemplo de un combinador lineal adaptativo con entrada única puede ser un filtro transversal ransversal cuyos coeficientes se adaptan para “aprender” o seguir la evolución de una entrada o referencia. La figura 9 muestra ese circuito. Figura 9 – El filtro transversal adaptativo En este caso las entradas al combinador lineal son muestras temporales de una única señal de entrada. entrada Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 9 de 9 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Análisis matemático: Haciendo explícita la respuesta deseada del combinador lineal con entrada única (Filtro Transversal) de la figura 9 podremos comenzar el análisis del comportamiento del combinador adaptativo lineal. La figura 10 muestra el circuito en cuestión Figura 10 – El filtro transversal y la señal de referencia Escribiendo la salida del circuito de la figura 10, que es un escalar, en forma vectorial tenemos [1] [2] y escribiendo el error, que es también un escalar como Para independizarnos del signo del error obtenemos obtenemos el error cuadrado en el instante k como 2 & [3] E! ! 2E ' & E [4] % $ " E $ $ $ # [5] Si , y son estadísticamente estaciona estacionarias, y suponiendo que ,, es decir, ya no varía en el tiempo, podemos escribir el valor esperado del error cuadrático medio (Mean Square Error) como Si definimos la matriz R como la autocorrelación de la señal de entrada, es decir …… …… …… * ) ) … … …) ) ( y definimos mos también a la correlación cruzada entre la respuesta deseada y el vector de entrada como el vector columna P siendo Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 10 de 10 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS entonces + E E … … … … , [6] E 2+ & " [7] La ecuación [7] tiene la forma de un hyperparaboloide de L+1 dimensiones. Para poder imaginar la forma de la ecuación [7], podemos reducirla a só sólo lo 2 dimensiones (pesos o coeficientes) en cuyo caso obtenemos un paraboloide. La figura 11 muestra la forma del MSE con solo dos coeficientes. coefic Figura 11 – La superficie del MSE para el caso de dos coeficientes En la figura 11 se ve que existe un punto específico del valor de los coeficientes donde el MSE es el mínimo teórico posible. Ese será el objetivo de nuestro sistema adaptativo. Minimizando el MSE: Si cortamos el paraboloide de la figura 11 con planos verticales para graficar el MSE en función de uno de los pesos o coeficientes del filtro (w ( k) obtenemos una parábola como se muestra en la figura 12. Aunque la figura muestra el caso o de un solo coeficiente, está claro que es similar en el caso general con L+1 dimensiones. Una forma efectiva de llegar al valor mínimo del MSE para ese peso o coeficiente, es partiendo desde una situación inicial w0 y “viajando viajando” (k, k+1, k+2, etc) en dirección ección opuesta al gradiente de la superficie del MSE hasta llegar al valor óptimo para ese coeficiente -, como se muestra en la figura 12. Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 11 de 11 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Figura 12 – La superficie del MSE para el caso de un coeficiente Es por eso que muchos algoritmos de adaptaci adaptación se basan en el gradiente del MSE, MSE que es un vector que se obtiene de expandir las componentes de W en la ecuación [7] y luego diferenciar. . /012 /3 /012 /48 /012 /49 …… /012 /4: 2" – 2+ Para encontrar el punto de mínimo MSE, llamado - en la figura 11, hacemos [8] . 0 2" - – 2+ [9] - " + [10] y asumiendo que R es no-singular singular (se puede invertir) que se llama vector de pesos óptimo o de vector de pesos Wiener.. Un filtro transversal con ese vector de coeficientes se llama Filtro de Wiener Wiener. Método de Newton: gradiente . de la ecuación [8] por " tenemos El algoritmo de Newton deriva directamente de la solución de Wiener, ya que si multiplicamos al entonces " . . " . 2" 2 - " . 2+ " . + " . Procesamiento Digital de Señales – FCEFyN – UNC [11] [12] SISTEMAS ADAPTATIVOS Página 12 de 12 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Que da la forma en que se pasa de un valor inicial del vector coeficientes al vector óptimo de coeficientes - en un solo paso, como se muestra en la figura 13 para el caso de solo dos coeficientes. Nótese que en este caso se parte del paraboloide de la figura 11 pero se lo corta en planos horizontales de MSE constante, resultando en elipses concéntricas. Figura 13 – Obtención Obtención del valor óptimo por el método de Newton En la figura 13 está claro que el gradiente . en un punto determinado no necesariamente apunta al valor óptimo - directamente, ya que los cortes son elipses y no círculos. Ell gradiente se presenta perpendicular a esas elipses y no apunta al valor óptimo. óptimo. Este efecto se “corrige” en el método mé de Newton justamente al multiplicarse el gradiente por " , permitiendo la corrección en un solo paso. Método de Máxima Pendiente: Pendiente Tanto la solución de Wiener, cuanto el algoritmo de Newton pueden calcular directamente (en un solo paso) el valor de todos los coeficientes (pesos) óptimos,, pero tienen las siguientes limitaciones: a) Requiere que las señales sean estacionarias, lo que generalmente es un problema ya que las condiciones de generación de la señal o las características del canal de transmisión transmi pueden variar con muchos factores (carga, temperatura, alinealidades, etc). Además, sería muy útil disponer de un filtro que se adapte justamente a cambios de las condiciones de la señal de entrada dentro de ciertos límites. b) Puede resultar complicado computacionalmente realizar la inversa de la matriz R. Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 13 de 13 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Por esto se suele preferir algún método de cálculo recursivo, que si bien demora más en llegar al valor óptimo, podrá continuar adaptándose permanentemente, produciendo los seguimientos deseados, además más de ser más fácil de calcular. Expresando en general esa adaptación progresiva desde W a - siguiendo como dijimos la dirección opuesta al gradiente, podemos escribir la forma recursiva ; & <==. ? [13] Donde < regula el paso o velocidad de cada adaptación recursiva, y . expresa que en cada actualización se calcula nuevamente el gradiente. La figura 14 muestra las elipses resultantes resultantes de los cortes a MSE=cte de la figura 13, pero introduce nuevos ejes de coordenadas > , > que son los originales , trasladados de modo que el centro de coordenadas oordenadas coincida con la solución de Wiener. La figura muestra además los ejes >@ , >@ que incluyen una rotación adicional de modo que las elipses queden perpendiculares a los ejes ejes. Estos últimos se llaman “ejes principales”. Figura 14 – Cortes con MSE=cte =cte muestran los ejes trasladados y rotados Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 14 de 14 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Trasladando entonces el centro de coordenadas a > , > y volviendo al espacio multidimensional de L+1 coeficientes o pesos, la traslación a los nuevos ejes V se escribe como A - [14] . 2A" [15] Utilizando [12] obtenemos el gradiente en función de las nuevas coordenadas como y entonces podemos escribir la ecuación recursiva en los ejes trasladados partiendo de la ecuación [13] y restando - a ambos miembros como ; 2<"A ; - - 2<"A A; A 2<"A A; =B 2<"?A [16] donde I es el vector unidad. La expresión [16] aún es de difícil solución computacional ya que A está relacionada con R que no es una matriz diagonal (tiene componentes “cros-relacionados”). Para evitar esto debemos hacer una rotación de A para expresarla en función de los ejes principales. Para lograr esa rotación debemos operar sobre R expresándola en función de cada uno de sus L vectores propios (o eigenvectors) CD y de sus n valores propios (o eigenvalues) ED , con n=0,1,2… Los valores propios y los vectores propios de una matriz (en este caso R) se determinan mediante su “ecuación homogénea” " EFCD 0 que tiene solución no trivial si det" EF 0 (esta última llamada “ecuación característica” de R) cuyas soluciones son los valores propios ED que reemplazados en la ecuación homogénea definen los vectores propios CD de R. Entonces, de la ecuación homogénea evaluada en los valores propios y vectores propios despejamos "CD ED FCD E 0 … 0 0E …0 " C C … … C C C … … C J … K "L LM …… … 0 0 …E [17] " LML [18] donde los vectores propios se han agrupado en la matriz Q y los valores propios en la matriz M. Despejando R de la ecuación [17] se obtiene la forma normal de R como Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 15 de 15 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Geométricamente los vectores propios de la matriz de correlación de la entrada R definen los ejes principales de la hyperelipse que representa al MSE. Para el caso de dos coeficientes representan los ejes >@ , >@ Es decir que hemos aplicado al espacio de los coeficientes (pesos) del combinador lineal (filtro transversal) las siguientes transformaciones - Traslación: A Rotación: A @ LN A LO A ya que se puede demostrar que LN LO [19] Podemos ahora expresar la ecuación iterativa [16] rotada a los ejes principales de R despejando V de la [19], es decir @ A; LA; =B 2<"?LA@ Multiplicando por LO los dos últimos términos de la igualdad tenemos @ A; LO =B 2<"?LA@ PLO BL 2<LO "LQA@ y utilizando [18] obtenemos @ A; =B 2<M?A@ [20] Nótese que ya no necesitamos computar R sino solamente conocer sus valores propios. Obteniendo finalmente el algoritmo de máxima pendiente. Expresado el mismo como L ecuaciones @ A; =1 2<E ? 0 J … 0 0 =1 2<E? … 0 … … … … 0 0 K A@ … =1 2<E ? [21] El algoritmo de máxima pendiente también puede escribirse en función del valor inicial A@ , y de aplicar k veces la fórmula [20] de la siguiente manera A@ =B 2<M? A@ [22] lo que se grafica en la figura 15. De la ecuación [21] queda claro que para que el algoritmo converja debemos tener |B 2<M| T B Entonces cada uno de los componentes de la matriz de la ecuación [21] y por lo tanto los valores propios deben cumplir Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 16 de 16 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS |1 2<λV | T 1 0T<T WX y en particular, tomamos el peor caso como condición para < que se dará con el valor propio más grande 0T<T WYZ[ [23] Figura 15 – Convergencia del método de máxima pendiente. Tomando entonces un número suficiente de iteraciones iteraciones que cumplan [23] y usando [22], [19], y [14] tendremos Por lo que 0 lim_` =B 2< <M? lim_` A@ lim_` LO A lim_` LO = - ? lim_` - Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 17 de 17 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Es decir que sin la complicación de tener que multiplicar por R en las coordenadas principales, aplicando la ecuación [22] un número suficiente de veces, hemos logrado que en las coordenadas naturales (sin trasladar ni rotar), se converge al valor óptimo de Wiener. El algoritmo LMS: @ Si bien el algoritmo de máxima pendiente de la ecuación [20] permite obtener los valores de A; partiendo de A@ utilizando solamente los valores propios λV de la matriz R, y a partir de ellos volver a las coordenadas naturales W, el cálculo puede ser complejo en ciertas ocasiones. El algoritmo LMS (Least Mean Square) se basa en el algoritmo de máxima pendiente, pero introduce una simplificación radical: utiliza directamente el valor de en lugar del para calcular el a), cuyas consecuencias analizaremos gradiente. De esa forma sólo logra una estimación del gradiente (. a continuación. Recordando la ecuación [2] [24] Calculando el cuadrado y utilizándolo directamente (sin calcular el valor más esperado) para estimar el a tenemos gradiente . /def /de %/48 * %/48 * $ /d f ) $ /de ) $/4e ) $/49 ) cb 9 . $ … ) 2 $ … ) 2 $…) $…) $ /de ) $ /def ) #/4: ( #/4: ( [25] a? ; & <=. [26] Reemplazando la [25] en la ecuación recursiva [13] ; & 2< [27] La ecuación [27] describe el algoritmo LMS. Está claro que se trata solamente de una estimación del gradiente, por lo cual será útil calcular valor esperado de esa estimación, para ver su efecto una vez convergido ( constante = W) usando [25] y [24] a ' 2 2! ' 2P & ! 'Q ! . y recordando las definiciones de R, P y . de [5], [6], y [8] Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 18 de 18 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS a ' 2=" +? . ! . [28] Por lo que deducimos que una vez convergido, en valor esperado, la estimación del gradiente es igual al gradiente verdadero. Esto significa que la estimación no estará “polarizada” o “corrida” respecto del valor verdadero, y solamente presentará un “ruido” con valor medio cero sobre el valor del gradiente verdadero. Partiendo de la ecuación [27] podemos ver el efecto de la estimación del gradiente durante el proceso de convergencia como ; & 2< Y utilizando el mismo criterio que en [28] para tenemos ; & 2<=+ " ? Aplicando ahora factor común y recordando la definición del vector de coeficientes de Wiener [10] tenemos ; =B 2<"? & 2<" - [29] A@ =B 2<M? A@ [30] Realizando primero traslación y luego rotación de coordenadas del mismo modo que al deducir las ecuaciones [16] y [22], se llega al mismo resultado, solo que con el valor más esperado para la solución de vectores, es decir Por lo que el valor más esperado de los coeficientes en los ejes principales será el mismo que en el algoritmo de máxima pendiente, y el LMS convergirá siempre y cuando se cumpla la ecuación [23]. Ya que hemos simplificado el método de cálculo de la adaptación mediante la estimación del gradiente del algoritmo LMS, sería deseable también simplificar la ecuación [23] para calcular el valor de < de modo de no depender de los valores propios de R, los que a veces son difíciles de obtener. La traza de R es la suma de sus valores propios, por lo tanto será siempre mayor que el valor individual Eghi . Por lo tanto usando la traza de R en [23] tendremos un valor más “seguro” para <. Tomando la ecuación [5] vemos que la traza de R será L+1 veces es decir L+1 veces la potencia de la señal de entrada, que es un valor más fácil de estimar o conocer que los valores propios de R. Por lo tanto una versión más fácil de utilizar y más conservadora de < puede escribirse como 0 T < T =;?=j kdDlh md n? [31] El algoritmo LMS presenta las siguientes características: Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 19 de 19 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS - No requiere de cálculos complicados con matrices No requiere la espera/almacenado de N muestras para poder sacar conclusiones estadísticas (cálculo del gradiente, por ejemplo) para adaptar los coeficientes Utiliza una estimación del gradiente como los demás métodos, pero lo hace de una manera más sencilla. En valor más esperado todos los parámetros importantes convergen a los valores de los métodos exactos (como Newton y máxima pendiente) Es robusto frente al ruido, errores de cuantificación y efectos de aritmética finita. Por todo esto el algoritmo LMS es uno de los preferidos para el diseño de sistemas adaptativos. Performance de los algoritmos adaptativos: Todos los algoritmos adaptativos (incluso el de Newton si se lo hace por pasos) que producen su proceso de aprendizaje basados en incrementos pequeños partiendo de la situación anterior, tendrán una performance que se suele medir principalmente con dos factores: el tiempo de convergencia o tiempo de aprendizaje o012 y el desajuste D. Tiempo de aprendizaje: Analicemos primero el proceso de aprendizaje. Si observamos la evolución desde el valor inicial hasta el valor óptimo de Wiener tanto para el algoritmo de máxima pendiente (ver ec [22]) cuanto para el LMS (ver ec. [30]) el término que regula el aprendizaje es … … … … 0 =1 2<E ? … 0 =1 2<E ? 0 =B 2<M? J … 0 0 0 K … =1 2<E ? [32] Indicando que cada valor propio E controlará el aprendizaje de cada uno de los L+1 coeficientes, cuyo efecto conjunto, se ve en la figura 16 La forma de la figura 16 es la típica exponencial con forma p s que para la proyección de la primera iteración tenemos qr p s 1 & q9 t !tf v!tw &xy 1 t [33] Además el “ratio geométrico” que implica la ecuación [32] para cada valor propio indica p 1 2<E Procesamiento Digital de Señales – FCEFyN – UNC [34] SISTEMAS ADAPTATIVOS Página 20 de 20 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS Figura 16 – Proceso de aprendizaje de un sistema adaptativo. y como se trata del mismo proceso, combinamos [33] y [34] para obtener z {|} [35] Que es la constante de tiempo para el aprendizaje del coeficiente ii. Por otro lado al ser MSE cuadrático, tendremos el mismo proceso pero al cuadrado, es decir p012 p s qf q9 s f q9 s que por lo tanto tendrá una constante de tiempo z012 es decir z012 ~{|} t [36] [37] Que es la constante de tiempo con que cae el MSE por efecto del coeficiente i.i El tiempo de aprendizaje para los L+1 coeficientes está relacionado nado con el número de muestras N necesario para cada cálculo, la cantidad de coeficientes L+1 y la velocidad de adaptación <. = & 1? z012 o012 2= =;? {|} Procesamiento Digital de Señales – FCEFyN – UNC [38] SISTEMAS ADAPTATIVOS Página 21 de 21 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS La ecuación [38] indica que el tiempo de aprendizaje total de un algoritmo dependerá de cuántas muestras (N)) necesite el algoritmo para producir cada adaptación, de cuantos coeficientes se deban adaptar= & 1?,, y de la constante de tiempo de la curva de aprendizaje en si debido a cada coeficiente (z012 ). La ecuación [38] aplica al algoritmo de máxima pendiente, pero para LMS donde cada muestra produce una adaptación se tiene o012 z012 ~{|} [39] Lo que muestra que LMS es claramente más rápido que el algoritmo de máxima pendiente pendien para un < dado. Desajuste: Todos los algoritmos basados en el gradiente producen una estimación del mismo, basada en diferencias más que en derivadas exactas. La figura 17 muestra ese efecto. Figura 17 – Efecto de estimar el gradiente con diferencias diferencias y no con derivadas. Una vez que el sistema adaptativo convergió al valor de mínimo MSE,, esta estimación, también llamada “ruido de gradiente”, es la principal causa de desajuste. En la figura 18 se ve en la parte de abajo como los coeficientes varían alrededor rededor de los valores óptimos con las diferentes iteraciones k, luego de haber convergido, fruto del ruido de gradiente. La figura muestra también la curva de la superficie de error Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 22 de 22 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS MSE graficada vs las coordenadas V. Queda claro en la figura 18 que las vvariaciones ariaciones de los coeficientes producen una variación del valor de MSE, en exceso del valor mínimo gD . Ese “exceso de MSE”” produce un desajuste que se define como 012} 2012012 012} [40] y representa el efecto to que produce sobre el MSE la continua adaptación de los coeficientes con el paso de las iteraciones k debido al ruido de gradiente. Figura 18 – Efecto de las variaciones residuales de los coeficientes. La tabla siguiente resume las ecuaciones para las constantes de tiempo z012 , los tiempos de aprendizaje o012 y el desajuste para los algoritmos de máxima pendiente ([35], [36]) y LMS ([37]). Para el desajuste se toma el valor promedio Eh de todos los valores propios E Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 23 de 23 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS MAXIMA PENDIENTE Desajuste = & 1? 8+o012h z012 Tiempo de convergencia en función del nro de iteraciones o012 Tiempo de convergencia en función del nro de muestras LMS = & 1?<Eh 1 4<E z012 = & 1? 2<E o012 1 4<E 1 4<E Implementación en DSP Los algoritmos adaptativos tienen una estructura de multiplicar/acumular que la hacen apropiada para su implementación en chips DSP. La figura 19 muestra el esquema de un filtro transversal FIR (en negro) cuyos coeficientes son adaptados mediante el algoritmo LMS (en naranja). Se presenta una foto temporal al momento n, donde hay N elementos del vector de entrada en el filtro. T T T ; T ; + ; ; D - + µ + Figura 19 – Filtro FIR y coeficientes adaptativos. Ya se han visto rutinas en C y assembler de DSP de la familia DSP56F8XXX para realizar filtros FIR idénticos a los dibujados en negro en la figura 19. Para programar y simular el comportamiento de un sistema adaptativo completo como el de la figura 19, es común utilizar un lenguaje de alto nivel como C de modo de poder tomar conclusiones Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 24 de 24 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS importantes como ajustar la velocidad de convergencia y calcular el desajuste remanente. A tal efecto se podría utilizar una rutina como la siguiente, donde la parte adaptativa se ha resaltado en amarillo: /* Adapttative Filter */ float mu; int L; float y; int x[L]; float w[L]; float LMSfir(int L, int xin, float d); /* /* /* /* L y x w = = = = filter order */ filter output */ FIR state*/ FIR coef*/ /* LMS adaptive fir.c - FIR filter in direct form */ /* Usage: y = LMS_fir(L, xin, mu, d); */ /* xin=input sample */ float LMSfir(int L, int xin,float d) { int i; y=0; for (i=L-1; i>=1; i--) x[i] = x[i-1]; /* update input history */ x[0] = xin; /* read input */ for (i=L-1; i>=0; i--){ y += w[i] * x[i]; /* compute current output sample y */ } for (i=L-1; i>=0; i--){ w[i] += mu*(d-y)*x[i]; /* update coef with LMS */ } return y; } Una vez que el programador ha comprobado los algoritmos y definido las principales variables de diseño, si las condiciones de memoria o tiempo disponible son ajustadas, es hora de preocuparse por la eficiencia del código generado. Está claro que el código anterior, si bien es simple y directo en cuanto a los algoritmos que pretende realizar, seguramente podrá ser optimizado en eficiencia de uso de memoria de programa y de tiempo de ejecución. Para realizar la rutina anterior en un DSP, se deben tener en cuenta algunas cosas a fin de garantizar la eficiencia, más allá de la tarea del compilador, como por ejemplo: 1. En la rutina se presentan vectores de muestras x[i] y de coeficientes w[i], cuyos índices son resultados de cálculo (x[i-1]). Pero en la práctica, los coeficientes y las muestras de la señal de entrada se guardan siempre en lugares consecutivos de memoria, y se acceden siempre en una secuencia continua de posiciones (nunca se acceden aleatoriamente). Los DSP se diseñan teniendo en cuenta esto, brindando registros punteros con aritmética dedicada para incrementar, decrementar, etc. Para que la rutina en C refleje este hecho deberían reemplazarse los vectores por punteros. 2. Para realizar la secuencia Multiplicar/Acumular en una sola instrucción, siguiendo la rutina C anterior, se deberían acceder en forma simultánea dos operandos de entrada, el valor anterior Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 25 de 25 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS de la función, y al valor calculado almacenarlo en memoria. Es decir cuatro accesos a memoria en paralelo. Para evitar esto los DSP tienen registros intermedios y registros de resultado que evitan, por ejemplo, que los resultados intermedios tengan que volver a memoria. Por ejemplo, en la rutina C se podría usar el tipo de datos “register” para almacenar el valor de y. 3. Es muy probable que los distintos lazos de la rutina puedan ser combinados. Por las razones anteriores, muy frecuentemente los programadores prefieran programar las partes críticas en cuanto a performance tiempo / espacio en memoria directamente en assembler. Para realizar el filtro de la figura 19 en assembler de chip DSP debemos definir el mapa de memoria donde se encuentran los elementos del vector de entrada y de coeficientes, y los punteros usados para direccionarlos. Esto se ve en la figura 20, que muestra además el uso de los registros de la ALU de un DSP de la familia DSP56F8XXX. Memoria X R0 L-1 *R0 …………… Y0 ; X u*e + Y1 …………… A …………… R3,R1 *R3 …………… X0 X1 *R1 Figura 20 – Mapa de memoria del DSP con coeficientes de precisión simple, y uso de los registros para la adaptación de coeficientes. Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 26 de 26 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS A continuación se presenta el código en lenguaje assembler de la familia DSP56F8XXX correspondiente a la situación de la figura 20. Lab Opcode Operands Data bus PUSH M01 MOVE #X_Vec7,R0 MOVE #L_-1,M01 MOVE M01,Y1 MOVE #-2,L MOVEP X:InputValue,Y0 MOVE #Coeff,R3 CLR A Y0,X:(R0)+ MOVE X:(R3)+,X0 REP Y1 MAC Y0,X0,A X:(R0)+,Y0 MACR Y0,X0,A MOVEP A,X:Output X:(R3)+,X0 w_cnt5 Cycles Comment ; ; ; ; ; ; ; ; ; ; ; ; ; 2 2 2 1 1 1 2 1 1 3 1 1 1 save addr mode state start of X modulo L initialize REP loop count adjustment for filtering get input sample start of coefficients save input in x(i),incr R0 X0=w[0] and incr R3 do fir accum & update x[i] and w[i] last tap output fir if desired 2 2 2 1 1 1 2 1 1 1 1 1 1 ; (Get d(k), subtract fir output, multiply by “u”, put the result in Y1. ; This section is application dependent.) MOVE #Coeff,R3 MOVE R3,R1 MOVE X:(R0)+,Y0 MOVE X:(R3)+,A DO #NTaps,EndDO1_7_1 MACR Y1,Y0,A X:(R0)+,Y0 X:(R3)+,X0 TFR X0,A _COEFF_UPDATE1_7_1: EndDO1_7_1: MOVE X:(R0)+L,Y0 POP M01 A,X:(R1)+ ; ; ; ; ; ; ; ; 2 1 1 1 2 1 2 1 1 1 3 1 1 1 start of coefficients start of coefficients Y0=x(k) and incr R0 a=w[0] and incr R3 update coefficients A=w[i]*x[n-i] Y0=x[k-i-1] X0=w[i+1] A=w[i+1], save w[i]*x[k-i] ; 1 1 Y0=x(k-L+1) and update R0 ; 1 1 restore previous addr mode ; __________ ; Total:28 N+2NTaps+27 (L=size of X_VECTOR) El mismo filtro adaptativo de la figura 19 puede implementarse con mayor precisión en los coeficientes. La figura 21 muestra el mapa de memoria para coeficiente de doble precisión. Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS Página 27 de 27 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS R0 L-1 *R0 Y0 …………… Y1 ; X u*e …………… + X0 Y1 …………… R3,R1 H L H L *R3 A0 *R3 A1 …………… H L *R1 *R1 Figura 21 – Mapa de memoria del DSP con coeficientes de precisión doble. Cuyo código en lenguaje assembler de la familia DSP56F8XXX podría ser el siguiente. Lab Opcode Operands Data bus PUSH M01 MOVE #X_Vec7,R0 MOVE #L_-1,M01 MOVE M01,Y1 MOVE #2,L MOVEP X:InputValue,Y0 MOVE #Coeff,R3 CLR A Y0,X:(R0)+ MOVE X:(R3)+L,X0 DO Y1,Do_FIR MAC X0,Y0,A X:(R0)+,Y0 MOVE X:(R3)+L,X0 Do_FIR: MACR X0,Y0,A Procesamiento Digital de Señales – FCEFyN – UNC w_cnt5 Cycles Comment ; ; ; ; ; ; ; ; ; ; ; ; 2 2 2 1 1 1 2 1 1 2 1 1 2 2 2 1 1 1 2 1 1 3 1 1 save addr mode state start of X modulo L initialize REP loop count adjustment for filtering get input sample start of coefficients save input in x(k),incr R0 X0=w[0,H] and incr R3 do fir accum & update x[i] update w[i,H] ; 1 1 last tap SISTEMAS ADAPTATIVOS Página 28 de 28 FCEFyN Universidad Nacional de Cordoba SISTEMAS ADAPTATIVOS MOVEP A,X:Output ; 1 1 output fir if desired ; (Get d(n), subtract fir output, multiply by “u”, put the result in X0. ; This section is application dependent.) MOVE #Coeff,R3 MOVE R3,R1 MOVE X:(R0)+,Y0 MOVE X:(R3)+,A MOVE X:(R3)+,A0 DO #NTaps,EndDO1_7_2 MAC X0,Y0,A X:(R0)+,Y0 MOVE A,X:(R1)+ MOVE A0,X:(R1)+ MOVE X:(R3)+,A MOVE X:(R3)+,A0 _COEFF_UPDATE1_7_2: EndDO1_7_2: MOVE #-2,N MOVE X:(R0)+N,Y0 POP M01 ; ; ; ; ; ; ; ; ; ; ; 2 1 1 1 1 2 1 1 1 1 1 2 1 1 1 1 3 1 1 1 1 1 start of coefficients start of coefficients Y0=x(k) and incr R0 a=w[0,H] and incr R3 a0=w[0,L] and incr R3 update coef. u*e(k)*x(i)+c; fetch x(i) save updated w[i,H] save updated w[i,L] fetch next w[i,H] fetch next w[i,L] ; 1 1 adjustment for filtering ; 1 1 update R0 ; 1 1 restore previous addr mode ; ___________ ; Total:35 2N+5NTaps+28 (L=size of X_Vec Procesamiento Digital de Señales – FCEFyN – UNC SISTEMAS ADAPTATIVOS