Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes...

23
FILTRO LMS

Transcript of Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes...

Page 1: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

FILTRO LMS

Page 2: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

INTRODUCCION- FILTRO DE WIENER

Es un sistema al que le llegan dos señales: x(n) y e(n). A los coeficientes del filtro se les llama w(n), que son los que multiplican a la entrada x(n) para obtener la salida.

y(n)=w(n)x(n)

e(n)=d(n)-y(n)

Page 3: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

CARACTERÍSTICAS:

El objetivo del filtrado de Wiener es

determinar la respuesta impulsional h*(n),

de longitud Q muestras, de modo que la

salida y(n) sea lo mas parecida posible a

la señal d(n). Se puede tomar, como

medida de parecido, el error cuadrático

medio entre la salida y la referencia.

ξ = E{|d(n) − y(n)|2 }

Page 4: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

La respuesta impulsiva del filtro de Wiener seobtiene encontrando una expresión para elerror cuadrático medio y minimizándola conrespecto a la respuesta al impulso.

Siendo Φmm la auto correlación y Φmn lacorrelación cruzada de dos señales m y n.

Page 5: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

El valor mínimo del error determina los

coeficientes óptimos del filtro, es decir su

mejor diseño.

La ecuación que nos permite encontrar los

coeficientes (W), del filtro es:

Rxw=rdx

Donde

Rx Matriz de Autocorrelación

rdx Vector de Correlación Cruzada

W Vector de coeficientes.

Page 6: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

TIPOS DE FILTROS WIENER

Existen diversas estructuras para el filtrode wiener. Comenzaremos con el caso enq el filtro puede ser no causal y deduración infinita, el filtro IIR no causal .

Posteriormente añadiremos la restricciónde causalidad para obtener un filtro IIRcausal. Por ultimo, la restricción delongitud finita nos conducirá al filtro FIR.

Page 7: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Filtro de Wiener IIR

Nuestro propósito es diseñar un filtro h(n) que produzca una salida:

y(n) = x(n) * h(n)

Tan cercana como sea posible, en sentido cuadrático-medio, a la respuesta deseada, d(n).

El enunciado del problema es idéntico para filtros FIR y para IIR, pero existe una gran diferencia que cambia la solución.

Para el filtro FIR, existe un número finito de posibles coeficientes del filtro, mientras que con el filtro IIR, el número de incógnitas, es decir, de valores de h(n) para todo n, es infinito.

Vamos a considerar dos situaciones:

Primero el caso en que no aplicamos restricciones a la solución. Obtendremos que el filtro óptimo es, en general, no causal, y por tanto, irrealizable: Filtro Wiener IIR no causal.

Posteriormente, aplicaremos la condición de causalidad, y para ello forzaremos h(n) a cero para valores de índice n negativos: Filtro Wiener IIR causal.

Page 8: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

FILTRO DE WIENER IIR NO CAUSAL

Para un filtro de Wiener IIR no causal (sin restricciones), debemos determinar la respuesta

impulsional, h(n),

que minimice el error cuadrático medio

donde e(n) es la diferencia entre la respuesta deseada d(n) y la salida del filtro de Wiener,

Para encontrar la respuesta derivamos x respecto a h*(k) para todo k e igualamos las derivadas a

cero. Así, obtenemos

Esta ecuación se conoce como principio de ortogonalidad, y establece que x es mínimo y los

coeficientes del filtro asumen sus valores óptimos cuando e(n) está incorrelado con cada muestra

de entrada x(n) que es utilizada para el cálculo de la estimación. Como consecuencia, el error

también es ortogonal a la salida del filtro. Este principio establece una condición suficiente y

necesaria para la optimización.

Page 9: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Ordenando términos llegamos a

Observamos que el valor medio esperado en la

izquierda es la autocorrelación de x(n), y que el

término de la derecha es la correlación cruzada

entre x(n) y d(n). Por tanto, podemos escribir la

ecuación anterior como

ecuaciones de Wiener-Hopf para el filtro de Wiener IIR no causal.

Page 10: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Filtro de Wiener IIR causal

En esta sección vamos a aplicar la restricción de causalidad al filtro de Wiener. La

respuesta impulsional, por tanto, será cero para valores de n menores de cero,

y la estimación de d(n) tomará la forma

Debemos encontrar los coeficientes que minimizan el error cuadrático medio, y

para ello, derivamos x respecto a h*(k) con k = 0 e igualamos las derivadas a

cero. Así obtenemos las ecuaciones de Wiener-Hopf para el filtro de Wiener IIR

causal:

Page 11: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Otra aplicación de interés del filtrado de Wiener esta en losdenominados canceladores de ruido. En esta ocasión, se supone quela señal deseada s(t) (habitualmente voz o audio) se ve afectada porun ruido aditivo h(t)*w(t), donde h(t) es el canal de propagación delruido hasta el micrófono. Si dicho ruido puede captarse (muyimportante) libre de señal deseada, vía otro micrófono (o un galgaextensiométrica si se trata de una superficie vibrante, caso de ruidode baja frecuencia), entonces puede usarse de referencia paracancelar este a la salida . Lo que se espera del filtro de Wiener es quesea capaz de lograr una copia adecuada del canal h(t).

