220
UNIVERSIDAD DE ZARAGOZA ESCUELA UNIVERSITARIA POLITÉCNICA DE TERUEL DEPARTAMENTO DE TEORÍA DE LA SEÑAL Y COMUNICACIONES TRABAJO FIN DE CARRERA “VARIANTES DEL ALGORITMO LMS. APLICACIÓN A UN SISTEMA CANCELADOR DE ECOS” INGENIERÍA TÉCNICA DE TELECOMUNICACIONES ESPECIALIDAD EN SISTEMAS ELECTRÓNICOS Lorenzo Meler Ferraz Julio 2005

Explica LMS y Otros

Embed Size (px)

Citation preview

Page 1: Explica LMS y Otros

UNIVERSIDAD DE ZARAGOZA

ESCUELA UNIVERSITARIA POLITÉCNICA DE TERUEL

DEPARTAMENTO DE TEORÍA DE LA SEÑAL Y

COMUNICACIONES

TRABAJO FIN DE CARRERA

“VARIANTES DEL ALGORITMO LMS. APLICACIÓN A UN SISTEMA CANCELADOR DE ECOS”

INGENIERÍA TÉCNICA DE TELECOMUNICACIONES

ESPECIALIDAD EN SISTEMAS ELECTRÓNICOS

Lorenzo Meler Ferraz

Julio 2005

Page 2: Explica LMS y Otros

INDICE

ÍNDICE INTRODUCCIÓN. . . . . . . . . . . . . . . . . . . . . .4 1. CONCEPTOS INTRODUCTORIOS. . . . . . . . . . . . . . .7

1.1. EL PROBLEMA DEL ECO; EL ALGORITMO EN PLANTA. .8 1.2. SEÑALES Y SISTEMAS EN TIEMPO DISCRETO. . . . 11 1.3. CONVOLUCIÓN. . . . . . . . . . . . . . . . . 13 1.4. FFT (FAST FOURIER TRANSFORM) . . . . . . . . 17 1.5. FILTRADO DE WIENER . . . . . . . . . . . . . 28 1.6. FILTRADO ADAPTATIVO. . . . . . . . . . . . .

2. ALGORITMO LMS EN EL DOMINIO DEL TIEMPO. . . . . . . 35

2.1. ALGORITMO LMS. . . . . . . . . . . . . . . . 36 2.1.1. INTRODUCCIÓN . . . . . . . . . . . . . . . 36 2.1.2. DIAGRAMA DE BLOQUES E INSTRUCCIONES. . . . 40 2.1.3. RESULTADOS CON DIFERENTES SEÑALES DE ENTRADA . . . . . . . . . . . . . . . . . . . . . 44 2.1.4. RESULTADOS CAMBIANDO EL TAMAÑO DEL FILTRO. 53 2.1.5. CÁLCULO DEL NÚMERO DE SUMAS Y PRODUCTOS EN FUNCIÓN DEL TAMAÑO DE FILTRO . . . . . . . . . 61 2.1.6. CÓDIGO DEL PROGRAMA. . . . . . . . . . . . 63

2.2. ALGORITMO NLMS (LMS NORMALIZADO) . . . . . . . 66 2.2.1. INTRODUCCIÓN . . . . . . . . . . . . . . . 66 2.2.2. DIAGRAMA DE BLOQUES E INSTRUCCIONES. . . . 68 2.2.3. µ DEPENDIENTE DE LA POTENCIA DE LA SEÑAL . 70 2.2.4. RESULTADOS OBTENIDOS

(MEJORES VALORES DE α). . . . . . . . . . . . . . 71 2.2.5. COMPARACIÓN RESULTADOS LMS vs. NLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES). . . . . 79

2.2.6. CÓDIGO DEL PROGRAMA. . . . . . . . . . . . 87 2.3. ALGORITMO BLMS (BLOCK LMS) . . . . . . . . . . 88 2.3.1. INTRODUCCIÓN . . . . . . . . . . . . . . . 88 2.3.2. DIAGRAMA DE BLOQUES E INSTRUCCIONES. . . . 93 2.3.3. RESULTADOS OBTENIDOS

(MEJORES VALORES DE α). . . . . . . . . . . . . . 96 2.3.4. COMPARACIÓN DE RESULTADOS LMS vs. BLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES). . . . .103 2.3.5. DIFERENCIA DE OPERACIONES LMS VS. BLMS . .110 2.3.6. CÓDIGO DEL PROGRAMA. . . . . . . . . . . .113

2.4. ALGORITMO BNLMS (BLOCK LMS NORMALIZADO). . . .117 2.4.1. INTRODUCCIÓN . . . . . . . . . . . . . . .117 2.4.2. DIAGRAMA DE BLOQUES E INSTRUCCIONES. . . .118 2.4.3. RESULTADOS OBTENIDOS

(MEJORES VALORES DE α). . . . . . . . . . . . . .120

Lorenzo Meler Ferraz 2

Page 3: Explica LMS y Otros

INDICE

2.4.4. COMPARACIÓN DE RESULTADOS BLMS vs. BNLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES). . . . 126

2.4.5. CÓDIGO DEL PROGRAMA. . . . . . . . . . . 132 3. ALGORITMO LMS EN EL DOMINIO DE LA FRECUENCIA. . . 133

3.1. INTRODUCCIÓN; MÉTODO SOLAPAMIENTO-ALMACENAMIENTO . . . . . . . . . . . 134 3.2. LMS FORZADO (CONSTRAINED). . . . . . . . . . 138 3.2.1. DIAGRAMA DE BLOQUES E INSTRUCCIONES. . . 138

3.2.2. RESULTADOS CON DIFERENTES SEÑALES DE ENTRADA. . . . . . . . . . . . . . . 141 3.2.3.- CÁLCULO DEL NÚMERO DE OPERACIONES . . . 149 3.2.4.- CÓDIGO DEL PROGRAMA . . . . . . . . . . 152

3.3.-LMS NO FORZADO (UNCONSTRAINED) . . . . . . . 155 3.3.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES . . 155 3.3.2.- RESULTADOS CON DIFERENTES SEÑALES DE ENTRADA. . . . . . . . . . . . . . . 157 3.3.3.- COMPARATIVA RESULTADOS LMS FORZADO vs. NO FORZADO. . . . . . . . . . . . . . . . . . . . 165 3.3.4.- CÁLCULO DEL NÚMERO DE OPERACIONES . . . 171 3.3.5.- CÓDIGO DEL PROGRAMA . . . . . . . . . . 174

3.4.-ADAPTACIÓN DEL FACTOR DE CONVERGENCIA µ . . . 175 3.4.1.- ADAPTACIÓN SEGÚN POTENCIA DE LA SEÑAL . 175 3.4.2.- RESULTADOS LMS FORZADO CON µ ADAPTATIVA 177 3.4.3.- COMPARATIVA LMS CON Y SIN µ ADAPTATIVA. 183

3.4.4.- CÁLCULO DEL NÚMERO DE OPERACIONES . . . 188 3.5.-CONVOLUCIÓN CIRCULAR. . . . . . . . . . . . . 191 3.5.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES . . 191

3.5.2.- RESULTADOS OBTENIDOS CON DIFERENTES SEÑALES DE ENTRADA. . . . . . . . . . . . . . . 195 3.5.3.- COMPARATIVA LMS FORZADO vs. LMS “CONVOLUCIÓN CIRCULAR”. . . . . . . . . . . . . 202 3.5.3.- CÁLCULO DEL NÚMERO DE OPERACIONES . . . 209 3.5.4.- CÓDIGO DEL PROGRAMA . . . . . . . . . . 212

CONCLUSIÓN . . . . . . . . . . . . . . . . . . . . . 214 BIBLIOGRAFÍA . . . . . . . . . . . . . . . . . . . . 219

Lorenzo Meler Ferraz 3

Page 4: Explica LMS y Otros

INTRODUCCIÓN

INTRODUCCIÓN (INTRO-DUCERA ENTRADA A UNA OBRA)

La motivación que me ha llevado a realizar este trabajo o proyecto, es por la cercanía del mismo con los temas de comunicación y teoría de la señal; al realizar este trabajo, pensé que me sería más fácil entender muchos de los conceptos que en la carrera, ya sea por falta de tiempo o de materia, se quedaron un poco en el aire.

Quizás este trabajo hubiera quedado más extenso y completo con la ayuda de un factor indispensable en estos casos, el tiempo. A esto hay que unirle que la mayoría de la información utilizada se encuentra en lenguas extranjeras (sobre todo la inglesa), y mi casi total desconocimiento de las mismas hace que este problema se acentúe.

Todo el trabajo de experimentación se ha realizado en el entorno de programación de MATLAB, por lo que al principio de este proyecto se dedicó un tiempo para aprender su manejo, de un modo esencial, que se iría acrecentando con la realización del mismo. Se realizaron en este entorno varios algoritmos que más tarde serían utilizados durante todo el trabajo como funciones, véase, implementación del algoritmo FFT (transformada rápida de Fourier), convolución lineal… Después se presentó el problema del eco en las comunicaciones, problema que debíamos resolver con algoritmos adaptativos. Para ello se estudió el filtro de Wiener, como una aproximación a lo que deberíamos hacer en un futuro, con la salvedad de que en el futuro no estaríamos analizando en régimen estacionario sino que nuestro sistema cambiaria con el tiempo, de ahí el estudio de los filtros adaptativos, en concreto el algoritmo LMS, un algoritmo utilizado inicialmente en estadística (aproximación por mínimos cuadramos).

Al cabo de un tiempo, cuando se era consciente del problema y por donde tenía que ir la solución, se empezó a pensar en la optimización del camino a recorrer (optimización del algoritmo) y a partir de ahí, el estudio consistió en recoger datos, programar nuevos algoritmos, calcular el número de operaciones que realizaban, volver a recoger datos y por último sacar conclusiones de todas estas figuras, gráficas y tablas al compararlas unas con otras.

La mayoría de los conceptos que contiene este proyecto son fáciles de entender para una persona con unos mínimos conocimientos en teoría de la señal, aunque hay algunos

Lorenzo Meler Ferraz 4

Page 5: Explica LMS y Otros

INTRODUCCIÓN

como por ejemplo el algoritmo LMS, el algoritmo de la FFT, y el método de solapameinto-almacenamiento, así como el filtrado de Wiener, que pueden resultar complicados de entender en un principio, pero que en este trabajo se intentan explicar con algo de claridad, haciendo introducciones, tanto matemáticas como explicativas. En el apartado conceptos introductorios, se ha intentado explicar todos estos temas en los cuales se ha pensado que el lector pudiera tener dificultades de comprensión.

El objetivo principal de este proyecto es cancelar el eco. Primero se tuvo que definir la palabra eco y después plantear el problema y cual sería el camino a resolver. El principal problema que uno se puede encontrar no es como se pueda suponer, cancelar el eco, el principal problema, que luego se convirtió en objetivo, está en que el número de operaciones es excesivo para realizarlas en tiempo real. De ahí surge nuestro siguiente objetivo, la optimización de algoritmos para conseguir reducir al máximo nuestro número de operaciones. Por supuesto, cuando se intenta optimizar surgen otras consecuencias que habrá que valorar que posteriormente se convierten nuevamente en otro problema. Una vez expuestos todos los problemas que se pueden tener a la hora de hacer este proyecto, se plantean los objetivos más concretos. Se decide trabajar con varios algoritmos, tanto en el tiempo como en la frecuencia, variaciones de dichos algoritmos, etc.; también hay que determinar con que señales se van a trabajar y por último se realiza el trabajo, tomar muestras con diferentes algoritmos y sacar conclusiones, con las características que determinaran si una cancelación es buena o no. Estas características son:

- nivel de cancelación (se tomarán valores lineales y logarítmicos).

- Tiempo de cancelación (tiempo que tarda en llegar a lo que llamaremos y definiremos más adelante “nivel de error residual”).

- y por último, la estabilidad final de la cancelación.

Una vez expuestos los objetivos, habrá que analizar si se han cumplido o no, hacer un resumen de lo alcanzado y a lo que no se ha podido llegar. Pero todo esto quedará marcado en la conclusión.

Por último, agradecer a todas las personas que me han prestado su apoyo, tanto por aportarme una luz aclaratoria a conceptos que por mi mismo quizás no hubiera descubierto nunca, como por su apoyo moral, así como por el material. Un especial agradecimiento sobre todo a la directora de este proyecto y todos los profesores del área de Teoría de la Señal de la EUPT. También se merece una mención la

Lorenzo Meler Ferraz 5

Page 6: Explica LMS y Otros

INTRODUCCIÓN

profesora de “técnicas de expresión oral y escrita” de la facultad de Ciencias Humanas y Sociales de Teruel por la ayuda que prestó en su momento a la hora de redactar este proyecto. Agradezco a todos los que se sientan agradecidos y a aquellos que no lo sientan por pudor, vergüenza, autoestima o simple modestia.

A todos, gracias por participar en este punto y seguido de mi carrera universitaria, y a disfrutar con los conocimientos que aquí se exponen. “¿Por qué esta magnífica tecnología científica, que ahorra trabajo y nos hace la vida mas fácil, nos aporta tan poca felicidad? La repuesta es está, simplemente: porque aún no hemos aprendido a usarla con tino.” “La palabra progreso no tiene ningún sentido mientras haya niños infelices.” “En el pensamiento científico siempre están presentes elementos de poesía. La ciencia y la música actual exigen de un proceso de pensamiento homogéneo.” “Hay dos cosas infinitas: el Universo y la estupidez humana. Y del Universo no estoy seguro.”

Albert Einstein

Lorenzo Meler Ferraz 6

Page 7: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

CONCEPTOS INTRODUCTORIOS INTRODUCCIÓN

1. EL PROBLEMA DEL ECO; EL ALGORITMO EN PLANTA 2. SEÑALES Y SISTEMAS EN TIEMPO DISCRETO 3. CONVOLUCIÓN 4. FFT (FAST FOURIER TRANSFORM) 5. FILTRO DE WIENER 6. FILTRADO ADAPTATIVO

Lorenzo Meler Ferraz 7

Page 8: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

1.- EL PROBLEMA DEL ECO; EL ALGORITMO EN PLANTA.

El problema del eco es bien conocido en el ámbito de la telefonía clásica, donde los efectos del retardo de línea sobre una comunicación establecida en medianas y grandes distancias resultaban bastante molestos. Pero el eco presente en estos casos, producto de las impedancias no adaptadas entre dos y cuatro hilos, no es el único caso de eco. Es más, con el creciente aumento de los sistemas telefónicos "manos libres", muy utilizados en los vehículos, o en las oficinas, al igual que con los teléfonos inalámbricos, surge otro tipo de eco: el eco acústico. Este eco es producto de la realimentación de la señal que emite el parlante, a través del micrófono.

La figura 1.1, muestra un esquema de lo que ocurre con el eco acústico. Imaginemos ahora una persona que habla con la que tenemos sentada en nuestro cubo (personaje b). La voz de nuestro personaje A (el que no se ve), llega a la habitación y rebota en sus paredes, introduciéndose por el micrófono. Al meterse por el micrófono esta señal (que recordemos es la voz del personaje A), irá a través de la línea hasta el altavoz de A, produciéndose algo que podríamos considerar desagradable desde el punto de vista de la comunicación.

Figura 1.1

La manera de evitar que esa realimentación acústica se propague a través de la línea telefónica, deteriorando considerablemente la señal y provocando molestias para el interlocutor, es cancelar la señal de eco utilizando filtros digitales con los que reproducir la señal de eco y

Lorenzo Meler Ferraz 8

Page 9: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

así poder eliminarla de la señal capturada por el micrófono.

La señal que proviene de la persona A, que va a través del cable y que de momento no ha sufrido ninguna

Con esta señal d y otra que se obtendrá al pasar la señal

Esta última la se restará de la señal d y esto propo

Un método clásico y sencillo, que se encuentra dentro de la

modificación debido a conversores, amplificadores, rebotes, etc. será llamada x, que evoluciona en el tiempo, esta señal es muestreada cada 1/8000 seg. por el sistema cancelador de eco. Una vez que esta señal ha pasado por lo que llamamos planta, se convertirá en la señal deseada que se denotará a partir de ahora como d. Esta planta estará formada por los amplificadores y conversores necesarios para provocar la señal audible, el rebote de esta por toda nuestra sala, así como la influencia del micrófono y aparatos electrónicos que sean necesarios para retrasmitir la señal. Esta planta o sistema presentar una respuesta impulsional, a la que se llamará h, y que como ya se sabe, convolucionada con la señal x (se recuerda que es la señal de entrada), dará lugar a la señal deseada d, que será la obtenida con el micrófono simplemente muestreada y adaptada por el sistema, como indicaremos en el apartado 3 de este capítulo.

de entrada x por un filtro adaptativo, que tendrá como respuesta impulsional he, se obtendrá la señal estimada y.

rcionará un error, llamado e, con el cual se jugará para ir adaptando el filtro adaptativo. El filtro he queda determinado por el valor de sus coeficientes que se irán modificando con el objetivo de reducir esta señal de error (Filtro adaptativo)

clasificación de filtros adaptativos, es el de Least Mean Squares o más conocido por sus siglas, LMS. Existen mejoras sobre el algoritmo básico de LMS, como por ejemplo, la normalización del coeficiente de adaptación (mu) a través de la potencia. A su vez, hay diversas formas de implementar el cálculo o estimación de la potencia. En este caso se opta en primera instancia por la versión básica del LMS. Luego, para ver la mejora que introduce la normalización del coeficiente de adaptación tomando en cuenta la potencia de señal, se implementa la versión normalizada. El objetivo de este proyecto fue tomar contacto con los mecanismos de cancelación de eco en su idea básica de funcionamiento. De más esta decir que existen muchos otros algoritmos, modificaciones y

Lorenzo Meler Ferraz 9

Page 10: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

consideraciones sobre los tratados en este proyecto, algunas de los cuales se mencionarán mas adelante.

Cuando el hablante cercano (B) empieza a hablar, se deberá detener el proceso de adaptación, ya que debido a que las frecuencias son iguales se produciría una distorsión en la cancelación. Por lo tanto se debería detectar que el hablante cercano está hablando y esto se realiza con el sistema de double-talk, sistema que no se analizará en este proyecto.

Este primer acercamiento a lo que se va a hacer en este trabajo, da una idea de cual va a ser el objetivo principal, adaptar un filtro, para conseguir eliminar una señal, es decir, eliminar el molesto eco. Las señales que se han intentado definir antes, y que se pueden ver claramente en la figura 1.1, son las que van a ser utilizadas a lo largo de todo este trabajo, con la misma notación que aparecen aquí. Habrá que tener en cuenta, como se explica en el apartado 4 de este capítulo, que las señales que aquí están en el dominio del tiempo, más adelante, se podrán ver en el dominio de la frecuencia, debido a la simplicidad que reporta el trabajar en este campo. Pues bien, a las señales que estén en el dominio de la frecuencia, se les intentará denotar igual que en el dominio del tiempo pero con mayúsculas.

Estos sistemas funcionan en tiempo real, de otra forma no tendría sentido realizar todas estas operaciones, ya que nunca se podría llegar a reducir el error.

Estos sistemas suelen implementarse en DSPs debido a que tienen una gran capacidad de hacer operaciones como suma o productos. En algunos apartados de esto proyecto se tiene en cuenta el hecho de que se implementen estos sistemas en DSPs, sobre todo a la hora de calcular las operaciones.

Lorenzo Meler Ferraz 10

Page 11: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

2. SEÑALES Y SISTEMAS EN TIEMPO DISCRETO

Debido a que el trabajo se va a realizar en su mayor parte con el ordenador (que va a simular el procesador digital), es necesario que se trabaje en todo momento con señales y sistemas en tiempo discreto.

Tanto las señales como los sistemas originales son de carácter continuo, por lo que se deberán transformar a un número de muestras concreto.

Las señales en tiempo continuo están definidas para todos los valores del tiempo, sin embargo las señales en tiempo discreto sólo están definidas para determinados valores del eje de tiempos.

Si la señal puede tomar cualquier valor en cualquier instante de tiempo, es decir, si es una función continua en el tiempo y continua en amplitud, se dice que la señal es continua o analógica como puede verse en la figura 2.1. La variable tiempo se representa mediante la letra t y la señal mediante x(t).

Figura 2.1

Si la señal está definida únicamente en instantes enteros del tiempo, pero puede tomar cualquier valor real o complejo, se dice que la señal es discreta, como puede verse en la figura 2.2. En este caso habría un muestreo de una variable real. La variable independiente se representa con la letra n y la señal mediante x[n].

x(t)

t

Lorenzo Meler Ferraz 11

Page 12: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

Figura 2.2

Este último tipo de señales son las que se van a utilizar en el presente trabajo. En realidad la amplitud de la señal también tomará valores discretos, valores que serán determinados por el número de bits del conversor analógico-digital. Pero se asumirá que la computadora podrá tomar valores suficientemente aproximados como para decir que la amplitud pueda tomar cualquier valor.

Para conseguir una señal en tiempo discreto a partir de otra en tiempo continuo, esta última la se tendrá que muestrear. Este muestreo tiene que cumplir una norma esencial; esta norma o criterio se llama criterio de Nyquist, el cual nos dice que la frecuencia de muestreo (fm) tiene que ser mayor o igual a dos veces el ancho de banda de la señal a muestrear (ec. 2.1). Si se cumpliera esto, se podría reconstruir la señal sin ningún problema.

wfm ·2≥ ec. 2.1

Este criterio sirve tanto para señales periódicas como para no periódicas, ya que estas últimas se pueden poner como combinación de lineal de señales periódicas. Por lo tanto, si se está usando una frecuencia de muestreo de 8000 muestras por segundo, únicamente se podrá recuperar con precisión señales que posean un ancho de banda de w=fm/2=4000 Hz., o combinaciones lineales de frecuencias menores que ésta.

x(n)

n

Lorenzo Meler Ferraz 12

Page 13: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

3.- CONVOLUCIÓN

La señal x (en la figura 1.1), que se denomina señal de entrada, es la señal que circula por el cable antes de llegar a la habitación. Esta señal entra a la habitación, rebota y se introduce por el micrófono, para volver a salir de la habitación. El camino que la señal de entrada x recorre hasta salir de la habitación, se llamará sistema y la señal obtenida a la salida (por supuesto diferente a x) es la señal deseada d. Se supone que se conoce la respuesta impulsional1 de este sistema, h[n], entonces para calcular la señal deseada, lo único que se debería hacer sería la convolución de la señal de entrada x con esta respuesta impulsional h[n] (que en algunos casos también llamaremos filtro).

Se supone que el filtro h[n] (es decir, la respuesta impulsional de nuestro sistema) no varía en el tiempo. Si la señal de entrada es x[n], la señal de salida y[n] se calcula a través de la convolución.

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

Figura 3.1

Con el símbolo Σ, se quiere mostrar el sistema por el que deberá pasar la señal de entrada x(n), cuya respuesta impulsional es h(n)

∑∞

=

