You are on page 1of 3

Filtro Adaptativo Con Red

Neuronal Tipo ADALINE


Andrei Martnez Garzn, Daniel Salazar Crdenas
RESUMEN
En el informe que se presenta a continuacin se describe el proceso de desarrollo e implementacin de
una red neuronal tipo ADALINE por medio del software y hardware Arduino donde la red posee
como entrada una seal con un ruido que se simula de manera aleatoria y como seal deseada se tiene
la seal sin el ruido a la cual se le fueron implementados cinco retrasos cada uno de ellos con sus
respectivos coeficientes, se espera que los pesos a los que converja la red sean los coeficientes
suministrados a los retrasos de la seal sin ruido.

ANLISIS Y RESULTADOS
Conociendo que se desea desarrollar un filtro adaptativo cuya seal de entrada corresponde a la
respuesta ante un tren de pulsos de un sistema de segundo orden la cual encuentra contaminada por
un ruido aleatorio, se procede a obtener la seal del seal original (sin ruido), esto se logra a travs de
la herramienta de MATLAB, SIMULINK, y se disea el diagrama de bloques que se muestra a
continuacin.

Imagen 1. Simulacin del sistema de segundo orden con SIMULINK.

La informacin de dicha seal es enviada a MATLAB a travs de los vectores Holi y Time que
almacenan la magnitud y el tiempo de la seal respectivamente.

Imagen 2. Cdigo en MATLAB para simular la seal contaminada y aplicar los retazos con sus respectivos coeficientes.

Con la informacin obtenida de SIMULINK se simula que la seal ha sido contaminada sumndole
valores aleatorias a esta y se genera una seal deseada a partir de la extrada de SIMULINK a
diferencia que esta posee cinco retardos y cada uno de estos posee un coeficiente.
La informacin de las seales mencionadas anteriormente es extrada en forma de texto para realizar
la implementacin del filtro adaptativo por medio del software y hardware Arduino.

Imagen 3. Primera parte del cdigo en Arduino para la implementacin de la red ADALINE.

Inicialmente se establecen diferentes variables para la implementacin de la red neuronal entre ellos
una variable donde se almacena el valor actual seal de entrada(X_K), una variable contador (K) para
recorrer las posiciones de los vectores donde se encuentran almacenados los datos de las seales de
entrada y deseada, el ritmo de aprendizaje (alfa), los pesos iniciales de la red(Weigth[]), que para este
caso se establecen como cero y un vector (Input[5]) con cinco posiciones para almacenar los retrasos
de la seal de entrada.
Posteriormente se ingresan los dos vectores que almacenan las seales extradas de MATLAB, seal
contaminada con ruido (OriRuido []) y la seal con los retrasos y coeficientes (Deseada []). Por medio
de la variable X_K y el contador (k) se extrae el valor actual de seal contaminada y usando de
manera especfica el vector Input se obtienen los retazos de esta seal procurando que estos registros
se llenen uno a uno, despus con la misma variable acumulador (k) se extrae el valor actual de la seal
deseada.

Imagen 4. Primera parte del cdigo en Arduino para la implementacin de la red ADALINE.

Una vez obtenidos los retrasos que sern a la entrada a la red se procede a calcular la salida neta
usando los retrasos anteriormente obtenidos, a continuacin se realiza la actualizacin de los pesos
incluyendo el bias para posteriormente imprimirlos a travs del monitor serial.

Imagen 5. Tercera parte del cdigo en Arduino para la implementacin de la red ADALINE.

Finalmente se realiza el incremento de la variable contador (k) y al llegar al lmite de los datos de los
vectores OriRuido [] y Deseada [] (patrones) se inicializa la variable acumulador para continuar con el
entrenamiento de la red.
CONCLUSIONES

La convergencia de los pesos de una red neuronal depende de manera directa de dos factores Alpha
(Learning rate) y los pesos iniciales, el Alpha es el ms importante ya que de este depende que la red
neuronal encuentre los pesos adecuados (entrenamiento de la red) para la tarea especificada a travs
de los patrones, si este es muy grade es probable que no encuentre los pesos adecuados pero si este es
muy pequeo puede que la red neuronal converja pero el tiempo para realizar esto puede ser muy
prolongado.
Cuando se posee un nmero limitado de patrones para el entrenamiento de la red se puede realizar un
ciclo de tal manera que cuando se llegue al ltimo patrn se reinicie desde el primero, esto funciona
debido a que la segunda vez que la red ve los patrones anteriormente vistos, los pesos son diferente a
los de la primera vez favoreciendo esto al entrenamiento de la red.

You might also like