Bajo un diseño óptimo del filtro, el error será precisamente la señaldeseada libre de ruido. Esto ocurrirá cuando el filtro copieperfectamente el canal de propagación del ruido. Es crucial que elcanal, denominado de datos en la figura, no contenga señal deseadas(n), de otro modo se produciría la cancelación de ésta. Por esta razónes recomendable el usar sensores de vibración en paneles vibrantes omicrófonos direccionales con un nulo en la dirección donde se recogela señal deseada. Para comprobar el correcto funcionamiento del filtrose calculara la coherencia espectral de los datos con la referencia.

APLICACIONES

Page 12: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este
Page 13: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

El filtro de Wiener como cancelador de ecos. Por falta de aislamiento en

el transformador híbrido cercano al origen de la conversación 2, la conversación

de 1 vuelve después de atravesar el híbrido (modelado como un canal lineal). El

cancelador debe generar una réplica de dicho canal para eliminar el eco.

Page 14: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

CANCELADOR DE RUIDO UTILIZANDO UN FILTRO

ADAPTIVO NLMS

Page 15: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Como forma de solucionar este problema se realiza lo siguiente, se coloca otro micrófono cerca del martillo neumático, y mediante un filtro adaptivo, se busca estimar el "ruido" que se suma a mi señal, para luego restarlo y así obtener la voz del orador únicamente.

Nuestro objetivo es realizar el filtro FIR, cuyos coeficientes se adapten mediante el algoritmo NLMS (Normlaized Least Mean Square) para cancelar el ruido

Page 16: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

CANCELACIÓN ADAPTIVA DE RUIDO

Una de las técnicas de procesamiento adaptivo de señales mas simples y efectivas es la cancelación de ruido adaptiva. Como se muestra en la figura, la entrada primaria u(n) contiene la señal mas el ruido, donde v2(n) es la referencia del ruido, un filtro adaptivo es usado para estimar el ruido de u(n) y el ruido estimado y(n) se resta del canal primario. La salida del cancelador de ruido es entonces e(n).

Page 17: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

FILTRO DE WEINER ADAPTIVO (COEFICIENTES

ADAPTADOS POR LMS)

La implementación más común de un filtro

adaptivo es la estructura transversal. La señal

de salida del filtro y(n) es

donde:

Page 18: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Algoritmo de adaptación:

El algoritmo de adaptación usa la señal de error:

e(n) = u(n) – y(n)

Donde y(n) es la salida del filtro. El vector de entradas v2(n) y e(n) son utilizados para actualizar los coeficientes del filtro adaptivo de acuerdo al criterio que se quiera minimizar. El criterio que utilizamos nosotros es el de minimizar el error cuadrático medio:

Page 19: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Ya habíamos visto que

Donde

Donde llegábamos a la solución:

Un algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este algoritmo es un método práctico para encontrar soluciones aproximadas a la ecuación anterior. (8)

La solución óptima , que minimiza el error cuadrático medio,

se obtiene resolviendo la ecuación:

Page 20: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Donde b es el paso de adaptación que controla la estabilidad y la velocidad de convergencia. Para el algoritmo LMS, el gradiente en la n-ésima iteración , es estimado asumiendo el error al cuadrado como un estimador del error cuadrático medio. Así, la expresión para el estimador del gradiente puede ser simplificada a:

Al sustituir este estimador instantáneo del gradiente en la ecuación (8) conduce al algoritmo LMS de Widrow-Hoff:

donde 2β es usualmente reemplazado por β en la implementación práctica .

Page 21: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Si comenzamos con un w(0) cualquiera, el vector de coeficientes

convergerá a su solución óptima w*, si se cumple que:

donde λmax es el mayor valor propio de la matriz R. λ max puede ser

acotado por:

donde Tr[R] es la traza de R y r(0) = E{v22(n)} es la potencia promedio

de la entrada. Para aplicaciones de procesamiento de señales, la

consideración práctica más importante es la velocidad de

convergencia, que determina la habilidad del filtro de seguir señales

no estacionarias. Hablando generalmente, la convergencia del vector

de coeficientes está garantizada sólo cuando el coeficiente más

lento ha convergido. La constante de tiempo del modo más lento es:

Page 22: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

Esto indica que la constante de tiempo para la convergencia de los coeficientes es inversamente proporcional a byademás depende de los valores propios de la matriz de autocorrelación de la entrada. Con valores propios muy eparados i.e. λ max λ min, el tiempo de establecimiento está limitado por el modo más lento, λ min. La adaptación basada en un estimador del gradiente resulta en ruido en el vector de coeficientes, y por lo tanto una pérdida de performance. Este ruido en el proceso adaptivo causa que el vector de coeficientes en régimen varíe aleatoriamente alrededor del vector de coeficientes óptimos.

Todo esto nos lleva a ver el compromiso entre la velocidad de convergencia y el error en régimen, si queremos obtener una velocidad de convergencia buena, entonces el paso b debe ser grande, pero en este caso la performance en régimen del filtro no sería muy buena, y viceversa si queremos obtener buena performance en régimen, entonces debemos hacer que b sea chico, pero esto limita la velocidad de convergencia.

Page 23: Programación en Matlab algoritmo LMS ampliamente usado es un algoritmo que adapta los coeficientes en cada muestra. Este método puede evitar el complicado cálculo de R-1 y p, este

GRACIAS