−=1

][]·[)(m

mnxmhny ec. 3.1

La interpretación gráfica de la suma de convolución es muy sencilla. Para calcular la salida y[n] en un cierto instante fijo n, primero se dibujan h[m] y x[n-m] sobre el eje m. m recorre el índice de coeficientes de la respuesta impulsional (salida para un impulso en tiempo 0) En segundo lugar, se multiplican ambas señales para obtener la señal h[m] x[n-m]. Si se suman todos los valores de la nueva señal con respecto a m obtendremos el valor de y[n].

1. La respuesta impulsional, es el resultado que se obtiene a la salida de un sistema al proporcionarle en la entrada una δ de Dirac (impulso unitario).

Lorenzo Meler Ferraz 13

Page 14: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

Hay que tener en cuenta que estas operaciones tienen que repetirse para cada valor de n (cada 1/8000 seg.).

A continuación se muestra un ejemplo gráfico de cómo se realiza esta convolución.

Se parte de un filtro h[m] que tiene una respuesta impulsional como se muestra en la figura 3.2 (onda cuadrada muestreada).

h [n]

0 4 m

Figura 3.2

La señal que se va a pasar por este sistema (o filtro) es x, representada en la figura 3.3

h [n]x[n-m]

n = -3

0 4 m

Figura 3.3

A medida que va pasando el tiempo (tiempo que se tarda en realizar una muestra), la señal se va desplazando hacia la derecha (en el eje de tiempo del tiempo discreto m).

En cada instante n, se tendrá que realizar la multiplicación de x(m)·h(m) y sumar todas las multiplicaciones resultantes.

h [n]x[n-m] n = 2

0 4 m

Figura 3.4

Lorenzo Meler Ferraz 14

Page 15: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

h [n]n = 5

x[n-m]

0 4 m

Figura 3.5

h [n]n = 8

x[n-m]

0 4 m

Figura 3.6

El resultado es la señal de la figura 3.8, observando que ahora el eje de abscisas no se corresponde a m sino a n, es decir, una señal de n muestras de duración.

h [n]n = 11

x[n-m]

0 4 m

Figura 3.7

y [n]

0 4 6 n

Figura 3.8

Se ve como si se analiza la señal de la figura 3.4, donde n=2, el valor que obtenemos de la convolución aparece

Lorenzo Meler Ferraz 15

Page 16: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

representada en al figura 3.8 cuando n=2, un único valor para y(n)

Hay que tener en cuenta que la señal que se han introducido por el sistema (x), se ha tomado como de duración finita, pero estos análisis se suelen usar para señales de duración infinita o de larga duración, con lo cual el resultado sería diferente al que se ha obtenido en este ejemplo, ya que se seguirían sumando resultados no nulos de la obtención de x(m)·h(m).

A la hora de programar esta operación, tomando señales

de entrada de duración larga, en un instante de tiempo n, se escogerá únicamente un vector de la señal de entrada1 de la misma anchura que el vector del filtro; haremos la siguiente operación:

][]·1[]1[]·2[....]2[]·1[]1[]·[ mhxmhxhmxhmxy nnnnn +−++−+= ec. 3.2 Esta operación nos da como resultado un escalar, y, que será la salida en el instante de muestreo n. 1. A vector de la señal de entrada se refiere a la señal de entrada pero muestreada, es decir una serie de coeficientes, número que será igual que el que posee el filtro. El primer coeficiente de este vector corresponderá a la última muestra tomada de la señal.

Lorenzo Meler Ferraz 16

Page 17: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

4.- FFT (FAST FOURIER TRANSFORM)

“Un algoritmo puede ser admirado debido a numerosas razones; tecnológicas por resolver eficientemente un problema práctico importante, estéticas por ser elegante o incluso dramáticas por abrir nuevas e inesperadas áreas de aplicación. La transformada rápida de Fourier, quizás por ser fuerte en todos estos apartados, ha emergido como uno de los “súper” algoritmos de la informática desde su descubrimiento a mediados de los 60”.

Lipson 1981

El algoritmo para la realización de la transformada de

Fourier de una forma eficaz (FFT) fue un hito en el cálculo numérico y, parece ser, que el artículo donde se publicó originalmente es uno de los más citados de la literatura científica.

En el apartado anterior, se vio como realizar una convolución. Esta operación es necesaria para calcular el valor de una señal cuando pasa a través de un sistema. Esto, en muchas ocasiones puede tardar demasiado tiempo, tiempo del que no se dispone cuando se intenta trabajar en tiempo real.

Figura 4.1

FFTFFT IFFT

×

*d

D

H

h

x

X

Lorenzo Meler Ferraz 17

Page 18: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

Por ello se utiliza otra herramienta, la FFT, con lo

que se consigue trasladar una señal en tiempo discreto (muestreada) al campo transformado de Fourier o lo que se denomina “señal en el dominio de la frecuencia”.

La figura 4.1, muestra de forma intuitiva cual va a ser el modus operandi para calcular la señal deseada, es decir la señal de entrada una vez haya pasado por el sistema.

La convolución consta de varias multiplicaciones y sumas; tiene que quedar claro que una convolución en el dominio del tiempo es igual a realizar el producto de las mismas funciones en el dominio frecuencial.

En la figura 4.1 se muestra como a la señal de entrada x se le hace la transformada rápida de Fourier y luego se multiplica por la también transformada del filtro h. Si a esta multiplicación se le practica la transformada inversa, se obtendrá la misma señal que si se sigue el otro camino en el que únicamente había que hacer una convolución. A priori, se podría pensar que como el camino recorrido es más largo que cuando se hacía la convolución, los resultados tardarían más en representarse. Pero la realidad es otra, y de mostrarlo se encargará este punto, donde también se calculará el número de operaciones que se necesitan para hacer una FFT.

Todas las transformadas de Fourier que se realicen en este proyecto se harán con la transformada rápida de Fourier, ya que simplifica muchas operaciones con respecto a la tradicional DFT (transformada discreta de Fourier).

LA TRANSFORMADA DISCRETA DE FOURIER.

La transformada discreta de Fourier es una importante herramienta en muchos sistemas de procesado digital de señal; convierte la información del dominio del tiempo a una representación en el dominio de la frecuencia. Los métodos que son computacionalmente eficientes en el cálculo de la DFT, son conocidos como algoritmos para la transformada rápida de Fourier (FFT). La DFT de una secuencia [ ]kx , de longitud N, es otra secuencia de N números complejos [ ]kX que se define como muestra la ecuación 4.1

Lorenzo Meler Ferraz 18

Page 19: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

[ ] [ ]∑−

=

=1N

0n

knN W nxkX 10 −≤≤ Nk ec. 4.1

Donde el término factor de fase es: NW

Nj

N eW /2π−= ec. 4.2

En general, se supone que la secuencia de datos es compleja.

[ ]kx

Partiendo de la ecuación , es claro que

para cada valor de k, el cálculo directo de supone realizar N multiplicaciones complejas (4N multiplicaciones reales) y N-1 sumas complejas (4N-2 sumas reales). En consecuencia, para calcular los N valores de la DFT son necesarias N

[ ] [ ]∑−

=

=1

0

N

n

knNWnxkX

[ ]kX

2 multiplicaciones complejas y N2-N sumas complejas.

El cálculo directo de la DFT es básicamente ineficiente debido a que no explota las propiedades de simetría y periodicidad del factor de fase. ALGORITMO FFT (en base 2)

Con este algoritmo, el resultado final es el mismo que con el anterior, lo único que se hace es optimizar el número de operaciones.

Sea una secuencia de longitud N=2[ ]nx m. Se puede dividir la secuencia [ ]nx en dos subsecuencias de longitud N/2, y , correspondientes a las muestras pares e impares de respectivamente:

[ ]nf1 [ ]nf2

[ ]nx

[ ] [ ]nxnf 21 = ec. 4.3

[ ] [ ]122 += nxnf , 2

,...,1,0 Nn = ec.4.4

La DFT de N puntos de [ ]nx puede expresarse ahora en

términos de las DFTs de las secuencias [ ]nf1 y como indica la ecuación 4.5.

[ ]nf2

[ ] [ ] [ ]( )

[ ] ( )( )∑∑∑

=

+−

=

=

++==12

0

1212

0

21

0122

N

m

kmN

N

m

kmN

N

n

knN W mxW mxW nxkX

1,....,1,0 −= Nk ec. 4.5

Lorenzo Meler Ferraz 19

Page 20: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

Partiendo de la ecuación se obtiene la expresión 4.6.

NjN eW /2π−=

2/2/

2222

NN

jN

j

N WeeW ===−−

ππ

ec. 4.6

Teniendo en cuenta este resultado y las ecuaciones derivadas de dividir [ ]nx en dos subsecuencias, se consigue que:

[ ] [ ]( )

[ ]( )

[ ] [ ]kFWkFW mfWW mfkX kN

N

m

km/N

kN

N

m

km/N 21

12

022

12

021 +=+= ∑∑

=

=

1,....,1,0 −= Nk ec. 4.7

Donde [ ]kF1 y son las DFTs de N/2 puntos de las secuencias

[ ]kF2

[ ]nf1 y , respectivamente. [ ]nf2

Ahora bien, como se ha dicho anteriormente, existen

dos propiedades del factor de fase que van a permitir un cálculo eficiente de la DFT. Partiendo de la propiedad de periodicidad obtiene que una DFT es periódica, de periodo el número de muestras:

NW

[ ] [ ] [ ] ( ) [ NkXW nxW nxkXN

n

nNkN

N

n

knN +=== ∑∑

=

+−

=

1

0

1

0] ec. 4.8

Utilizando este resultado y la propiedad de simetría se consigue la siguiente ecuación:

[ ] [ ] [ ]kFWkFkX kN 21 += 1

2,....,1,0 −=

Nk ec. 4.9

[ ] [ ]kFWkFNkX kN 212

+=⎥⎦⎤

⎢⎣⎡ + 1

2,....,1,0 −=

Nk ec. 4.10

Se observa que el cálculo directo de [ ]kF1 requiere ( )2

2N

multiplicaciones complejas. La misma exigencia se aplica al

cálculo de [ ]kF2 . Además se requieren ( )2N multiplicaciones

complejas más para calcular [ ]kFW kN 2 . De aquí que el cálculo

de requiera [ ]kX ( ) 2222222 NNNN +=+ multiplicaciones

complejas. El primer paso del algoritmo, da lugar a una

Lorenzo Meler Ferraz 20

Page 21: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

reducción en el número de multiplicaciones de a 2N

222 NN + , que equivale aproximadamente a dividir por 2 el

número de multiplicaciones cuando N es grande.

En este punto, se puede repetir el proceso para cada una de las secuencias [ ]nf1 y [ ]nf2 . Por tanto [ ]nf1 dará lugar a dos secuencias de N/4 puntos

[ ] [ ]nfnv 2111 = ec. 4.11

14

,...,1,0 −=Nn

[ ] [ ]12212 += nfnv ec. 4.12 Y dará lugar a: [ ]nf2

[ ] [ ]nfnv 2221 = ec. 4.13

14

,...,1,0 −=Nn

[ ] [ ]12222 += nfnv ec. 4.14

Calculando las DFTs de N/4 puntos se obtendrá las DFTs de N/2 puntos [ y ]kF1 [ ]kF2 a partir de las relaciones:

[ ] [ ] [kVWkVkF kN 122/111 ·+= ] 1

4,...,1,0 −=

Nn ec. 4.15

[ ] [ ] [ ]kVWkVNkF kN 122/111 ·4 +=+ 1

4,...,1,0 −=

Nn ec. 4.16

[ ] [ ] [kVWkVkF kN 222/212 ·+= ] 1

4,...,1,0 −=

Nn ec. 4.17

[ ] [ ] [ ]kVWkVNkF kN 222/211 ·4 +=+ 1

4,...,1,0 −=

Nn ec. 4.18

Donde son las DFTs de N/4 puntos de las

secuencias

[ ]kVij

[ ]nvij .

Para el cálculo de [ ]kVij se requiere 4(N/4)2

multiplicaciones y, por lo tanto, el cálculo de y [ ]kF1 [ ]kF2 puede realizarse con N2/4 + N/2 multiplicaciones complejas. Para calcular la secuencia final [ ]kX a partir de y

, se requieren N/2 multiplicaciones complejas más. Por [ ]kF1

[ ]kF2

Lorenzo Meler Ferraz 21

Page 22: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

tanto el número de multiplicaciones necesarias se reduce a N2/4 +N, aproximadamente un factor 2.

Este proceso debe repetirse hasta que las secuencias de datos resultantes sean de un único punto. Si N=2m, el proceso se realizará (N/2)log2N veces. El número de sumas complejas queda también reducido a Nlog2N. NÚMERO DE PUNTOS N MULTIPLICACIONES

EN EL CÁLCULO DIRECTO DE N2

MULTIPLICACIONES CON EL ALGORTIMO (N/2)log2N

4 16 48 64 1216 256 3232 1024 8064 4096 192128 16384 448256 65536 1024512 262144 23041024 1048576 5120

Tabla 4.1

En la tabla 4.1 se compara el número de

multiplicaciones complejas necesarias para el cálculo de la DFT, utilizando el cálculo directo y el algoritmo FFT de base-2

Hay que recordar que los DSPs, que serán los dispositivos donde se implementen todos estos algoritmos, hacen operaciones reales, por lo que habrá que tener en cuenta que al transformar al dominio de la frecuencia nos quedarán números complejos.

Se puede observar en la tabla que la utilización del algoritmo para la FFT base-2 supone una importante disminución del número de operaciones necesarias en el cálculo de la DFT, sobre todo para secuencias de larga duración.

Lorenzo Meler Ferraz 22

Page 23: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

IMPLEMENTACIÓN DEL ALGORITMO

Se supone que calculamos la DFT de 8 puntos, representada en la figura 4.2.

x'1 x1+x5=f1 f1+f3=g1 g1+g2=X1

x'2 x2+x6=f2 f2+f4=g2 g1-g2=X2

x'3 x3+x7=f3 (f1-f3)·W0=g3 g3+g4=X3

x'4 x4+x8=f4 (f2-f4)·W2=g4 g3-g4=X4

x'5 (x1-x5)·W0=f5 f5+f7=g5 g5+g6=X5

x'6 (x2-x6)·W1=f6 f6+f8=g6 g5-g6=X6

x'7 (x3-x7)·W2=f7 (f5-f7)·W0=g7 g7+g8=X7

x'8 (x4-x8)·W3=f8 (f6-f8)·W=g8 g7-g8=X8

Figura 4.2

Puesto que las secuencias de una muestra, cuya transformada son ellas mismas, el cálculo se realiza en tres etapas. Comienza con el cálculo de 4 DFTs de dos puntos, después dos de 4 puntos y finalmente, una de 8 puntos.

El cálculo básico que se realiza en cada etapa, consiste en coger dos números complejos (x1,x2), multiplicar x2 por r , y sumar y restar el producto obtenido con x1 para obtener dos nuevos números complejos (f1,f2). Este cálculo básico se denomina “mariposa” e implica una multiplicación y dos sumas complejas. Con un número de muestras N=2

NW

m, se tienen log2N etapas con un total de N/2 mariposas en cada etapa, por lo que el número total de operaciones será (N/2)log2N multiplicaciones complejas y Nlog2N sumas complejas.

Cada vez que se realiza una mariposa sobre un par de números complejos (x1, x2 por ejemplo) para obtener (f1,f2), no es necesario guardar el par de entrada (x1,x2). Por tanto se puede guardar el resultado (f1,f2) en las mismas posiciones que (x1,x2). En consecuencia, se necesitan una cantidad de memoria fija con 2N registros de almacenamiento, para guardar los resultados de los cálculos

Lorenzo Meler Ferraz 23

Page 24: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

correspondientes a cada etapa, usando durante todo el cálculo de la DFT las mismas posiciones de memoria.

Posición de los datos del array de entrada

Posición de los datos array de salida: inversión de bit

Decimal Binario Binario Decimal 0 000 000 0

1 001 100 4

2 010 010 2

3 011 110 6

4 100 001 1

5 101 101 5

6 110 011 3

7 111 111 7

Tabla 4.2

Por otro lado cabe destacar el orden de la secuencia de entrada. Si se considera el caso de N=8 el primer diezmado (separación de las secuencias en sus muestras pares e impares) da la secuencia x1, x3, x5, x7 y el segundo x2, x4, x6, x8. La secuencia de entrada debe de ser reordenada antes de comenzar el cálculo de las mariposas. Cada muestra de la secuencia inicial x[n] se almacena en la secuencia reordenada en orden binario invertido (ver tabla 4.2). El orden binario invertido consiste en tomar la posición de las muestras en al secuencia inicial con m=log2N bits e invertir el orden de los bits; el número binario resultante nos dará la posición de la muestra correspondiente en la secuencia reordenada final.

Vector de entrada:

0 1 2 3 4 5 6 7 1 3 5 8 7 10 9 6

Tabla 4.3

En la figura 4.2, se usa la notación x’[n] como secuencia de x[m] reordenada.

Lorenzo Meler Ferraz 24

Page 25: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

Vector de salida:

0 1 2 3 4 5 6 7 1 7 5 9 3 10 8 6

Tabla 4.4

Se puede concluir que la transforma de Fourier es una herramienta matemática que consiste básicamente en un cambio de base. La base elegida para representar las señales son fasores (exponenciales complejas) sinusoidales de todas las frecuencias, y al calcular los coeficientes o transformada se obtiene el peso relativo de cada componente frecuencial de la señal a transformar. Un análisis espectral es siempre el primer paso en cualquier proceso de tratamiento de señal. Lo que se ha implementado es un algoritmo eficiente que realiza de un modo aproximado (no hay que olvidar que se trabaja con señales muestreadas y cuantificadas) ese análisis espectral.

Realizar la IFFT (inversa de la transformada rápida de Fourier), consistirá únicamente en seguir la mariposa de derecha a izquierda (sentido inverso al que se ha recorrido antes), para llegar a los resultados iniciales, recordando que se debe de reorganizar el vector de entrada (salida en la FFT), para que en la salida (entrada en la FFT) el resultado de ordenado.

Lorenzo Meler Ferraz 25

Page 26: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

CÓDIGO function [senal_out]=mifft(senal_in,N) for u=1:N %metemos los primero N coeficientes de la señal de entrada en out out1(u)=senal_in(u); end out=out1; T=log10(N)/log10(2);%calculamos el número de bits necesarios, según el número de coeficientes que le metemos a la función. T=fix(T+0.5); binario=zeros(1,T); %para crear un vector de longitud T todo zeros %********************************************************** %***** ordenamos los coeficientes %********************************************************** for n=1:N indice=n-1; for t=1:T %calculo el numero en binario y le doy la vuelta directamente binario(t)=rem(indice,2); indice=fix(indice/2); binario2(T-t+1)=binario(t); end decimal=0; for t=0:T-1 decimal=binario2(t+1)*(2^(t))+decimal; end decimal=decimal+1; out(n)=out1(decimal); end %****************************************** %*** una vez ordenados los coeficientes %*** calculamos la transformada %****************************************** for d=1:T n=2^d; w=2*pi/n; for m=0:n:N-n for k=1:1:(n/2) y=out(m+k);

Lorenzo Meler Ferraz 26

Page 27: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

z=out(m+k+n/2)*exp(-i*k*w); out(m+k)=(y+z); out(m+k+n/2)=(y-z); end end end n=0; senal_out=out;

Lorenzo Meler Ferraz 27

Page 28: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

5.- FILTRO DE WIENER

Como se explicaba en el primer punto “el problema del eco”, el proceso de pasar la señal por conversores, habitaciones, altavoces, etc., se acaba denominando filtrado. El interés radica en estimar como se realiza este filtrado, es decir, poder realizar digitalmente un sistema lo más parecido al filtrado real (recordando, los conversores, los altavoces,….) Wiener propone una solución para llegar lo más rápido posible a conseguir nuestro filtro deseado, caso que se explicará a continuación. Pero después de todo esto, surge un problema añadido, y es que tanto el filtro real como nuestra señal de entrada van variando constantemente, la señal de entrada lo hace por razones obvias (si es voz esta señal está claro su cambio) y el filtro puede cambiar por condiciones ambientales, por modificación de la sala etc.

Este último problema no se puede resolver con la solución que en un principio Wiener nos propone, pero si con un algoritmo llamado LMS que proviene del filtrado de Wiener. Se verá como el problema de la no estacionareidad se resuelve con este último algoritmo, ya que la solución óptima de Wiener se consigue exclusivamente para sistemas estacionarios.

El objetivo de este apartado consiste en explicar el filtro de Wiener, que no es más que el de diseño de una respuesta impulsional h(n), de longitud L muestras, de modo y manera que la salida y(n) sea lo mas parecida posible a una señal, denominada deseada, d(n). El denominado parecido puede establecerse con cualquier criterio que se estime oportuno; no obstante, un planteamiento lineal del problema obliga a tomar, como medida de parecido, el error cuadrático medio entre la salida y la referencia.

{ }( ) { }22 )()()( nyndEnE −== εξ ec. 5.1

Dicho de otro modo, el propósito es encontrar un FIR de L coeficientes h(n) (n=1,L) tal que su respuesta a los datos, de este modo se denominará a la señal de entrada, produzca una salida lo mas próxima a la deseada en términos de MSE (Error Cuadrático Medio) mínimo. La situación se resume en la figura 5.1:

Lorenzo Meler Ferraz 28

Page 29: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

FILTRO DE WIENER h(n)

residuo o error e(n) deseada d(n)

salida y(n)

- +

x(n)

+

Figura 5.1

Donde: DATOS x(n) n=0,...N-1 vector x FILTRO h(n) n=0,...,L-1 vector h SALIDA y(n) n=0,...,N+L-1 REFERENCIA d(n) n=0,...,N-1 De nuevo es útil formular el problema en términos

vectoriales. La salida del filtro puede escribirse como:

xhny *)( = ec. 5.2

Al introducir esta última expresión en el cálculo del error que aparece en la ecuación 5.1 y desarrollar el valor esperado de su modulo al cuadrado se obtiene la función objetivo a minimizar.

En definitiva, encontrar un filtro FIR que cumpla estas condiciones no es más que ir modificando los coeficientes de manera que el error que se produzca, sea cada vez menor, llegando al final a la solución optima de Wiener como se muestra en al figura 5.2.

-0.08 -0.06 -0.04 -0.02 0 0.02 0.04 0.06 0.080

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

W0

W1

Convergencia

solución óptimade Wiener

Figura 5.2

Lorenzo Meler Ferraz 29

Page 30: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

6.- FILTRADO ADAPTATIVO

Generalmente, las señales con las que se trabaja no son estacionarias, por ello, el filtrado de Wiener (capítulo 5) no resulta apropiado en estas situaciones, ya que es la solución óptima para el caso de sistemas estacionarios. Una forma de solventar este problema consiste en operar con el proceso en bloques, sobre intervalos en los cuales el proceso pueda ser considerado aproximadamente estacionario. Pero esta técnica presenta limitaciones en su efectividad por varias causas. En primer lugar, para procesos con gran velocidad de variación, el intervalo sobre el que se puede considerar estacionariedad va a ser demasiado pequeño para conseguir una resolución apropiada. Por otra parte, esta técnica no puede incorporar fácilmente cambios en los intervalos de análisis. Por último, y más importante, esta solución impone un modelo incorrecto para los datos, es decir, considera estacionariedad donde no la hay. Por tanto, para obtener unos resultados más precisos, se debe comenzar nuestro estudio bajo el supuesto de no estacionariedad.

Para el caso del filtro Wiener FIR, con coeficientes h, la estimación de la señal en sentido de mínimo error cuadrático medio es:

∑=

−=N

m

)mn(x)·m(h)n(d1

ec. 6.1

)()·()( nxnxnR H=∧

ec. 6.1.a

)()·()( ndnxnp ∗∧

= ec. 6.1.b

Con x(n) y d(n) procesos estacionarios en sentido amplio, la solución de Wiener resulta hopt = R-1 p. Siendo R la matriz de autocorrelación de x (ecuación 6.1.a) y p la ecuación de correlación entre las señales x y d (ecuación 6.1.b). Pero ahora los procesos con los que se trabaja no son estacionarios, y los coeficientes del filtro que minimizan E{|e(n)|2} dependen de n:

∑−

=

−=1

0

N

kk )kn(x)·n(h)n(y ec. 6.2

Lorenzo Meler Ferraz 30

Page 31: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

donde hk(n) es el coeficiente k-ésimo en el instante n. De esta forma, la salida del filtro y(n) se puede expresar como

y(n) = hT(n) x(n) ec. 6.3

donde

hk = [ h0(n) h1(n) ... hp-1(n)]T ec. 6.4

x(n) = [ x(n) x(n-1) ... x(n-p+1)]T ec. 6.5

El diseño de un filtro adaptativo (variante en el tiempo) es mucho más complicado que el de un filtro de Wiener (invariante en el tiempo), ya que, para cada instante de tiempo n, se ha de encontrar un conjunto de coeficientes óptimos, hk(n) para k = 1, 2, ..., N. Pero se puede simplificar el problema considerando una actualización de los pesos del filtro de la forma que muestra la ecuación 6.6.

h(n+1)= h(n) + µ·hn ec. 6.6

donde µ·hn es un factor de corrección que se aplica a los coeficientes h(n) en el instante n para obtener el nuevo conjunto de coeficientes h(n+1) en el instante n+1. Esta ecuación de actualización es la base de los algoritmos adaptativos, y el diseño de cada filtro adaptativo requiere definir este factor µ·hn.

La clave de un filtro adaptativo se basa en un algoritmo que define cómo se ha de aplicar la corrección µ·hn. Es evidente que estas correcciones deben reducir el error cuadrático medio. De hecho, independientemente del algoritmo utilizado, se ha de cumplir:

o En un escenario estacionario, el filtro debe producir una secuencia de correcciones µ·hn de modo que hn converja a la solución óptima de Wiener

P·Rhlim nn

1−

∞→= ec. 6.9

Lorenzo Meler Ferraz 31

Page 32: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

o No ha de ser imprescindible conocer las estadísticas rx(k) y rdx(k) para calcular µ·hn. La estimación de estos estadísticos se tiene que realizar de manera implícita en el filtro adaptativo.

o Para señales no estacionarias, el filtro debe ser capaz de adaptarse a los cambios estadísticos y alcanzar la solución al evolucionar en el tiempo.

hn(z)

Algoritmo adaptativo

+ + Y(n) -

d(n)

X(n)

e(n) ∆hx

Figura 6.1

El algoritmo adaptativo debe disponer del error e(n) para actualizar los coeficientes, ya que e(n) permite definir las prestaciones del filtro y determinar la forma en que han de modificarse dichos coeficientes.

La eficiencia de un filtro adaptativo depende de una serie de factores, como el tipo de filtro (IIR o FIR), la estructura del mismo (forma directa, paralela, ...), y la forma en que se define la medida de prestaciones (error cuadrático medio, mínimo error cuadrático, ...).

Este estudio se va a centrar en el filtro FIR por varias razones:

• El error cuadrático medio para un filtro transversal es una función cuadrática de los pesos del filtro. La superficie de error es un paraboloide con sólo un mínimo, y por ello, la búsqueda del error cuadrático medio mínimo es relativamente sencilla.

• Asegurando que los coeficientes del filtro estén acotados, se puede controlar fácilmente la estabilidad del filtro.

Lorenzo Meler Ferraz 32

Page 33: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

• Existen algoritmos para la actualización de los coeficientes simples y eficientes.

• Las prestaciones de estos algoritmos son perfectamente conocidas en términos de convergencia y estabilidad.

• El filtro adaptativo FIR funciona lo suficientemente bien para satisfacer el criterio de diseño.

• La estabilidad a variaciones bruscas de la señal de entrada o de la sala es buena ya que el error vuelve a converger rápidamente.

Hay tres conceptos principales en la medida de las prestaciones de un algoritmo adaptativo:

• Complejidad (computacional): definida como el número de operaciones que han de realizarse en cada instante para implementar el algoritmo adaptativo; generalmente es un importante factor para determinar si la implementación en tiempo real resulta viable.

• Velocidad de convergencia: la tasa a la que el filtro adaptativo converge a la solución de Wiener. Desafortunadamente, la velocidad de convergencia es inversamente proporcional a la complejidad.

• Desajuste: mide la diferencia entre la solución de Wiener y la obtenida con el algoritmo adaptativo. Generalmente, el desajuste es inversamente proporcional a la velocidad de convergencia y a la complejidad.

El método de máxima pendiente es un algoritmo que modifica los coeficientes en la dirección del gradiente del error. Este algoritmo exige el conocimiento de la estadística, no requiere inversión de matrices (ventaja respecto al método de Wiener), es sensible a la dispersión de autovalores y permite incorporar fácilmente cambios en la estadística.

Pero en este proyecto se verá el algoritmo LMS, mucho más fácil de implementar que el anterior y, aunque realiza una estimación del gradiente muy exagerada (se estima de forma instantánea en una sola iteración), resulta un método muy robusto.

También se verá el LMS normalizado, que independiza la convergencia del filtro de la potencia de la señal de entrada.

Otros algoritmos que son susceptibles de estudio debido al carácter del proyecto son: el LMS con factor de pérdidas (leaky), importante en casos de matrices mal

Lorenzo Meler Ferraz 33

Page 34: Explica LMS y Otros

CONCEPTOS INTRODUCCTORIOS

condicionadas, o los algoritmos signados, que suponen un gran ahorro computacional y, por ello, son ampliamente utilizados en aplicaciones de tiempo real, importante para el desarrollo final del estudio presente.

Sin embargo, estos dos últimos, no serán estudiados en este proyecto, centrándolo más en el LMS y en el NLMS, para más tarde pasar a su implementación en el dominio de la frecuencia.

Lorenzo Meler Ferraz 34

Page 35: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

ALGORITMOS LMS EN EL DOMINIO TEMPORAL 2.1.-ALGORITMO LMS EN EL DOMINIO TEMPORAL

2.1.1.- INTRODUCCIÓN. 2.1.2.- DIAGRAMA DE BLOQUES E INSTRUCCIONES. 2.1.3.- RESULTADOS CON DIFERENTES SEÑALES DE ENTRADA. 2.1.4.- RESULTADOS CAMBIANDO EL TAMAÑO DEL FILTRO. 2.1.5.- CÁLCULO DEL NÚMERO DE MULTIPLICACIONES Y SUMAS EN FUNCIÓN DEL TAMAÑO DEL FILTRO. 2.1.6.- CÓDIGO DEL PROGRAMA.

2.2.-ALGORITMO NLMS (LMS NORMALIZADO):

2.2.1.- INTRODUCCIÓN 2.2.2.- DIAGRAMA DE BLOQUES 2.2.3.- µ DEPENDIENTE DE LA POTENCIA DE LA SEÑAL 2.2.4.- RESULTADOS OBTENIDOS (mejores valores de α) 2.2.5.- COMPARACIÓN DE RESULTADOS LMS vs. NLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES) 2.2.6.- CÓDIGO DEL PROGRAMA

2.3.-ALGORITMO BLMS (BLOCK LMS):

2.3.1.- INTRODUCCIÓN 2.3.2.- DIAGRAMA DE BLOQUES 2.3.3.- RESULTADOS OBTENIDOS (mejores valores de α) 2.3.4.- COMPARACIÓN DE RESULTADOS LMS vs. BLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES) 2.3.5.- DIFERENCIA DE OPERACIONES LMS vs. BLMS 2.3.6.- CÓDIGO DEL PROGRAMA

2.4.-ALGORITMO BNLMS (BLOCK LMS NORMALIZADO):

2.4.1.- INTRODUCCIÓN 2.4.2.- DIAGRAMA DE BLOQUES 2.4.3.- RESULTADOS OBTENIDOS (mejores valores de α) 2.4.4.- COMPARACIÓN DE RESULTADOS BLMS vs. BNLMS (DIFERENCIAS, VENTAJAS E INCONVENIENTES) 2.4.5.- CÓDIGO DEL PROGRAMA

Lorenzo Meler Ferraz 35

Page 36: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.-ALGORITMO LMS EN EL DOMINIO TEMPORAL

2.1.1.- introducción.

El estudio que se va a realizar muestra como se comporta el algoritmo LMS en el dominio del tiempo y algunas características a tener en cuenta.

El algoritmo LMS pertenece a la familia de los algoritmos de gradiente estocástico. Con el término "estocástico" se pretende distinguir este algoritmo del Steepest Descent, que utiliza un gradiente determinista para el cálculo de los coeficientes del filtro.

Una característica importante del LMS es su simplicidad. No requiere medidas de las funciones de correlación, ni tampoco inversión de la matriz de autocorrelación.

El LMS comprende dos procesos básicos:

• Un proceso de filtrado, que implica el cálculo de la salida generada por un filtro transversal, y la generación de una estimación del error comparando esta salida con la respuesta deseada.

• Un proceso adaptativo, que realiza el ajuste automático de los coeficientes del filtro de acuerdo con la estimación del error.

Si fuera posible obtener medidas exactas del vector gradiente ∇ξ(n) en cada iteración n, y dispusiéramos del parámetro µ adecuadamente elegido, el vector de pesos del filtro convergería a la solución óptima de Wiener. Pero en la realidad no se dispone de estas medidas exactas del vector gradiente, ya que no se conoce la matriz de autocorrelación de la señal de entrada al filtro ni el vector de correlación cruzada entre esta señal de entrada al filtro y la respuesta deseada. Por tanto, el vector gradiente ha de ser estimado a partir de los datos.

La manera más sencilla de estimar el vector gradiente consiste en sustituir en la ecuación 1.1.1

∇ξ(n) = -2 p + 2 R· h(n) ec. 2.1.1.1

R y p por estimaciones instantáneas a partir de los valores de señal de entrada al filtro y por la respuesta deseada como se ve en la ecuación 1.1.2.

Lorenzo Meler Ferraz 36

Page 37: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

)()·()( nxnxnR H=∧

)()·()( ndnxnp ∗∧

=

Ec. 2.1.1.2

Y se obtiene así una estimación instantánea del vector gradiente

)n(h)·n(x)·n(x·)n(d)·n(x)n( H22 +−=∇ ∗∧

ξ ec. 2.1.1.3

Esta estimación puede verse como el resultado de aplicar el operador gradiente ∇ al error instantáneo |e(n)|2. Si se sustituye la estimación del vector gradiente en la ecuación de actualización de los pesos utilizada en el algoritmo Steepest-Descent { h(n+1) = h(n) - (1/2) µ (-∇ξ(n)) } se obtiene la relación recursiva siguiente:

[ ])n(h)·n(x)n(d)n(x·)n(h)n(h H−+=+ ∗µ1 ec. 2.1.1.4

Se puede expresar esta solución con las relaciones siguientes:

1. Salida del filtro

y(n) = hH(n) x(n) ec. 2.1.1.5

2. Estimación del error

e(n) = d(n) – y(n) ec. 2.1.1.6

3. Adaptación de los pesos del filtro

h(n+1) = h(n) + µ x(n) e*(n) ec. 2.1.1.7

En cada iteración, la actualización de un peso requiere dos multiplicaciones reales y una suma. Por tanto, para un filtro de N coeficientes, se realizan 2N+1 multiplicaciones reales y 2N sumas reales por iteración.

Se observa que la estimación del error, definida por las dos primeras ecuaciones, depende del vector de pesos actual h(n), y el término µ ·x(n)·e*(n) representa la corrección aplicada al vector de pesos h(n). El algoritmo iterativo ha de comenzar con un valor inicial h(0). También notamos que en cada iteración se debe conocer el valor de x(n), d(n) y h(n).

Lorenzo Meler Ferraz 37

Page 38: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Cuando este algoritmo de gradiente estocástico opera con señales estocásticas, las direcciones del gradiente son aleatorias y generalmente no coinciden con la dirección señalada por el Steepest-Descent. Pero, al ser no sesgado en media, la corrección aplicada al vector de pesos sigue, en media, la dirección del Steepest-Descent.

[ ] [)n()n(Rh·p·

)n(h).n(x)·n(xE·)n(d)·n(xE·)n(h)·n(x)·n(x·)n(d)·n(x·E)n(E HH

ξ

ξ

∇=+−=

=+−=⎥⎦⎤

⎢⎣⎡ +−=⎥⎦

⎤⎢⎣⎡∇ ∗

∧∗

22

2222 ]

ec. 2.1.1.8

ANÁLISIS DE CONVERGENCIA:

Una de las prestaciones a analizar en todo algoritmo es la velocidad de convergencia.

La convergencia, al igual que en el steepest descent, viene determinada por los autovalores de la matriz de autocorrelación R y su dispersión. Así, el valor de µ que garantiza convergencia en media es:

λµ

max

20 << ec. 2.1.1.16

donde λmax es el mayor de los autovalores de la matriz de autocorrelación, que cumple:

∑−

=

=≤1

0max )(

N

kk Rtrλλ ec. 2.1.1.17

Con el fin de asegurar la convergencia en varianza, el parámetro µ debe elegirse de forma más restrictiva:

max·320

λµ << ec. 2.1.1.18

Cuando el vector de pesos comienza a converger en media, los coeficientes empiezan a fluctuar en torno a sus valores óptimos. Estas fluctuaciones son debidas a que el vector gradiente utilizado para realizar las correcciones al vector de pesos es ruidoso. En consecuencia, la varianza del error no tiende a cero y el error cuadrático medio es mayor que el error cuadrático medio mínimo en una cantidad denominada exceso de error cuadrático medio. Para determinar este exceso de error, se puede demostrar que:

Lorenzo Meler Ferraz 38

Page 39: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

∑−

=

=

−−

−=∞ 1

0

1

0

21

2N

k k

k

N

k k

k

minexc

··

··)(

λµλ

µ

λµλ

ξµξ ec. 2.1.1.19

Donde excξ representa el exceso de error cuadrático medio.

Lorenzo Meler Ferraz 39

Page 40: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.2.- diagrama de bloques e instrucciones.

A continuación, en la figura 1.2.1, se presenta el diagrama de bloques, en el cual se intenta representar todos los bloques necesarios para realizar el algoritmo LMS, así como las señales que intervienen en dicho algoritmo. DIAGRAMA DE BLOQUES

1 viejo

he

x

µ

y

-

e e +

d

h

añadir y dar la vuelta

DELAY

*

x

Σ

*

x +

Figura 2.1.2.1

Este símbolo nos indica una convolución lineal.

Multiplicación. En los dos casos que hay

X*

multiplicación se hace un escalar por un vector.

Lorenzo Meler Ferraz 40

Page 41: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Suma de dos escalares.

+

Sudatorio entre dos vectores.

Σ Las flechas indicadas en negrita muestran que por ahí va un vector (del tamaño del filtro), y las flechas o líneas más finas indican que únicamente circula un escalar.

Lorenzo Meler Ferraz 41

Page 42: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Los pasos de este diagrama se representan en las ecuaciones de la tabla 2.1.2.2. INSTRUCCIONES. INICIALIZACIÓN he=[0……0] %anchura del vector N µ constante de adaptación. func señal de entrada al sistema x(m)=func(m) los N primeros valores de la señal muestreada se introducen en el vector de entrada inicial. PARA CALCULAR UN VALOR DE LA SEÑAL DE SALIDA - Toma una nueva muestra xn(m+1)= xn(m) xn(1)= func(m+n) - Calcula la señal deseada dn = yn(m)*hn(m) - Calcula la señal estimada yn = xn(m)*hen(m) - Cálculo del error en = dn - yn - LMS hen+1 = hen(m)+µ·e·xn(m)

Figura 2.1.2.2 Donde el significado de cada elemento es:

- func: la señal que va llegando (a través del altavoz).

- x: se muestrea la señal func para utilizarla en el algoritmo.

- h: es el vector que representa el filtro real, es decir sistema en planta.

Lorenzo Meler Ferraz 42

Page 43: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

- d: señal que se desea obtener, calculada a partir de la señal de entrada (x) y del filtro real (h), haciendo la convolución entre éstas.

- e: se denomina con e minúscula al error que vamos cometiendo obtenido de restar la señal deseada con la señal estimada (y).

- y: es la señal estimada, la que se tiene que hacer que se parezca a la señal deseada.

- µ: “factor de convergencia”. - he: filtro estimado. Al igual que ye se tiene que ir

pareciendo a y, el filtro estimado se tiene que ir acercando a los valores del filtro real, porque una vez que lo obtengamos la señal estimada pasará a ser igual que la señal deseada.

- m: es la posición del coeficiente en los diferentes vectores.

Cada instante de tiempo n (en nuestro caso 1/8000 seg.), muestrearemos la señal func, introduciendo su valor en la primera posición del vector x (previamente habremos desplazados todos los valores de este vector hacia la derecha, es decir desechando el más antiguo).

Nota: Los coeficientes que conforman el filtro real h, se consiguió recogiendo el resultado de introducir estimando la función impulso en la furgoneta del laboratorio CAR de la EUPT.

Lorenzo Meler Ferraz 43

Page 44: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.3.- resultados con diferentes señales de entrada.

Para analizar y comparar las prestaciones del

algoritmo LMS en el dominio del tiempo, se tendrá que analizar para unas cuantas señales de entrada, y se decide que con las señales que se han usado es suficiente para saber si funciona correctamente. También se utilizan algunas de estas señales porque es fácil que se encuentren como entrada a del sistema (como la señal de voz y la de música). Las señales que se han utilizado son: - tonos a 50, 500, 1000 y 3000 - los cuatro tonos anteriores juntos. - Los tonos 50, 100 y 150 juntos. - Tonos 1000, 2000 y 3000 - Música. - Voz. - Ruido blanco.

En casi todos los casos, el factor de convergencia ha

sido µ=0.001, pero en algunos no se ha utilizado este valor. Se dirá en cada caso que valor se ha usado.

Lo que se debería hacer en este apartado es encontrar el

valor de µ con el que se consigue la mayor reducción del error en el menor tiempo posible, sin llegar a divergir. Siempre se empieza por un valor muy pequeño, por ejemplo 0.001. A partir de ahí se tiene que ir aumentando este valor, ya que su incremento hará que la cancelación del eco sea más rápida. El problema está en que un valor de µ muy elevado daría una divergencia del error, así que este aumento se hará poco a poco. Hay que tener en cuenta que cada señal (cada tipo de señal, voz, tonos, ruido blanco,…) da lugar a una matriz de autocorrelación, R, con diferentes autovalores. Estos autovalores son los que determinan los valores óptimos de µ. Por tanto este valor de µ varía según el tipo de señal, como se ha visto en el estudio que se ha hecho previamente.

Los valores óptimos de este factor de convergencia han

sido definidos experimentalmente, observando cual de todos cancelaba mejor el error (menor tiempo y mayor cancelación final). En este apartado únicamente se han representado los resultados para estos valores, los que hacen que el resultado sea el mejor, habiendo hecho antes el estudio al que me refiero en este párrafo.

Lorenzo Meler Ferraz 44

Page 45: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

En las gráficas aparece la amplitud de la señal de error junto con el nivel de cancelación obtenido al final del cálculo.

La ecuación que se utilizará para calcular este nivel de cancelación es la 2.1.3.1.

⎟⎠⎞

⎜⎝⎛=

(d) deseada señal(e) error

10·logerror(dB) 10 ec. 2.1.3.1

Y esto promediado para un número de muestras de 100 a 300.

Las representaciones gráficas del apartado 3 se han realizado de acuerdo al valor optimo del factor de convergencia para cada una de las señales, exceptuando la señal “Combinación de tonos 2 (50, 100, 150 Hz). (µ=0.0001)”, donde se ha utilizado un valor inferior al máximo que no diverge debido a que el nivel de cancelación alcanzado es mucho mejor.

Todos los tonos, así como la música y la voz están

muestreados a 8000 muestras por segundo. Este dato ha sido el fundamental para poner los resultados en función del tiempo de la señal. Se han utilizado 16.000 muestras, con lo cual se han representado 2 segundos, y aunque sólo se muestra el tiempo necesario para ver las gráficas, la potencia del error está calculada para los valores finales en dos segundos.

Lorenzo Meler Ferraz 45

Page 46: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 50 Hz. (µ=0.001)

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90

1

2

3

4

5

6

7

x 10-4 CANCELACION DE ECO

erro

r

tiempo (seg.)

121,2696 dB

Figura 2.1.3.1

Tono 150 Hz (µ=0.001)

0.02 0.04 0.06 0.08 0.1 0.12 0.140

0.005

0.01

0.015

0.02

0.025CANCELACIÓN DEL ECO

tiemo (seg.)

error

122,7569 dB

Figura 2.1.3.2

Lorenzo Meler Ferraz 46

Page 47: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono a 1000 Hz. (µ=0.001)

1 2 3 4 5 6 7 8 9 10

x 10-3

-0.04

-0.02

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16CANCELACION DE ECO

erro

r

tiempo (seg.)

118,0803 dB

Figura 2.1.3.3

Tono a 3000 Hz. (µ=0.001)

0 1 2 3 4 5 6 7 8 9 10

x 10-3

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACION DE ECO

erro

r

tiempo (seg.)

118,2809 dB

Figura 2.1.3.4

Lorenzo Meler Ferraz 47

Page 48: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz). (µ=0.0001)

