Filtro Adaptativo para cancelación de ruido

Share Embed


Descripción

1

Filtro Adaptativo para cancelación de ruido. Coronel Felipe, [email protected] Pinto Rodrigo, [email protected] Universidad Politécnica Salesiana - Sede Cuenca

Resumen—El presente documento presenta el desarrollo de un filtro adaptativo que tiene la función de cancelar o eliminar el ruido mediante la implementación de una neurona adaline, la misma que se adapta a datos cambiantes de una señal indeseada, presentando a su salida una aproximación muy acertada, que puede ser restada de la señal original, produciendo una onda limpia, en este caso se implemento el sistema en Matlab, las señales utilizadas fueron una canción y una onda de ruido creada con código pseudoaleatorio. Index Terms—Neurona Artificial, Adaline, Filtro Adaptativo

I. I-A.

O BJETIVOS

Principal Implementar el algoritmo de un filtro adaptativo en Matlab, para la cancelación de ruido en una señal de audio, utilizando una neurona adaline.

I-B.

Específicos Implementar el algoritmo de aprendizaje y adaptación de la neurona utilizando el método del gradiente decreciente. Probar el sistema con diferentes ingresos hasta encontrar los que mejor respuesta den en cuanto a velocidad de aprendizaje y exactitud de respuesta. II.

I NTRODUCCIÓN

Las redes neuronales son redes diseñadas para comportarse o realizar tareas de la misma forma en la que lo haría el cerebro humano, con el objetivo de cumplir esto, es necesario conocer el funcionamiento del cerebro, así como la forma en la que aprende y guarda información [4]. El procesamiento de datos se ha visto siempre interferido por diversos factores como el error residual de un cálculo computacional, el desempeño en tiempo real de una aplicación, o el simple hecho de eliminar el ruido de una señal muy importante, ahora pues para cada uno se han desarrollado algunos métodos para mitigarlos, pero entre todos estos la eliminación del ruido es el que se ha encontrado con muchas soluciones efectivas pero no del todo, existen sistemas analógicos y digitales que nos facilitan esta acción. Uno de los procedimientos más comunes es implementar algún tipo de cancelador que pueda identificar el ruido y atenuarlo, pero siempre se llega a la gran interrogante ¿Cómo distingo el ruido de la señal deseada?, pues bien, se pueden proponer sistemas que trabajen a cierta frecuencia, en la que un filtro pueda eliminar cualquier componente que no cumpla con la condición de diseño, pero la realidad no es siempre así, y el más claro ejemplo es el procesamiento de la voz, pues para cualquier filtro es difícil establecer la diferencia entre

un tono audible y una palabra pronunciada por una persona. Aquí es donde intervienen los filtros inteligentes, aquellos que pueden aprender a diferenciar características especiales de una señal. Para el caso de este documento se desarrolló un sistema similar, que en lugar de aprender cómo se comporta la voz de una persona, intentó descifrar como actuaba el ruido en la señal contaminada para luego eliminarlo y que el resultado sea una señal clara en la que la voz sea perfectamente diferenciable del resto de la señal. El Filtro Adaptativo sirve esencialmente para modelar la relación entre señales, trabajando en tiempo real y de forma iterativa.[3] Básicamente cambia su forma de comportarse conforme transcurre el tiempo, al momento de diseñarlo no se conocen los coeficientes del filtro, sino más bien este se calcula conforme cambian las muestras de la señal.[1] Su estructura principal está basada en una red neuronal, pudiendo tener una única neurona si se requiere velocidad o varias en el caso de necesitarse precisión, el aprendizaje de la misma se realiza en cada iteración, cambiando los valores de sus coeficientes para adaptarse a la señal que se requiere que aprenda para eliminarla posteriormente, el cambio de estos se hace en función de la gradiente del error.[2]

2

II-A.

Modelado De Una Neurona Artificial

Los estímulos en las neuronas artificiales son considerados vectores.

Figura 2. Función de activación de la neurona.[5]

Figura 1. Neurona artificial [5].

El estímulo que recibe una neurona es igual a la suma de sus entradas (xi ) multiplicadas por un peso sináptico (wi ) figura 1, de tal manera que: m X xi wi = x1 w1 + x2 w2 + ....xm wm

(1)

j=1

Este estímulo se procesa en el núcleo, dando como resultado el nivel de excitación de la neurona (net de la figura 1), el cuál en las ecuaciones se representara con n: n=

m X

xi wi + b

(2)

j=1