0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05-0.6

-0.4

-0.2

0

0.2

0.4

0.6

CANCELACIÓN DEL ECO

tiempo (seg.)

error 118,6414 dB

Figura 2.1.3.5 Combinación de tonos 2 (50, 100, 150 Hz). (µ=0.0001)

En este caso se ha probado con µ=0.001 y el resultado no diverge, pero es mucho peor que el que obtenemos para este valor del factor de convergencia.

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

CANCELACIÓN DEL ECO

tiempo (seg.)

error 122,0456 dB

Figura 2.1.3.6

Lorenzo Meler Ferraz 48

Page 49: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 3 (1000, 2000, 3000 Hz). (µ=0.001)

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-1

-0.5

0

0.5

1

CANCELACIÓN DE ECO

tiempo (seg.)

error

Figura 2.1.3.7 (119.9592 dB)

Música. (µ=0.01)

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.05

0

0.05SEÑAL DESEADA

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.02

-0.01

0

0.01

0.02SEÑAL ESTIMADA

tiempo

Figura 2.1.3.8

119.9592 dB

Lorenzo Meler Ferraz 49

Page 50: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Voz. (µ=0.01)

señales

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.2

0

0.2

0.4SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

Figura 2.1.3.9

Ruido blanco. (µ=0.001)

0 0.5 1 1.5 2 2.5 3-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8CANCELACION DE ECO

erro

r

tiempo (seg.)

9,0304 dB

Figura 2.1.3.10 CONCLUSIONES: Los niveles que la ITU recomienda como aceptables para una cancelación de eco están a partir de 40dB., niveles que como se verá, muy pocas veces se alcanzan, pero la explicación radica en que las señales utilizadas están normalizadas, por lo que la potencia del error cancelado se hará más difícil. Estos niveles serán utilizados tanto para los algoritmo LMS en el tiempo como

Lorenzo Meler Ferraz 50

Page 51: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

en la frecuencia. En estas representaciones, se puede ver que las señales de un tono y combinación de tonos, vienen dadas por la señal del error, utilizando la ecuación 1.3.1 para calcular la potencia final a la que llega la potencia del error, donde se saca una relación entre el error cometido y la señal de entrada. En estas señales (los tonos nombrados en el párrafo anterior), cuando se le aplica el primer algoritmo se ve que el tiempo de cancelación depende claramente de la frecuencia del tono, siendo mayor este tiempo cuanto menor es la frecuencia. En la combinación de tonos se puede apreciar claramente esta observación, ya que la primera combinación, compuesta por tonos de diferentes frecuencias, algunas muy juntas y otras muy separadas; tiene un tiempo de cancelación intermedio comparado con las otras combinaciones, donde la que está compuesta por tonos de baja frecuencia el tiempo es mucho más bajo que el que tarda en el de la tercera combinación. Con respecto a las señales como voz y música, de las cuales no se representan las señales de error, se puede observar como la señal estimada, al cabo de menos de un segundo, la similitud, en lo que respecta a la evolución en el tiempo de la amplitud, es bastante grande, teniendo en cuenta que los valores de amplitud de la señal estimada son aproximadamente la mitad del valor de la deseada. Si se ha escogido el método de comparación en estas señales, es debido a que las representaciones de la cancelación del error no aportan nada de información. Esta falta de información proviene de la no existencia de una cancelación real del error y sí una simple similitud entre las dos señales. Se puede concluir que para estas dos señales (representadas en las figuras 2.1.3.8 y 2.1.3.9) con este algoritmo no se consiguen los objetivos planteados. Lo que respecta al ruido, última señal a analizar, se ha representado la figura en la que aparece el error (resta de la señal deseada menos la estimada), es decir el error lineal. Se puede ver como la cancelación del eco es de -9.0304dB.

Lorenzo Meler Ferraz 51

Page 52: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

DATOS:

TONOS 50Hz. 150Hz. 1000Hz. 3000Hz.

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.3 0.04 0.003 0.003

POTENCIA DEL ERROR

RESIDUAL (dB.)

121.2696 122.7569 118.0803 118.2809

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.03 0.04 0.03

POTENCIA DEL ERROR

RESIDUAL (dB.)

118.6414 122.0456 119.9592

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

--- --- ---

POTENCIA DEL ERROR

RESIDUAL (dB.)

--- --- ---

Tabla 2.1.3.1

Lorenzo Meler Ferraz 52

Page 53: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.4.- resultados cambiando el tamaño del filtro. El análisis será el mismo que en el apartado anterior,

utilizando diferente µ (para cada una de las señales de entrada), ya que al utilizar filtros de anchura menor, el paso del algoritmo se puede hacer mayor; la reducción del error es mayor o menor (a priori menor) porque luego calcularemos el número de operaciones que se hacen con cada filtro (menos operaciones cuanto más corto sea el filtro, cuantos menos coeficientes tenga) y se verá que filtro conviene.

Los filtros utilizados para este ejemplo serán de 512

coeficientes y de 256, valores que se consideran suficientes como para llegar a conclusiones claras en este apartado.

A continuación, únicamente se colocarán los resultados

del error. Aunque se han calculado la señal deseada y la estimada estas sólo se utilizarán, al igual que el apartado anterior, para las señales de música y voz, ya que lo que interesa es el resultado del error comparándolo con el anterior. Así, en la parte derecha de cada una de las tablas de las señales de entrada se colocará el resultado con el filtro de 1024 coeficientes, a la izquierda el de 512 y debajo de los dos el de 256.

También habrá que tener en cuenta que se van a analizar

8.000 muestras, por lo tanto habrá que fijarse en el eje de tiempos, ya que los calculados hasta ahora estaban analizadas 16.000 muestras. Es probable que no se muestre todo el tiempo analizado ya que puede que no sea necesario, incluso puede que en algunos casos sea aconsejable representar menos intervalo de tiempo para poder ver con mayor claridad la cancelación del error.

Para obtener los resultados con un filtro menor, los

pasos a seguir son muy parecidos que en el caso anterior, ya que la señal deseada será la misma, obtenida con el filtro de 1024 muestras y con la señal de entrada de 1024 coeficientes (para poder hacer la convolución y así tener d). Para conseguir la señal estimada se tendrá que hacer la convolución de x[512]*he[512], para ello se cogen únicamente los 512 coeficientes de x más nuevos, desechando la otra mitad más antiguos. De esta forma lo que se obtiene es una peor estimación de la señal que debemos alcanzar (la señal deseada). Lo mismo que esto, ocurriría con el filtro de 216 coeficientes.

Lorenzo Meler Ferraz 53

Page 54: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 50Hz. Error filtro 512 coeficientes

(µ=0.005)

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8

x 10-3

-0.005

0

0.005

0.01

0.015

0.02

0.025

CANCELACION DE ECO

erro

r

tiempo (seg.)

32,9802 dB

Error filtro 1024 coeficientes (µ=0.001)

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90

1

2

3

4

5

6

7

x 10-4 CANCELACION DE ECO

erro

r

tiempo (seg.)

121,2696 dB

Error filtro 256 coeficientes

(µ=0.01)

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18

-4

-3

-2

-1

0

1

2

3

x 10-3 CANCELACION DE ECO

erro

r

tiempo (seg.)

27.6755 dB

Figura 2.1.4.1 Tono 150 Hz.

Error filtro 512 coeficientes

(µ=0.005)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90

1

2

3

4

5

6

7

8

9

10x 10

-3 CANCELACION DE ECO

erro

r

tiempo (seg.)

121,6057 dB

Error filtro 1024 coeficientes (µ=0.001)

0.02 0.04 0.06 0.08 0.1 0.12 0.140

0.005

0.01

0.015

0.02

0.025CANCELACIÓN DEL ECO

tiemo (seg.)

error

122,7569 dB

Error filtro 256 coeficientes

(µ=0.01)

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18

2

4

6

8

10

12x 10

-3 CANCELACION DE ECO

erro

r

tiempo (seg.)

121.6061 dB

Figura 2.1.4.2

Lorenzo Meler Ferraz 54

Page 55: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 1000 Hz. filtro 512 coeficientes (µ=0.005)

0 0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.020

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

CANCELACION DE ECO

erro

r

tiempo (seg.)

117,8995 dB

filtro 1024 coeficientes (µ=0.001)

1 2 3 4 5 6 7 8 9 10

x 10-3

-0.04

-0.02

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16CANCELACION DE ECO

erro

r

tiempo (seg.)

118,0803 dB

Error filtro 256 coeficientes

(µ=0.01)

1 2 3 4 5 6 7

x 10-3

0

0.05

0.1

0.15

0.2

CANCELACION DE ECO

erro

r

tiempo (seg.)

117.9178 dB

Figura 2.1.4.3

Tono 3000 Hz.

filtro 512 coeficientes (µ=0.005)

0.002 0.004 0.006 0.008 0.01 0.012 0.014 0.016 0.018 0.02

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACION DE ECO

erro

r

tiempo (seg.)

59.2296 dB

filtro 1024 coeficientes (µ=0.001)

0 1 2 3 4 5 6 7 8 9 10

x 10-3

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACION DE ECO

erro

r

tiempo (seg.)

118,2809 dB

Error filtro 256 coeficientes (µ=0.05)

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5

x 10-3

-1

-0.5

0

0.5

1

1.5

2

2.5

3

x 10-3 CANCELACION DE ECO

erro

r

tiempo (seg.)

156.6934 dB

Figura 2.1.4.4

Lorenzo Meler Ferraz 55

Page 56: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

filtro 512 coeficientes

(µ=0.001)

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACION DE ECO

erro

r

tiempo (seg.)

197,5190 dB

filtro 1024 coeficientes (µ=0.0001)

0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05-0.6

-0.4

-0.2

0

0.2

0.4

0.6

CANCELACIÓN DEL ECO

tiempo (seg.)

error 118,6414 dB

filtro 256 coeficientes (µ=0.001)

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

CANCELACION DE ECO

erro

r

tiempo (seg.)

117.5519 dB

Figura 2.1.4.5

Combinación de tonos 2 (50, 100, 150 Hz).

Error filtro 512 coeficientes (µ=0.001)

0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18

-0.1

-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08

0.1CANCELACION DE ECO

erro

r

tiempo (seg.)

114.9054 dB

Error filtro 1024 coeficientes

(µ=0.0001)

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

CANCELACIÓN DEL ECO

tiempo (seg.)

error 122,0456 dB

filtro 256 coeficientes

(µ=0.001)

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14

-0.25

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15CANCELACION DE ECO

erro

r

tiempo (seg.)

Figura 2.1.4.6

Lorenzo Meler Ferraz 56

Page 57: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 3 (1000, 2000, 3000 Hz).

Error filtro 512 coeficientes

(µ=0.001)

0 5 10 15

x 10-3

-1

-0.5

0

0.5

1

CANCELACION DE ECO

erro

r

tiempo (seg.)

118.8299 dB

Error filtro 1024 coeficientes

(µ=0.001)

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-1

-0.5

0

0.5

1

CANCELACIÓN DE ECO

tiempo (seg.)

error

Error filtro 256 coeficientes

(µ=0.005)

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14

-0.5

0

0.5

1

CANCELACION DE ECO

erro

r

tiempo (seg.)

112.0369 dB

Figura 2.1.4.7

Música. (µ=0.01)

filtro 512 coeficientes

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.04

-0.02

0

0.02

0.04

0.06SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.02

-0.01

0

0.01

0.02SEÑAL ESTIMADA

tiempo

filtro 1024 coeficientes

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.05

0

0.05SEÑAL DESEADA

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.02

-0.01

0

0.01

0.02SEÑAL ESTIMADA

tiempo

Filtro 256 coeficientes

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.04

-0.02

0

0.02

0.04

0.06SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.02

-0.01

0

0.01

0.02SEÑAL ESTIMADA

tiempo Figura 2.1.4.8

119.9592 dB

Lorenzo Meler Ferraz 57

Page 58: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Voz. (µ=0.01)

filtro 512 coeficientes

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.2

0

0.2

0.4SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

filtro 1024 coeficientes

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.2

0

0.2

0.4SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

filtro 256 coeficientes

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.2

0

0.2

0.4SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo Figura 2.1.4.9 Ruido Blanco.

Error filtro 512 coeficientes (µ=0.01)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

6.7044 dB

Error filtro 1024 coeficientes

(µ=0.001)

0 0.5 1 1.5 2 2.5 3-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8CANCELACION DE ECO

erro

r

tiempo (seg.)

9,0304 dB

Error filtro 256 coeficientes (µ=0.01)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8CANCELACION DE ECO

erro

r

tiempo (seg.)

9.7385 dB

Figura 2.1.4.10

Lorenzo Meler Ferraz 58

Page 59: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

CONCLUSIÓNES: Después de observar todas estas figuras, comparándolas unas con otras, se puede aventurar a dar algunas conclusiones sobre la utilización de un filtro con mas o menos coeficientes. Habrá que diferenciar entre las señales periódicas (los tonos y combinación de tonos) y las que no lo son (el ruido blanco, la voz y la música) ya que el comportamiento es totalmente diferente. En las señales periódicas, la gran diferencia entre usar un filtro y otro es el tiempo que tarda en alcanzar su valor máximo de cancelación, siendo este tiempo mayor cuanto menor número de coeficientes posee el filtro. Excepto en el caso de una tono de baja frecuencia, donde el tiempo de cancelación es menor para el uso de un filtro de 216 coeficientes que para el de 512. En el resto de señales no se puede apreciar una clara diferencia, a no ser que lo se sepa a priori, entre el uso de un filtro u otro, ya que la cancelación no es excesivamente buena con ninguno. La conclusión en este caso es que para este tipo de señales sería mejor usar algoritmos diferentes, como los que se van a ver en capítulos posteriores. La última conclusión a la que llegamos con la simple observación es que lo único en lo que se gana con filtros con más coeficientes es en una mayor rapidez en la cancelación del error y únicamente en señales periódicas; mientras que el nivel de cancelación es similar se use el filtro que se use; esto se puede comprobar dando más tiempo de funcionamiento, es decir computando más muestras de la señal de entrada. Para las señales que hasta ahora más había costado cancelar, me refiero a la música y a la voz, se ve una pequeña mejoría cuantos más coeficientes tiene nuestro filtro. Si se observa la señal de ruido, parecerá a primera vista que la mejor cancelación se hace con el filtro de 256, y es correcto, sencillamente porque debido a que se usa un filtro con tan pocos coeficientes, permite utilizar un factor de convergencia mas alto, consiguiendo de este modo una reducción del error mucho más rápida que con el resto de filtros. Para el filtro de 512 coeficientes el valor de esta constante es la misma que en el caso del filtro con menos coeficientes y se puede observar como la potencia del error toma valores de 3dB. por encima del anterior. Si el tiempo de análisis hubiera sido bastante

Lorenzo Meler Ferraz 59

Page 60: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

mayor, los resultados obtenidos para el de 512 serían mejores, y los de 1024 hubieran cancelado más aún debido a la µ tan pequeña.

Con los filtros de menos coeficientes se obtiene una peor estimación de la respuesta real. Se pueden usar valores del factor de convergencia mayores que con filtros con un mayor número de coeficientes. Aunque el algoritmo tarde un poco más en convergir con los filtros grandes, a veces no es necesario un tiempo tan corto, y más una recisión más exacta. p DATOS:

TONOS 50 Hz. 150 Hz. 1000 Hz. 3000 Hz.

1024 0.3 0.04 0.003 0.003

512 0.9 0.2 0.005 0.004

TIEMPO DE CANCELACIÓN DEL ECO (seg.) 256 0.06 0.16 0.005 0.001

1024 121.2696 122.7569 118.0803 118.2809

512 32.9802 121.6057 117.8995

POTENCIA DEL ERROR RESIDUAL (dB.) 256 27.6755 121.6061 117.9178

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

1024 0.03 0.04 0.03

512 0.02 0.16 0.005

TIEMPO DE CANCELACIÓN DEL ECO (seg.) 256 0.01 0.08 0.8

1024 118.6414 122.0456 119.9592

512 197.5190 114.9054 118.8299

POTENCIA DEL ERROR RESIDUAL (dB.) 256 117.5519 --- 112.0369

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

1024 --- --- ---

512 --- --- 0.9

TIEMPO DE CANCELACIÓN DEL ECO (seg.) 256 --- --- 0.5

1024 --- --- 9.0304

512 --- --- 6.7044

POTENCIA DEL ERROR RESIDUAL (dB.) 256 --- --- 9.7385

Lorenzo Meler Ferraz 60

Page 61: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.5.- cálculo del número de multiplicaciones y sumas en función del tamaño del filtro.

Si se quiere calcular el número de multiplicaciones y

sumas que se deben hacer según el tamaño del filtro, es necesario saber, lo primero, cuantas convoluciones se van a realizar y que conlleva cada convolución.

Una convolución consta de: - Tantos productos como coeficientes tiene el filtro. - Tantas sumas como coeficientes tiene el filtro menos

una. Para saber todas estas operaciones nos fijaremos en las

instrucciones que aparecen en el apartado 1 de este mismo tema, donde aparecen todas las operaciones que nuestro algoritmo, y en definitiva nuestro programa, realiza.

La primera operación es una convolución, entre la señal

de entrada x y el filtro real h. Por lo tanto por ahora habrá N productos y N-1 sumas (siendo ‘N’ el tamaño del filtro h). Hay que tener en cuenta que estas operaciones, en la implementación real, nos aparecerán, ya que se tendrá acceso a esta señal directamente y se la podrá muestrear en vez de calcularla.

Si se sigue mirando el cuadro de instrucciones se ve que

la segunda operación es otra convolución, entre la misma señal de entrada x y el filtro estimado he, consiguiendo con ello la señal estimada. El filtro estimado se ha supuesto de la misma anchura (con el mismo número de coeficientes) que el filtro real, así pues, se vuele a tener el mismo número de productos y sumas que en la primera operación. N productos y N-1 sumas.

La tercera operación es una simple suma (o resta), entre

la señal deseada (y), calculada en la primera operación y la señal estimada (ye), con lo que da un error. Esta suma es de dos números escalares, así que sólo se contará como una.

En el cuadro de instrucciones se tiene luego como,

cuarta operación, es la adaptación del filtro estimado (LMS), donde hay dos multiplicaciones y una suma. Pero esto, se puede reducir un poco, ya que una de las multiplicaciones es de dos constantes escalares. De esta forma, haciendo la multiplicación fuera del LMS, dentro de este bucle sólo quedará una multiplicación y una suma (es decir, igual que en las operaciones anteriores, una multiplicación y una suma por cada coeficiente que tenga el filtro).

Lorenzo Meler Ferraz 61

Page 62: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

La quinta operación será la multiplicación que se ha

sacado antes del bucle anterior (en el código de MATLAB se puede ver que lo se ha sacado llamando a la multiplicación e*µ=fi).

Así pues, a continuación se pone un ejemplo comparando

un filtro de 1024 coeficientes y otro de 512, y se verá la diferencia del número de operaciones entre una y otra.

Filtro de anchura ‘1024’:

Sumas Productos Primera op. - 1023 - 1024Segunda op. - 1023 - 1024Tercera op. - 1Cuarta op. - 1024 - 1024Quinta op. - 1total 3071 3073

Tabla 2.1.5.1

Filtro de anchura ‘512’:

Sumas Productos Primera op. 10231 10241

Segunda op. 511 512Tercera op. 1Cuarta op. 512 512Quinta op. 1total 2047 2049

Tabal 2.1.5.2

La diferencia de operaciones es de casi un tercio más

para el filtro de 1024 coeficientes, tanto de sumas como de productos. Por lo tanto el tiempo de resolución de cada muestra será bastante menor en el filtro de anchura más pequeño (como era de esperar). La desventaja radica en que la información del sistema es menor, y por tanto las soluciones no serán tan reales como en el caso del filtro mayor.

1.este valor es invariable, no depende del filtro estimado que se use, ya que depende del filtro real que en un principio es siempre el mismo

Lorenzo Meler Ferraz 62

Page 63: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.1.6.- código en MATLAB del algoritmo LMS en el dominio del tiempo.

Programa principal.”lmstiempo.m” clear; k=16000;%Para el numero de iteraciones, para calcu disp('elige entre todas estas señales:') disp('a-->voz') disp('b-->coseno') disp('c-->ruido blanco') disp('d-->varios tonos') disp('e-->musica') load camino.mat load señales.mat func=input('la eleccion es: ','s'); n=0:1/8000:5; if func=='a' func=wavread('Aleman.wav'); [ysalida,et,ye]=func_lmstiempo(func); elseif func=='b' func=cos(2*pi*50*n); [ysalida,et,ye]=func_lmstiempo(func); elseif func=='c' func=rand(1,40000); [ysalida,et,ye]=func_lmstiempo(func); elseif func=='d'

func=(sin(2*pi*1000*n)+sin(2*pi*2000*n)+cos(2*pi*3000*n));

[ysalida,et,ye]=func_lmstiempo(func); elseif func=='e' func=2*musica'; [ysalida,et,ye]=func_lmstiempo(func); else disp('ha introducido una funcion no valida'); end for m=1:k t(m)=m/8000; end; for m=1:k e_db(m)=20*log10(abs(et(m)/ysalida(m))); end; figure; subplot(2,1,1),plot(t,ysalida,'k'); title('SEÑAL DESEADA'); axis('auto'); subplot(2,1,2),plot(t,ye,'k'); title('SEÑAL ESTIMADA'); xlabel('tiempo'); figure; subplot(2,1,1),plot(t,et,'k'); title('CANCELACION DE ECO');

Lorenzo Meler Ferraz 63

Page 64: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

ylabel('error'); subplot(2,1,2),plot(t,e_db,'r'); title('ERROR CALCULADO EN dBs'); xlabel('tiempo'); ylabel('dBs');