Como se puede observar en la ecuación 2, a mas de la sumatoria de los estímulos por los pesos, el nivel de excitación de la neurona depende del bias o umbral, finalmente la activación de la neurona se dará según su función de activación, que dependerá de n [4]. a = f (n) II-B.

(3)

Función de activación de la neurona

La salida de la neurona es llamada purelin y está dada por: a = purelim(n)

(4)

m X a = purelin( xi wi + b)

(5)

j=1

donde: a=n

II-C. Retrasos de los ingresos (Delays) La base fundamental de la red Adaline es el cálculo del error de su respuesta para la corrección de los coeficientes de la misma, en su caso se utiliza el método de la gradiente decreciente, la cual está basada en el error cuadrático medio, que no es más que sumar los cuadrados de los errores dados con respecto al resultado real de la salida, y su funcionamiento ayuda a que los errores negativos no se anulen con errores positivos, dando el mejor estimador para ese momento. Ahora el incremento de retrasos de la señal como ingresos a la neurona es una forma de enviarle datos que ya conoce y que la red puede utilizarlos para evaluar su respuesta, funciona como una especie de memoria del comportamiento de la señal, acarreando el error para las siguientes iteraciones.

(6)

La cual según su forma matemática se dice que es una función lineal, totalmente derivable a diferencia de la función de activación del perceptrón, la forma gráfica de la función se muestra en la figura 2.

II-D. Coeficiente de aprendizaje (α) La variación de este coeficiente influye directamente en el proceso de aprendizaje de la red, si este es demasiado grande puede que la red no converja al mínimo error requerido, saltándose ese valor en cada iteración, pudiendo incluso provocar que la red nunca aprenda, por otro lado seleccionar un valor demasiado pequeño afecta directamente a la velocidad de aprendizaje de la red, ocasionando que la convergencia sea muy lenta. Ambas situaciones pueden afectar directamente sobre el filtro adaptativo, es necesario seleccionar un valor entre estos escenarios para que la red neuronal funcione de forma óptima III. D ISEÑO DEL EXPERIMENTO Nuestro trabajo busca implementar una red neuronal adaline, que cumpla con la función de un filtro adaptativo, esto se da gracias a que son sistemas dinámicos capaces de estar en constante cambio para adaptarse a nuevas condiciones. Para adaptarse a estas nuevas condiciones la red cambian los pesos de manera que se obtengan los valores deseados, de esta forma el filtro adaptativo implementado no necesita un algoritmo para resolver el problema de ruido, sino genera una propia distribución de pesos a través de su aprendizaje continuo. La siguiente figura muestra en diagrama de bloques, el sistema utilizado para la cancelación de ruido a través del filtro adaptativo.

3

wnuevo−i = wviejo−i + 2 ∗ α ∗ errork ∗ pik

(9)

bnuevo−i = wbviejo−i + 2 ∗ α ∗ errork

(10)

Donde alfa es la constante de aprendizaje y puede ser variado de acuerdo a resultados. 8. Repetición de los pasos 4,5,6,7. A continuación se presenta el código implementado en Matlab: Figura 3. Diagrama De Bloques Del Sistema

El filtro adaptativo presente en el diagrama de bloques, se implemento a través de una red neuronal adaline de una sola neurona, cuya arquitectura se muestra a continuación:

Figura 5. Código Implementado en Matlab.

IV. Figura 4. Arquitectura De La Neurona

La red adaline tiene un entrenamiento continúo, donde los pesos se adaptaran o cambiaran de acuerdo al valor de error en cada iteración, la neurona tendrá 5 estímulos donde el primero proviene de la fuente de ruido pura, y los otros 4 son retrasos de ese estímulo. III-A.

A NÁLISIS D E R ESULTADOS

Para la primera simulación del filtro adaptativo se genero una fuente de ruido randómica y una señal de ruido modificado igual a: n0 = 0,1 ∗ F uenteDeRuido

La señal de ruido se le suma a la señal original. Las primeras dos simulaciones se realizaron con dos valores distintos de alfa, en la figura 6 tenemos con un alfa de 0.001 y en la figura 7 tenemos con un alfa de 0.1

Diseño del programa y secuencia de ejecución.

El filtro adaptativo se lo implemento a través del software de Matlab, y su secuencia de ejecución fue la siguiente: 1. Discretización de una señal de audio. 2. Generación de una fuente de ruido aleatoria, señal de ruido modificada y señal de audio ruidosa (señal de audio + señal de ruido modificada). 3. Inicialización de pesos y bias de forma aleatoria. 4. Adquisición del primer estímulo y procesamiento de retrasos para los estímulos restantes. 5. Cálculo de la salida de la red neuronal. a = p1 ∗ w1 + p2 ∗ w2 + p3 ∗ w3 + p4 ∗ w4 + p5 ∗ w5 + b (7) 6. Cálculo del error de la red a través de la resta de la señal de audio ruidosa con la salida de la red. 7. Cálculo de los nuevos pesos y bias de la red neuronal. α = 0,01

(8)

(11)

Figura 6. Simulación con un valor de alfa de 0.001

4

Figura 9. Simulación con un valor de alfa de 0.3

Figura 7. Simulación con un valor de alfa de 0.1

En la imágenes se puede observar que, el sistema pudo filtrar mejor con una taza de aprendizaje de 0.001 ya que se obtiene el valor más eficiente que se desea a la salida. En las siguientes simulaciones se genero una fuente de ruido randómica y una señal de ruido modificado igual a:

n0 = 0,9 ∗ F uenteDeRuido

(12)

Esta señal se sumara a la señal original para la adición de ruido. Las simulaciones se realizaron dcon diferentes valores para la taza de aprendizaje, en la figura 8 tenemos con un alfa de 0.003 y en la figura 9 tenemos con un alfa de 0.3:

Figura 8. Simulación con un valor de alfa de 0.003

Esto se puede deber a factores como el inicio randómico de los pesos sinápticos de la red o bias, siendo también un factor importante el coeficiente de aprendizaje, que en nuestro caso es igual a 0.01. El coeficiente de aprendizaje determina que tan rápido puede llegar a encontrar la red el mínimo global así cómo que tan cerca se va a analizar el siguiente punto supuesto como mínimo global. El valor que utilizamos de 0.01 fue basado en el método de prueba y error, arrojando la mejor aproximación tanto en tiempo como en exactitud este valor. Los valores que utilizamos para poder identificar con que taza de aprendizaje trabaja mejor nuestro filtro adaptativo son: 0.001, 0.1, 0.003, 0.3, que como podemos ver en las imagenes el valor de 0.001 hace que el filtro trabaje no solo de una manea rápida, sino también de una manera óptima. V. C ONCLUSIONES . En el transcurso de este experimento se puede apreciar y comprender de forma clara como el numero de retrasos y el coeficiente de aprendizaje son una parte fundamental para el correcto desempeño de nuestra red, si bien existen otros parámetros que definen su comportamiento (función de activación, algoritmo de aprendizaje) estos tienen una relevancia especial debido a que pueden evitar que la red se comporte como deseamos de no ser considerados adecuadamente, puesto que muy pocos retrasos pueden provocar un mal filtrado, un coeficiente de aprendizaje demasiado elevado puede no llevarnos a un mínimo local o global, mientras que un coeficiente de aprendizaje demasiado alto puede ralentizar mucho el aprendizaje. Se comprobó también como el uso de pesos aleatorios al inicio del cálculo nos llega a dar diferentes mínimos, si bien esto no afectó de manera perceptible el resultado entre distintas pruebas, para valores muy elevados del coeficiente de aprendizaje pudiese ser mas visible este efecto. El valor de la taza de aprendizaje que va a tener nuestro filtro deben permitir a nuestro filtro trabajar en un punto óptim,

5

ya que no queremos que neustro filtro trabaje rápido pero luego cometa error en el filtrado del ruido, o que trabaje muy lento permitiendo saltos en el análisis del error. R EFERENCIAS [1] C. V. Angel, La aplicación de la redes neuronales en la distribción de una planta, Pachuca de Soto: Universidad Autónoma del Estado de Hidalgo, 2007. [2] L. F. John, Implementación Hardware de una red neuronal adaptativa lineal usando aritmética distribuida, Distrito Capital de Bogotá - Colombia: Centro de Investigaciones y Desarrollo Científico, 2005. [3] S. Douglas, The DSP Handbook, Chapter 18 & 19, Boca Raton, FL: IEEE Press, 1998. [4] Minaya Villasana, Introducción a Las redes Neuronales (Neurales) CO-6612, Introducción a las Redes Neuronales Artificiales, Disponible en internet en: http://prof.usb.ve/mvillasa/redes/Introduccion-vl.pdf [5] Patricio García Báez, Introducción a las Redes Neuronales y su aplicación a la Investigación Astrofísica, Investigación Astrofísica, , Disponible en internet en:http://www.iac.es/sieinvens/SINFIN/Sie_Courses_PDFs/ NNets/confiac.pdf

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.