func_lmstiempo.m function[ysalida,et,ye]=proyecto_20(func) k=16000; for m=1:1024%inicializamos el valor de x x(1025-m)=func(m); end he=zeros(1,1024); load camino.mat load señales.mat mu=input('introduce el valor de mu (aconsejable 0.001):

'); vector_h=input('elige la "h" del sistema (1,2 o 3): '); if vector_h==1 hr=load('h1_a.txt');

hr=hr';%trasponemos la matriz porque el archivo .txt es una columna

elseif vector_h==2 hr=load('h2_a.txt'); hr=hr';%trasponemos la matriz porque el archivo .txt

es una columna elseif vector_h==3 hr=h_real; else disp('no existe este archivo'); end for ii=1:k%para el tiempo %movemos el vector x hacia la derecha for i=1:1023 z(i+1)=x(i); end z(1)=func(ii+1024); x=z; %calculamos la y, haciendo la convolucion y=0; for i=1:1024

Lorenzo Meler Ferraz 64

Page 65: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

y1=hr(i)*x(i); y=y1+y; end ysalida(ii)=y; e1=0; for i=1:1024 e2=x(i)*he(i); e1=e2+e1; end ye(ii)=e1; %ahora si que calculamos el error e=y-e1; fi=mu*e; for j=1:1024 he(j)=he(j)+(x(j)*fi); %actualizamos la h

estimada, con este 1025, lo que conseguimos es

%darle la vuelta al vector x, aqui es donde no se si es necesario

%darle la vuelta. %he probado también a

darle la vuelta a he y no a x y el resultado es el mismo.

end et(ii)=e; end

Lorenzo Meler Ferraz 65

Page 66: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.-ALGORITMO NLMS (LMS NORMALIZADO)

2.2.1.- introducción.

El algoritmo NLMS no es mas que el LMS en el dominio del tiempo pero normalizado. Es decir, el factor de convergencia µ, dependiente de la potencia de la señal.

Esta potencia dependerá mucho de la cantidad de coeficientes que se cojan, cuantos más coeficientes, más cerca se estará de la potencia real de la señal (en nuestro caso cogeremos los 1024 últimos coeficientes de la señal de entrada).

En este apartado, se verán cuales son los mejores valores de µ y otras constantes, según el tipo de señal; se verán también las diferencias con el algoritmo LMS y sus ventajas y desventajas.

Adelantando una de las características que se podrá ver en este apartado, decir que este algoritmo resulta especialmente eficiente para señales como voz y música.

Todo el análisis que se hará en el apartado 2 (los resultados obtenidos), se han conseguido únicamente estimando un filtro de 1024 coeficientes. No se ha llegado a analizar para otros tamaños de filtro. Se comparan dos algoritmos muy similares, en lo que a programación se refiere, pero muy diferentes cuando se ven los resultados que obtiene cada uno de ellos; además de introducir mejoras y variantes.

El algoritmo LMS Normalizado tiene por objetivo independizar la convergencia de la potencia de la señal de entrada. Es, por ello, más robusto que el algoritmo LMS.

En el algoritmo LMS, la corrección aplicada al vector de pesos h(n) es proporcional al vector de entrada x(n). Por tanto, si x(n) es elevado, el algoritmo LMS experimenta un problema de amplificación de ruido de gradiente. Con la normalización del parámetro de convergencia µ, este problema se reduce, de igual manera que se evita una subida desmesurada de la corrección al vector h(n) cuando la entrada disminuye drásticamente.

En definitiva, en este algoritmo, el factor de convergencia está definido por la energía de la señal de entrada x(n):

Lorenzo Meler Ferraz 66

Page 67: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

σαµ

+=

nHn

NLMS xx · ec. 2.2.1.1

donde α es normalmente 1/2 y σ es un número muy pequeño, introducido en la ecuación para prevenir una posible división por cero si x llega a ser un número muy pequeño o cero.

Lorenzo Meler Ferraz 67

Page 68: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.2.- diagrama de bloques e instrucciones Como se ha dicho en el apartado 2.2.1, la similitud

entre el algoritmo LMS y NLMS, se puede ver gráficamente en la figura 2.2.2.1, donde se ha introducido una serie de operaciones con la señal de entrada para poder calcular su potencia. Intuitivamente se puede ver como el número de operaciones es mayor.

DIAGRAMA DE BLOQUES

1 viejo

he

x

α

σ y

-

e e +

d

h

añadir y dar la vuleta

DELAY

*

x

Σ

*

x +

ABS

^2

Σ

+ ÷

Figura 2.2.2.1

Lorenzo Meler Ferraz 68

Page 69: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

INSTRUCCIONES.

INICIALIZACIÓN he=[0……0] %anchura del vector N func señal de entrada al sistema x(m)=func(m) los N primeros valores de la señal muestreada se introducen en x. PARA CALCULAR UN VALOR DE LA SEÑAL DE SALIDA - Toma una nueva muestra xn(m+1)= xn(m) xn(1)= func(m+n) - Calcula la señal deseada dn = yn(m)*hn(m) - Calcula la señal estimada yn = xn(m)*hen(m) - Cálculo del error en = dn - yn - Cálculo del factor de amortiguamiento según la potencia de la señal µn=α/(Pn+σ)

Pn=∑=

N

1i

2 x(i)

- LMS hen+1 = hen(m)+µ·e·xn(m)

figura 2.2.2.2

Lorenzo Meler Ferraz 69

Page 70: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.3.- µ dependiente de la potencia de la señal.

Tanto el diagrama de bloques como las instrucciones, son las mismas que para el algoritmo LMS en el dominio del tiempo. La única diferencia, como ya se ha adelantado en la introducción, es el valor del factor de convergencia, que en este caso no será una constante en el tiempo, sino que dependerá de la potencia de la señal.

Para hallar la potencia de la señal, cuando se habla de señales muestreadas, se hace de la manera que indica la ecuación 2.2.3.1.

[ ] PXXXXXXXXXXX

XX

XXX

N

iiNNNN

N

N

==+++++=•

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

∑=

−−

1

2221

23

22

211321

1

3

2

1

LLM

Ec. 2.2.3.1

Así pues, el valor resultante, será un número escalar,

al que le denominará con la letra P (potencia de la señal de entrada).

En este caso, no sólo necesitaremos una constante, sino que se optará por dos, a las que llamaremos α y σ.

Con todo esto ya se puede definir µ con la siguiente ecuación con la ecuación 2.2.3.2:

∑=

+= N

iiX

1

2 σ

αµ ec. 2.2.3.2

donde 0<α<1 y σ será un valor muy pequeño, que casi no intervenga en la ecuación, utilizado exclusivamente para cuando algún instante la potencia de la señal es cero y entonces no se produzca un error de división por cero.

Esta ecuación proporciona la ventaja de que a las señales que tienen mucha potencia les hace descender su error lentamente y a las que tienen poco les produce el efecto contrario. Esto beneficia a la convergencia del error, ya que a la señal débil se le ayuda y a la fuerte se le retiene, consiguiendo así un amortiguamiento equitativo

Lorenzo Meler Ferraz 70

Page 71: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

en cualquier instante de la señal, independizando de esta forma el factor de la potencia de la señal.

Lorenzo Meler Ferraz 71

Page 72: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.4.- resultados obtenidos (mejores valores de α)

Después de realizar varias pruebas dando diferentes

valores a α, aquí sólo se representarán los resultados más óptimos (una única α). El valor de σ dejará siempre constante, siendo éste en todos los caso igual a 0.001, valor suficientemente pequeño como para que no intervenga en el resultado final de µ, pero pueda salvar a los cálculos de una posible división por cero (y su correspondiente fallo de computación) en el caso de que la señal de entrada x, sea demasiado pequeña.

Las señales que se han utilizado son las mismas que para el algoritmo LMS:

- tonos a 50, 150, 1000 y 3000 - los cuatro tonos anteriores juntos. - Los tonos 50, 100 y 150 juntos. - Tonos 1000, 2000 y 3000 - Música. - Voz. - Ruido blanco.

El análisis se realizará para una señal de 1 seg. es

decir 8000 muestras de la señal de entrada.

Tono 50 Hz. (α=0.1)

0.1 0.2 0.3 0.4 0.5 0.6

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5x 10-4 CANCELACION DE ECO

erro

r

tiempo (seg.)

64.4514 dB

Figura 2.2.4.1

Lorenzo Meler Ferraz 72

Page 73: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 150 Hz. (α=0.5)

0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 0.055 0.060

1

2

3

4

5

6

7

8

9

10

x 10-3 CANCELACION DE ECO

erro

r

tiempo (seg.)

123.3941 dB

Figura 2.2.4.2

Tono 1000 Hz (α=0.9)

1 2 3 4 5 6 7 8 9 10

x 10-3

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

CANCELACION DE ECO

erro

r

tiempo (seg.)

117.6279 dB

Figura 2.2.4.3

Lorenzo Meler Ferraz 73

Page 74: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 3000 Hz (α=0.9)

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5

x 10-3

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACION DE ECOer

ror

tiempo (seg.)

118.8284 dB

Figura 2.2.4.4

Combinación de tonos 1 (50, 150, 1000 y 3000 Hz). (α=0.9)

0 0.02 0.04 0.06 0.08 0.1 0.12-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

CANCELACIÓN DE ECO

tiempo (seg.)

error

115.9506 dB

Figura 2.2.4.5

Lorenzo Meler Ferraz 74

Page 75: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 2 (50, 100, 150 Hz).

(α=0.1)

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

CANCELACIÓN DE ECO

tiempo (seg.)

error 122.1603 dB

Figura 2.2.4.6

Combinación de tonos 3 (1000, 2000, 3000 Hz). (α=0.9)

0 1 2 3 4 5 6 7 8 9 10

x 10-3

-1

-0.5

0

0.5

1

CANCELACION DE ECO

erro

r

tiempo (seg.)

118.5567 dB

Figura 2.2.4.7

Lorenzo Meler Ferraz 75

Page 76: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Música. (α=1)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.02

-0.015

-0.01

-0.005

0

0.005

0.01

0.015

0.02

0.025CANCELACION DE ECO

erro

r

tiempo (seg.)

8.7524 dB

Figura 2.2.4.8

Voz. (α=1)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3CANCELACION DE ECO

erro

r

tiempo (seg.)

4.8445 dB

Figura 2.2.4.8

Lorenzo Meler Ferraz 76

Page 77: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Ruido Blanco. (α=0.9)

0 0.5 1 1.5-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1CANCELACION DE ECO

erro

r

tiempo (seg.)

9.5796 dB

Figura 2.2.4.10

CONCLUSIÓN: Observando el apartado de las señales periódicas, se ve como la cancelación de señales con mayor frecuencia es más rápida que las que tienen una frecuencia menor.

Según las frecuencias de estas señales, también se ve necesario un cambio en el valor de α, siendo éste un valor mayor cuanto mas alta es esta frecuencia (esto se aplica tanto a tonos sueltos como a su combinación).

Las señales que no poseen ningún tipo de periodo1, también necesitan un valor de esta constante aún mayor que las señales anteriormente mencionadas. En este caso se ha decidido representar el error lineal para estas dos señales ya que ahora si que se puede apreciar una cierta cancelación como muestra la figura.

1.- esto no es totalmente cierto ya que todas las señales se pueden descomponer en suma de señales periódicas

Lorenzo Meler Ferraz 77

Page 78: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Esto se debe, claro está, a la normalización según la potencia de la señal. Quizás la reducción no sea tan grande como para otras señales, pero si que se ha demostrado que hay cierta cancelación. Esta conclusión se ve más clara en la música que en la voz si se observa el valor en dB. de la cancelación.

En el análisis de la señal de ruido se ve perfectamente

como el error va disminuyendo, tomando valores de incluso diez veces menos al cabo de un segundo y medio, y casi 10dB. DATOS:

TONOS 50Hz. 150Hz. 1000Hz. 3000Hz.

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.6 0.045 0.002 0.002

POTENCIA DEL ERROR

RESIDUAL (dB.)

64.4514 123.3941 117.6279 118.8284

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.06 0.05 0.003

POTENCIA DEL ERROR

RESIDUAL (dB.)

115.9506 122.1603 118.5567

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

--- --- ---

POTENCIA DEL ERROR

RESIDUAL (dB.)

4.8445 (tras 1 seg.)

8.7524 (tras 1 seg.)

9.5796 (tras 1.5 seg.)

Tabla 2.2.4.1

Lorenzo Meler Ferraz 78

Page 79: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.5.- comparación de resultados LMS vs. NLMS (diferencias, ventajas e inconvenientes).

Los datos que se presentan a continuación están

obtenidos a partir de aquellas constantes (factor de convergencia, α y σ) que mejores resultados han dado para cada uno de los algoritmos. No se entra a valorar la igualdad de estas constantes en cada uno de los algoritmos, porque para cada uno se usan de una forma u otra, o incluso no se usan (como el valor de σ, únicamente utilizado en el algoritmo NLMS). Así, con esto, se asume que los resultados aquí expuestos son los más óptimos conseguidos tras este estudio.

Tono 50 Hz.

NLMS

0.1 0.2 0.3 0.4 0.5 0.6

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5x 10

-4 CANCELACION DE ECO

erro

r

tiempo (seg.)

64.4514 dB

LMS

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90

1

2

3

4

5

6

7

x 10-4 CANCELACION DE ECO

erro

r

tiempo (seg.)

121,2696 dB

Figura 2.2.5.1

Lorenzo Meler Ferraz 79

Page 80: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 150 Hz

NLMS

0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05 0.055 0.060

1

2

3

4

5

6

7

8

9

10

x 10-3 CANCELACION DE ECO

erro

r

tiempo (seg.)

123.3941 dB

LMS

0.02 0.04 0.06 0.08 0.1 0.12 0.140

0.005

0.01

0.015

0.02

0.025CANCELACIÓN DEL ECO

tiemo (seg.)

error

122,7569 dB

Figura 2.2.5.2

Tono 1000 Hz

NLMS

1 2 3 4 5 6 7 8 9 10

x 10-3

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

CANCELACION DE ECO

erro

r

tiempo (seg.)

117.6279 dB

LMS

1 2 3 4 5 6 7 8 9 10

x 10-3

-0.04

-0.02

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16CANCELACION DE ECO

erro

r

tiempo (seg.)

118,0803 dB

Figura 2.2.5.3

Lorenzo Meler Ferraz 80

Page 81: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 3000 Hz

NLMS

0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5

x 10-3

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACION DE ECO

erro

r

tiempo (seg.)

118.8284 dB

LMS

0 1 2 3 4 5 6 7 8 9 10

x 10-3

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACION DE ECO

erro

r

tiempo (seg.)

118,2809 dB

Figura 2.2.5.4

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

NLMS

0 0.02 0.04 0.06 0.08 0.1 0.12-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

CANCELACIÓN DE ECO

tiempo (seg.)

error

115.9506 dB

LMS

0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05-0.6

-0.4

-0.2

0

0.2

0.4

0.6

CANCELACIÓN DEL ECO

tiempo (seg.)

error 118,6414 dB

Figura 2.2.5.5

Lorenzo Meler Ferraz 81

Page 82: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 2 (50, 100, 150 Hz).

NLMS

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

CANCELACIÓN DE ECO

tiempo (seg.)

error 122.1603 dB

LMS

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

CANCELACIÓN DEL ECO

tiempo (seg.)

error 122,0456 dB

Figura 2.2.5.6

Combinación de tonos 3 (1000, 2000, 3000 Hz).

NLMS

0 1 2 3 4 5 6 7 8 9 10

x 10-3

-1

-0.5

0

0.5

1

CANCELACION DE ECO

erro

r

tiempo (seg.)

118.5567 dB

LMS

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-1

-0.5

0

0.5

1

CANCELACIÓN DE ECO

tiempo (seg.)

error

Figura 2.2.5.7

119.9592 dB

Lorenzo Meler Ferraz 82

Page 83: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Música.

NLMS

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.04

-0.02

0

0.02

0.04

0.06SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.04

-0.02

0

0.02

0.04SEÑAL ESTIMADA

tiempo

LMS

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.05

0

0.05SEÑAL DESEADA

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.02

-0.01

0

0.01

0.02SEÑAL ESTIMADA

tiempo

Figura 2.2.5.8

Voz.

NLMS

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.2

0

0.2

0.4SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.2

0

0.2

0.4SEÑAL ESTIMADA

tiempo

LMS

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.2

0

0.2

0.4SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

Figura 2.2.5.9

Lorenzo Meler Ferraz 83

Page 84: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Ruido Blanco.

NLMS

0 0.5 1 1.50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

LMS

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

9.0304 dB

9.5796 dB

Figura 2.2.5.10

CONCLUSIONES: Las conclusiones son claras:

-SEÑALES PERIÓDICAS. Se puede observar una pequeña diferencia entre las

señales de muy baja frecuencia (un único tono), en las que la cancelación del eco se hace mejor con el LMS normal, que con el NLMS.

A medida que se va aumentando esta frecuencia, las

diferencias se van haciendo mínimas, consiguiendo un tiempo de cancelación y nivel de la potencia del error muy similar.

Cuando la señal es una combinación de tonos, con una diferencia bastante grande entre los mismos, la solución más óptima, parece ser el NLMS, sin embargo, cuando los tonos no están muy separados, el algoritmo que mejor tiempo de cancelación final tiene es el LMS.

Para todas estas señales periódicas, el nivel de cancelación final es el mismo, se use el algoritmo que se use. -SEÑALES NO PERIÓDICAS.

Cuando se analizan estas señales por separado, en el primer algoritmo (LMS), se ha utilizado la representación de colocar la señal deseada junto con la estimada y se compara una con otra. En el siguiente algoritmo (NLMS), se quiso exponer la figura que mostrara el error lineal para demostrar que se había conseguido una mejora. Debido a esto, ahora resulta complicado comparar entre las dos algo

Lorenzo Meler Ferraz 84

Page 85: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

tan obvio como la mejora sufrida gracias a este último algoritmo. Por ello se decidió colocar la representación de las dos señales (deseada y estimada), como en el primer algoritmo, y a partir de ahí hacer una comparación de las mejoras vistas en estas figuras 2.2.5.8 y 2.2.5.9.

El comportamiento, o las diferencias que se tienen, en señales no periódicas, es diferente con respecto a las señales de entrada analizadas en los guiones anteriores. La mejora de la cancelación es substancial al utilizar este algoritmo.

Se observa la primera de estas señales “música”; así como con el algoritmo LMS normal no se llega a una cancelación clara y las señales comparadas tardaban mucho en llegar a parecerse (si se considera similitud lo que ocurre al final del tiempo analizado), ahora el tiempo analizado corresponde a un único segundo, porque se considera que con este tiempo se puede decir que el parecido es bastante claro, aunque la amplitud de la señal estimada sea un poco inferior a la de la deseada.

La “voz” es quizás la señal más problemática surgida a

la hora de analizar en el anterior algoritmo, debido a su poca cancelación. En este caso, la reducción del error tampoco es el más deseado, ya que no se llegan a niveles de cancelación esperados. Pero sin duda se ha conseguido una mejora fundamental. Analizando un único segundo ya se puede ver claramente la mejora, ya que la amplitud conseguida con el algoritmo actual es bastante parecida a la señal deseada; en cambio, con el LMS normal sólo se cosigue alcanzar una amplitud de la mitad de la señal estimada, por lo tanto el error se puede adivinar que tendrá una figura bastante parecida a la señal estimada. Así, la suma del error y la señal estimada dará como resultado el valor de la señal deseada.

Cuando se analiza el “ruido blanco”, se ve como la mayor

diferencia radica en el tiempo de cancelación. Es la única señal no periódica que no se observan grandes diferencias en el nivel final de cancelación y sí en el tiempo que tarda en conseguir una señal de error final aceptable. Se ve claramente que se cancela mucho mejor con el NLMS.

Con todo esto, se puede concluir que para este tipo de

señales, se consigue una cancelación más clara del error, un nivel más bajo en la potencia de éste. En lo que se refiere al tiempo de cancelación, el tiempo final de reducción de error se mejora también con este último algoritmo.

Lorenzo Meler Ferraz 85

Page 86: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

El número de operaciones utilizado en este algoritmo aumenta con respecto al LMS normal, como se verá en el siguiente capítulo.

Estas operaciones extras a realizar, cuando se aplica el LMS normalizado, son N multiplicaciones y N-1 sumas, además de una suma más y una división.

El NLMS, por lo general, converge mucho más rápido que el LMS con un número de operaciones extra muy pequeño, por eso el NLMS es más usado. Se concluye pues, que para las señales con mayor dispersión espectral es mejor utilizar el algoritmo normalizado. DATOS:

TONOS 50 Hz. 150 Hz. 1000 Hz. 3000 Hz.

LMS 0.3 0.05 0.003 0.003 TIEMPO DE CANCELACIÓN DEL ECO (seg.) NLMS 0.7 0.05 0.002 0.002

LMS 121.2696 123.7569 118.0803 118.2809 POTENCIA DEL ERROR RESIDUAL (dB.) NLMS 64.4514 123.3941 117.6279 118.8284

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

LMS 0.03 0.04 0.03 TIEMPO DE CANCELACIÓN DEL ECO (seg.) NLMS 0.02 0.05 0.003

LMS 118.6414 122.0456 119.9592 POTENCIA DEL ERROR RESIDUAL (dB.) NLMS 115.9506 122.1603 118.5567

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

LMS --- --- --- TIEMPO DE CANCELACIÓN DEL ECO (seg.) NLMS --- --- ----

LMS --- --- 9.0304 (tras 3 seg.)

POTENCIA DEL ERROR RESIDUAL (dB.) NLMS --- --- 0.5796 (tras

1.5 seg.)

Tabla 2.2.5.1

Lorenzo Meler Ferraz 86

Page 87: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.2.6.- código del programa.

Lo único que hay que añadir en el código son estas cuatro líneas, donde en el bucle for se calcula la potencia de la señal y fuera de él se invierte esta potencia y se multiplica por la constante α.

El comentario (tras el símbolo %), indica una posible forma de calcular alfa sin tener que darle un valor constante, dependiendo de la varianza de la señal de entrada x. De momento esto último no se va a realizar, debido a que la varianza no es una operación sencilla (suma o multiplicación) que se puede implementar luego fácilmente en un DSP. for i=1:1024 p=p+(abs(x(i)))^2; end %alfa=0.95*2/(5*(0.001+var(x))); mu=alfa/(p+sigma);

Lorenzo Meler Ferraz 87

Page 88: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.-ALGORITMO BLMS (BLOCK LMS):

2.3.1.- introducción

El algoritmo BLMS (block least mean-square) es una generalización del LMS.

El trabajar así hará una idea de cómo será el futuro trabajo en la frecuencia; se puede considerar, por lo tanto, que es un puente entre el dominio del tiempo y el de la frecuencia.

Entender este algoritmo resulta un poco más complicado que los anteriores, ya que ahora se actualiza cada S muestras y no cada una como ocurría en anteriores algoritmos. Por lo tanto, para cada actualización se obtendrán S salidas y S errores. En algoritmos anteriores se introducía una muestra y se realizaban todas las operaciones necesarias para lograr el objetivo final (la cancelación), pero ahora no se coge una única muestra, sino un bloque de ellas. La dificultad radica en que ahora se tiene que trabajar con bloques, no solo hay un vector sino que hay varios con coeficientes diferentes.

Para clarificar la comprensión de este algoritmo, sírvale siguiente ejemplo, escenificado en la figura 2.3.1.1, donde la señal de entrada está representada en gris oscuro y los vectores con los que se va a trabajar en gris claro (estos vectores están compuestos por muestras de la señal de entrada). El número de coeficientes que posee cada uno de estos vectores es de N+S-1=8+4-1=11. En la figura nombrada aparecen vector viejo y vector nuevo. Estos dos vectores están relacionados entre si en que el nuevo posee N-S coeficientes iguales que el viejo (los N-S más nuevos del viejo, que pasarán ahora a formar parte de los coeficientes más antiguos del vector nuevo).

Lo primero que hay que hacer es definir un vector que tenga tantos coeficientes como el filtro al que se le sumarán un número (aconsejable múltiplo de dos para su posterior adaptación a la realización de FFT en base 2). Este vector lo se rellenará con muestras provenientes de la señal de entrada. Una vez obtenido este vector, el modo de operación será el mismo que hasta ahora, pero con algunas pequeñas diferencias.

Cada vector con el que se va a trabajar tiene un número de muestras igual al número de coeficientes que tiene el filtro por el que tiene que pasar, más cuatro muestras (en este caso hemos cogido este número, al que llamaremos S). Para poder convolucionar un vector de este

Lorenzo Meler Ferraz 88

Page 89: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

tamaño con un filtro que posee un tamaño menor, se deben ir cogiendo subvectores que posean el tamaño de este último (como se muestra en la figura 2.3.1.1 donde los vectores grises están compuestos por ocho muestras, el mismo número de coeficientes que nuestro filtro).

Así pues, se podría decir que en realidad es como si se tuvieran cuatro vectores diferentes para cada intervalo de tiempo, compuesto cada uno por ocho muestras de la señal de entrada, conformando al final un total de 11 muestras.

Una vez aclarado que se está trabajando con varios vectores a la vez (aunque algunos coeficientes de estos coincidan, se verán diferentes para una mayor claridad), al llegar en el algoritmo a la ecuación del LMS, surge el problema de cómo utilizar el vector de entrada de N+S-1 coeficientes. El procedimiento para solucionar esto es el siguiente:

El error (e) obtenido para el primer vector de entrada (que será un escalar), se multiplica por este vector. Esto dará otro vector de N coeficientes.

muestra más nueva muestra mas vieja

señal de entrada ········

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11

muestras antiguas

vector viejo

x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 vector nuevo

vector muestras viejas

muestras nuevas

vector muestras nueva

figura 2.3.1.1

Lorenzo Meler Ferraz 89

Page 90: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Esto se hace para cada uno de los vectores de entrada, en nuestro caso 4, con lo cual se tendrán cuatro vectores de N coeficientes.

El siguiente paso consiste en sumar coeficiente a coeficiente de los vectores resultantes y cada uno de ellos multiplicarlos por el factor de convergencia µ.

Después de todo esto y por último, se dividirá cada uno de los coeficientes por cuatro, y ya se habrá obtenido vector que se deseaba. el

Visto con ecuaciones queda de la siguiente manera:

Se necesitan generar S salidas

NUEVA

VIEJASF

1-F

F

y

y

y

⎥⎥⎥⎥

⎢⎢⎢⎢

+− 1

M ec. 2.3.1.1

donde F=k·S, siendo k un número entero.

El cálculo de estas salidas se realiza como en la ec.

2.3.1.2

+−

+− = h*xy SFSF 11 donde [ ]NSFSFSFSF x,···,x,xx −+−−+−+−

∧= 111

− = h*xy SFSF donde [ ]NSFSFSFSF x,···,x,xx −−−−−−

∧= 1

: : :

∧∧

= h*xy FF donde [ ]NFFFF x,···,x,xx −−

∧= 1

ec. 2.3.1.2

En la ecuación 2.3.1.3 aparece como calcular el error

(que en este caso será un vector de S coeficientes)

Lorenzo Meler Ferraz 90

Page 91: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

⎥⎥⎥⎥

⎢⎢⎢⎢

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

+−

+−

+−

1

1

1

1

1

1

SF

F

F

SF

F

F

SF

F

F

y

y

y

d

d

d

e

e

e

MMM ec. 2.3.1.3

Una vez que ya se ha obtenido el vector de error, solo

queda actualizar el filtro (h), como se muestra en las ecuaciones 2.3.1.4.

)F(h)F(h·x·e FF

∧∧∧=−+ 1µ

)F(h)F(h·x·e FF 1211 −=−+∧∧

− µ : :

)SF(h)SF(h·x·e SFSF 2111 +−=+−+∧∧

+−

+− µ

ec. 2.3.1.4

Pero como muestra la ecuación 2.3.1.4 se consiguen S vectores del filtro y sólo se quiere uno, así que hay que hacer el promedio que se nombraba anteriormente, como se muestra en la ecuación 2.3.1.5 y así se obtendrá un único vector del filtro, que será el que se utilice en la siguiente iteración, ya que se obtiene

. )F(h de partir a )SF(h∧∧

+

⎥⎦⎤

⎢⎣⎡ ++++=+

+−

+−+−

+−

∧∧

FFSFSFSFSF x·ex·ex·eS

)n(h)Sn(h L2211µ ec.

2.3.1.5

Este algoritmo tiene la ventaja de jugar con datos ya pasados, es decir, se dispone de información de la señal en tiempos anteriores. El problema está en que mientras se analizan estas S muestras nuevas, se está produciendo otras S que cogeremos en un instante posterior.

El hacer una media de muchas muestras antiguas, puede proporcionar una muy buena aproximación de la señal lo que hace que este algoritmo sea bastante estable.

Además de la ventaja de la estimación que se ha mencionado, se le debe añadir una más, proveniente mas que por razones matemáticas o estadísticas como hasta ahora, debida a razones técnicas, y es que, este algoritmo se deberá introducir en un DSP, el cual estará insertado en una placa. Esta placa tiene la particularidad de tardar un tiempo relativamente elevado en introducir valores al DSP,

Lorenzo Meler Ferraz 91

Page 92: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

que no es proporcional al tamaño del vector; aclarando, el tiempo que tarda en introducir un vector largo es mucho menor que el que tarda en introducir muchos vectores cortos que sumados nos dan el mismo tamaño que el largo.

Lorenzo Meler Ferraz 92

Page 93: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.2.- diagrama de bloques e instrucciones DIAGRAMA DE BLOQUES

En este diagrama, en el cual se intenta representar todos los bloques que se hacen necesarios para realizar este algoritmo, se presenta como inicialmente se incluyen S muestras para luego dividirlo en S bloques diferentes, que se irán cogiendo de uno en uno para realizar el resto del agrama de bloques. di

1 viejo he

µ

y

-

e e +

d

h

DELAY

*

x

Σ

*

x +

x{1…N}

x{N+1…2N}

x{(S-

x{2N+1…3N}

::

añadir S muetrasy dar la vuleta

sumatorio y media

figura 3.2.1

Lorenzo Meler Ferraz 93

Page 94: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

INSTRUCCIONES INICIALIZACIÓN S número de vectores de entrada he=[0……0] %anchura del vector N µ constante muy pequeña. func señal de entrada al sistema x(m)=func(m) los S+N-1 primeros valores de la señal muestreada se introducen en el vector de entrada. PARA CALCULAR S VALORER DE LA SEÑAL DE SALIDA, PARA UN CONJUNTO DE VECTORES DE LA SEÑAL DE ENTRADA. - Toma S muestras nuevas xn(m+S)= xn(m) xn(i)= func(m+S+i) i=1 …… S - Calcula S señales deseadas y S estimadas dn[F-S+i] = xn(F-S+i)*hn(k) yn[F-S+i] = xn(F-S+i)*hen(k) - Cálculo S señales de error en[i] = dn[i] - yn[i]

- LMS

Fin[m]=1/S(∑ (x=

S

f 1n[m,F]·en[m,F]))

hen+1[m]= hen(m)+Fin[m] ·µ

figura 2.3.2.2

significado de cada término: S es el tamaño del bloque y por tanto el número de vectores que analizaremos para cada iteración. µ sigue siendo nuestro factor de convergencia, una constante, al igual que en casos anteriores.

Lorenzo Meler Ferraz 94

Page 95: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

he vector o filtro que estimamos, el filtro adaptativo que variaremos para conseguir nuestro objetivo final. func señal completa de entrada, de ella sacaremos los valores o muestras de lo que llamaremos señal de entrada. x vector de la señal de entrada. Este vector poseerá un número de coeficientes que será igual al número que posee nuestro filtro más S (número de muestras adicionales). N es el número de coeficientes de nuestro filtro h y de el filtro estimado he. dn nos referiremos a esta notación a un vector de la señal deseada que tendrá tantos coeficientes como el valor de S. Recordar que en apartados anteriores, esta notación nos proporcionaba una única muestra, mientras que aquí nos da un vector. yn al igual que lo comentado para la señal deseada, ocurre con esta señal, la estimada, que si en algoritmos anteriores nos referíamos a ella como una sola muestra, en el actual es un vector de S coeficientes, conseguidos por trabajar en una sola iteración con varias muestras de entrada. en esta letra querrá mostrarnos el error (resta entre las dos señales anteriores) y por tanto será también un vector de la misma anchura que las dos señales anteriores, es decir de S. Fin Simplemente es una notación que se ha incluido para facilitar la comprensión. Es un vector, en este caso, de un número de coeficientes igual al filtro utilizado. Lo único que indica es la media de los S valores de cada elemento m del producto de x·e. El multiplicar esto por el factor de convergencia es opcional, pero por supuesto, habrá que pensar que si lo se multiplica fuera de este bucle se estará ganando en el número de operaciones.

Lorenzo Meler Ferraz 95

Page 96: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.3.- resultados obtenidos (mejores valores de µ)

Al igual que para los anteriores algoritmos, aquí se

mostrarán el mismo tipo de resultados. Es decir, para tonos y para combinación de tonos se mostrarán la señal del error lineal, para las señales de voz y música utilizaremos para describir su comportamiento los resultados obtenidos para la señal deseada y la señal estimada y por último se mostrarán el valor del error lineal para comentar y sacar conclusiones del ruido blanco. El valor utilizado, para todas y cada una de las señales, de la S (recordar que es el número de bloques o lo que es lo mismo, el número de muestras nuevas cada vez que nos metemos en el algoritmo) es S=4.

Con esto, se presentan las diez figuras siguientes, para más tarde realizar una serie de conclusiones.

Tono 50 Hz. µ=0.001

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

CANCELACIÓN DE ECO

tiempo (seg.)

error 129.2333 dB

Figura 2.3.3.1

Lorenzo Meler Ferraz 96

Page 97: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 500 Hz. µ=0.005

0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACIÓN DEL ECO

tiempo (seg.)

error 119.5986 dB

Figura 2.3.3.2

Tono 1000 Hz. µ=0.005

0.02 0.04 0.06 0.08 0.1 0.12-0.3

-0.2

-0.1

0

0.1

0.2

CANCELACIÓN DEL ECO

tiempo (seg.)

error 117.4501 dB

Figura 2.3.3.3

Lorenzo Meler Ferraz 97

Page 98: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 3000 Hz. µ=0.005

0 0.02 0.04 0.06 0.08 0.1 0.12

-1.5

-1

-0.5

0

0.5

1

1.5CANCELACIÓN DEL ECO

tiempo (seg.)

error 114.7605 dB

Figura 2.3.3.4

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

µ=0.001

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45

-1.5

-1

-0.5

0

0.5

1

1.5

CANCELACIÓN DE ECO

tiempo (seg.)

error

116.8806 dB

Figura 2.3.3.5

Lorenzo Meler Ferraz 98

Page 99: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 2 (50, 100, 150 Hz). µ=0.001

0 0.1 0.2 0.3 0.4 0.5

-1

-0.5

0

0.5

1

CANCELACIÓN DEL ECO

tiempo (seg.)

error 121.5969 dB

Figura 2.3.3.6

Combinación de tonos 3 (1000, 2000, 3000 Hz). µ=0.001

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18-1.5

-1

-0.5

0

0.5

1

CANCELACIÓN DEL ECO

tiempo (seg.)

error

115.0379 dB

Figura 2.3.3.7

Lorenzo Meler Ferraz 99

Page 100: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Música µ=0.1

0 0.5 1 1.5 2 2.5 3-0.1

-0.05

0

0.05

0.1SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3-0.04

-0.02

0

0.02

0.04SEÑAL ESTIMADA

tiempo

Figura 2.3.3.8

Voz µ=0.1

0 0.5 1 1.5 2 2.5 3-0.5

0

0.5SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3-0.3

-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

Figura 2.3.3.9

Lorenzo Meler Ferraz 100

Page 101: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Ruido µ=0.005

0 0.5 1 1.5 2 2.5 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9CANCELACION DE ECO

erro

r

tiempo (seg.)

10.4725 dB

Figura 2.3.3.10

CONCLUSIONES: Para todas estas señales se han analizado tres segundos. En ellos, se puede observar la diferencia de las señales.

Se analizarán primeramente, como siempre, las señales

periódicas. La diferencia del resultado obtenido para la primera, un tono de 50Hz. se ve como el error disminuye lentamente, hasta detenerse y llegar a su valor límite al cabo de muy poco tiempo. A medida que se aumenta la frecuencia el tiempo de convergencia es más corto. La potencia del error residual aumenta con la frecuencia de la señal analizada.

Los resultados obtenidos cuando se adentra en el

análisis de las señales no periódicas, sin incluir el ruido, son muy similares al LMS, aunque estas comparativas se verán en el siguiente apartado, se ve como, por ejemplo para la música, al cabo de un segundo comienza a parecerse la señal estimada a la deseada y que en la señal de voz, la similitud se hace clara si dejamos a un lado la comparativa de la amplitud, pero es esta amplitud la que hace concluir que existe cancelación para estas señales, aunque hay que marcar que otra vez se ha visto la obligación de mostrar la

Lorenzo Meler Ferraz 101

Page 102: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

comparativa entre la señal estimada y la deseada, porque la señal del error lineal no aporta información; la única información que da es la de que no cancela.

El comportamiento del ruido es bastante bueno,

conseguimos una cancelación relativamente buena (> de 10dB.) al cabo de los tres segundos analizados. DATOS:

TONOS 50Hz. 500Hz. 1000Hz. 3000Hz.

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.3 0.12 0.08 0.06

POTENCIA DEL ERROR

RESIDUAL (dB.)

129.2333 119.5986 117.4501 114.7605

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.3 0.3 0.1

POTENCIA DEL ERROR

RESIDUAL (dB.)

116.8806 121.5969 115.0379

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

--- --- ---

POTENCIA DEL ERROR

RESIDUAL (dB.)

--- --- 104725 (tras 3 seg.)

Tabla 2.3.3.1

Lorenzo Meler Ferraz 102

Page 103: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.4.- comparación de resultados BLMS vs. LMS (diferencias, ventajas e inconvenientes)

Tono 50 Hz.

BLMS µ=0.001

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

CANCELACIÓN DE ECO

tiempo (seg.)

error 129.2333 dB

LMS

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.90

1

2

3

4

5

6

7

x 10-4 CANCELACION DE ECO

erro

r

tiempo (seg.)

121,2696 dB

Figura 2.3.4.1

Tono 150 Hz

BLMS µ=0.005

0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18 0.2

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACIÓN DEL ECO

tiempo (seg.)

error 119.5986 dB

LMS

0.02 0.04 0.06 0.08 0.1 0.12 0.140

0.005

0.01

0.015

0.02

0.025CANCELACIÓN DEL ECO

tiemo (seg.)

error

122,7569 dB

Figura 2.3.4.2

Lorenzo Meler Ferraz 103

Page 104: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Tono 1000 Hz

BLMS µ=0.005

0.02 0.04 0.06 0.08 0.1 0.12-0.3

-0.2

-0.1

0

0.1

0.2

CANCELACIÓN DEL ECO

tiempo (seg.)

error 117.4501 dB

LMS

1 2 3 4 5 6 7 8 9 10

x 10-3

-0.04

-0.02

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16CANCELACION DE ECO

erro

r

tiempo (seg.)

118,0803 dB

Figura 2.3.4.3

Tono 3000 Hz

BLMS µ=0.005

0 0.02 0.04 0.06 0.08 0.1 0.12

-1.5

-1

-0.5

0

0.5

1

1.5CANCELACIÓN DEL ECO

tiempo (seg.)

error 114.7605 dB

LMS

0 1 2 3 4 5 6 7 8 9 10

x 10-3

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

CANCELACION DE ECO

erro

r

tiempo (seg.)

118,2809 dB

Figura 2.3.4.4

Lorenzo Meler Ferraz 104

Page 105: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

BLMS µ=0.001

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45

-1.5

-1

-0.5

0

0.5

1

1.5

CANCELACIÓN DE ECO

tiempo (seg.)

error

116.8806 dB

LMS

0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05-0.6

-0.4

-0.2

0

0.2

0.4

0.6

CANCELACIÓN DEL ECO

tiempo (seg.)

error 118,6414 dB

Figura 2.3.4.5

Combinación de tonos 2 (50, 100, 150 Hz).

BLMS µ=0.001

0 0.1 0.2 0.3 0.4 0.5

-1

-0.5

0

0.5

1

CANCELACIÓN DEL ECO

tiempo (seg.)

error 121.5969 dB

LMS

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

CANCELACIÓN DEL ECO

tiempo (seg.)

error 122,0456 dB

Figura 2.3.4.6

Lorenzo Meler Ferraz 105

Page 106: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Lorenzo Meler Ferraz 106

Combinación de tonos 3 (1000, 2000, 3000 Hz).

BLMS µ=0.001

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18-1.5

-1

-0.5

0

0.5

1

CANCELACIÓN DEL ECO

tiempo (seg.)

error

115.0379 dB

LMS

0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-1

-0.5

0

0.5

1

CANCELACIÓN DE ECO

tiempo (seg.)

error

Figura 2.3.4.7

Música.

BLMS µ=0.1

0 0.5 1 1.5 2 2.5 3-0.1

-0.05

0

0.05

0.1SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3-0.04

-0.02

0

0.02

0.04SEÑAL ESTIMADA

tiempo

LMS

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.05

0

0.05SEÑAL DESEADA

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.02

-0.01

0

0.01

0.02SEÑAL ESTIMADA

tiempo

Figura 2.3.4.8

119.9592 dB

Page 107: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Lorenzo Meler Ferraz 107

Voz.

BLMS µ=0.1

0 0.5 1 1.5 2 2.5 3-0.5

0

0.5SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3-0.3

-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

LMS

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.4

-0.2

0

0.2

0.4SEÑAL DESEADA

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

Figura 2.3.4.9

Ruido Blanco.

BLMS µ=0.005

0 0.5 1 1.5 2 2.5 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9CANCELACION DE ECO

erro

r

tiempo (seg.)

10.4725 dB

LMS

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

9.0304 dB

Figura 2.3.4.10

CONCLUSIONES: Si se supiera a priori que la señal de entrada iba a ser un tono de 50Hz., no habría que dudar en utilizar el algoritmo LMS, ya que, como se verá más adelante, el número de operaciones utilizadas para este último algoritmo (BLMS), es mayor que el simple LMS para llegar al mismo nivel de cancelación en el mismo intervalo de tiempo o incluso un poco peor

Page 108: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Lo que ocurre con el tono de 50Hz. Ocurre con el resto de señales periódicas. Al igual que sucedía con el LMS, ahora ocurre con el BLMS, es decir, a medida que se aumenta la frecuencia aumenta el tiempo de cancelación. Por lo tanto debido a un crecimiento igual en los dos algoritmos, el BLMS nunca llegará a tener tan buen tiempo de cancelación como el LMS (para estas señales periódicas). La potencia del error final, aunque muy similar, en todos los casos es mejor para el LMS que para el BLMS.

La señal de música proporciona con este algoritmo una clara mejoría, ya que a priori, parece que el tiempo que tarda en conseguir un cierto parecido la señal estimada con al deseada, es menor (pero se sigue sin llegar a una cancelación evidente).

En el caso de la voz, las diferencias que se puedan observar son mínimas, aunque el tiempo que se ha analizado sea diferente, el parecido entre las dos señales es bastante claro.

Así pues, se pueden sacar algunas conclusiones generales, como por ejemplo que utiliza un mayor tiempo de cancelación, debido al retardo que ya se ha nombrado en anteriores ocasiones; la cancelación de este error es muy similar entre las señales analizadas, casi no hay diferencia en el tiempo de cancelación entre señales y por último, decir que los errores residuales que quedan con el algoritmo BLMS son muy similares entre señales.

Lorenzo Meler Ferraz 108

Page 109: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

DATOS:

TONOS 50 Hz. 150 Hz. 1000 Hz. 3000 Hz.

LMS 0.3 0.05 0.003 0.003 TIEMPO DE CANCELACIÓN DEL ECO (seg.) BLMS 0.3 0.12 0.08 0.06

LMS 121.2696 123.7569 118.0803 118.2809 POTENCIA DEL ERROR RESIDUAL (dB.) BLMS 129.2333 119.5986 117.4501 114.7605

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

LMS 0.03 0.04 0.03 TIEMPO DE CANCELACIÓN DEL ECO (seg.) BLMS 0.25 0.3 0.1

LMS 118.6414 122.0456 119.9592 POTENCIA DEL ERROR RESIDUAL (dB.) BLMS 116.8806 121.5969 115.0379

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

LMS --- --- --- TIEMPO DE CANCELACIÓN DEL ECO (seg.) BLMS --- --- ----

LMS --- --- 9.0304 (tras 3 seg.)

POTENCIA DEL ERROR RESIDUAL (dB.) BLMS --- --- 10.4725 (tras

3 seg.)

Tabla 2.3.4.1

Lorenzo Meler Ferraz 109

Page 110: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.5.- diferencia de operaciones LMS vs. BLMS

Primero se va a recordar el número de operaciones que se realizaban para el algoritmo LMS: Nº de sumas 3·N-1 Nº de productos 3·N+1

Recordando que N es el tamaño del filtro que se está usando, en nuestro caso como siempre de 1024 coeficientes.

Ahora, para el algoritmo BLMS, se observa en la tabla 2.3.2.2, en la cual aparecen todas las operaciones que se deben hacer: Primera operación: calcula la señal deseada (se recuerda que al igual que para el anterior algoritmo, este cálculo en un futuro se podrá evitar porque esta señal se tendrá directamente). Para ello se convoluciona la señal de entrada x con el filtro real h. Esto, en un principio, hace gastar N multiplicaciones y N-1 sumas, pero hay que tener en cuenta que ahora d va a ser un vector de S elementos porque se está trabajando con S bloques, por lo tanto habrá S·N productos y S·(N-1) sumas. En la segunda operación se han seguir los mismo pasos que antes, ya que ahora se calcula la señal estimada y, que deberá tener el mismo número de coeficientes que la señal deseada d. Por lo tanto aquí habrá también S·N productos y S·(N-1) sumas. Tercera operación: cálculo del vector de error que en total serán S restas. Cuarta operación: se multiplican cada coeficiente del vector de error (que posee S componente) por cada uno de los coeficientes del vector x correspondiente, es decir N·S productos. Ahora, de los vectores resultantes, se suman coeficiente a coeficiente de los N elementos que poseen los nuevos vectores xi, por lo tanto habrá (S-1)· N sumas. Quinta operación: se deberá multiplicar el vector resultante de antes (de N coeficientes), por el factor de amortiguamiento µ. Habrá que incluir en esta operación la división que hay que hacer para sacar la estadística de lo sumado anteriormente, pero se va a omitir haciendo la

siguiente igualdad, Sµµ = , ya que la operación de

división no se puede considerar como la misma dificultad que una multiplicación, al menos en el DSP en el cual se

Lorenzo Meler Ferraz 110

Page 111: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

debe implementar todo el trabajo. Por lo tanto se añadirán N productos. Sumas Productos BLMS LMS BLMS LMSPrimera op. S·(N-1) S·N Segunda op. S·(N-1) S·N Tercera op. S ---------------- Cuarta op. N(S-1) S·N Quinta op. -------------- N Total 3·S·N-S-N (3·N-1)·S N(3·S+1) (3·N+1)·S

Tabla 2.3.5.1

En la tabla 2.3.5.1 están representadas el número de operaciones que ha de realizar el algoritmo BLMS por cada operación descritas al principio de este capítulo. Como las operaciones en el algoritmo LMS y BLMS no coinciden, del primero únicamente se han colocado el número de sumas y restas totales que se han de realizar. La diferencia que se encuentra en el número de operaciones para el algoritmo LMS con lo calculado en la tabla 2.1.5.1, viene dada por la variable S, ya que hay que recordar que ahora, con el algoritmo BLMS, se está calculando un número S de salidas, y en la tabla 2.1.5.1 únicamente se calculaban para una salida.

0 500 1000 1500 2000 2500 3000 3500 40000

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5x 104 SUMAS REALIZADAS POR CADA ALGORITMO

numero de coeficientes del filtro

num

ero

de s

umas

algoritmo LMS algoritmo BLMS

Figura 2.3.5.1

Lorenzo Meler Ferraz 111

Page 112: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

0 500 1000 1500 2000 2500 3000 3500 40000

1

2

3

4

5

6x 104 PRODUCTOS REALIZADOS POR CADA ALGORITMO

numero de coeficientes del filtro

num

ero

de p

rodu

ctos

algoritmo LMSalgoritmo BLMS

Figura 2.3.5.2

Comentar que para las figuras 2.3.5.1 y 2.3.5.2 los cálculos se han hecho para un tamaño de bloque S=4; claro está que si este número aumentase, también aumentaría el número de operaciones (productos y sumas) que realizarían los dos algoritmos.

Tanto en las figuras 2.3.5.1 y 2.3.5.2 como en la tabla 2.3.5.1, se puede observar como el número de operaciones es muy parecido para los dos algoritmos, ya que, aunque si que es verdad que en el número de productos es mayor para el algoritmo BLMS, en el número de sumas ocurre lo contrario.

Se puede concluir pues que el número de operaciones es muy parecido, si no se tiene en cuenta la división que se debe de realizar para la estimación en el BLMS. Esta operación no se ha tenido en cuenta porque como ya se ha dicho antes en un DSP tendrá un trato especial.

Lorenzo Meler Ferraz 112

Page 113: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.3.6.- código del algoritmo BLMS

Programa principal blms clear; k=6000;%Para el numero de iteraciones, para calcu disp('elige entre todas estas señales:') disp('a-->voz') disp('b-->coseno') disp('c-->ruido blanco') disp('d-->varios tonos') disp('e-->musica') load camino.mat load señales.mat func=input('la eleccion es: ','s'); numSal=input('introduce el numero de salidas simultaneas que quieres (multiplo de 2): '); normalizado=input('pulsa f, si no quieres que el algoritmo sea normalizado, o pulsa n, si quieres que sea normalizado: ','s'); n=0:1/8000:5; if normalizado=='f' if func=='a' func=wavread('Aleman.wav'); [ysalida,et,ye]=func_blms(func,numSal); elseif func=='b' func=cos(2*pi*3000*n); [ysalida,et,ye]=func_blms(func,numSal); elseif func=='c' func=rand(1,40000); [ysalida,et,ye]=func_blms(func,numSal); elseif func=='d'

func=(sin(2*pi*1000*n)+sin(2*pi*2000*n)+cos(2*pi*3000*n));

[ysalida,et,ye]=func_blms(func,numSal); elseif func=='e' func=2*musica'; [ysalida,et,ye]=func_blms(func,numSal); else disp('a introducido una funcion no valida'); end elseif normalizado=='n' if func=='a' func=wavread('Aleman.wav'); [ysalida,et,ye]=func_bnlms(func,numSal); elseif func=='b' func=cos(2*pi*50*n);

Lorenzo Meler Ferraz 113

Page 114: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

[ysalida,et,ye]=func_bnlms(func,numSal); elseif func=='c' func=rand(1,40000); [ysalida,et,ye]=func_bnlms(func,numSal); elseif func=='d' func=(sin(2*pi*50*n)+sin(2*pi*150*n)+cos(2*pi*500*n)); [ysalida,et,ye]=func_bnlms(func,numSal); elseif func=='e' func=2*musica'; [ysalida,et,ye]=func_bnlms(func,numSal); else disp('a introducido una funcion no valida'); end end for m=1:(k)*numSal t(m)=m/8000; end; for m=1:(k)*numSal e_db(m)=10*log10(real(et(m)/ysalida(m))); end;

Función del algoritmo blms function[ysalida,et,ye]=funcblms(func,S) k=6000; for m=1:1024+S%inicializamos el valor de x x(1025+S-m)=func(m); end he=zeros(1,1024); load camino.mat load señales.mat mu=input('introduce el valor de mu (aconsejable 0.001 o menor): '); vector_h=input('elige la "h" del sistema (1,2 o 3): '); if vector_h==1 hr=load('h1_a.txt'); hr=hr';%trasponemos la matriz porque el archivo .txt es una columna elseif vector_h==2 hr=load('h2_a.txt'); hr=hr';%trasponemos la matriz porque el archivo .txt es una columna elseif vector_h==3 hr=h_real;

Lorenzo Meler Ferraz 114

Page 115: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

else disp('no existe este archivo'); end for ii=1:k%para el tiempo suma=zeros(1,1024); for jj=1:S %numero de salidas %calculamos la y, haciendo la convolucion y=0; for i=1:1024 y1=hr(i)*x(S-jj+i); y=y1+y; end ysalida((ii-1)*S+jj)=y; e1=0; for i=1:1024 e2=x(S-jj+i)*he(i); e1=e2+e1; end ye((ii-1)*S+jj)=e1; %ahora si que calculamos el error e((ii-1)*S+jj)=y-e1; for i=1:1024 suma(i)=mu*e((ii-1)*S+jj)*x(S-jj+i)+suma(i); end end for i=1:1023 z(i+S+1)=x(i); end for i=1:S z(S-i+1)=func(ii*S+i+1024); end x=z; for j=1:1024 he(j)=he(j)+suma(j)/S; %actualizamos la h estimada, con este 1025, lo que conseguimos es %darle la vuelta al vector x, aqui es donde no se si es necesario %darle la vuelta. end end et=e;

Lorenzo Meler Ferraz 115

Page 116: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.-ALGORITMO BNLMS (BLOCK LMS NORMALIZADO):

2.4.1.- introducción

La diferencia que se encuentra entre el algoritmo del apartado 2.3 y el 2.4, sería la misma que la que hay entre los apartados 2.1 con el 2.2. Sencillamente, lo único que hay que hacer es introducir el algoritmo para normalizar el factor de convergencia.

Al igual que el apartado 2.2, la manera de normalizar este factor depende de la potencia de la señal, de entrada. Ahora se tiene el problema añadido de trabajar en bloques (con varios vectores de la señal de entrada), como ya se ha señalado en el punto anterior.

Observando el diagrama de bloques de la figura 2.4.2.1 y comparándolo con la figura 2.3.2.1, se puede ver como los únicos bloques u operaciones que se introducen adicionalmente, son aquellos que realizan la potencia de la señal.

Pero conseguir esta potencia, no influye para nada la dificultad de estar trabajando con varios bloques a la vez, ya que esta potencia, la calculando va calculando cada vez que se utiliza un vector, sin importar si se está en una iteración o en otra, ya que la inversa de esta potencia (aunque no se le puede denominar exactamente potencia, ya que tiene otra serie de componentes, que, eso si, no influyen tanto como ésta) es multiplicada por un factor muy pequeño (constante) y luego por la señal propiamente dicha, convirtiéndose en otro vector, con otras características, pero con el mismo número de coeficientes

Si se toman esta serie de molestias a la hora de hacer cálculos, está claro que será para conseguir algún beneficio en el objetivo final. Como se verá más adelante, la diferencia estará muy clara cuando se comparen la música y la voz, dos señales no periódicas, decantándose la balanza hacia el lado del algoritmo BNLMS, pues la ventaja de este algoritmo estriba en que calcula la potencia de la señal de entrada, y con ello se amortigua más rápido cualquier cambio en la señal. Si a esto se le añade la estadística que nos proporciona de por si el algoritmo BLMS (que mejora sensiblemente respecto del LMS), se podrá concluir que este algoritmo, el BNLMS, es el más indicado para este tipo de señales. Pero no adelantemos acontecimientos, véase primero como es el diagrama de bloques expuesto en la figura 2.4.2.1 y las operaciones

Lorenzo Meler Ferraz 116

Page 117: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

necesarias para recrear este algoritmo que a priori promete muchas esperanzas.

Lorenzo Meler Ferraz 117

Page 118: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.2.- diagrama de bloques

En el siguiente diagrama se puede apreciar como se han colocado una serie de bloques adicionales con respecto a la figura 2.3.2.1, ya que en éste, como se ha dicho en la introducción se añade el normalizado con respecto a la potencia de la señal de entrada. DIAGRAMA DE BLOQUES

1 viejo

he

α

µ

σ y

-

e e +

d

h

DELAY

*

Σ

*

x +

x{1…N}

x{N+1…2N}

x{(S-

x{2N+1…3N}

::

añadir y dar la vuleta

sumatorio y media

x

ABS

^2

Σ

+ ÷

Figura 2.4.2.1

Lorenzo Meler Ferraz 118

Page 119: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

INSTRUCCIONES INICIALIZACIÓN S número de vectores de entrada he=[0……0] %anchura del vector N func señal de entrada al sistema x(m)=func(m) los S+N-1 primeros valores de la señal muestreada se introducen en PARA CALCULAR S VALORER DE LA SEÑAL DE SALIDA, PARA UN CONJUNTO DE VECTORES DE LA SEÑAL DE ENTRADA. - Toma S muestras nuevas xn(m+S)= xn(m) xn(i)= func(m+S+i) - Calcula S señales deseadas y estimadas dn[F-S+i] = xn(F-S+i)*hn(k) i=1 …… S yn[F-S+i] = xn(F-S+i)*hen(k) - Cálculo del error en[i] = dn[i] - yn[i] - Cálculo del factor de convergencia según la potencia de la señal µ=α/(p+σ)

Pn=∑=

N

1i

2 x(i)

- LMS

Fin[m]=1/S(∑ (x=

S

f 1n[m,f]·en[m,f]·µ))

hen+1[m+1]= hen(m)+Fin[m]

Figura 2.4.2.2

Lorenzo Meler Ferraz 119

Page 120: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.3.- resultados obtenidos (mejores valores de α)

Tono 50 Hz. (α=0.9 y σ=0.001)

0 0.05 0.1 0.15 0.2

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

CANCELACIÓN DE ECO

tiempo (seg.)

error

129.4983 dB

Figura 2.4.3.1

Tono 3000 Hz. (α=1.1 y σ=0.001)

0 0.02 0.04 0.06 0.08 0.1 0.12

-1

-0.5

0

0.5

1

CANCELACIÓN DE ECO

tiempo (seg.)

error 111.8723 dB

Figura 2.4.3.2

Lorenzo Meler Ferraz 120

Page 121: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

α=2 y σ=0.001

0 0.05 0.1 0.15 0.2 0.25

-1.5

-1

-0.5

0

0.5

1

1.5

CANCELACIÓN DE ECO

tiempo (seg.)

error

116.6243 dB

Figura 2.4.3.3

Combinación de tonos 2 (50, 150 y 500 Hz). α=2 y σ=0.001

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35

-1

-0.5

0

0.5

1

CANCELACIÓN DE ECO

tiempo (seg.)

error 121.1255 dB

Figura 2.4.3.4

Lorenzo Meler Ferraz 121

Page 122: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 3 (1000, 2000 y 3000 Hz).

α=4 y σ=0.001

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5CANCELACIÓN DE ECO

tiempo (seg.)

error 113.0837 dB

Figura 2.4.3.5

Voz (α=2 y σ=0.001)

0 0.5 1 1.5 2 2.5 3-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5CANCELACION DE ECO

erro

r

tiempo (seg.)

19.2509 dB

Figura 2.4.3.6

Lorenzo Meler Ferraz 122

Page 123: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Música (α=2.5 y σ=0.001)

0 0.5 1 1.5 2 2.5 3-0.02

-0.015

-0.01

-0.005

0

0.005

0.01

0.015

0.02

0.025CANCELACION DE ECO

erro

r

tiempo (seg.)

7.8156 dB

Figura 2.4.3.7

Ruido (α=4 y σ=0.001)

0 0.5 1 1.5 2 2.5 3-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8CANCELACION DE ECO

erro

r

tiempo (seg.)

12.8501 dB

Figura 2.4.3.8 Conclusiones: se usa el mismo tipo de representación para cada tipo de señal, la figura que muestra el error lineal. Todas estas representaciones tienen en común que están analizadas durante el transcurso de tres segundos de las mismas y aunque en algunas no aparezca representado todo este tiempo, por ver mejor la cancelación, la potencia del

Lorenzo Meler Ferraz 123

Page 124: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

error residual, si que ha sido calculada para los valores resultantes al final de los tres segundos analizados. El valor de la constante α varía mucho según la frecuencia de la señal. Se resalta este dato, porque es una de las causas de que el tiempo de cancelación de error sea mayor o menor (menor tiempo cuanto mayor sea la constante.) Para estas señales periódicas, se observa que en las combinaciones de tonos, cuanto más cerca están unos de otros, mayor es el tiempo que tarda nuestro filtro en llegar al valor del error residual. El tiempo transcurrido para tonos más alejado y de alta frecuencia es bastante bueno, aunque unos tonos como en el caso de tonos 2, que se podría decir que están muy aproximados y de muy baja frecuencia (es decir, la peor situación para señales periódicas), tarda un tiempo aproximado de 0.2 segundos en cancelar el error, tiempo más que asumible, considerando que es el peor de los casos. Los niveles de cancelación final son bastante buenos. En el caso de la señal de voz se ha decido representar tres segundos, para observar la eficacia que tenemos en este algoritmo en un espacio de tiempo relativamente largo. Al contrarió que otros algoritmos, aquí se está representando la señal del error ya que la cancelación es bastante buena, como indica el dibujo de más de 19dB. Como cabía esperar, algo similar ocurre con la señal de música y aquí también se ha preferido representar los tres segundos que se prometieron al principio del capítulo, para asegurar al lector la no divergencia de la señal al cabo de un tiempo razonable, llegando a valores de 7.8dBs de cancelación. Los valores alcanzados por el error del ruido son bastante aceptables. Se puede observar como hay un descenso continuado del error. La cancelación final, al cabo de los tres segundos señalados es más que aceptable, entendiendo por aceptable, lo que se señaló al principio de este trabajo según la normativa de la ITU, teniendo en cuenta que se está usando un valor de α relativamente alto.

Lorenzo Meler Ferraz 124

Page 125: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

DATOS:

TONOS 50Hz. 500Hz. 1000Hz. 3000Hz.

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.15 --- --- 0.06

POTENCIA DEL ERROR

RESIDUAL (dB.)

129.4983 --- --- 111.8723

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.2 0.2 0.06

POTENCIA DEL ERROR

RESIDUAL (dB.)

116.6243 121.1255 113.0837

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

--- --- ---

POTENCIA DEL ERROR

RESIDUAL (dB.)

19.2509 (tras 3 seg.)

7.8156 (tras 3 seg.)

12.8501 (tras 3 seg.)

Tabla 2.4.3.1

Lorenzo Meler Ferraz 125

Page 126: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.4.- comparación de resultados BLMS vs. BNLMS (diferencias, ventajas e inconvenientes)

En las figuras siguientes, se mostrarán, como reza el

título, las señales BLMS y las de BNLMS, las primeras estarán en la parte derecha de cada cuadro o figura y las segundas en la parte izquierda

Tono 50 Hz.

BLMS µ=0.001

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

CANCELACIÓN DE ECO

tiempo (seg.)

error 129.2333 dB

BNLMS (α=0.9 y σ=0.001)

0 0.05 0.1 0.15 0.2

-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5

CANCELACIÓN DE ECO

tiempo (seg.)

error

129.4983 dB

Figura 2.4.4.1

Tono 3000 Hz

BLMS µ=0.005

0 0.02 0.04 0.06 0.08 0.1 0.12

-1.5

-1

-0.5

0

0.5

1

1.5CANCELACIÓN DEL ECO

tiempo (seg.)

error 114.7605 dB

BNLMS (α=1.1 y σ=0.001)

0 0.02 0.04 0.06 0.08 0.1 0.12

-1

-0.5

0

0.5

1

CANCELACIÓN DE ECO

tiempo (seg.)

error 111.8723 dB

Figura 2.4.4.2

Lorenzo Meler Ferraz 126

Page 127: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

BLMS µ=0.001

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45

-1.5

-1

-0.5

0

0.5

1

1.5

CANCELACIÓN DE ECO

tiempo (seg.)

error

116.8806 dB

BNLMS α=2 y σ=0.001

0 0.05 0.1 0.15 0.2 0.25

-1.5

-1

-0.5

0

0.5

1

1.5

CANCELACIÓN DE ECO

tiempo (seg.)

error

116.6243 dB

Figura 2.4.4.3

Combinación de tonos 2 (50, 100, 150 Hz).

BLMS µ=0.001

0 0.1 0.2 0.3 0.4 0.5

-1

-0.5

0

0.5

1

CANCELACIÓN DEL ECO

tiempo (seg.)

error 121.5969 dB

BNLMS α=2 y σ=0.001

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35

-1

-0.5

0

0.5

1

CANCELACIÓN DE ECO

tiempo (seg.)

error 121.1255 dB

Figura 2.4.4.4

Lorenzo Meler Ferraz 127

Page 128: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Lorenzo Meler Ferraz 128

Combinación de tonos 3 (1000, 2000, 3000 Hz).

BLMS µ=0.001

0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16 0.18-1.5

-1

-0.5

0

0.5

1

CANCELACIÓN DEL ECO

tiempo (seg.)

error

115.0379 dB

BNLMS α=4 y σ=0.001

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09

-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

2.5CANCELACIÓN DE ECO

tiempo (seg.)

error 113.0837 dB

Figura 2.4.4.5

Música.

BLMS µ=0.1

0 0.5 1 1.5 2 2.5 3-0.1

-0.05

0

0.05

0.1SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3-0.04

-0.02

0

0.02

0.04SEÑAL ESTIMADA

tiempo

BNLMS

0 0.5 1 1.5 2 2.5 3-0.1

-0.05

0

0.05

0.1SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3-0.05

0

0.05

0.1

0.15SEÑAL ESTIMADA

tiempo

Figura 2.4.4.6

Page 129: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

Voz.

BLMS µ=0.1

0 0.5 1 1.5 2 2.5 3-0.5

0

0.5SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3-0.3

-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

BNLMS

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5-0.4

-0.2

0

0.2

0.4

0.6SEÑAL DESEADA

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5-0.4

-0.2

0

0.2

0.4SEÑAL ESTIMADA

tiempo

Figura 2.4.4.7

Ruido Blanco.

BLMS µ=0.005

0 0.5 1 1.5 2 2.5 30

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9CANCELACION DE ECO

erro

r

tiempo (seg.)

10.4725 dB

BNLMS

0 0.5 1 1.5 2 2.5

x 104

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

12.8501 dB

CANCELACIÓN DE ECO

tiempo (seg.)

error

Figura 2.4.4.8

CONCLUSIONES: Dentro de las observaciones de las señales periódicas hay que señalar una que se ve a simple vista, y es que si que se aprecia mejoría al utilizar este algoritmo. Así en el tono de 3000Hz. el tiempo de cancelación se amplia a unas cuantas centésimas de segundo mas, al igual que en la primera combinación y la segunda. En la tercera combinación; se puede apreciar como el tiempo ha aumentado a casi el doble, como ocurre con el tono de 50Hz. Hay que recordar que en el algoritmo anterior, la comparación de las señales llevaba a observar que se

Lorenzo Meler Ferraz 129

Page 130: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

llegaba a la mitad de la amplitud de la señal deseada, ahora, con nuestro nuevo algoritmo se consigue una mejora en esta amplitud, tanto que se puede representar la señal de error y aportar información. El comportamiento de la señal de voz es muy similar, cosa que se esperaba debido al continuo comportamiento parecido de estas dos señales a lo largo de todo este estudio. Así, como se dijo para la música, se ha conseguido aumentar la amplitud, que en comparación con los niveles a los que se llegaban con el algoritmo anterior, se ha mejorado multiplicando niveles anteriores por dos. La mejoría cuando se introduce a la entrada la señal de ruido blanco es clara, se consiguen unos niveles bastante mejores. Era de esperar que se consiguieran mejores resultados para las últimas señales que son analizadas, debido a que ahora se tienen en cuenta la potencia de la señal y los cambios que se producen en estas son bastante bruscos, mientras que en las periódicas, los cambios son predecibles. Cuando no se tenían en cuenta la potencia de la señal, la recuperación del error (o mejor dicho del filtro adaptativo o estimado) se hacía más difícil. Se puede asegurar que en entornos normales, este último algoritmo es el más adecuado, debido a la mayor facilidad de que se encuentren señales del tipo como las últimas que se han estudiado (voz, música y ruido blanco). El problema radica en el tiempo de computación, ya que como se puede apreciar en la figura 4.2.2, el número de operaciones es un poco mayor en este último algoritmo que en cualquiera de los anteriores.

Lorenzo Meler Ferraz 130

Page 131: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

DATOS:

TONOS 50 Hz. 150 Hz. 1000 Hz. 3000 Hz.

BNLMS 0.15 --- --- 0.06 TIEMPO DE CANCELACIÓN DEL ECO (seg.) BLMS 0.3 --- --- 0.06

BNLMS 129.4983 --- --- 111.8723 POTENCIA DEL ERROR RESIDUAL (dB.) BLMS 129.3333 --- --- 114.7605

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

BNLMS 0.2 0.2 0.06 TIEMPO DE CANCELACIÓN DEL ECO (seg.) BLMS 0.25 0.3 0.1

BNLMS 116.6243 121.1255 113.0837 POTENCIA DEL ERROR RESIDUAL (dB.) BLMS 116.8806 121.5969 115.0379

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

BNLMS --- --- --- TIEMPO DE CANCELACIÓN DEL ECO (seg.) BLMS --- --- ---

BNLMS 19.2509 (tras 3 seg.)

7.8156 (tras 3 seg.)

12.8501 (tras 3 seg.)

POTENCIA DEL ERROR RESIDUAL (dB.) BLMS --- --- 10.4725 (tras

3 seg.)

Tabla 2.4.4.1

Lorenzo Meler Ferraz 131

Page 132: Explica LMS y Otros

ALGORITMOS LMS EN EL DOMINIO TEMPORAL

2.4.5.- código del programa

Lo único que se tendrá que introducir en este algoritmo con respecto al algoritmo anterior es la forma de adaptar el factor de amortiguamiento. Cómo se calcula la potencia de la señal para luego tenerla en cuenta, inversamente proporcional en nuestro algoritmo LMS.

p=0; for i=1:1024 p=p+(abs(x(S-jj+i)))^2; end mu=alfa/(p+sigma);

Lorenzo Meler Ferraz 132

Page 133: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.- ALGORITMO LMS EN FRECUENCIA

3.1.-INTRODUCCIÓN (MÉTODO SOLAPAMIENTO-ALMACENAMIENTO)

3.2.-LMS FORZADO (CONSTRAINED) 3.2.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES 3.2.2.- RESULTADOS CON DIFERENTES SEÑALES DE ENTRADA 3.2.3.- CÁLCULO DEL NÚMERO DE OPERACIONES 3.2.4.- CÓDIGO DEL PROGRAMA

3.3.-LMS NO FORZADO (UNCONSTRAINED) 3.3.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES 3.3.2.- RESULTADOS CON DIFERENTES SEÑALES DE ENTRADA 3.3.3.- COMPARATIVA RESULTADOS LMS FORZADO vs. NO FORZADO. 3.3.4.- CÁLCULO DEL NÚMERO DE OPERACIONES 3.3.5.- CÓDIGO DEL PROGRAMA

3.4.-ADAPTACIÓN DEL FACTOR DE CONVERGENCIA µ 3.4.1.- ADAPTACIÓN SEGÚN POTENCIA DE LA SEÑAL 3.4.2.- RESULTADOS LMS FORZADO CON µ ADAPTATIVA 3.4.3.- COMPARATIVA LMS CON Y SIN µ ADAPTATIVA

3.4.4.- CÁLCULO DEL NÚMERO DE OPERACIONES 3.5.-CONVOLUCIÓN CIRCULAR

3.5.1.- DIAGRAMA DE BLOQUES E INSTRUCCIONES 3.5.2.- RESULTADOS OBTENIDOS CON DIFERENTES SEÑALES DE ENTRADA 3.5.3.- COMPARATIVA LMS FORZADO vs. LMS “CONVOLUCIÓN CIRCULAR” 3.5.4.- CÁLCULO DEL NÚMERO DE OPERACIONES 3.5.5.- CÓDIGO DEL PROGRAMA

Lorenzo Meler Ferraz 133

Page 134: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.1.-INTRODUCCIÓN (MÉTODO SOLAPAMIENTO-ALMACENAMIENTO).

En la introducción de este proyecto se expuso como

realizar una convolución lineal, ahora, de un modo más abreviado, se explicará la convolución circular, dado que en el apartado 5 se usará para realizar un algoritmo.

Habrá que recordar que para calcular los valores de un vector x3[n] x3[n]=x1[n]*x2[n] (donde el símbolo “*” indica una convolución) como convolución entre dos señales, se realiza multiplicando dicha secuencia por una versión invertida y desplazada linealmente de la otra, y sumando los valores del producto x1[m]·x2[n-m] para todo m. Para obtener los valores sucesivos de la secuencia formada por la operación de convolución, una de las secuencias se desplaza sucesivamente en relación a la otra. Por el contrario, en la convolución circular, la segunda secuencia se invierte circularmente en el tiempo y se desplaza circularmente con respecto a la primera, como se puede ver en la ecuación 1.1, donde ambas secuencias tienen longitud N coeficientes.

∑=

−=N

m

]mn[x]·m[x]n[x1

213 ec. 3.1.1

Como se ve, la ecuación 3.1.1 es la misma que la

ecuación de la convolución lineal (ecuación 1.3.1 de capítulo primero), de lo que se deduce que lo único que cambia es el nombre de la convolución, denominada lineal para señales no periódicas y circular para las periódicas, ya que estas últimas, al repetirse cada 2·π periodo, puede hacer girar sus coeficientes circularmente para ir desplazando los mismos. En otras palabras, únicamente se utilizará esta convolución cuando la convolución de dos secuencias en el dominio del tiempo sea transformada en el producto de sus DFTs (punto 4 del primer capítulo) en el dominio de la frecuencia, ya que se ha conseguido representar una señal periódica o no periódica en una suma de señales periódicas (Fourier). Cuando se quiere calcular la convolución de dos señales periódicas, que poseen la misma longitud, el producto de sus DFT en el dominio trasformado, no se corresponde con la convolución lineal, sino con la circular.

En este apartado, el primer objetivo será deducir algunas operaciones en el dominio de la frecuencia, como por ejemplo la convolución, autocorrelación,… ya que como se nombraba en el apartado cuarto del primer capítulo, en el cual se explica como se hace la FFT, se gana en el

Lorenzo Meler Ferraz 134

Page 135: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

número total de operaciones para realizar el objetivo final. Esto es lo que lleva a dedicar todo un capítulo entero para el estudio del algoritmo LMS y sus variantes en el dominio de la frecuencia.

La salida de un filtro lineal (caso que nos ocupa) se analiza como una convolución, y la estimación del gradiente de un algoritmo adaptativo es una correlación. La convolución de dos secuencias requiere que una de estas sea invertida antes de que la muestra sea trasladada, multiplicada y sumada. La correlación es similar a la convolución, excepto que ninguna secuencia es invertida. Se puede observar que un subconjunto de las muestras de una convolución circular, es idéntico a un conjunto específico de muestras de una convolución lineal y otro subconjunto a la correlación.

Se tienen dos secuencias a y b, la secuencia a tiene longitud N1 y la secuencia b N2 (siendo N1 mayor o igual que N2), entonces, las últimas N1-N2+1 muestras de la convolución circular corresponden a una convolución lineal. Por otra parte, las N1-N2+1 primeras muestras de una correlación circular corresponden a una correlación lineal. Así con esto, una convolución o correlación lineal, pueden ser generadas a partir de su correspondiente circular, pero primero partiendo y solapando los datos y entonces se conserva un subconjunto del resultado final.

Hay dos maneras para llevar a cabo una convolución lineal usando el algoritmo de la FFT, y son el almacenamiento solapamiento (overlap-save) y el suma-solapamiento (overlap add). En este estudio únicamente se utiliza la primera (almacenamiento solapamiento), debido a que se va a realizar la implementación del algoritmo LMS, y se sabe que para este algoritmo o método, el primer método utiliza menos operaciones que el segundo (Clark et al., 1983).

Lorenzo Meler Ferraz 135

Page 136: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

MÉTODO SOLAPAMIENTO ALMACENAMIENTO.

Una señal de entrada de larga duración debe segmentarse en bloques de tamaño fijo antes de ser procesada.

Es decir, se irán cogiendo muestras hasta el tamaño que se considere apropiado para este estudio. Este filtro, será tomado de un tamaño igual a L=1024.

En este método, la longitud de los bloques de entrada es N=L+M-1, al igual que la longitud de cada una de las FFT e IFFT. Cada bloque de datos contiene al menos M-1 puntos del bloque de datos anterior, seguidos de L nuevos puntos de manera que la longitud de la secuencia así formada es N=L+M-1. se calcula la FFT de N puntos de cada bloque de datos. La respuesta impulsional del filtro se aumenta en longitud añadiendo L-1 ceros, se calcula la FFT de N puntos y se almacena. La multiplicación de las dos FFTs de N puntos ( ){ } ( ){ }kXykH m correspondiente al bloque m-ésimo de datos da lugar a

( ) )()·( kXkHnY mm =∧

1,.....,1,0 −= Nk Ec. 3.1.2

Por lo tanto, la IFFT de N puntos da como resultado

⎭⎬⎫

⎩⎨⎧ −−=

∧∧∧∧∧

)1()()1()1()0()(^

NyMyMyyynY mmmmmm LL

Ec. 3.1.3

Dado que la longitud del registro de datos es N, los primeros M-1 puntos de cada registro de datos y estos puntos se convierten en los primeros M-1 puntos del registro siguiente, tal como se indicó arriba. Para empezar el procesado, los M-1 primeros puntos del primer registro se hacen iguales a cero. Por tanto, los bloques de datos son:

Iteración 1 ec. 3.1.4 ⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

−=−

)12(),....,1(),0(,0,.....,0,0)(1

1 LxxxnxpuntosM43421

Iteración 2 ec.3.1.5 ⎪⎭

⎪⎬

⎪⎩

⎪⎨

−−+−=−

44 344 214444 34444 21datosdepuntosnuevosL

nxdedatosdepuntosM

LxLxLxMLxnx____

)(____1

2 )12(),...,(,)1(),...,1()(

1

Lorenzo Meler Ferraz 136

Page 137: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Iteración 3

ec. 3.1.6

⎪⎭

⎪⎬

⎪⎩

⎪⎨

−−+−=−

444 3444 214444 34444 21datosdepuntosnuevosL

nxdedatosdepuntosM

LxLxLxMLxnx____

)(____1

3 )13(),...,2(,)12(),...,12()(

2

Y así sucesivamente. Las secuencias de datos resultantes de la IFFT están dadas por la segunda ecuación, rechazándose los primeros M-1 puntos debido al aliasing, de manera que los L puntos restantes constituyen el resultado deseado de la convolución lineal. Esta fragmentación de los datos de entrada y la unión de los bloques de datos de salida para formar la secuencia de salida se ve en la figura 3.1.1.

|---------L-------| |---------L-------| |---------L-------| señal de entrada n x1(n) M-1 M-1 ceros x2(n) x3(n) señal de salida y1(n) descartamos M-1 puntos Y2(n) Descartamos M-1 puntos y3(n) descartamos M-1 puntos

Figura 3.1.1

Del mismo modo que se ha mencionado a Clark para

decidir cual de los dos algoritmos (almacenamiento o suma) se iba a elegir, él mismo dice que la implementación más eficiente de este algoritmo (overlap-save method), se obtiene usando el 50 % de solapamiento. De ahí que el desarrollo que se ha realizado en este trabajo sea con estas cantidades. Esto quiere decir que N=2M=2L.

Lorenzo Meler Ferraz 137

Page 138: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.2.-LMS FORZADO (CONSTRAINED) 3.2.1.- diagrama de bloques e instrucciones Una vez analizado como realizar los procesos de

filtrado de señales de larga duración en el de la frecuencia, se va a presentar la transformación exacta del algoritmo LMS al dominio espectral o algoritmo LMS forzado (Constrained).

En el diagrama de bloques de este algoritmo que nos

muestra la figura 3.2.1.1, podemos ver como hay una zona encuadrada en un marco de puntos. En esta zona se encuentran las operaciones que las operaciones que distinguen el algoritmo LMS FORZADO; todas estas operaciones desaparecerán para el algoritmo que mostramos en el apartado 3.3. DIAGRAMA DE BLOQUES

func

viejo nuevox x ,,, y

x

Σ

2·µ·i

gradient constraint

∇ 0

∇ ,,,,

y

e

Σ

d(n)0 e

concatenaciónde dos bloques FFT x IFFT

retardo

xFFT

añadimos bloque N ceros

eliminamos último bloque

IFF

x FFTinsertamos bloque N ceros

descartamos los L primeros coeficientes

conjugar

Figura 3.2.1.1

Lorenzo Meler Ferraz 138

Page 139: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

INSTRUCCIONES

INICIALIZACIÓN

[ ]TW 0,...,0)0( =∧

PARA CADA NUEVO BLOQUE DE ENTRADA DE N MUESTRAS )N,x(FFT)k(X =

últimos M elementos de la =)(ky )]()·([ kWkXIFFT∧

Convolución lineal )()()( kykdke −=

⎥⎦

⎤⎢⎣

⎡=

)(0

)(ke

FFTkE

los primeros L elementos de =Φ )(K [ ]NkEkXIFFT H ),()·( Correlación lineal

⎥⎦

⎤⎢⎣

⎡Φ+=+

∧∧

0)(

·)()1(K

FFTkWkW µ

Figura 3.2.1.2 Donde el significado de cada letra es:

)(kW∧

: vector del filtro estimado (en el dominio de la frecuencia).

)(kX : señal de entrada en el dominio de la frecuencia. N: número de coeficientes del filtro.

)(ky : señal estimada, la que vamos adaptando según nuestra señal deseada.

)(kd : señal deseada. )(ke : error cometido. )(kE : error cometido en el dominio de la frecuencia. )(KΦ : valor de los L primeros elementos de una

transformada inversa de Fourier. µ : factor de convergencia.

Lorenzo Meler Ferraz 139

Page 140: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

FFT: transformada rápida de Fourier. (fast Fourier Transform). IFFT: transformada inversa rápida de Fourier (invers fast Fourier transform).

Lorenzo Meler Ferraz 140

Page 141: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.2.2.- resultados con diferentes señales de

entrada. Las señales que se han utilizado son: - tonos a 50, 500, 1000 y 3000 - los cuatro tonos anteriores juntos. - Los tonos 50, 100 y 150 juntos. - Tonos 1000, 2000 y 3000 - Música. - Voz. - Ruido blanco.

A diferencia de lo estudiado para este algoritmo en el

dominio del tiempo, la constante de amortiguamiento no tiene un valor muy parecido cuando se cambia de señal de entrada. Así, en nuestro caso se ven unos cambios bruscos en este valor para conseguir el mejor resultado según el vector de entrada (vector que contiene las muestras que vamos tomando de la señal de entrada).

Se ha cogido una muestra de 4 seg. de la señal original, teniendo en cuenta que todas las señales están muestreadas a 8000 muestras/seg., se han llegado a analizar 8000 x 4=24000 muestras.

Con este tiempo se obtienen datos suficientes para analizar lo ocurrido al cabo de 1 seg., tiempo orientativo para poder calificar la eficacia del filtro.

Lorenzo Meler Ferraz 141

Page 142: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Tono 50 Hz. (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.04

-0.03

-0.02

-0.01

0

0.01

0.02

0.03

0.04CANCELACION DE ECO

erro

r

tiempo (seg.)

31.1000 dB

Figura 3.2.2.1

Tono 100 Hz (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.05

-0.04

-0.03

-0.02

-0.01

0

0.01

0.02

0.03

0.04

0.05CANCELACION DE ECO

erro

r

tiempo (seg.)

31.9981 dB

Figura 3.2.2.2

Lorenzo Meler Ferraz 142

Page 143: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Tono a 1000 Hz. (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.5-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3CANCELACION DE ECO

erro

r

tiempo (seg.)

115.1189 dB

Figura 3.2.2.3

Tono a 3000 Hz. (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.5-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8CANCELACION DE ECO

erro

r

tiempo (seg.)

111.4538 dB

Figura 3.2.2.4

Lorenzo Meler Ferraz 143

Page 144: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz). (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1CANCELACION DE ECO

erro

r

tiempo (seg.)

21.6124 dB

Figura 3.2.2.5

Combinación de tonos 2 (50, 100, 150 Hz). (µ=0.00005)

0 0.5 1 1.5 2 2.5 3 3.5-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5CANCELACION DE ECO

erro

r

tiempo (seg.)

116.0901 dB

Figura 3.2.2.7

Lorenzo Meler Ferraz 144

Page 145: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 3 (1000, 2000, 3000 Hz). (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.5-1.5

-1

-0.5

0

0.5

1

1.5

2CANCELACION DE ECO

erro

r

tiempo (seg.)

114.5435 dB

Figura 3.2.2.8

Música. (µ=0.01)

0 1 2 3 4 -0.05

0

0.05 salida deseada

0 1 2 3 4 -0.04

-0.02

0

0.02

0.04salida estimada

Figura 3.2.2.8

Lorenzo Meler Ferraz 145

Page 146: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Voz. (µ=0.01)

0 1 2 3 4 -0.4

-0.2

0

0.2

0.4 salida deseada

0 1 2 3 4 -0.2

-0.1

0

0.1 0.2

salida estimada

Figura 3.2.2.9

Ruido blanco. (µ=0.001)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

18.3138 dB

Figura 3.2.2.10

CONCLUSIONES: La primera observación que hay que hacer es cómo analiza el algoritmo estas señales. Se puede apreciar claramente como el análisis, o los resultados obtenidos

Lorenzo Meler Ferraz 146

Page 147: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

aparecen cada cierto tiempo y no instantáneamente después de haber analizado cada muestra. En este caso los datos se actualizan cada 1024 muestras, es decir 1024/8000=0.128 seg. de la señal de entrada. Otra observación es que al trabajar por bloques el factor de convergencia máximo se hace menor.

En las señales periódicas que se analizan al principio (los tonos), se ve claramente el descenso del error. Este descenso se ve mucho mas acusado cuanto más alta es la frecuencia del tono.

El error que se alcanza para las señales periódicas de alta frecuencia (a partir de 1 KHz), es bastante bajo, el tiempo utilizado es relativamente bajo (alrededor de 1 seg.), si se compara con el tiempo que tardaba con los tonos de más baja frecuencia.

Cuando se hace una combinación de tonos el descenso para las frecuencias bajas se ve más acusado que en los casos anteriores (cierta mejoría), y la combinación de tonos de alta frecuencia produce un descenso relativamente bueno.

Se puede observar como el factor de convergencia es excesivamente bajo (comparándolo con los valores utilizados en el caso del dominio del tiempo), pero aún así eficiente, aunque se podría achacar al valor que toma la constante el descenso tan lento que se tiene en la potencia del error.

Los valores del factor de convergencia utilizados para las tres señales no periódicas (ruido, voz y música) son bastante más elevados que los utilizados en las señales periódicas. Estos valores, que al ser elevados hacen que la cancelación del error sea más rápida, no hace que la señal deseada diverja (estado que sucede cuando el valor de esta constante es demasiado alto).

En estas señales, no se puede observar la señal del error sino la similitud de la señal deseada con la señal estimada. Cuando se observa la señal de música, se ve como hay bastante similitud entre una y otra, sino se observa la amplitud de las dos (ya que la deseada tiene más amplitud que la estimada). Esta diferencia en la amplitud de las dos señales es la que da un error no nulo.

En el caso de la voz, la señal que peor llega a cancelar, la diferencia de la amplitud de las dos señales es de 1:2, aunque hay un cierto parecido entre ambas.

Lorenzo Meler Ferraz 147

Page 148: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

La última señal a analizar es el ruido blanco, la señal mejor cancelada de estas tres no periódicas. Al cabo de aproximadamente 2 seg., la señal estimada ha llegado al valor deseado, y la cancelación se hace evidente (del error llega a disminuir considerablemente).

En definitiva, la cancelación se realiza bastante bien para señales periódicas, teniendo en cuenta, como ya se verá más adelante, la mejora que se obtiene en el cómputo general de las operaciones que se realicen con respecto a las que se hacían en el dominio del tiempo, pero este tema tocará analizarlo en el punto inmediatamente posterior. Como en otras ocasiones, el utilizar la comparación entre la señal deseada y la señal estimada para comentar la cancelación del eco no es un buen signo, ya que denota la no cancelación del eco. DATOS:

TONOS 50Hz. 100Hz. 1000Hz. 3000Hz.

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

2.5 2.5 1 1

POTENCIA DEL ERROR

RESIDUAL (dB.)

31.1000 31.9981 116.1189 111.4538

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

1 1 1

POTENCIA DEL ERROR

RESIDUAL (dB.)

21.6124 115.0901 114.5435

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

--- --- ---

POTENCIA DEL ERROR

RESIDUAL (dB.)

--- --- 18.3138 (tras 3 seg.)

Tabla 3.2.2.1

Lorenzo Meler Ferraz 148

Page 149: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.2.3.- cálculo del número de operaciones

Al igual que en el dominio del tiempo, también tendremos que analizar el número de operaciones que se realizan utilizando esta opción para comprobar la efectividad de este algoritmo. Habrá que tener en cuenta, que para trabajar en el dominio de la frecuencia hay que hacer una serie de transformadas, la ya mencionada FFT; esto conlleva que cuando se haga una multiplicación en el dominio de la frecuencia, en realidad se esté haciendo cuatro multiplicaciones (ecuación 2.3.1) debido a que en el dominio transformado se trabaja con números complejos, y además, habrá que pensar que un futuro, estos algoritmos serán implementados en el DSP del que se disponga, en el cual no se pueden hacer multiplicaciones directas de números complejos.

(a+b·j) * (c+d·j) = (a*c + a*b*j + b*j*c – b*d)

ec. 3.2.3.1 siendo j la unidad imaginaria.

Algo similar ocurrirá cuando se quiera realizar una suma en el dominio transformado, se sumará la parte real con la real del otro y la parte imaginaria con la imaginaria, como muestra la ecuación 2.3.2.

(a + b·j) + (c + d·j) = (a + c) + (b + d)·j

ec. 3.2.3.2

Estas dos ecuaciones serán aplicadas en todos los apartados que, como este, se calculen el número de operaciones que realiza nuestro algoritmo.

Todas las operaciones que se van a mostrar en negrita

a continuación, tienen el carácter de reales. La primera operación es la FFT (transformada rápida de Fourier), para calcular la X(k) (señal en el dominio de la frecuencia). Una FFT nos da 2·N·log2(N) sumas y 4·N/2·log2(N) multiplicaciones. En segundo lugar se tiene que multiplicar X(K)·W(k) y como el tamaño del filtro W es de N, habrá N multiplicaciones complejas, es decir 4N multiplicaciones reales. En esta misma operación hay también una IFFT de N coeficientes, es decir 2·N·log2(N) sumas y 4·N/2·log2(N) multiplicaciones más.

Lorenzo Meler Ferraz 149

Page 150: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

En la tercera habrá simplemente N restas. La cuarta operación consta únicamente de una FFT para conseguir el error en el dominio de la frecuencia E(k), por lo tanto 2·N·log2(N) sumas y 4·N/2·log2(N) multiplicaciones más. Quinta operación. Entrando ya en lo que es el algoritmo LMS hay que hacer una multiplicación de dos vectores complejos XH(k)·E(k) de N coeficientes cada uno, un total de 4N multiplicaciones reales. Después de esto la transformada inversa IFFT de N coeficientes, es decir, otra vez 2·N·log2(N) sumas y 4·N/2·log2(N) multiplicaciones. La última operación (sexta) que aparece en esta tabla es una FFT de lo anterior, de N coeficientes 2·N·log2(N) sumas y 4·N/2·log2(N) multiplicaciones, multiplicar este resultado por el factor de amortiguamiento (µ), es decir N multiplicaciones complejas y en este caso 2N productos reales ya que uno de los multiplicandos es un escalar, más y N-1 sumas complejas para concluir con el algoritmo LMS, que serán 2(N-1) sumas reales. Todas estas operaciones se van a pasar a un ejemplo concreto, con un filtro de 1024 coeficientes, eligiendo este valor para poderlo comparar con la cantidad de operaciones que se necesitaban en el dominio del tiempo. Entonces, N=1024 Sumas Productos f(N) f(1024) f(N) f(1024)Primera op. 2·N·log2(N) 20480 4·N/2·log2(N) 20480Segunda op. 2·N·log2(N) 20480 4·N/2·log2(N)+4N 4096+2048

0Tercera op. N 1024 ---------------- ---------Cuarta op. 2·N·log2(N) 20480 4·N/2·log2(N) 20480Quinta op. 2·N·log2(N) 20480 4N+4·N/2·log2(N) 4096+2048

0Sexta op. 2·N·log2(N)+2(N-

1)20480+2046 4·N/2·log2(N)+2N 20480+204

8total 10· N·log2(N)

+3N-2105407 20·N/2·log2(N)

+10·N 112640

Tabla 3.2.3.1

Todas estas operaciones dan como resultado un vector de salida de 1024 coeficientes. En el caso del dominio del tiempo, había como resultados un total de 3071 sumas y 3073 productos con lo que se conseguía un único valor de la señal estimada. De esta forma, si se multiplican por 1024 los resultados obtenidos en el caso del dominio del tiempo

Lorenzo Meler Ferraz 150

Page 151: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

se podrá comparar el número de operaciones que realiza cada algoritmo para conseguir un total de 1024 muestras de la señal deseada.

0 500 1000 1500 2000 2500 3000 3500 40000

1

2

3

4

5

6x 105 SUMAS Y PRODUCTOS REALIZADOS EN EL LMS FORZADO

numero de coeficientes del filtro

num

ero

de o

pera

cion

es

sumasproductos

Figura 3.2.3.1

Dominio de t Dominio de f Multiplicaciones 3073·1024=3146752 112640sumas 3071·1024=3144714 105407

Tabla 3.2.3.2

La diferencia se ve claramente, decantándose la balanza de la optimización por el dominio de la frecuencia.

El número tanto de sumas como de multiplicaciones se ve reflejado en la figura 3.2.3.1, apreciando una exponencial creciendo con el número de coeficientes del filtro.

Lorenzo Meler Ferraz 151

Page 152: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.2.4.- código del programa clear; load camino.mat load señales.mat h=load('h1_a.txt');%de momento metemos el valor del primer filtro N=2048; h=h';%se tiene que trasponer porque el fichero nos lo da en una columna y no en fila filtro_real=h; n=(1:1/8000:5); %señales de entrada de larga duración, tenemos que elegir entre una de todas estas. func=(sin(2*pi*1000*n)+sin(2*pi*2000*n)+sin(2*pi*3000*n)); %func=rand(1,4000000); %func=2*musica'; %func=wavread('Aleman.wav'); %func=[senal_Rb;senal_Rb]; %func=2*senal_Ra'; mu=input('introduce el valor de mu (aconsejable 0.001): '); efourier=zeros(1,N); %rellenamos con zeros el vector de error L=N/2; M=N-L; he=zeros(1,N); HE=mifft(he,N); for m=1:M%rellenamos con ceros el final del vector del filtro h h(m+L)=zeros; end H=mifft(h,N);%transformada del filtro alargado for n=1:N%rellenamos por primera vez el vector x con los N primero valores de func x(n)=func(n); end %********************************************************** %BUCLE PRINCIPAL, DEPENDIENTE DEL TIEMPO, LO ANTERIOR SOLO ES PARA INICIALIZAR %********************************************************** for n=1:25%esto es para el tiempo X=mifft(x,N); y=zeros(1,L); for ss=1:L %hay que obtener N valores de la señal del micro for gg=1:L

Lorenzo Meler Ferraz 152

Page 153: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

y(ss)=y(ss)+h(gg)*func(n*L+ss-gg+1); %a partir de la señal de entrada y de end %la simulacion de planta. end %voy alamacenando la señal de salida real en el vector 'ysalida' cada vez que pasa %�un intervalo de tiempo n for u=1:L ysalida((n-1)*M+u)=y(u); end YE=X.*HE; ye=miifft(YE,N); %lo mismo que antes (la salida real) pero para la salida estimada. for u=1:L yesalida((n-1)*M+u)=ye(M+u); xsalida((n-1)*M+u)=x(M+u); end %rellenamos en la segunda mitad del vector error con los valores del error for m=1:L efourier(m+M)=y(m)-ye(m+M); e(m+(n-1)*M)=efourier(m+M); e_db(m+((n-1)*M))=10*log10(abs(real(e(m+((n-1)*M)))/abs(real(y(m))))); end %***TROZO QUE LO DIFERENCIA DEL UNCONSTRAINED (NO FORZADO)********** EFOURIER=mifft(efourier,N);%transformada de todo el vector de error FI_TOTAL=conj(X).*EFOURIER;%calculamos la fi extraña fi_total=miifft(FI_TOTAL,N); fi=zeros(1,N);%rellenamos todo el vector fi con ceros for m=1:L%cogemos solo los primeros elementos de la fi fi(m)=fi_total(m); end FI=mifft(fi,N); %*********************************************************************************

Lorenzo Meler Ferraz 153

Page 154: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

for m=1:N%actualizo la H estimada, en frecuencia HE(m)=HE(m)+mu*FI(m); end %DESPLAZAMOS LOS VALORES FINALES DEL VECTOR x AL PRINCIPIO for u=1:L x(u)=x(u+M); end %actualizar x con el metodo de solapamiento-almacenamiento %cogiendo de L en L muestras for u=1:L x(M+u)=func(u+(n*M)+M); end %esto simplemente lo hacemos para sacar por pantalla los coeficientes en dominio del tiempo he=miifft(HE,N); for u=1:L he_total(u+(n-1)*M)=he(u+M); e_relativo((u+(n-1)*M))=(h(u)-he(u+M))/(h(u)); end end for m=1:(n*M)%simplemente para poder representar en el tiempo t(m)=m/8000; end

Lorenzo Meler Ferraz 154

Page 155: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.3.-LMS NO FORZADO (UNCONSTRAINED)

3.3.1.- diagrama de bloques e instrucciones. DIAGRAMA DE BLOQUES

func

viejo nuevox x ,,, y

x

Σ

2·µ·i

e

Σ

d(n)0 e

concatenaciónde dos bloques FFT x IFFT

retardo

x

x FFTinsertamos bloque N ceros

descartamos los L primeros coeficientes

conjugar

Figura 3.3.1.1 El diagrama de bloques de este algoritmo es prácticamente igual que el diagrama del LMS, pero más sencillo, únicamente hay que eliminar el bloque que rodeaba el cuadro de puntos que se presentaba en el anterior. Esto supone que se toman todos los valores de la convolución circular XH(k)·E(k) por la realización de la correlación lineal de al actualización de coeficientes. Se evita de esta forma una FFT y una IFFT, pero se pierde en estabilidad y robustez, por esto, más adelante se verá una comparativa entre los resultados de este algoritmo y el LMS forzado (constrained), y se puede hacer un pronóstico para decir cual es el idóneo para nuestro propósito.

Lorenzo Meler Ferraz 155

Page 156: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

INSTRUCCIONES

INICIALIZACIÓN

PARA CADA NUEVO BLOQUE DE ENTRADA DE N MUESTRAS

últimos M elementos de la Convolución lineal

[ ]TW 0,...,0)0( =∧

)N,x(FFT)k(X =

=)(ky )]()·([ kWkXIFFT∧

)()()( kykdke −=

⎥⎦

⎤⎢⎣

⎡=

)(0

)(ke

FFTkE

[ ])()·(·)()( kXkEkWkW µ+=+∧∧

1

figura 3.3.1.2

Lorenzo Meler Ferraz 156

Page 157: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.3.2.- resultados con diferentes señales de entrada.

También aquí se estudiarán las mismas señales que en todos los apartados anteriores, aunque no está de más que se recuerde con una lista cuales son estas señales.

Las señales que se han utilizado son: - tonos a 50 y 3000 - los cuatro tonos anteriores juntos. - Los tonos 50, 100 y 150 juntos. - Tonos 1000, 2000 y 3000 - Música. - Voz. - Ruido blanco.

El estilo de representación es similar al del apartado anterior. Y se verá que los resultados no serán exactamente iguales, se analizarán las ventajas de este algoritmo y sus desventajas.

Lorenzo Meler Ferraz 157

Page 158: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Tono 50 Hz. (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.04

-0.03

-0.02

-0.01

0

0.01

0.02

0.03

0.04CANCELACION DE ECO

erro

r

tiempo (seg.)

9.9739 dB

Figura 3.3.2.1

Tono a 3000 Hz. (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3CANCELACION DE ECO

erro

r

tiempo (seg.)

77.4374 dB

Figura 3.3.2.2

Lorenzo Meler Ferraz 158

Page 159: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz). (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1CANCELACION DE ECO

erro

r

tiempo (seg.)

20.9197 dB

Figura 3.3.2.3

Combinación de tonos 2 (50, 100, 150 Hz). (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5CANCELACION DE ECO

erro

r

tiempo (seg.)

17.5562 dB

Figura 3.3.2.4

Lorenzo Meler Ferraz 159

Page 160: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 3 (1000, 2000, 3000 Hz).

(µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-1.5

-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

77.4374 dB

Figura 3.3.2.5

Voz. (µ=0.001)

salida estimada

0 1 2 3 4-0.4

-0.2

0

0.20.4

salida deseada0 1 2 3 4-0.2

-0.1 00.10.2

Figura 3.3.2.6

Lorenzo Meler Ferraz 160

Page 161: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Música. (µ=0.001)

0 1 2 3 4-0.05

0

0.05 salida deseada0 1 2 3 4-0.01

-0.005 0

0.005 0.01 salida estimada

Figura 3.3.2.7

Ruido blanco. (µ=0.001)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

16.9656 dB

Figura 3.3.2.8

Lorenzo Meler Ferraz 161

Page 162: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

CONCLUSIONES: Una de las primeras apreciaciones, en una primera comparación nada exhaustiva entre los dos algoritmos, sería la similitud en el valor del factor de convergencia µ, para conseguir los mejores resultados, aunque estos no sean iguales. Pero el análisis comparativo entre los dos algoritmos, se realizará con mayor profundidad en apartados posteriores. Observando especialmente los resultados proporcionados por este algoritmo, se pasa a detallar las conclusiones de dicha observación para cada una de las señales. Se asume, como en el caso anterior, que para las señales periódicas (sin importar si las frecuencias son altas o bajas), el factor de convergencia deberá ser muy bajo para no conseguir una divergencia en el resultado, por tanto esto llevará a que la cancelación del eco no sea tan rápida como cabría esperar. Una vez más, para las señales periódicas, la cancelación se consigue a los 2.5 seg. Y a partir de ahí se estabiliza la señal, dejando un error residual muy pequeño, como se ve en el número de decibelios cancelados. La estabilidad mencionada no se refiere a que la señal del error en sí sea estable, porque como se puede ver, hay altibajos constantes, eso sí, debido a no estar utilizando el gradiente forzado. El comportamiento del algoritmo para señales de alta frecuencia (3000 Hz.), es un poco diferente, tanto en el tiempo de cancelación como en el error residual, que es bastante menor en este caso que el la señal de 50 Hz. En las combinaciones de tonos, tanto para el primero, que es el que aparece con gran separación entre sus valores y de frecuencias altas y bajas, como para el segundo, con los valores de las frecuencias muy bajos, los resultados son muy parecidos, el eco se llega a cancelar rápidamente (instantes después de un segundo) o lo que es lo mismo las señales se llegan a parecer bastante transcurrido este tiempo. Vemos como del error no se cancela tanto como esperábamos. Mayor eficacia se consigue con la tercera combinación de tonos (los que están bastante separados y además son de alta frecuencia), ya que la cancelación es aún más rápida que en todos los casos anteriores (se puede aventurar a la aproximación de un segundo).

Lorenzo Meler Ferraz 162

Page 163: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Tras analizar las señales periódicas, tocará realizar la observación de las señales no periódicas (voz, ruido blanco y música). Los resultados vuelven a ser parecidos a los obtenidos en el algoritmo anterior (pero como se ha señalado antes no se entrará a hacer ninguna comparación con nada anterior, por el momento). El factor de convergencia vuelve a tomar valores superiores a los utilizados en las funciones periódicas, con lo cual se puede suponer que la convergencia se realizará en un tiempo menor; pero no es así. En nuestro análisis, estas señales no llegan a alcanzar los valores altos de la señal deseada, debido a cambios bruscos en la amplitud. En el caso de la voz, la señal estimada, únicamente llega a la mitad del valor de la señal deseada cuando esta última toma las amplitudes más altas. Como lado positivo, hay que decir que se tiene un gran parecido entre estas dos señales (en lo que a forma de la señal se refiere). Cuando observamos la señal de música, la situación empeora, debido a que si en el caso anterior las amplitudes entre la señal deseada y la estimada eran en una proporción de ½, ahora, la proporción entre las mismas es de 1/10. El parecido sigue siendo bastante bueno, pero como en esta señal se producen cambios más bruscos que en la anterior, es imposible conseguir una estabilidad para la señal estimada. En el caso de que el factor de convergencia se pudiera aumentar, este resultado lo se podría mejorar, ya que los cambios bruscos se subsanarían con una µ mayor. Mas adelante se verá como hallar o adaptar este factor según la potencia de la señal, con lo que se subsanará en parte el error citado. Como en el caso anterior, no poner la señal de error por falta de información quiere decir que este algoritmo no cancela para este tipo de señales Los resultados obtenidos con la señal de ruido blanco son bastante buenos, ya que se obtiene una cancelación del error al cabo de relativamente poco tiempo (poco más de un segundo), si se compara con las señales anteriores.

Lorenzo Meler Ferraz 163

Page 164: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

DATOS:

TONOS 50Hz. 500Hz. 1000Hz. 3000Hz.

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

2.5 --- --- 1

POTENCIA DEL ERROR

RESIDUAL (dB.)

9.739 --- --- 77.4374

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

1.5 1.5 1

POTENCIA DEL ERROR

RESIDUAL (dB.)

20.9197 17.5562 774374

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

--- --- ---

POTENCIA DEL ERROR

RESIDUAL (dB.)

--- --- 16.9656 (tras 3 seg.)

Tabal 3.3.2.1

Lorenzo Meler Ferraz 164

Page 165: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.3.3.- comparativa resultados LMS FORZADO vs. LMS NO FORZADO

TONO 50Hz.

LMS FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.04

-0.03

-0.02

-0.01

0

0.01

0.02

0.03

0.04CANCELACION DE ECO

erro

r

tiempo (seg.)

31.1000 dB

LMS NO FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.04

-0.03

-0.02

-0.01

0

0.01

0.02

0.03

0.04CANCELACION DE ECO

erro

r

tiempo (seg.)

9.9739 dB

Figura 3.3.3.1

TONO 1000Hz.

LMS FORZADO (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.5-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3CANCELACION DE ECO

erro

r

tiempo (seg.)

115.1189 dB

LMS NO FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3CANCELACION DE ECO

erro

r

tiempo (seg.)

77.4374 dB

Figura 3.3.3.2

Lorenzo Meler Ferraz 165

Page 166: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

LMS FORZADO (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1CANCELACION DE ECO

erro

r

tiempo (seg.)

21.6124 dB

LMS NO FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1CANCELACION DE ECO

erro

rtiempo (seg.)

20.9197 dB

Figura 3.3.3.3

Combinación de tonos 2 (50, 100, 150 Hz).

LMS FORZADO (µ=0.00005)

0 0.5 1 1.5 2 2.5 3 3.5-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5CANCELACION DE ECO

erro

r

tiempo (seg.)

116.0901 dB

LMS NO FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5CANCELACION DE ECO

erro

r

tiempo (seg.)

17.5562 dB

Figura 3.3.3.4

Lorenzo Meler Ferraz 166

Page 167: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 3 (1000, 2000, 3000 Hz).

LMS FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-1.5

-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

77.4374 dB

LMS NO FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-1.5

-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

rtiempo (seg.)

77.4374 dB

Figura 3.3.3.5

VOZ

LMS FORZADO

LMS NO FORZADO

Figura 3.3.3.6

0 1 2 3 4-0.4

-0.2

0

0.2

0.4 salida deseada

0 1 2 3 4-0.2

-0.1

0

0.1 0.2

salida estimada

0 1 2 3 4-0.4

-0.2

0

0.20.4

salida deseada 0 1 2 3 4-0.2

-0.100.10.2

salida estimada

Lorenzo Meler Ferraz 167

Page 168: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

MÚSICA

LMS FORZADO

LMS NO FORZADO

0 1 2 3 4

-0.05

0

0.05salida deseada

0 1 2 3 4-0.01

-0.005

0

0.005

0.01salida estimada

0 1 2 3 4-0.05

0

0.05 salida deseada

0 1 2 3 4-0.04

-0.02

0

0.02

0.04 salida estimada

Figura 3.3.3.7

RUIDO BLANCO

LMS FORZADO (µ=0.001)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

18.3138 dB

LMS NO FORZADO (µ=0.001)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

16.9656 dB

Figura 3.3.3.8

CONCLUSIONES: Echando un vistazo rápido a las figuras de este apartado, no es arriesgarse el decir que con el algoritmo LMS NO FORZADO, se consiguen peores resultados para todo tipo de señales ya que se deja por hacer la autocorrelación del error y esas operaciones necesarias

Lorenzo Meler Ferraz 168

Page 169: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

para evitar el solapamiento de las señales (últimas tres ecuaciones de la figura 3.2.1.2).

En las señales periódicas, el comportamiento viene siendo el mismo, es decir, a medida que se aumenta la frecuencia del tono, mejora el descenso del eco. Esto último es quizás la única similitud que se puede encontrar en los dos algoritmos, porque del resto de observaciones son todo diferencias.

Las tres características que ya alguna vez se han señalado para poder decidir que convergencia del error es mejor o peor, en este caso se decantan por el algoritmo LMS FORZADO.

Se recuerdan estas tres características, tiempo que tarda en llegar a nuestro valor residual del error, el valor final de este error y estabilidad.

Para estas señales periódicas es bastante apreciable la diferencia en las dos primeras características, porque aunque haya señales que para el algoritmo LMS NO FORZADO consigan mejorar el valor de convergencia, el LMS FORZADO lo hará mejor y con mayor rapidez. Los resultados que más se pueden parecer entre ellos son para un tono de alta frecuencia y una combinación de tonos de alta frecuencia también (tonos 3), pero ni en este caso, al cabo del mismo tiempo (3 seg.), no se consigue ni la mitad de la reducción de la potencia del error.

En la señal de voz se ve como para el algoritmo LMS NO FORZADO le cuesta mucho más recuperar el valor de la señal deseada, al igual que alcanzar el valor deseado. Esto repercute en la similitud en la que se observa para definir si es o no buena la convergencia del error. La similitud es bastante mayor en el algoritmo forzado que en el no forzado.

En la música ocurre algo diferente, si que es verdad que sigue siendo mejor la similitud del primer algoritmo, pero además se puede observar que la amplitud a la que se consigue llegar con el segundo algoritmo es casi diez veces menor que la señal deseada, mientras que con el LMS FORZADO, el nivel de amplitud llega a conseguir un poco más de la mitad de lo que deseamos. Se recuerda que aunque las señales se parezcan, si no se ha representado la señal de cancelación de eco, es porque no aporta información debido a la falta de dicha cancelación.

Por último, en la señal de ruido blanco, se puede asegurar que la señal se cancela, al igual que en el resto

Lorenzo Meler Ferraz 169

Page 170: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

de señales, mejor que en el FORZADO que en el NO FORZADO, pero esta vez, la diferencia no es tan notable como antes. El nivel de error final (refiriendo al nivel de error lineal), aunque en el primero se consigue reducir el error en un tiempo menor, el tiempo necesario del segundo tampoco es nada desdeñable, incluso se podría decir que es bueno.

Así pues, con todo esto se concluye que salvo por el número de operaciones que necesita cada uno (estudio que se realiza en el apartado siguiente), el mejor algoritmo con bastante diferencia es el FORZADO como cabría esperar, pero lo que igual no se esperaba era que hubiera tanta diferencia en los resultados obtenidos. Se reitera pues que el único resultado para una de estas señales de entrada que se puede considerar aceptable y que se podría usar para obtener unos resultados óptimos, sería el ruido blanco. DATOS:

TONOS 50 Hz. 150 Hz. 1000 Hz. 3000 Hz.

LMS FORZADO 2.5 --- --- 1

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS NO FORZADO 2.5 --- --- 1

LMS FORZADO 31.100 --- --- 111.4538

POTENCIA DEL ERROR RESIDUAL (dB.)

LMS NO FORAZADO 9.9739 --- --- 77.4374

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

LMS FORZADO 1 1 1

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS NO FORZADO 1.5 1.5 1

LMS FORZADO 21.6124 116.0901 114.5435

POTENCIA DEL ERROR RESIDUAL (dB.)

LMS NO FORZADO 20.9197 17.5562 77.4374

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

LMS FORZADO --- --- ---

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS NO FORZADO --- --- ---

LMS FORZADO --- --- 18.3138 (tras

3 seg.) POTENCIA DEL ERROR RESIDUAL (dB.)

LMS NO FORZADO --- --- 16.9656 (tras

3 seg.)

Tabla 3.3.3.1

Lorenzo Meler Ferraz 170

Page 171: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.3.4.- cálculo del número de operaciones.

Las operaciones que hay que realizar en ese algoritmo son las mismas que en el algoritmo anterior, salvando, por supuesto, la mejora por no realizar la FFT y la IFFT del gradiente forzado (operaciones que el algoritmo realiza para dar mayor robustez y estabilidad al sistema y que ahora se omiten para ganar en rapidez de ejecución).

Así pues, las operaciones se reducen a cinco (en vez de seis) y en la quinta se deberá quitar la IFFT después de multiplicar X(k)·E(k).

Sin querer caer en ninguna redundancia sino en una mayor claridad, se vuelve a explicar en que consiste cada operación, del mismo modo que se habló en el apartado anterior.

Se recuerda también que habrá que utilizar las ecuaciones 3.2.3.1 y 3.2.3.2 en el momento que sea cesario. ne

La primera operación es la FFT (transformada rápida de Fourier), para calcular la X(k) (señal en el dominio de la frecuencia). Una FFT nos da 2·N·log2(N) sumas y 4·N/2·log2(N) multiplicaciones. En segundo lugar hay que multiplicar X(K)·W(k) y como el tamaño del filtro W es de N, habrá N multiplicaciones complejas, es decir 4N multiplicaciones reales. En esta misma operación hay también una IFFT de N coeficientes, es decir 2·N·log2(N) sumas y 4·N/2·log2(N) multiplicaciones más. En la tercera hay simplemente N restas. La cuarta operación consta únicamente de una FFT para conseguir el error en el dominio de la frecuencia E(k), por lo tanto 2·N·log2(N) sumas y 4·N/2·log2(N) multiplicaciones más. Quinta operación. Entrando ya en lo que es el algoritmo LMS se tiene que hacer una multiplicación de dos vectores complejos X (k) ·E (k), un total de 4·N multiplicaciones reales. Después de ver estos resultados que se muestran en la tabla 3.3.4.1, habrá que compararlos con los obtenidos para el algoritmo forzado, y sacar así conclusiones de la reducción de operaciones.

Lorenzo Meler Ferraz 171

Page 172: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Sumas Productos f(N) f(1024) f(N) f(1024)Primera op. 2·N·log2(N) 20480 4·N/2·log2(N) 20480Segunda op. 2·N·log2(N) 20480 4·N/2·log2(N)+4N 4096+20480Tercera op. N 1024 ----------------- -----------Cuarta op. 2·N·log2(N) 20480 4·N/2·log2(N) 20480Quinta op. ------------- ------- 4N 4096Total 6·N·log2(N)+N 62464 12· N/2·log2(N)+8N 69632

Tabla 3.3.4.1

Para hacer esto, se retrasan los valores del algoritmo forzado del no forzado (constrained-unconstrained), viendo así la diferencia de operaciones. ALGORITMO SUMAS PRODUCTOS FORZADO 10·N·log (N)+3N-22 105407 20· N/2·log (N)+10N 2 112640NO FORZADO 6·N·log (N)+N2 62464 12· N/2·log2(N)+8N 69632DIFERENCIA 2 N·log2(N)+2N-2 42943 N·log2(N)+2N 43008

Tabal 3.3.4.2

Se puede apreciar una clara mejoría en lo que a operaciones se refiere, debido únicamente a quitar una FFT y una IFFT.

0 500 1000 1500 2000 2500 3000 3500 40000

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5x 105 SUMAS REALIZADAS POR CADA ALGORITMO

numero de coeficientes del filtro

num

ero

de s

umas

algoritmo forzadoalgoritmo no forzado

figura 3.3.4.1

Lorenzo Meler Ferraz 172

Page 173: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

El ejemplo utilizado es el mismo que en casos anteriores, un filtro de N=1024 coeficientes. Está claro que el aumento de la diferencia de las operaciones será proporcional con el aumento del número de coeficientes que se utilicen en este algoritmo, para ello, se pueden ver las figuras 3.3.3.1 y 3.3.3.2.

0 500 1000 1500 2000 2500 3000 3500 40000

1

2

3

4

5

6x 105 PRODUCTOS REALIZADOS POR CADA ALGORITMO

numero de coeficientes del filtro

num

ero

de p

rodu

ctos

algoritmo forzadoalgoritmo no forzado

figura 3.3.4.2

Lorenzo Meler Ferraz 173

Page 174: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.3.5.- código del programa.

No se ve necesario volver a escribir el código del programa, ya que en el punto 3.2.4. se expone todo el código completo, y se señala como quedaría el mismo para el caso actual (no forzado). Como ya se ha dicho, el algoritmo no forzado (unconstrained), es un caso particular del forzado, ya que lo único que se hace es eliminar o quitar, unas operaciones (consiguiendo así una mejora en el tiempo de ejecución) que traducido en el código, es simplemente reducirlo en 8 líneas menos (en las cuales se encuentran la FFT y la IFFT, además de un bucle for). Estas ocho líneas que se omiten en el presente código, están muy bien indicadas en el punto 2.4.

Lorenzo Meler Ferraz 174

Page 175: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.4.-ADAPTACIÓN DEL FACTOR DE CONVERGENCIA µ.

3.4.1.- adaptación según potencia de la señal.

Utilizar la potencia de la señal para adaptar este factor, que hasta ahora era un valor constante, dará una cierta ventaja con respecto a algoritmos anteriores. Se explicará el porqué de esta mejora al final de este capítulo, una vez se haya visto todas las ecuaciones necesarias para conseguir la adaptación de este valor. Lo primero que se hará, será calcular la potencia de la señal de entrada al sistema:

2X(k)X(k) de potencia la = ec. 3.4.1.1 así, para cada valor de la frecuencia k, se obtiene una potencia instantánea de la señal X. Al ser esta señal un vector en el dominio espectral, el primer coeficiente corresponde al valor de la señal de entrada de menor frecuencia y el último al valor de la señal de entrada de mayor frecuencia. Se utiliza una herramienta para incluir el efecto de estimaciones de esta potencia a iteraciones anteriores si se quiere dar más importancia al valor más nuevo de la señal o por el contrario se quiere tener más en cuenta lo que ha valido ésta en muestras pasadas. Para definir esto anterior, se utiliza la siguiente ecuación:

2k )( )1()1( (n)P kXnP nk γγ −+−= 12,....,1,0 −= Mk

en un instante n

ec. 3.4.1.2 donde γ es una constante que se encuentra en el rango

1<< γ0 y n es la iteración considerada. Esta constante, también llamada factor de olvido, controla la efectividad de la “memoria” del proceso descrito en la ecuación anterior, la memoria de la señal de entrada a la aplicación, X(k). Así con esto, se definirá ahora otro vector de coeficientes llamado D(k):

Lorenzo Meler Ferraz 175

Page 176: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

)k(P)k(D

1= (división que se hará coeficiente a coeficiente)

ec. 3.4.1.3 Así, cogiendo el valor de P(k) para la potencia media de la señal, el factor de convergencia µ, es reemplazado por un vector de N coeficientes:

)k(D·)k( αµ = ec. 3.4.1.4

donde α es otra constante que generalmente se le da un valor pequeño.

Lorenzo Meler Ferraz 176

Page 177: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.4.2.- resultados LMS forzado con µ adaptativa

En un principio se deseaba mostrar los resultados obtenidos para las mismas señales analizadas hasta el momento, pero se ha decidido que únicamente se representarán las señales que aporten una clara mejoría, o cuanto menos aquellas que sus resultados sean analizables, entendiendo por esto que al observar su figura se pueda dar datos de cancelación. Después de realizar muchas pruebas, se llegó a la conclusión de que este algoritmo no proporciona unos resultados óptimos para señales de un tono con altas frecuencias y combinaciones de pocos tonos con altas frecuencias. No así ocurre con señales no periódicas, y aunque se sabe que estas se están tomando como una combinación de señales periódicas (se están usando sus DFTs), se considera que el conjunto de tonos es muchísimo mayor que para cualquier combinación que se haya podido reproducir manualmente, y por ello, las características de estas señales son diferentes. Se decide pues, en este apartado, representar únicamente las señales de voz, música y ruido, aunque se prestará también especial atención a la señal de tonos 3, ya que se consigue su cancelación pero haciendo variaciones en el algoritmo. Esta variación consiste en cambiar el signo que posee la señal estimada y, y se decide hacer esto debido a que en las observaciones que se han hecho se vio como el resultado, al superponer la señal estimada y la deseada, se encontraba un desfase de π rad. entre las dos señales. También se representarán señales con baja frecuencia como el tono de 50Hz. y la combinación de tonos 1 y 2 (aunque de esta última no se puede cancelar el eco con tanta rapidez y precisión como con el resto de señales)

Lorenzo Meler Ferraz 177

Page 178: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Tono 50 Hz., α=0.001 y γ=0.7

0 0.5 1 1.5 2 2.5 3 3.5-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08CANCELACION DE ECO

erro

r

tiempo (seg.)

3.1765 dB

Figura 3.4.2.1

Combinación de tonos 1 (50,150, 1000 y 3000 Hz) α=0.001 y γ=0.5

0 1 2 3 4 5 6 7 8 9-4

-3

-2

-1

0

1

2

3

4CANCELACION DE ECO

erro

r

tiempo (seg.)

12.7411 dB

Figura 3.4.2.2

Lorenzo Meler Ferraz 178

Page 179: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 2 (50,150 y 500Hz.) α=0.001 y γ=0.5

0 1 2 3 4 5 6-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8CANCELACION DE ECO

erro

r

tiempo (seg.)

3.6184 dB

Figura 3.4.2.3

Música. α=0.8, γ=0.9

0 0.5 1 1.5 2 2.5 3 3.5-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15CANCELACION DE ECO

erro

r

5.1862 dB

Figura 3.4.2.4

Lorenzo Meler Ferraz 179

Page 180: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Voz (α=0.5 γ=0.8)

0 0.5 1 1.5 2 2.5 3 3.5-1.5

-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

5.7065 dB

Figura 3.4.2.4

ruido blanco α=0.5 y γ=0.8

0 1 2 3 4 5 60

1

2

3

4

5

6CANCELACION DEL ECO

tiempo

erro

r

23.3244 dB

Figura 3.4.2.5

Lorenzo Meler Ferraz 180

Page 181: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

CONCLUSIONES: El tipo de representación de todas las señales ha sido la misma. Se ha decidido poner el error lineal que cada una de ellas incluso para las señales de voz y de música. Como se comentó al principio de este apartado, únicamente se han colocado los resultados obtenidos de las señales que ahora se pudieran analizar.

Al igual que en el resto de representaciones, los valores utilizados de α y γ, son los que mejores resultados ofrecen, después de haber dado varios valores a estos.

Entre las primeras, se puede ver como el tono de 50Hz, tras una pequeña inestabilidad al principio, llega a conseguir una cierta estabilidad y a su vez una cierta reducción del eco, al cabo de aproximadamente 2 seg.

En la siguiente señal tonos 1, aunque se pueda pensar en un primer vistazo que el resultado obtenido es mejor que el anterior, hay que observar el eje de tiempos, ya que aquí el tiempo de señal que se ha procesado es bastante mayor, por eso no se puede apreciar tanto la inestabilidad que ofrece la señal al principio, para luego permanecer al cabo de cuatro segundos en el valor de error residual.

En tonos 2, la cosa empeora, la cancelación del error cada vez va siendo menor, exponencialmente menor. Por eso no es posible apreciar cual es el valor el error residual. Para ello se debería dejar transcurrir durante un tiempo muy alto el algoritmo. No es cuestión de aventurarse a decir al cabo de cuanto tiempo se llegaría a ese valor, pero presumiblemente es un tiempo demasiado alto.

La señal que se ha creado a mano denominada tonos 3, que consiste en una combinación de tonos de alta frecuencia, y que es habitual en todos los algoritmos anteriores, se ha omitido al igual que la señal de un tono suelto de alta frecuencia. Esto se debe a que no se ha podido conseguir para este tipo de señales ninguna cancelación con ningún valor de α ni de γ.

La potencia de estas señales de entrada es constante,

debido a su carácter periódico por ello no tiene sentido adaptar el factor de convergencia para este tipo de señal.

Así pues, la siguiente señal a analizar sería la música, representada como ya se ha dicho anteriormente, por el error lineal que proporciona y no por la comparación entre la señal estimada y la deseada. Si se ha elegido esta forma de representación es sencillamente porque existe una cancelación más o menos clara, sobre todo si la se compara con la señal inicial, pero de ello se dará cuenta en el

Lorenzo Meler Ferraz 181

Page 182: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

apartado de la comparativa. Aquí, en un principio, sólo se observa el dato del error residual de algo más de 3dB. con respecto a la señal de entrada.

Algo similar ocurre cuando se introduce la señal de voz en la entrada, pero en este caso el error final disminuye aún más.

Recordar que la potencia del error final a la que se está refiriendo continuamente, no es exclusivamente el valor último de al potencia del error con respecto a la señal deseada, sino que es un promedio de las 300 últimas muestras de esa potencia del error.

Para terminar, se comentará la señal de ruido blanco, una señal que ofrece la mejor cancelación de todas las señales que se han analizado con este algoritmo. Mejor en tiempo de cancelación, donde a simple vista se puede decir que se cancela al cabo de dos segundos, como en el nivel de error residual, las dos propiedades más importantes para caracterizar el algoritmo. DATOS:

TONOS 50Hz. 500Hz. 1000Hz. 3000Hz.

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

2.5 --- --- ---

POTENCIA DEL ERROR

RESIDUAL (dB.)

3.1765 --- --- ---

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

--- --- ---

POTENCIA DEL ERROR

RESIDUAL (dB.)

112.7411 (tras 8 seg.)

3.6184 (tras 5.5 seg.) ---

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

--- --- 2.5

POTENCIA DEL ERROR

RESIDUAL (dB.)

5.7065 (tras 3 seg.)

5.1862 (tras 3 seg.) 23.3244

Tabla 3.4.2.1

Lorenzo Meler Ferraz 182

Page 183: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.4.3.- comparativa LMS con y sin µ adaptativa Dado que únicamente se han analizado seis señales en el presente capítulo, por las razones expuestas en el punto 4.2, la comparativa se hará de los resultados obtenidos en dicho apartado con los correspondientes para el algoritmo LMS sin la µ adaptativa.

TONO 50Hz.

LMS, µ SIN ADAPTAR (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.5-0.04

-0.03

-0.02

-0.01

0

0.01

0.02

0.03

0.04CANCELACION DE ECO

erro

r

tiempo (seg.)

31.1000 dB

LMS, µ ADAPTADA α=0.001 y γ=0.7

0 0.5 1 1.5 2 2.5 3 3.5-0.08

-0.06

-0.04

-0.02

0

0.02

0.04

0.06

0.08CANCELACION DE ECO

erro

r

tiempo (seg.)

3.1765 dB

Figura 3.4.3.1

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

LMS, µ SIN ADAPTAR (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1CANCELACION DE ECO

erro

r

tiempo (seg.)

21.6124 dB

LMS, µ ADAPTADA α=0.001 y γ=0.5

0 1 2 3 4 5 6 7 8 9-4

-3

-2

-1

0

1

2

3

4CANCELACION DE ECO

erro

r

tiempo (seg.)

12.7411 dB

Figura 3.4.3.2

Lorenzo Meler Ferraz 183

Page 184: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 2 (50, 100, 150 Hz).

LMS, µ SIN ADAPTAR (µ=0.00005)

0 0.5 1 1.5 2 2.5 3 3.5-0.5

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4

0.5CANCELACION DE ECO

erro

r

tiempo (seg.)

116.0901 dB

LMS, µ ADAPTADA α=0.001 y γ=0.5

0 1 2 3 4 5 6-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8CANCELACION DE ECO

erro

r

tiempo (seg.)

3.6184 dB

Figura 3.4.3.3

VOZ

LMS, µ SIN ADAPTAR (µ=0.00005)

LMS, µ ADAPTADA α=0.5 y γ=0.8

0 0.5 1 1.5 2 2.5 3 3.5-2

-1

0

1

2SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.5

0

0.5

1

1.5SEÑAL ESTIMADA

tiempo

0 1 2 3 4-0.4 -0.2

0 0.2 0.4

salida deseada

0 1 2 3 4-0.2 -0.1

00.1 0.2

salida estimada

Figura 3.4.3.4

Lorenzo Meler Ferraz 184

Page 185: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

MÚSICA

LMS, µ SIN ADAPTAR (µ=0.01)

LMS, µ ADAPTADA α=0.8, γ=0.9

0 0.5 1 1.5 2 2.5 3 3.5-0.2

-0.1

0

0.1

0.2SEÑAL DESEADA

0 0.5 1 1.5 2 2.5 3 3.5-0.2

-0.1

0

0.1

0.2SEÑAL ESTIMADA

tiempo

0 1 2 3 4-0.05

0

0.05

0 1 2 3 4-0.04-0.02

0 0.020.04

salida estimada

salida deseada

Figura 3.4.3.5

RUIDO BLANCO

LMS, µ SIN ADAPTAR (µ=0.001)

0 0.5 1 1.5 2 2.5 3 3.5-1

-0.5

0

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

18.3138 dB

LMS, µ ADAPTADA α=0.5 y γ=0.8

0 1 2 3 4 5 60

1

2

3

4

5

6CANCELACION DEL ECO

tiempo

erro

r

23.3244 dB

Figura 3.4.3.6

CONCLUSIONES: En este apartado habrá que diferenciar bien entre las señales periódicas y las no periódicas, ya que el comportamiento para unas y para otras, comparándolas con los datos obtenidos para el LMS FORZADO, es totalmente diferente. Así, con las primeras señales periódicas, tono a 50Hz., se ve que al utilizar el factor de convergencia adaptado, se

Lorenzo Meler Ferraz 185

Page 186: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

pierde precisión, nivel de error, ya que para el primero la potencia del error calculada es mucho menor que para el segundo (niveles en dBs de la figura 3.4.3.1), y tiempo de cancelación también es mejor para el algoritmo sin incorporar la adaptación de µ. Cuando se observa la figura 3.4.3.2, se ve como se ha mejorado en la comparación de las dos señales, ya que ahora la diferencia del nivel residual del error es menor que en la figura 3.4.3.1. También hay que tener en cuenta que en este caso, la señal utilizada en la adaptación del factor de amortiguamiento es de mayor duración, se ha utilizado un mayor tiempo de computación a la hora de obtener los resultados, por ello, es presumible que el error alcanzado sea menor, pero también se puede observar que este tiempo extra que se ha utilizado, el descenso del error no ha sido muy pronunciado. La última señal periódica que se va a analizar es la denominada tonos2, representada en la figura 3.4.3.3. La mejoría que se observa respecto a otras señales cuando se usa el algoritmo LMS sin adaptar, no se ve correspondida al usar la adaptación de este factor. La reducción para el segundo algoritmo es bastante mala, apreciándose a simple vista, sin casi ser necesario el mirar la potencia del error final que señalamos en todas las gráficas. Mirando la figura 3.4.3.4 se comprueba lo que al principio de esta conclusión se avanzaba, se ha dado la vuelta en la mejoría de los resultados, dado que ahora, adaptando la µ se consiguen unos resultados mucho más satisfactorios. De hecho, tanto en esta figura, la voz, como en el sonido (figura 3.4.3.5), la similitud entre las señales cuando la se adapta este factor es mucho mayor que la similitud cuando no se adapta. Esto lo se podía suponer, ya que si en el análisis por separado, en el primer algoritmo no se representó el error sino las señales como están aquí, es debido a que el error no proporcionaba ninguna información, sin embargo, cuando se adapta, el error si que se puede interpretar, como se ve en las figuras 3.4.2.4 y 3.4.2.5. Al analizar la figura 3.4.3.6 se puede deducir también que hay una mejoría al usar este tipo de algoritmo con respecto al anterior, pero también habrá que fijarse que el tiempo analizado para la segunda señal de error es mayor, por lo que se ha podido llegar a un nivel mucho menor gracias a este tiempo, aunque parece difícil que en el tiempo que le queda al primero para llegar al tiempo del segundo pueda disminuir su potencia de error en 5dB.

Lorenzo Meler Ferraz 186

Page 187: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

DATOS:

TONOS 50 Hz. 150 Hz. 1000 Hz. 3000 Hz.

LMS,SIN µ ADAP. 2.5 --- --- ---

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS µ ADAP. 2.5 --- --- ---

LMS,SIN µ ADAP. 31.100 --- --- ---

POTENCIA DEL ERROR RESIDUAL (dB.)

LMS µ ADAP. 3.1765 --- --- ---

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

LMS,SIN µ ADAP. 1 1 ---

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS µ ADAP. --- --- ---

LMS,SIN µ ADAP. 21.6124 116.0901 ---

POTENCIA DEL ERROR RESIDUAL (dB.)

LMS µ ADAP.

12.7411 (tras 8 seg.)

3.6164 (tras 5.5 seg.) ---

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

LMS,SIN µ ADAP. --- --- ---

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS µ ADAP. --- --- 2.5

LMS,SIN µ ADAP. --- --- 18.3138 (tras

3 seg.) POTENCIA DEL ERROR RESIDUAL (dB.)

LMS µ ADAP.

5.7065 (tras 3 seg.)

5.1862 (tras 3 seg.) 23.3244

Tabla 3.4.3.1

Lorenzo Meler Ferraz 187

Page 188: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.4.4.- cálculo del número de operaciones A los algoritmos que se le introduce este adaptación, casi no sufren cambios en su estructura general, pero está claro que habrá que añadirle una cantidad de sumas y multiplicaciones que se detallarán a continuación.

Cada vez que se nombre que hay que hacer productos o sumas complejas, se remitirá a las ecuaciones 3.2.3.1 y 3.2.3.2. En la ecuación 3.4.1.1, se tiene que hacer una multiplicación de un vector por si mismo, con lo cual será una multiplicación compleja por cada coeficiente que posea esta señal (que a su vez, esta señal tendrá el mismo número de coeficientes que el filtro o sistema), en total 4·N multiplicaciones. En la ecuación 3.4.1.2, se realizan más operaciones. En primer lugar una resta, entre 1 y el factor de memoria (una resta). La segunda operación será este resultado por el valor que resultó de multiplicar la señal de entrada por si misma, con lo cual se tendrá una multiplicación de un número complejo por un escalar (2·N multiplicaciones). Otra operación dentro de la misma ecuación es la multiplicación del factor de memoria por el coeficiente anterior del resultado de la P (2·N multiplicaciones). Los resultados de estas dos multiplicaciones se tienen que sumar entre ellos para conseguir el resultado deseado(N-1 sumas complejas, 2·(N-1)). Todas estas operaciones, exceptuando la resta, se realizan tantas veces como coeficientes tiene la señal de entrada muestreada X(k), es decir N (como se ha indicado en los paréntesis); por lo tanto el resultado del número de operaciones en esta ecuación es: 1 resta + 2·(N-1) sumas = 2·N-1 sumas; 2·N multip. + 2·N multip. = 4N multp.; La siguiente ecuación sería la 3.4.1.3, en la que hay que hacer N divisiones, o lo que es lo mismo, multiplicar cada coeficiente por 10-1. Como en otras ocasiones, se omitirá el cálculo de ninguna división, debido a que en el DSP del que se dispone (dispositivo en el que se deberán implementar estos algoritmos en un futuro), no se pueden hacer divisiones directamente. La ecuación 3.4.1.4 utiliza 2·N multiplicaciones, ya que hay que multiplicar α por todos los coeficientes del vector resultante de las operaciones anteriores.

Lorenzo Meler Ferraz 188

Page 189: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Como se ve, estas operaciones son adicionales a cualquiera de los algoritmos anteriores, ya que con ellas se obtiene lo que antes era una simple constante. En el cuadro siguiente, se verá el aumento en el caso genérico, es decir con N coeficientes y para el caso concreto de N=1024, como se ha estado haciendo hasta ahora con los demás cálculos. ALGORITMO SUMAS PRODUCTOS FORZADO 10·N·log2(N)+3N-2 105407 20·N/2·log2(N)+10N 112640µ ADAPTATIV. 2·N-1 2047 10·N 10240TOTAL OP. 5 N·log2(N)+5·N-1 107454 5·N/2·log2(N)+20·N 122880

Tabla 3.4.4.1

La tabla 3.4.4.1 valdría igual para el algoritmo del no forzado, porque como ya se ha dicho antes, el número de operaciones extra que introduce esta adaptación, no depende del algoritmo utilizado.

0 500 1000 1500 2000 2500 3000 3500 40000

1

2

3

4

5

6x 105 PRODUCTOS REALIZADOS POR CADA ALGORITMO

numero de coeficientes del filtro

num

ero

de p

rodu

ctos

forzado sin adaptarforzado adapatado

Figura 3.4.4.1

Lorenzo Meler Ferraz 189

Page 190: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

0 500 1000 1500 2000 2500 3000 3500 40000

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5x 105 SUMAS REALIZADAS POR CADA ALGORITMO

numero de coeficientes del filtro

num

ero

de s

umas

forzado sin adaptarforzado adaptado

Figura 3.4.4.1

Después de ver como aumenta el número de operaciones

al utilizar la adaptación y la mejoría o no en la cancelación del error, habrá que decidir si se adopta esta solución o no en futuras implementaciones en algún DSP. Lo que queda claro es que si las señales que se fuesen a emplear son periódicas como las que se han analizado aquí, no se debe utilizar esta adaptación del factor de convergencia, ya que empeora la cancelación del eco y además da un aporte extra de operaciones que ralentizarán el trabajo en un futuro.

Lorenzo Meler Ferraz 190

Page 191: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.5.-CONVOLUCIÓN CIRCULAR

3.5.1.- diagrama de bloques e instrucciones

El afán por reducir aún más el número de operaciones para conseguir una mayor eficacia en la resolución del problema inicial, hace que se llegue a este punto, intentar resolver un filtrado adaptativo por aproximación de mínimos cuadrados utilizando la convolución circular, en vez de la convolución lineal, que era la que usábamos hasta ahora en todos los algoritmos.

Esta convolución circular habrá que traducirla al dominio de la frecuencia, y una vez ahí se tendrá el diagrama de bloques de la figura 3.5.1.1 Se puede apreciar como se reduce el número de operaciones, pero por supuesto, como en cualquier sistema que se precie, el ahorro en una cosa, encarece otra, y este caso no es una excepción; así pues se mejorará en el tiempo de computación del algoritmo, pero, en teoría, se perderá robustez y estabilidad.

La figura 3.5.1.1 muestra el diagrama de bloques para la realización del algoritmo LMS utilizando la convolución circular. En ella se ve como únicamente se trabaja en el dominio de la frecuencia para todas las señales, y como éstas tienen una longitud de L coeficientes (L=N/2), a diferencia de los otros algoritmos que trataban con vectores de N elementos, por lo tanto, a priori, se puede decir que los anteriores algoritmos utilizarán más operaciones que el presente.

Pero no hay que adelantar acontecimientos, todo esto será analizado en los siguientes apartados, en los cuales se verá el número de operaciones que realiza este algoritmo, así como los resultados obtenidos en la simulación con diferentes señales de entrada (X); se comparará todo esto con los resultados obtenidos en algoritmos anteriores y se verán sus ventajas e inconvenientes. En un principio, para este algoritmo, se propuso hacer un análisis tanto adaptando el factor de convergencia según la potencia de la señal de entrad, como sin adaptar; pero al final se decidió que el único que se iba a representar y estudiar en este proyecto sería adaptando el factor de convergencia, debido a que si este algoritmo proporciona una inestabilidad como se presuponía en un principio, al adaptar este factor de convergencia con respecto a la potencia de la señal se verá minimizada, en un principio, dicha inestabilidad. En la figura 5.1.1 se puede observar

Lorenzo Meler Ferraz 191

Page 192: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

como se adapta el este factor con respecto a la potencia de la señal de entrada. DIAGRAMA DE BLOQUES

func Y

nuevox

X

Σ

α

σ

d(n) D E

Σseñal deseada

nuevo

acumulamosun bloque FFT x

retardo

x

x

conjugar

FFTacumulamosun bloque

ABS

^2

Σ

+ ÷

Figura 3.5.1.1

Lorenzo Meler Ferraz 192

Page 193: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

INSTRUCCIONES

INICIALIZACIÓN

] de longitud L PARA CADA NUEVO BLOQUE DE ENTRADA DE N MUESTRAS D(k) = 1/P(k) Pn(k) = γ·Pn(k)+(1-γ)·|Xn(k)|2

[ TW 0,...,0)0( =∧

)L,x(FFT)k(X =

)L,d(FFT)k(D =

)k(Y)k(D)k(E −=

=)(ky )]()·([ kWkXIFFT∧

[ ])()·()·(·)()1( kXkEkDkWkW µ+=+∧∧

Figura 3.5.1.2

Este algoritmo realiza una convolución circular entre dos vectores. Al contrario que en los anteriores algoritmos, el término de error, aquí se calcula directamente en el dominio de la frecuencia. Aquí no se puede usar la parte del algoritmo forzado (también llamado gradient constrain) que lo diferenciaba del no forzado, ya que sólo se tienen L coeficientes en el dominio de la frecuencia. Antes se realizaba la convolución circular con solapamiento de muestras para obtener la convolución lineal y la correlación. Ahora directamente se realiza la convolución circular.

Contrastando con anteriores algoritmos adaptativos, el vector de error en este caso es calculado directamente en el dominio frecuencial, aunque sería posible llevar a cabo la misma operación en el dominio temporal.

No se utiliza el gradient constrain (ver figura 3.2.1.1 del presente capítulo), porque sólo se tienen L coeficientes en el dominio de la frecuencia (se recuerda que L=N/2 y N es el número de coeficientes que tenían todas

Lorenzo Meler Ferraz 193

Page 194: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

las señales en anteriores algoritmos) y estos están relacionados con los correspondientes coeficientes en el dominio temporal a través de una FFT de L puntos.

Desde el punto de vista de la implementación, las transformadas de Fourier (FFTs), son colocadas sólo tras haber acumulado L muestras de la señal de entrada. Pero es útil imaginar que las FFTs son calculadas para cada nueva muestra de datos, en vez de que la frecuencia de muestreo se haga más pequeña, en concreto en un factor de L.

De este modo, la FFT opera como un bloque de filtros pasobanda, y este algoritmo puede ser visto como un caso especial de un filtro adaptativo de subbanda.

Aunque el algoritmo de convolución circular fue originalmente diseñado para un cálculo de FFTs por bloque de datos (anulando de esta forma la superposición), pueden ser sin embargo calculadas con una mayor frecuencia de muestreo para reducir la distorsión producida por el aliasing.

Lorenzo Meler Ferraz 194

Page 195: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.5.2.- resultados obtenidos con diferentes señales de entrada

Como en el resto de análisis, aquí se sigue utilizando como señales de entrada las mencionadas anteriormente, tonos sueltos (de alta y baja frecuencia), combinación de tonos y señales con más posibilidades de que se encuentren en un entorno habitual como la voz y la música, así como el ruido blanco.

Tono 50Hz. µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

117.3597 dB

Figura 3.5.2.1

Lorenzo Meler Ferraz 195

Page 196: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Tono 3000Hz. µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4CANCELACION DE ECO

erro

r

tiempo (seg.)

184.5226 dB

Figura 3.5.2.2

Tonos 1 (50,150, 1000 y 3000 Hz) µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

2.5CANCELACION DE ECO

erro

r

tiempo (seg.)

114.3150 dB

Figura 3.5.2.3

Lorenzo Meler Ferraz 196

Page 197: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Tonos 2 (50,150 y 500Hz.) µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4CANCELACION DE ECO

erro

r

tiempo (seg.)

109.8742 dB

Figura 3.5.2.4

Tonos 3 (1000,2000 y 3000Hz.) µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

2.5

3CANCELACION DE ECO

erro

r

tiempo (seg.)

177.9718 dB

Figura 3.5.2.5

Lorenzo Meler Ferraz 197

Page 198: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

música µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1CANCELACION DE ECO

erro

r

tiempo (seg.)

61.0012 dB

Figura 3.5.2.6

voz µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4CANCELACION DE ECO

erro

r

tiempo (seg.)

21.9357 dB

figura 3.5.2.7

Lorenzo Meler Ferraz 198

Page 199: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

ruido blanco µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

2.5

3

3.5

4

4.5CANCELACION DE ECO

erro

r

tiempo (seg.)

65.5391 dB

Figura 3.5.2.8

CONCLUSIONES: Antes de empezar a comentar y sacar conclusiones, habrá que hacer una pequeña apreciación o recordatorio, y es que este algoritmo, a priori, nos va a proporcionar bastante inestabilidad a la hora de cancelar el eco, ya que bien es sabido que aquí estamos utilizando la convolución circular en vez de la lineal y la correlación, que es lo que se debería usar. Este perjuicio no viene a cambio de nada, lo que nos proporciona, como veremos en el capítulo 3.5.4 es una reducción considerable en el número de operaciones, que recordando, es una de las objetivos de este proyecto, optimizar el número de operaciones. Por lo tanto se tienen dos características, la primera el número de operaciones, la segunda las características de la cancelación de la señal de eco (la estabilidad, rapidez con la que se cancela y el residuo de error). Sorprendentemente, al observar las gráficas ocurre algo totalmente inesperado, y es que la cancelación en todas y cada una de las señales es rápida y llega a alcanzar niveles de cancelación mucho mayores que en casos anteriores. Al contrario de lo que se presuponía por el echo de que este algoritmo era demasiado inestable por realizar la convolución circular y todo el detrimento que ello

Lorenzo Meler Ferraz 199

Page 200: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

conllevaría, se han conseguido resultados sorprendentemente aceptables. Los niveles de potencia que aparecen en las figuras han sido calculados haciendo la media de los últimos 300 valores del vector de la potencia de error residual de cada señal. Todas las señales han sido analizadas durante tres segundos y al cabo de este tiempo se ha sacado la media anteriormente mencionada de la potencia de ruido. Otro característica que habrá que mencionar es que los valores de las constantes µ y α son las mismas para todos las señales analizadas. Entrando a valorar señal por señal, se ve como para las señales periódicas, para todas sin excepción, se consigue una reducción del error enorme; si que es verdad que a medida que se va aumentando la frecuencia se consiguen reducciones aún mayores, pero aún con todo la reducción para la frecuencia más baja (50Hz.) alcanza al cabo de tres segundos valores superiores a 100 dB. Para las combinaciones de tonos, ocurre algo similar, si la combinación está compuesta por frecuencias bajas, no se cancela tanto que si está compuesta por frecuencias altas y la señal compuesta por frecuencias de todo tipo cancela un valor intermedio. Pero se vuelve a recalcar que los valores alcanzados de la potencia de error son muy aceptables para cualquier señal periódica que se introduzca en el sistema. Pero lo sorprendente viene a la hora de analizar las figuras que proporcionan las señales no periódicas. Si se echa la vista a tras para recordar otros algoritmos, se verá que el que mejor reducía estas señales estaba en el dominio del tiempo, y se trata del algoritmo BNLMS, recordando LMS Block Normalizado (ver figuras 2.4.3.6 y 2.4.3.7 del capítulo 2 de este trabajo). Los niveles de reducción de eco han disminuido considerablemente con el que hacía en el algoritmo que inicialmente se consideraba el mejor para cancelar este tipo de señales. De las tres señales periódicas, la mejor cancelada es, como de costumbre, el ruido blanco, alcanzando al cabo de 3 segundos (tiempo que se ha analizado para todas las señales), -61 dB de potencia de error con respecto a la señal de entrada. Esto es menos significativo que lo que ocurre con la señal de música, ya que esta llega a alcanzar niveles muy cercanos a los que llega el ruido blanco y esto es la primera vez que ocurre. En todos los algoritmos anteriores, el que más se reducía con diferencia era el

Lorenzo Meler Ferraz 200

Page 201: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

ruido, lo importante es que aquí no existe casi esa diferencia. La señal de voz, como de costumbre, se lleva la peor parte de la cancelación, pero aún así, reduce en -21dB. la señal de entrad al cabo de 3 segundos. Hasta ahora, valores de error más elevados que los alcanzados aquí para la señal de voz, se han considerado aceptables, así que aquí, se aceptan todos y cada uno de los valores que se han nseguido en reducción del error. co

DATOS:

TONOS 50Hz. 500Hz. 1000Hz. 3000Hz.

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

1 --- --- 0.5

POTENCIA DEL ERROR

RESIDUAL (dB.)

117.3597 --- --- 184.5226

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

0.5 0.5 0.5

POTENCIA DEL ERROR

RESIDUAL (dB.)

114.3150 109.8742 177.9716

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

TIEMPO DE CANCELACIÓN ESTIMADO (seg.)

2.5 1.5 1.5

POTENCIA DEL ERROR

RESIDUAL (dB.)

21.9357 61.0012 65.5391

Tabla 3.5.2.1

Lorenzo Meler Ferraz 201

Page 202: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

3.5.3.- comparativa LMS forzado vs. LMS “convolución circular”

Como siempre, en este apartado se compararán figuras

resultantes de introducir señales con diferentes algoritmos. Para este último algoritmo no se han utilizado el mismo número de señales de entrada que para el LMS FORZADO, pero éste si que las tiene incluidas.

Debido a que en el algoritmo LMS FORZADO no se representaron los errores de las señales de voz y música, por causas ya explicadas en apartados anteriores, se considera oportuno que, como en otras ocasiones, se representen para los dos algoritmos las señales comparativas (algo que por otra parte se ha venido haciendo en el resto de comparaciones).

TONO 50Hz.

LMS FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.50

0.005

0.01

0.015

0.02

0.025

0.03

0.035CANCELACION DE ECO

erro

r

tiempo (seg.)

31.1000 dB

CONVOLUCIÓN CIRCULAR µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5CANCELACION DE ECO

erro

r

tiempo (seg.)

117.3597 dB

Figura 3.5.4.1

Lorenzo Meler Ferraz 202

Page 203: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

TONO 1000Hz.

TONO 1000Hz.

LMS FORZADO (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.50

0.05

0.1

0.15

0.2

0.25

0.3

0.35CANCELACION DE ECO

erro

r

tiempo (seg.)

115.1189 dB

Tono 3000Hz CONVOLUCIÓN CIRCULAR µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4CANCELACION DE ECO

erro

r

tiempo (seg.)

184.5226 dB

Figura 3.5.4.2

Combinación de tonos 1 (50, 500, 1000 y 3000 Hz).

LMS FORZADO (µ=0.000005)

0 0.5 1 1.5 2 2.5 3 3.50

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9CANCELACION DE ECO

erro

r

tiempo (seg.)

21.6124 dB

CONVOLUCIÓN CIRCULAR µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

2.5CANCELACION DE ECO

erro

r

tiempo (seg.)

114.3150 dB

Figura 3.5.4.3

Lorenzo Meler Ferraz 203

Page 204: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Combinación de tonos 2 (50, 100, 150 Hz).

LMS FORZADO (µ=0.00005)

0 0.5 1 1.5 2 2.5 3 3.50

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5CANCELACION DE ECO

erro

r

tiempo (seg.)

116.0901 dB

CONVOLUCIÓN CIRCULAR µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4CANCELACION DE ECO

erro

r

tiempo (seg.)

109.8742 dB

Figura 3.5.4.4

Combinación de tonos 3 (1000, 2000, 3000 Hz).

LMS FORZADO (µ=0.000001)

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8CANCELACION DE ECO

erro

r

tiempo (seg.)

77.4374 dB

CONVOLUCIÓN CIRCULAR µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

2.5

3CANCELACION DE ECO

erro

r

tiempo (seg.)

177.9718 dB

Figura 3.5.4.5

Lorenzo Meler Ferraz 204

Page 205: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

VOZ

LMS FORZADO(µ=0.00005) CONVOLUCIÓN CIRCULAR µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4CANCELACION DE ECO

erro

r

tiempo (seg.)

21.9357 dB

0 1 2 3 4-0.4 -0.2

0 0.2 0.4

salida deseada

0 1 2 3 4-0.2 -0.1

00.1 0.2

salida estimada

Figura 3.5.4.6

MÚSICA

LMS FORZADO (µ=0.01)

CONVOLUCIÓN CIRCULAR µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.01

0.02

0.03

0.04

0.05

0.06

0.07

0.08

0.09

0.1CANCELACION DE ECO

erro

r

tiempo (seg.)

61.0012 dB

0 1 2 3 4-0.05

0

0.05

0 1 2 3 4-0.04-0.02

00.020.04

salida estimada

salida deseada

Figura 3.5.4.7

Lorenzo Meler Ferraz 205

Page 206: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

RUIDO BLANCO

LMS FORZADO (µ=0.001)

0 0.5 1 1.5 2 2.5 3 3.50

0.2

0.4

0.6

0.8

1

1.2

1.4CANCELACION DE ECO

erro

r

tiempo (seg.)

18.3138 dB

CONVOLUCIÓN CIRCULAR µ=1 y α=0.5

0 0.5 1 1.5 2 2.5 3 3.50

0.5

1

1.5

2

2.5

3

3.5

4

4.5CANCELACION DE ECO

erro

r

tiempo (seg.)

65.5391 dB

Figura 3.5.4.8

CONCLUSIÓN: Para realizar la comparativa entre estos dos algoritmos, ha sido necesario volver a representar la señal de error del algoritmo LMS FORZADO, ya que anteriormente la figura que se decidió colocar no estaba en valor absoluto y ahora es conveniente hacerlo así para una mejor comparación entre cancelaciones de error.

Solventado este problema pasamos a analizar y observar esta comparativa y lo hacemos por la figura 3.5.4.1, donde como siempre, están representadas las señales de error para un tono de 50Hz. La mejora es substancial, el tiempo representado para las dos señales es el mismo, por lo tanto se puede apreciar a simple vista la mejora en el tiempo de cancelación. Pero lo más interesante es el nivel final de error residual (que está representado en decibelios), ya que utilizando el algoritmo que a priori daría una mayor inestabilidad, conseguimos una cancelación final mucho mejor. En la figura 3.5.4.2 se puede ver como no están representadas el mismo tipo de señal; para el algoritmo LMS FORZADO utilizamos una señal de entrada de 1000Hz., mientras que para la convolución circular representamos un tono de 3000Hz.; si se decide representarlas juntas para luego hacer el análisis como si fueran la misma es porque se considera que lo que de verdad influye en este análisis es si la frecuencia utilizada es alta o baja. Después de esta introducción aclaratoria, la conclusión que se saca de una mera observación sería la de una mejoría para frecuencias elevadas. El tiempo que tarda en llegar a su nivel residual es mayor (como se observa en la figura 3.5.4.2), pero si se observa el valor de la potencia de

Lorenzo Meler Ferraz 206

Page 207: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

error residual, se ve claramente la mejoría de la se hablaba en líneas anteriores.

En la figura 3.5.4.3, se puede ver algún piquito de inestabilidad de la que se mencionaba al introducir este algoritmo, pero estos picos son mas frecuentes y abruptos para el algoritmo LMS FORZADO. Otra vez es sorprendente los resultados que ofrece este algoritmo, porque si cuando se observa por separado, sorprende que la cancelación sea tan aparentemente buena, más lo hace aún si cabe, cuando se observa con otros algoritmos que en un principio daban resultados aceptables pero que ahora se plantea la duda de si aquellos resultados deberían haber sido o no aceptados. Pero de esto no se tratará ahora, el apartado implica sacar unas conclusiones de nuestra mera observación de las figuras y datos de esta simulación de cancelación de ecos.

La representación que se ha hecho de las señales no

periódicas no sigue la línea que se seguía en comparaciones anteriores, pero, como ya se ha dicho, este caso no es como los anteriores. De todas las restantes (voz, música y ruido blanco), para el algoritmo actual, convolución circular, se ha representado la señal de error de cancelación y para el algoritmo LMS FORZADO las señales de voz y música se ha puesto la comparativa de la señal deseada y estimada y para el ruido blanco la señal de error.

Si que es verdad que colocando una representación del

resultado de una señal de un algoritmo con otra representación diferente para compararlas, resulta bastante difícil, pero se optó por esta opción para demostrar la gran diferencia que existe entre los resultados de los dos algoritmo. Para el primero, la cancelación de eco se consideraba que ni existía; el LMS FORZADO, no llegaba en ningún momento a ser capaz de cancelar el eco (hay que recordar que si que conseguía una similitud entre las dos señales), sin embargo con el nuevo algoritmo si que cancela este eco. Por eso se decidió colocar esta representación, para mostrar la gran diferencia que existe entre estos dos algoritmos.

En la figura 3.5.4.8 se muestra la comparación de la

cancelación del ruido blanco para los dos algoritmos, y como para anteriores señales, no hay posible parangón entre las dos, únicamente mirando la potencia del error residual con respecto a la señal de entrad que aparece escrita en la figura.

Lorenzo Meler Ferraz 207

Page 208: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

DATOS:

TONOS 50 Hz. 150 Hz. 1000 Hz. 3000 Hz.

LMS FORZADO 2.5 --- --- 1

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS C. CIRC. 1 --- --- 0.5

LMS FORZADO 31.100 --- --- 111.4538

POTENCIA DEL ERROR RESIDUAL (dB.)

LMS C. CIRC. 117.3597 --- --- 184.5226

COMBINACIÓN DE TONOS COMB. 1 COMB. 2 COMB. 3

LMS FORZADO 1 1 1

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS C. CIRC. 0.5 0.5 0.5

LMS FORZADO 21.6124 116.0901 114.5435

POTENCIA DEL ERROR RESIDUAL (dB.)

LMS C. CIRC. 114.3150 109.8742 177.9718

SEÑALES NO PERIÓDICAS VOZ MÚSICA RUIDO

LMS FORZADO --- --- ---

TIEMPO DE CANCELACIÓN DEL ECO (seg.)

LMS C. CIRC. 2.5 1.5 1.5

LMS FORZADO --- --- 18.3138 (tras

3 seg.) POTENCIA DEL ERROR RESIDUAL (dB.)

LMS C. CIRC. 21.9357 61.0012 65.5391

Tabla 3.5.4.1

Lorenzo Meler Ferraz 208

Page 209: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Lorenzo Meler Ferraz 209

3.5.4.- cálculo del número de operaciones Como ya se ha anticipado al inicio de este apartado 5, el número de operaciones, que se calcularán a continuación, se verá mermado con respecto a las variantes del algoritmo LMS anteriores. Como en anteriores algoritmos tratados en el dominio frecuencial, habrá que tener en cuenta las ecuaciones 3.2.3.1 y 3.2.3.2 para realizar operaciones complejas. Fijándonos en el cuadro de instrucciones y en el diagrama de bloques representados por las figuras 3.5.1.2 y 3.5.1.1 respectivamente, se puede deducir las siguientes operaciones para obtener después el número de sumas y multiplicaciones en cada operación. 1.-La primera es una FFT de L coeficientes (recordar que L es igual a N/2, donde N es el número de coeficientes de nuestro anterior filtro), por lo tanto habrá 2·L·log2(L) sumas y 4·L/2·log2(L) multiplicaciones. 2.-La segunda operación corresponde a otra FFT para obtener la señal deseada (D) en el dominio de la frecuencia, por lo tanto, y al igual que en la operación anterior, ésta proporciona 2·L·log2(L) sumas y 4·L/2·log2(L) multiplicaciones. 3.-Después hay una simple diferencia entre dos vectores de L coeficientes, que darán L-1 sumas complejas, por lo tanto aquí habrá 2·(L-1) sumas reales. 4.-La cuarta operación consta de dos partes. La primera es una multiplicación entre dos vectores en el dominio de la frecuencia X(k)·W(k). Esta multiplicación darán L multiplicaciones complejas (coeficiente a coeficiente), entonces serán 4·L productos reales. Este resultado proporcionará un vector, también de L coeficientes, al que habrá que hacerle la IFFT, por lo tanto habrá aquí también 2·L·log2(L) sumas y 4·L/2·log2(L) multiplicaciones (con esto se obtiene la señal estimada y, en el dominio del tiempo). 5.-Y para finalizar, se tiene una operación, donde hay que realizar, una multiplicación de dos vectores complejos de L coeficientes (4·L productos). Todos estos coeficientes multiplicarlos por el factor de convergencia µ, por lo tanto otras 2·L productos. Este resultado, que será otro vector de L coeficientes se le sumará a otro vector complejo del mismo número de coeficientes, por lo tanto habrá 2·(L-1) sumas.

Page 210: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Lorenzo Meler Ferraz 210

El siguiente cuadro muestra todas las operaciones que se deberían realizar, en función de N y no de L, teniendo en cuenta lo dicho anteriormente, que N=2·L. Sumas Productos f(N) f(1024) f(N) f(1024)Primera op. 2·N/2·log2(N/2) 9216 4·N/4·log2(N/2) 9216Segunda op. 2·N/2·log2(N/2) 9216 4·N/4·log2(N/2) 9216Tercera op. N-2 1022 Cuarta op. 2·N/2·log2(N/2) 9216 4·N/4·log2(N/2)+2·N 11264Quinta op. N-2 1022 3·N 3072total 6·N/2·log2(N/2)+2·N

-429692 12·N/4·log2(N/2)+5·N 32768

Tabla 3.5.4.1

Ahora se hará la comparativa con el algoritmo LMS forzado y con el LMS no forzado en la tabla 3.5.4.1. En esta tabla se muestra la función que queda para cada algoritmo, dejándola en función de N, que será el número de coeficientes que tiene el filtro a adaptar, aunque en este último caso a este filtro no le adoptemos un tamaño de N sino de L. La columna donde salen números, se ha sustituido N por 1024, como en todos los casos anteriores, y en la línea azul, se muestra la diferencia, así se puede hacer una idea del mejoramiento o empeoramiento conseguido con este algoritmo en lo que concierne a las operaciones (multiplicaciones y sumas). ALGORITMO SUMAS PRODUCTOS FORZADO 10· N·log2(N)+2N-1 10540

720· N/2·log2(N)+5N 11264

0CONV. CIRC 6·N/2·log2(N/2)+2·N-4 29692 12· N/4·log2(N/2)+5·N 32768DIFER. 7 N·log2(N)+3 75715 7·Nlog2(N) 79872

Tabla 3.5.4.2

ALGORITMO SUMAS PRODUCTOS NO FORZADO 6·N·log2(N)+N 62464 12· N/2·log2(N)+4N 69632CONV. CIRC. 6·N/2·log2(N/2)+2·N-4 29692 12· N/4·log2(N/2)+5·N 32768DIFER. 3/2·N·log2(N)-N+4 32772 3/2·N·log2(N)-N 36864

Tabla 3.5.4.3

Como se puede ver, los resultados son bastante sorprendentes, la reducción en el número de operaciones es enorme, ganando de esta manera suficiente rapidez como para plantearse si es conveniente o no el utilizar este algoritmo, basando esto en los resultados comparativos de las señales analizadas en el apartado anterior.

Page 211: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

0 500 1000 1500 2000 2500 3000 3500 4000-1

0

1

2

3

4

5x 105 SUMAS REALIZADAS POR CADA ALGORITMO

numero de coeficientes del filtro

num

ero

de s

umas

algoritmo forzadoalgoritmo no forzadoalgoritmo "convolución circular"

Figura 3.5.3.1

0 500 1000 1500 2000 2500 3000 3500 40000

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5x 105 PRODUCTOS REALIZADOS POR CADA ALGORITMO

numero de coeficientes del filtro

num

ero

de p

rodu

ctos

algoritmo forzadoalgoritmo no forzaadoalgoritmo "convolución circular"

Figura 3.5.3.2

Lorenzo Meler Ferraz 211

Page 212: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Lorenzo Meler Ferraz 212

3.5.5.-Código del programa (MATLAB)

%********************************************************** %BUCLE PRINCIPAL, DEPENDIENTE DEL TIEMPO, LO ANTERIOR SOLO ES PARA INICIALIZAR %********************************************************** for n=1:25%esto es para el tiempo X=mifft(x,L); y=zeros(1,L); for ss=1:L %hay que obtener N valores de la señal del micro for gg=1:L y(ss)=y(ss)+h(gg)*func(n*L+ss-gg+1); %a partir de la señal de entrada y de end %la simulacion de planta. end %voy alamacenando la señal de salida real en el vector 'ysalida' cada vez que pasa %�un intervalo de tiempo n for u=1:L ysalida(((n-1)*M)+u)=y(u); end Y=mifft(y,L); YE=X.*HE; ye=miifft(YE,L); %lo mismo que antes (la salida real) pero para la salida estimada. for u=1:L yesalida(((n-1)*M)+u)=ye(u); end EFOURIER=Y-YE; efourier=miifft(EFOURIER,L); for m=1:L E(m+(n-1)*M)=EFOURIER(m); e(m+(n-1)*M)=efourier(m); e_db(m+((n-1)*M))=10*log10(abs(real(e(m+((n-1)*M))))/abs(ysalida((((n-1)*M)+u)))); end for m=1:L P(m)=P(m)*alfa+(1-alfa)*((abs(X(m)))^2); end D=1./P;

Page 213: Explica LMS y Otros

ALGORITMOS LMS EN LA FRECUENCIA

Lorenzo Meler Ferraz 213

FI_TOTAL=D.*conj(X).*EFOURIER for m=1:L%actualizo la H estimada, en frecuencia HE(m)=HE(m)+2*mu*FI_TOTAL(m); end %actualizar x con el metodo de solapamiento-almacenamiento %cogiendo de L en L muestras for u=1:L x(u)=func(u+(n*M)+M); end %esto simplemente lo hacemos para sacar por pantalla los coeficientes en dominio del tiempo he=miifft(HE,L); for u=1:L he_total(u+(n-1)*M)=he(u); e_relativo((u+(n-1)*M))=(h(u)-he(u))/(h(u)); end end

Page 214: Explica LMS y Otros

CONCLUSIÓN

CONCLUSIÓN

Al concluir este trabajo e intentar cuadrar todos los aspectos e información que se ha ido obteniendo, se da uno cuanta de la gran extensión de conocimientos que se ponen a disposición de los demás en este texto.

He aprendido muchas cosas, cosas que durante el transcurso de esta carrera había pasado por alto, no le había dado la importancia o no había dispuesto del tiempo necesario para entender todos y cada uno de los conceptos que deberíamos aprender.

Otro aspecto positivo que encuentro radica en que al profundizar en un tema como este, los filtros adaptativos, empezar desde el inicio, desde los primero pasos como es la transformada de Fourier o una simple convolución, uno se da cuenta de la grandeza del aprendizaje, de todo el trabajo que existe detrás de cualquier hecho insignificante que ocurre a nuestro alrededor, y de cómo se recurre y se necesita de cualquier estudio realizado en otros tiempos que no conocieron el desarrollo tecnológico que ahora tenemos.

Este trabajo no ha sido exclusivamente un trabajo de recopilación o de síntesis, donde se han recogido experiencias ajenas, también hay un pequeño toque de análisis o de investigación que es lo que lo ha hecho más interesante. Este análisis ha consistido en programar en MATLAB ciertos algoritmo que nos llevaban conseguir nuestro objetivo final que era la cancelación de ecos. El programar estos algoritmos, hacer simulaciones para más tarde realizar una comparativa entre los diferentes algoritmos para encontrar el más apropiado para nuestro objetivo, ha sido el “trabajo de laboratorio”. Ha habido una gran cantidad de información recopilada, se han programado algoritmos mas o menos antiguos (convolución y transformada de Fourier) y algoritmos más o menos modernos (LMS en la frecuencia como convolución circular).

Quizás el lado amargo de este trabajo esté en la falta de tiempo para darle un acabado mucho más extenso, unas conclusiones a los resultados obtenidos mucho más claras. Para ello habría que realizar un número de pruebas más extenso, aunque tiene que quedar claro que estas se han hecho con señales de muy diferentes características, véase, voz, música, ruido, tonos, combinación de tonos.

En cada capítulo en el que se ha hecho una comparación de los resultados obtenidos con cada algoritmo, se ha

Lorenzo Meler Ferraz 214

Page 215: Explica LMS y Otros

CONCLUSIÓN

Lorenzo Meler Ferraz 215

colocado una conclusión, que en modo de resumen se comentan ahora.

Hay que recordar que para cualificar unos resultados

de buenos o malos, escoger un algoritmo u otro para utilizarlo en el laboratorio, se analizan varias características, entre se recuerdan estas tres tiempo que tarda en llegar a nuestro valor residual del error, el valor final de este error y estabilidad. Además, habrá que tener en cuenta el número de operaciones (productos y sumas). Como ya se dijo en las conclusiones del primer algoritmo a modo introductoria, hay que recordar que los niveles de cancelación de error que la ITU proporciona para considerarlos aceptables, están en una reducción de -40dB. Esto, como se ha visto a lo largo del trabajo no se cumple en todos los casos, pero no por ello se ha de considerar que no se ha conseguido el objetivo de reducción, ya que hay que tener en cuenta que los valores de las señales de entrada están normalizados (amplitudes más bajas), y por tanto la potencia del error será más difícil de conseguir.

Las primeras comparaciones que se hacen son para los

algoritmos en el dominio del tiempo, LMS vs. NLMS y LMS vs. BLMS y BLMS vs. BNLMS. En la primera comparación, no puede haber discrepancia, porque aunque se concluye que se realizan un número de operaciones mayor en el segundo que en el primero, la estabilidad y la rapidez de cancelación que proporciona para señales no periódicas este segundo algoritmo, subsana el número de operaciones extra que se realizan.

Si tenemos que sacar conclusiones de la comparación entre el algoritmo LMS y el BLMS, resulta difícil decantarse por uno u otro en cuanto a las características de reducción de eco, pero cuando se entra a ver el número de operaciones que debe realizar cada uno de los algoritmos, la decantación está clara, seguiríamos con el algoritmo clásico.

La siguiente comparación entre señales canceladoras de eco en el dominio temporal (y por último), sería entre BLMS vs. BNLMS. La mejoría es notable, incluso respecto al NLMS, y el incremento de operaciones no se hace excesivo. Lo mejor de este algoritmo es la gran reducción de error que proporciona para señales como la música o la voz que hasta ahora resultaba tan difícil de cancelar, que por otra parte son las señales que, como ya se ha dicho infinidad de veces, son las más importantes de cancelar.

Una vez sacadas las conclusiones para los algoritmos en el dominio del tiempo, se pasa al dominio de la

Page 216: Explica LMS y Otros

CONCLUSIÓN

Lorenzo Meler Ferraz 216

frecuencia donde se encuentran las siguientes comparaciones: LMS FORZADO vs. LMS NO FORZADO, LMS FORZADO con y sin µ adaptativa y por último LMS FORZADO vs. LMS COMO CONVOLUCIÓN CIRCULAR.

La característica que proporciona la primera comparación está en el hecho de que el segundo algoritmo realiza menos operaciones que el segundo. Esto es lo primero que se tiene en cuenta a la hora comparar estos dos algoritmos. Desde un primer momento ya se puede imaginar que esta reducción en el número de operaciones vendrá acompañado de algún empeoramiento en las características de la cancelación del eco; y así es, para todas las señales se muestra una cierta inestabilidad en la cancelación y también que el nivel final del residuo de error es mayor para el algoritmo LMS NO FORZADO. Aunque la reducción del error no llegue a los niveles a los que llegaba el algoritmo LMS FORZADO, estos, siguen siendo bastante buenos, incluso para la señal de ruido blanco la cancelación se puede considerar que es igual, dado que por las características de esta señal, la inestabilidad se hace inapreciable. Para las señales no periódicas (las que se han considerado anteriormente como las más importantes), no se aprecia a simple vista que haya habido ninguna merma exagerada en ninguna de las características de cancelación de eco, de hecho, se considera que siguen sin cancelar (no hay reducción de eco clara, aunque si una similitud entre las señales). Así pues, si se tuviera que elegir entre estos dos algoritmos escogeríamos el LMS NO FORZADO.

Por suerte no sólo tenemos estos dos algoritmos para elegir, sino que ahora lo que se puede hacer es adaptar el factor de convergencia, y eso es lo que se hace en el siguiente algoritmo LMS CON µ ADAPTATIVA. Se sabe que al adaptar este factor se van a utilizar un número no muy grande operaciones extras, así que en este caso únicamente se decidirá usar este en el caso de una mejoría clara en las características de cancelación. Al igual que en otras comparaciones anteriores, los resultados son muy dispares dependiendo de las señales utilizadas. Así, en este caso, se puede observar que hay un empeoramiento cuando se miran las señales periódicas, sin embargo, al analizar las no periódicas, es clara la mejoría, de hecho, por esa razón ahora se colocan por primera vez en el dominio de la frecuencia el error lineal de las señales de música y voz. Por lo tanto, queda claro que hay una disminución grande entre adaptando el factor de convergencia para señales no periódicas, y esto quiere decir que sería muy beneficioso utilizar este algoritmo para nuestro propósito.

Page 217: Explica LMS y Otros

CONCLUSIÓN

Lorenzo Meler Ferraz 217

La última comparación, y con ella la penúltima conclusión, llega a través de utilizar la convolución circular, en vez de la lineal y la correlación. Aquí, el número de operaciones se reduce considerablemente, dado que como se explica en la introducción del algoritmo, se trabaja con bloques de L que recordemos L=N/2, y siempre en el dominio e la frecuencia. Las conclusiones sobre esta comparación son realmente sorprendentes, porque se ha conseguido una cancelación realmente buena comparándola con cualquier otro algoritmo en el dominio de la frecuencia. Pero lo que más llama la atención, no es su buena cancelación del eco, que por otra parte es la mejor, sino que además es el algoritmo que menos operaciones necesita de todos los vistos en este proyecto, incluidos los que trabajan en el dominio del tiempo. La cancelación para señales periódicas (los tonos y combinación de los mismos), hacen) es bastante similar a otras cancelaciones obtenidas, pero las que se han conseguido para señales no periódicas como la voz y la música son verdaderamente buenas, no puede haber comparación con ninguna de las representaciones que se han hecho con anterioridad, ni siquiera con el BNLMS que hasta el momento nos ofrecía los mejores resultados, eso si a costa de un incremento considerable en el número de operaciones. Con este algoritmo se consigue una reducción enorme del número de operaciones y ofrece la mejor cancelación conseguida en todo este estudio de algoritmos adaptativos para la cancelación de ecos.

Uno de los aspectos que quedaría por analizar sería conseguir esos valores que hacen optimizar al máximo este último algoritmo que nos proporcionaba tan buenos resultados.

Al ver todos los algoritmos y sus comparaciones, en un principio parece claro quedarnos con la última implementación dada su ventaja con respecto a las operaciones, si es en eso en lo que se necesita mejorar.

Después de la realización de este proyecto y de la observación que he llevado a cabo de los resultados obtenido, me atrevo a sacar las siguientes apreciaciones;

- para mejorar la estabilidad en la reducción del eco, es necesario normalizar el factor de convergencia con respecto a la potencia de la señal de entrada.

- Si lo que se desea es minimizar el tiempo que tarda en llegar al valor residual, deberemos aumentar el factor de convergencia.

- Para obtener un valor más pequeño en el nivel residual del error, es necesario reducir el valor del factor de

Page 218: Explica LMS y Otros

CONCLUSIÓN

Lorenzo Meler Ferraz 218

convergencia y esperar que transcurra más tiempo que en el caso anterior.

Está claro que lo que se ha podido simular en el

ordenador con el entorno de MATLAB no corresponde a lo que pueda ocurrir en la realidad, cuando estos algoritmos se implementen en el DSP y se hagan pruebas en el laboratorio de CAR, pero está claro que la ventaja que nos proporciona la simulación es la ganancia de tiempo.

Entre las cosas que por falta de tiempo no se han podido concluir, está la comparación de datos con el algoritmo LMS en la frecuencia como convolución circular, adaptando el factor de convergencia según la potencia de la señal, con otras señales como las obtenidas con el BNLMS, pero parece claro que lo conseguido con la convolución circular son mejores resultados que los que proporcionaba el algoritmos de bloques. Además, los valores de µ y α han sido los mismos para todas las señales, es decir, no se ha intentado encontrar aquellos valores que hacen conseguir los mejores resultados; esto no se ha hecho porque los resultados obtenidos eran suficientemente buenos como para llegar a las conclusiones que se han llegado. Los resultados que a la fecha se consiguieron no eran nada satisfactorios, lo que nos lleva a pensar que no se llegó a hacer una programación exacta del mismo.

Concluiré esta conclusión diciendo que como cualquier trabajo que se realice, se acaban aprendiendo cosas, se adquieren conocimientos que en cualquier caso nunca son desdeñables por mucho que se diga que no van a ser utilizados en un futuro. Esa es la sensación agradable que se queda después de un proyecto por el que se ha dado un tiempo de tu vida. Nuestra recompensa se encuentra en nuestro esfuerzo y no en el resultado.

Mahatma K. Gandhi

Page 219: Explica LMS y Otros

BIBLIOGRAFÍA

BIBLIOGRAFÍA PÁGINAS WEB: http://www.wikipedia.com (30-06-2005) http://www.tsc.uc3m.es/docencia/SyC/conv_TD/ (30-06-2005) http://physionet.cps.unizar.es/~eduardo/docencia/tds/librohtml/sd1.htm (16-06-2005) http://iie.fing.edu.uy/ense/asign/sisdsp/proyectos/2001/grupo_h_canc_eco/[4]#[4] (05-06-20005) http://physionet.cps.unizar.es/~eduardo/docencia/tds/librohtml/sd1.htm (30-06-2005) http://www.control.isy.liu.se/~fredrik/myrefs.html (30-06-2005) http://mat21.etsii.upm.es/ayudainf/aprendainf/Matlab61/matlab61pro.pdf (30-06-2005) ARTÍCULOS: John J. Shynk, Frecuency-Domain and Multirate Adaptive Filtering, IEEE Signal Processing, volumen 9, páginas 15 a 37; 1992 Yuu-Seng Lau, Zahir M. Hussain y Richar Harris, Performance of adaptive filtering algorithms: A comparative study; Australian Telecommunications Networks and Applications Conference (ATNAC), 2003 Apuntes asignatura Comunicaciones Digitales, Pedro Ramos Lorente, EUPT, 2005. LIBROS: Simon Haykin; Adaptive filter theory; Prentice Hall 3ª edición; 1996. Alan V. Oppenhein, Alan S. Willsky, Ian T Young; Señales y Sistemas; Prentice Hall; 1993. Alan V. Oppenhein, Ronald W. Schafer, John R. Back; Tratamiento de señales en teimpo discreto; Prentice Hall 2ª edición, 1999

Lorenzo Meler Ferraz 219

Page 220: Explica LMS y Otros

BIBLIOGRAFÍA

Lorenzo Meler Ferraz 220

Ali H. Sayed; Fundamentals of Adaptive Filtering; Ed. Wiley Interscience, 2003 PROYECTOS FIN DE CARRERA: Raúl Martín Ferrer; Implementación de un sistema C.A.R. con conformado digital; ITTSE EUPT; 2002. Carlos Pérez Peralta; Simulación mediante Matlab de un sistema de control activo de ruido; ITTSE EUPT; 2004. Ricardo Marín Pérez; Desarrollo de una herramienta software para el tratamiento digital de señales reales basadas en el DSP TMS320C32; ITTSE EUPT; 1999.