Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TESIS
QUE PARA OBTENER EL GRADO DE:
MAESTRO EN CIENCIAS DE INGENIERÍA EN MICROELECTRÓNICA
PRESENTA:
ASESOR:
A los directores de Tesis Dr. Juan Carlos Sánchez García y Dr. Héctor M. Pérez Meana, por
la valiosa conducción para el desarrollo del presente trabajo de investigación. Así mismo la
colaboración del M. en C. Henry Martínez Conde.
A los miembros del jurado por sus comentarios y atinadas sugerencias para lograr una
correcta distribución y presentación de los resultados obtenidos.
2.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Áreas de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Sistema adaptivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Adaptación de lazo abierto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3.2 Adaptación de lazo cerrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Combinador aditivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Adaptación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.1 Método de gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.5.2 Método de mínimos cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.8 Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Capitulo 5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Lista de acrónimos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Índice de figuras
Capitulo 2
Figura 2.1 Adaptación de lazo abierto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Figura 2.2 Adaptación de lazo carrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Figura 2.3 Señales en adaptación de lazo cerrado . . . . . . . . . . . . . . . . . . . . . . 11
Figura 2.4 Ejemplos de aplicación de lazo cerrado: a)Predicción
b) Identificación de sistema (modelado), c)Ecualización
(deconvolución, filtrado inverso, modelado inverso),
d) Cancelación de eco ó ruido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Figura 2.5 Combinador lineal aditivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Figura 2.6 Filtro transversal adaptivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Figura 2.7 Obtención del error en un combinador lineal aditivo . . . . . . . . . . . 14
Capitulo 3
Figura 3.1 Conjuntos: a) Clásico b) Difuso . . . . . . . . . . . . . . . . .. . . . . . . . . . 19
Figura 3.2 Partes importantes de una función de membresía . . . . . . . . . . . . . 21
Figura 3.3 Conjuntos difusos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Figura 3.4 Subconjunto. A está contenido en B . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 3.5 A unión B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 3.6 A intersección B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Figura 3.7 Conjunto A negado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Figura 3.8 Partición difusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Figura 3.9 F.M. a) triangular b) trapezoidal c) gaussiana d) campana
e) sigmoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Figura 3.10 Diagrama a bloques de un sistema de inferencia
b) A implica B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figura 3.11 Modelo difuso tipo Tsukamoto . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Figura 3.12 Modelo difuso tipo Mandami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Figura 3.13 Modelo difuso tipo Sugeno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Figura 3.14 Métodos de defusificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Capitulo 4
Figura 4.1 Estructura de un sistema difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Figura 4.2 Sistema adaptivo difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Figura 4.3 Modelo difuso propuesto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 4.4 Filtro adaptivo difuso (FAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Figura 4.5 Fusificación: a) Secuencia de datos y su intersección con
conjuntos difusos b) y c) Cálculo del grado de membresía
función triangular y gaussiana respectivamente . . . . . . . . . . . . . . . 48
Figura 4.6 FAM del sistema difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Figura 4.7 Controlador difuso . . . . .. . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . 52
Figura 4.8 Neurona difusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Índice de figuras
v
ABSTRACT
Recently fuzzy logic has attracted considerable attention because of its capability for
representing complex phenomena. The ability of fuzzy logic to describe a complex system
by means of a simple and intuitive set of behavioral rules has motivated an increasing
interest for applying to several tasks, for instance: pattern recognition, adaptive filters,
prediction, etc.
A particular interest is to develop a fuzzy adaptive filter and use it in audible signals,
due to the electrical signals are affected by several problems during its transmission and is
necessary to convert to the original version.
The most important advantage of the fuzzy logic is that in the same system, can be used
numerical information coming from sensor or process signal device and linguistic
descriptions whose are provided by human experts in natural language about the problem in
form of fuzzy if-then rules.
A fuzzy adaptive filter (FAD) can develop non lineal adaptation unlike with those existent
as classical technical of filtering, namely with FIR or IIR filters.
The results show that fuzzy filter can provide a better performance that cannot be achieved
by conventional transversal type FIR filter.
vi
CAPÍTULO 1
INTRODUCCIÓN
1.1. Antecedentes
En la década de los años veinte del siglo pasado, J. Lukasiewicz desarrolló los principios de
la lógica multivaluada, cuyos enunciados pueden tener valores de verdad comprendidos
entre el 0 (falso) y el 1 (verdadero) de la lógica binaria clásica [1].
En 1965, L. Zadeh aplicó la lógica multivaluada a la teoría de conjuntos, estableciendo la
posibilidad de que los elementos pudieran tener diferentes grados de pertenencia a un
conjunto. Zadeh introdujo el término fuzzy (difuso) y desarrolló un álgebra completa para
los conjuntos difusos o borrosos. Pero se tuvieron resultados reales hasta mediados de los
años setenta, cuando E.H. Mamdani diseñó un controlador difuso para un sistema de
control de vapor[1].
Dicho lo anterior, podemos decir que la teoría difusa está totalmente inmersa en la vida
cotidiana, pero en cambio hemos de aceptar que es una teoría que abarca un extenso campo
en el mundo tecnológico, y todo ese campo no esta aún explotado, por consiguiente se
puede afirmar que se encuentra actualmente en vías de expansión.
Sin duda, donde más éxito tuvieron los sistemas difusos fue en Japón, y una de las
aplicaciones más importantes de la teoría difusa se aplicó en Sendai (Japón) donde se puso
en servicio un transporte metropolitano (metro) controlado mediante lógica difusa, este
tenía la peculiaridad de poseer controladores que hacían la frenada y la aceleración mucho
más suaves facilitando así la conducción [1],[2]. Así, a medida que los sistemas difusos
operaban correctamente estos comenzaron a utilizarse en numerosas aplicaciones y a partir
de la década de los 90 se incluyó también en los ascensores consiguiendo así reducir el
Con esta serie de ejemplos de sistemas difusos se puede concluir que se trata de una
aplicación con un presente confiable y un futuro inmediato sin límites.
En los últimos años los sistemas difusos se han venido consolidando como una herramienta
para modelar sistemas complejos y no lineales en áreas como el control, procesamiento de
señales, filtrado de señales, robótica, electrónica de consumo, control de tráfico, control en
centrales térmicas, predicción de terremotos, reconocimiento de escritura manuscrita,
reconocimiento de objetos, etc.[2].
Uno de los problemas que presenta un canal de comunicación es, que se modifica de un
instante a otro por diversas circunstancias y por lo tanto se considera variante en el tiempo,
esto hace necesario contar con un sistema que evite la distorsión y mantenga un canal con
mínimos cambios, por lo que se requiere de un filtro que sea modificable en tiempo, es
decir, que se adapte de acuerdo a los cambios que se generen. Este tipo de filtros adaptivos
se pueden diseñar con estructuras no convencionales (filtros transversales FIR ó IRR) y es
un campo en el cual también se ha dado la aplicación de los sistemas difusos. En la revisión
de estos sistemas propuestos sobresalen algunos por su importancia y se relacionan a
continuación:
Existe una propuesta para eliminar ruido blanco en aplicaciones de audio, de Magdalena Di
Giura, et.al.[5]. Ellos proponen una aplicación para eliminación de ruido usando un modelo
neurodifuso. La técnica consiste en aplicar un preproceso con un algoritmo basado en una
estructura multiperceptrón para caracterizar el ruido blanco y hacer una correcta selección
de las funciones de membresía, mismas que describen las variables involucradas en el
proceso de filtrado. Los resultados obtenidos al filtrar una melodía corrompida con ruido y
comparados con una técnica de filtrado clásico FIR son alentadores, estos muestran una
atenuación del ruido de manera considerable, a diferencia del resultado obtenido con el
filtro FIR.
Hao Ying[6] describe los sistemas difusos como aproximadores universales. El autor
muestra como un sistema difuso de una entrada y una salida SISO (por sus siglas en el
idioma inglés), puede aproximar cualquier función continua con buena precisión. También
propone una forma de determinar, el mínimo de conjuntos y reglas difusas de un sistema
para llevar a cabo esta aproximación.
También hay aplicaciones en modelos analógicos cuya autoría de Díaz-Mendez, et. al.[8]
desarrollan un sistema mediante el diseño de filtros adaptivos difusos que son modelados
usando la herramienta MDS-CAD (Fuzzy System Modeling) con apreciables resultados.
Una investigación realizada por A. Bastián [9] también arroja resultados alentadores, al
aplicar un algoritmo neurodifuso basado en el modelo aditivo estándar (SAM), para
ecualización de canales, simulando su propuesta en el ambiente de programación Matlab®.
1.2. Objetivos
El objetivo del presente trabajo es desarrollar un filtro adaptivo de baja complejidad y que
pueda adaptar cambios no lineales aplicando las técnicas de lógica difusa, en el
procesamiento de señales audibles. Para tal fin se considera el modelo propuesto por
Wang/Mendel [4], pero se modifican parámetros como son: las funciones de membresía
que caracterizan los conceptos difusos en reglas difusas del tipo si-entonces, el mecanismo
de inferencia difuso, el método de defusificación y el algoritmo de adaptación.
El filtro adaptivo difuso (FAD) se compara con un filtro transversal de respuesta finita al
impulso (FIR) que utiliza la técnica de filtrado clásico con orden similar al propuesto, esto
con la finalidad de observar las diferencias entre uno y otro al aplicarlo con señales
audibles de sonidos diversos a través de un bloque no lineal y ruido gaussiano aditivo. Los
resultados de esta aproximación no lineal pueden resultar atractivos como una alternativa al
filtrado adaptivo.
1.4. Referencias
[1]. José R. Hilera/Víctor J.Martínez. “Redes Neuronales Artificiales” Ed. Alfomega.2000.
[2].Página web de P.R. Perles. www.alu.ua.es/p/prpr/lógica/lógica_difusa.htm. Tutorial de
Lógica Difusa.
[3]. Bonifacio Martín del Brío, Alfredo Sanz Molina.”Redes Neuronales y Sistemas
Difusos” 2ª. Edición. Ed. Alfaomega. 2002.
[4]Li-Xin Wang and Jerry M. Mendel. “Fuzzy Adaptive Filters, with application to
Nonlinear Channel Equalization”.IEEE Transactions on Fuzzy Systems, Vol.1, No.3, 1993.
[5]Maddalena Di Giura, Nadia Serina, Gianguido Rizzotto “Adaptive Fuzzy Filtering for
Audio Applications Using a Neuro-Fuzzy Modelization”. IEEE. 1997.
[6]Hao Ying. “General SISO Takagi-Sugeno Fuzzy Systems with Linear Rule Consequent
are Universal Approximators”. IEEE Transactions on Fuzzy Systems, vol 6. no. 4 . 1998.
[7]Mitsuji Muneyasu, Kouichiro Asou, Yuji Wada, Akira Taguchi Takao Hinamoto “An
Implementation of Tunable Fuzzy Filters for Mixed Noise Reduction”. IEICE Trans,
Fundamentals, Vol.E84-A, No.2 February 2001.
[8]A. Díaz-Méndez, G. Espinoza F-V, H. Pérez-Meana, J.C. Sánchez-García y G. Duchén-
Sánchez. “A CMOS Current-Mode Analog Fuzzy Adaptive filter”. Journal of Signal
Processing, vol. 5, no. 4, 2001.
[9]J. A. Bastián. “Algoritmo difuso para ecualización de canales”. Tesis para obtener el
grado de Maestro en ciencias. SEPI ESIME UC.2001.
2.1. Introducción
En los años recientes, un crecimiento en el campo de la investigación de los sistemas
“adaptivos” ha dado como resultado una variedad de autómatas adaptivos cuyas
características en forma limitada se parecen a los procesos biológicos de adaptación de los
seres vivos [1].
Estos sistemas se han desarrollado para llevar a cabo tareas de control adaptivo o
procesamiento de señal adaptivo y generalmente tienen alguna de las siguientes
características.
1.- Pueden adaptarse automáticamente (auto-optimizarse) frente a los cambios de su
ambiente.
2.- Pueden ser entrenados para realizar filtrado específico y tareas de decisión, es decir, son
“programados” por medio de un proceso de entrenamiento.
3.- Pueden extrapolar un modelo de comportamiento con nuevas situaciones después de
haber sido entrenado en un finito número de señales o patrones de entrenamiento.
4.- En un limitado alcance pueden actuar y adaptar correctamente el sistema sobre ciertas
clases de defectos internos del propio sistema.
5.- Usualmente describen sistemas lineales y no lineales con parámetros variantes en el
tiempo.
6.- Son más complejos y difíciles de analizar que los sistemas no adaptivos, pero ofrecen la
posibilidad y tienen la “capacidad de adaptación” cuando las características de la señal de
entrada son desconocidas y variantes en el tiempo.
El adjetivo “adaptivo” puede ser entendido como un sistema que trata de ajustar sus
parámetros con un objetivo bien definido que depende no sólo del estado del sistema, sino
también de su ambiente [2].
A un sistema que lleva a cabo un proceso de filtrado es común aplicarle el adjetivo de “filtro”. Los
filtros adaptivos digitales son aquellos en los que la entrada, la salida y los pesos del filtro están
cuantificados y codificados en forma binaria. Los coeficientes variables del filtro son necesarios
cuando no se conocen de antemano las características estadísticas de la señal a filtrar, ó cuando se
conocen y se sabe que son cambiantes con el tiempo, y es donde se precisa este tipo de filtrado
adaptivo.
La ecuación de entrada-salida [3] de un filtro adaptivo digital es :
N M
y ( n) = ∑ a i ( n) x ( n − i ) − ∑ b j ( n ) y ( n − j ) n ≥ 0 ( señales causales) (2.1)
i =0 j =1
Donde x(n) e y(n) son las muestras de entrada y salida, respectivamente, en el instante n,
ai(n) y bj(n) son los pesos del filtro i-ésimo y j-ésimo en el instante n, y N+M+1 es el
número total de coeficientes del filtro, también conocido como filtro tipo IIR. Si bj(n)=0
para 1 ≤ j ≤ M, en la ecuación (2.1) entonces el filtro adaptivo es de respuesta impulsional
finita (FIR), esto es:
N
y ( n) = ∑ a i ( n ) x ( n − i ) n ≥0 (2.2)
i =0
Un filtro digital adaptivo [3] podría perfectamente implementarse mediante un filtro IIR
(respuesta impulsional infinita), pero los filtros FIR son mucho menos susceptibles de ser
inestables que los IIR. Hay que recordar que los filtros IIR tienen tanto polos como ceros,
y, si por alguna circunstancia los polos quedan fuera de la circunferencia de radio unidad, el
filtro es inestable. Además, aunque supiésemos teóricamente los coeficientes a utilizar para
tener los polos y ceros donde se necesitan, y consiguiendo siempre la estabilidad del filtro,
dado que estamos trabajando con filtros digitales, también los coeficientes (pesos) del filtro
están cuantificados y codificados en forma binaria, con lo que es posible que por problemas
de cuantificación los polos queden desplazados respecto del lugar teórico donde debieran
estar, haciendo el filtro inestable. Ello no quiere decir que los filtros FIR sean siempre
estables, de hecho, su estabilidad depende del algoritmo que se use para ajustar sus
coeficientes. Sin embargo, se utilizan generalmente filtros FIR porque su estabilidad es más
controlable que en los IIR[3].
Actualmente existen varios criterios que pueden adoptarse para llevar a cabo la adaptación
de los pesos del filtro respecto a las variaciones de la señal de entrada, de los cuales se
mencionan algunos en los siguientes puntos.
Otro Algoritmo
dato de adaptación
Señal de Señal de
entrada Procesador
salida
Algoritmo de
adaptación
Criterio de Otro
cálculos dato
Donde: “x” es la señal de entrada y definimos como respuesta deseada a la señal “d”. El
error “e” es la diferencia entre la señal de salida deseada y la señal de salida actual “y” del
sistema adaptivo[1],[5].
Utilizando la señal de error, un sistema adaptivo ajusta la estructura del sistema, alterando
las características de su respuesta mediante la minimización del error.
La figura 2.4 muestra ejemplos de aplicaciones en configuración de lazo cerrado[1][5].
s d d
s
H
+ +
Procesador -
Retardo
x Adaptivo ∑ Procesador
Procesador -
∑
y x Adaptivo
Adaptivo y
e e
a) (b)
s d s+n
Retardo d
_ + + e
H ∑
Procesador
∑ n' Procesador - ∑
+ Adaptivo y Adaptivo
e x y
+
Ruido x
(d)
c) d)
Figura 2.4. Ejemplos de aplicación en configuración de lazo cerrado. a) Predicción; b) Identificación de
sistema (modelado); c) Ecualización (deconvolución, filtrado inverso, modelado inverso); d) Cancelación de
eco ó ruido.
w1 y
Vector de la señal x1 Σ
de entrada Señal de
wL salida
xL
vector de pesos
El combinador es llamado lineal porque para un número fijo de pesos, su salida es una
combinación lineal de sus componentes de entrada. Sin embargo, cuando sus pesos están en
un proceso de adaptación, estos son función de las componentes de la entrada, y la salida no
es precisamente una función lineal de la entrada [1],[4].
El vector de entrada del combinador aditivo puede ser de señales simultáneas de diferentes
fuentes ó pueden ser muestreos secuenciales de la misma fuente (señal a través de un
bloque de retardo) y este se interpreta como de entrada múltiple o de entrada simple
respectivamente.
En el caso de entrada simple, el procesador adaptivo puede ser implementado con un
combinador lineal y elementos de retardo como se muestra en la figura 2.6, y es llamado
filtro transversal adaptivo [1],[4].
∑ yk
L
y = ∑ w x (2.4)
k l =0 lk k −1
Con esta descripción de la operación del combinador aditivo lineal podemos entender la
adaptación, como el efecto de cambio del vector Wk conforme cambia el índice k.
En el proceso de adaptación, el vector de los pesos es ajustado para producir la salida yk, lo
más parecida a la señal deseada dk. La comparación de la salida yk con la respuesta deseada
dk da como resultado una señal de error, esta señal de error debe minimizarse con el ajuste
u optimización del vector de los pesos. La figura 2.7 muestra el método de la derivación del
error.
εk = dk - yk (2.7)
Note que el valor esperado de cualquier suma es la suma de valores esperados, pero que el
valor esperado de un producto, es el producto de valores esperados si las variables son
estadísticamente independientes. Las señales xk y dk no son generalmente independientes.
La función del error cuadrático medio puede ser convenientemente expresado como sigue.
Sea R definido como la matriz cuadrada.
⎡ x02k x0 k x1k x 0 k x 2 k K x0 k x Lk ⎤
⎢ ⎥
x x x12k x1k x 2 k K x1k x Lk ⎥
R = E[ X k X k ] = E ⎢⎢ 1k 0 k
T
( 2.11)
M M M M ⎥
⎢ ⎥
⎢⎣ x Lk x0 k x Lk x1k x Lk x 2 k K x Lk 2
⎥⎦
Esta matriz se llama matriz de correlación de entrada [1],[4]. Los términos de la diagonal
principal son los cuadrados principales de los componentes de entrada, y los términos
cruzados son las correlaciones cruzadas de los componentes de la entrada.
Sea P similarmente definido como el vector columna
Este vector es el conjunto de las correlaciones cruzadas entre la respuesta deseada y los
componentes de entrada. Los elementos de ambos, R y P, son todos constantes estadísticas
de segundo orden cuando Xk y dk son estacionarias.
El error cuadrático medio en términos de (2.11) y (2.12)
El proceso de selección de los parámetros del filtro (coeficientes) se lleva a cabo para
obtener la mejor relación entre la señal deseada y la salida del filtro. Esta acción puede ser
definida mediante un funcionamiento estadístico ó determinístico. En la aproximación
MAESTRÍA EN CIENCIAS DE INGENIERÍA
EN MICROELECTRÓNICA
15
Sistemas Adaptivos Capitulo 2
estadística, la acción más común es aplicar como función el valor cuadrático medio del
error, esto es, la diferencia entre la señal deseada y la señal de salida del filtro. Y para
señales estacionarias, es conveniente aplicar el proceso de minimización del error
cuadrático medio, mejor conocido como filtro de Wiener. En la aproximación
determinística , la selección usual es una función de la suma pesada del error cuadrático de
la señal.[1],[2],[5] .
2.5. Adaptación
Como se menciona en la sección anterior, normalmente hay dos tipos de aproximación que
han sido ampliamente usadas para adaptar los algoritmos; estadísticas y deterministas.
Ambos tienen muchas variaciones en sus implementaciones y cada cual ofrece
características apropiadas, conduciendo a una gran variedad de algoritmos.
2.6. Referencias
Es claro que el límite 25 no tiene ambigüedad, por lo que si x es mayor que el número 25,
entonces x pertenece al conjunto A; de otra manera x no pertenece al conjunto. Aunque los
conjuntos clásicos son utilizados para varias aplicaciones y han probado ser una
herramienta importante para las matemáticas y la ciencia, no reflejan los conceptos y
pensamientos de la naturaleza humana, los cuales tienden a ser abstractos e imprecisos[1].
Como ejemplo, matemáticamente podemos expresar el conjunto de las temperaturas altas
como una colección de valores que miden más de 25 grados centígrados, lo cual queda
denotado por la ecuación (3.1), donde A=”temperatura alta” y x=”temperatura en grados”.
(a) (b)
Figura 3.1 Conjuntos: a)Clásico b)Difuso
Lofti A. Zadeh, propuso los conjuntos difusos pensando en la necesidad de implementar
una teoría que permitiera implementar ideas subjetivas, es decir, ideas desde el punto de
vista humano.
Un conjunto difuso A se define como una función de pertenencia que enlaza los elementos
de un dominio o universo X con elementos del intervalo [0,1]. [2]
A = X → [ 1, 0] (3.2)
Esto es, un conjunto difuso A en el universo X esta expresado como un conjunto de pares
ordenados:
A = {(x, µA (x)) | x ∈ X} (3.3)
similar, el símbolo “/” indica únicamente una marca de separación y no implica la división
algebraica.
Así, una función de membresía describe el grado de pertenencia al conjunto difuso para los
diferentes elementos en el universo de discurso.
donde ~
∗ es un operador para la función T norma.
Cuatro de los operadores T-norma más frecuentemente utilizados son:
~ b = N (N (a) ~∗ N (b)).
a +
que se han definido las propiedades más importantes que los conjuntos difusos deben tener,
se pueden definir o proponer diferentes conjuntos difusos, tanto continuos como discretos.
En la figura 3.9 se definen algunos de los conjuntos difusos continuos de mayor empleo, y
que son posibles de implementar en sistemas de cómputo.
a) FM triángulo:
⎛ ⎛ x − a c − x⎞ ⎞
trimf ( x; a , b, c) = max⎜ min⎜ , ⎟ ,0⎟
⎝ ⎝ b − a c − b⎠ ⎠
b) FM trapezoidal:
⎛ ⎛ x − a d − x⎞ ⎞
trapmf ( x; a , b, c, d ) = max ⎜ min⎜ ,1, ⎟ ,0⎟
⎝ ⎝ b − a d − c⎠ ⎠
c) FM gaussiana:
1 ⎛ x −c ⎞ 2
− ⎜ ⎟
2⎝ σ ⎠
gaussmf ( x; a , b, c) = e
d) FM campana generalizada:
1
gbellmf ( x; a , b, c) = 2b
x−c
1+
b
e) FM sigmoidal:
1
sigmf ( x; a , b, c) = −α ( x − c )
1+ e
A pesar de que la función sigmoidal es una función difusa abierta hacia la derecha, se
puede utilizar para representar funciones difusas abiertas a la izquierda multiplicándola por
La función sup denota el supremum que representa el valor máximo del conjunto y se
aplica si existen dos o más valores de x.
Este principio se puede generalizar para el caso en que el universo X sea el producto
cartesiano de n universos X = X1 x X2 x . . . x Xn . Con la función de transformación
Propiedades:
• Asociatividad: R ° (S ° T) = (R ° S) ° T
• Distributividad sobre la unión: R ° (S ∪ T) = (R ° S) ∪ (R ° T)
• Distributividad débil sobre la intersección: R ° (S ∩ T) ⊆ (R ° S) ∩ (R ° T)
• Monotonicidad: S ⊆ T ⇒ (R ° S) ⊆ (R ° T)
La composición max – product es: µR 1 o R2
( x , z ) = ∨ [ µ R 1 ( x , y ) µ R 2 ( y , z )]
y
con a = µA (x), b = µB (y), donde la función f, llamada función de implicación difusa, realiza
la tarea de transformar los grados de membresía de x en A y y en B en la relación (x, y)
cuando A → B.
Premisa 1: SI x es A ENTONCES y es B
Premisa 2: x es A’
Consecuente y es B’
La figura 3.12 muestra un sistema de inferencia difuso tipo Mamdani, donde se observa que
la salida total z se obtiene mediante las dos reglas que se derivan de dos entradas certeras x
ey.
Regla 1: si x es A1 y y es B1, entonces z es C1
Regla 2: si x es A2 y y es B2, entonces z es C2 (3.14)
La salida de un sistema Mamdani puede obtenerse mediante diferentes procedimientos: uno
de ellos es la inferencia max-min, mediante la cual, el grado de activación limita al
conjunto difuso C en un punto donde se obtiene el valor mínimo entre las funciones de
membresía A y B, su salida total es la agregación de ambas áreas. En la inferencia max-
prod, el área obtenida es una versión escalada del conjunto difuso C y se obtiene por el
producto de los dos grados de activación de A y B, su salida total será también debida a la
agregación de ambas áreas.
Si f es una constante, se tiene un modelo difuso Sugeno de orden cero, que puede ser visto
como un caso especial del sistema de inferencia difuso Mamdani en donde cada regla
consecuente está especificada por un singleton difuso (consecuente pre-defusificado), ó un
caso especial del modelo de Tsukamoto, en donde cada regla consecuente está especificada
por una FM en el centro de una función escalón. Aún más, un modelo difuso Sugeno de
orden cero es funcionalmente equivalente a una red de función de base radial bajo ciertas
restricciones menores[1],[2],[3],[7].
3.4. Defusificación
La defusificación se refiere a la forma de extraer un valor rígido representativo de un
conjunto difuso. El proceso de defusificación es expresado por medio del operador de
defusificación F-1 que transforma la función de membresía de un conjunto difuso µ(x) en un
elemento definido x̂ del universo de discurso X. [1],[3],[10].
F −1 : µ ( x) →xˆ
n R
∑ y i ⋅ ∑ µ Br ′ ( y i )
CoS → yˆ = i =1 n R
r =1
(3.19)
∑∑µ B′ ( y i )
r
i =1 r =1
j =1 r =1 r =1 i =1
donde la suma en el denominador corresponde a la área del conjunto difuso de la regla del
consecuente, mientras la suma en el numerador es el producto del área por su centroide[4].
Centro del área mayor(CLA): Cuando la unión de los conjuntos difusos de salida no son
convexos, es decir si consiste de dos subconjuntos, este método determina el subconjunto
convexo de mayor área y define la defusificación como el centro del área de ese
subconjunto[4].
El primero(FoM), el medio(MoM) y el último(LoM) valor del máximo: Estos tres
métodos se obtienen del máximo valor de la función de membresía de agregación. Estas
defusificaciones se observan en la figura 3.13, en la cual debido a que existe una zona plana
como valor máximo, el valor de salida defusificado para cada uno es diferente, pero si sólo
se tiene un valor máximo en la función, entonces los tres valores (primero, medio y último)
toman el mismo valor.[4],[10].
Bisector: Método por el cual se divide la función en dos partes con área igual[1].
3.6. Referencias
[1]. Jyh-Shing Roger Jang, Chuen-Tsai Sun, Eiji Mizutani, “Neuro-Fuzzy and Soft
Computing”, cap II ,III pp.13-42.
[2]. Zulma Janet Hernández Paxtian.Tutorial de Lógica Difusa y Aplicaciones en Control.
Universidad Autónoma de Puebla.
[3]. Timothy J. Ross, “Fuzzy Logic with engineering applications”, cap II-V pp.1-212.
[4]. I. Baturone, A. Barriga, S. Sánchez-Solano, C.J. Jiménez-Fernández, D.R. López.
Microelectronic Design of Fuzzy Logic-Based System. Cap I –III pp.7-42 Ed. CRC Press
[5]. Bonifacio Martín del Brío, Alfredo Sanz Molina, “Redes Neuronales y Sistemas
Difusos”, cap. VII, pp. 243-268.
[6]. José R. Hilera,Víctor J. Martínez, “Redes Neuronales Artificiales”, cap IX pp. 321-369.
[7]. Jhy-Shing Roger Jang, Chuen-Tsai Sun, “Neuro-Fuzzy Modeling and Control”,
proceedings of the IEEE, vol 83,no.3, marzo 1995 pp.378-387.
[8]. Henry Martínez Conde pp. 9-28. Tesis para obtener el grado de maestro en ciencias.
[9]. Jerry M Mendel. “Fuzzy Logic Systems for Engineering: A Tutorial”. Proceedings of
the IEEE, vol.83.no.3.march 1995.
[10] Caja de herramientas “fuzzy” de Matlab®
definen al sistema difuso, los cuales como sabemos se dividen a su vez en un grupo de
parámetros que pertenecen a la etapa de antecedentes y el grupo de parámetros que
pertenecen a la etapa consecuente.
El ajuste del grupo de parámetros antecedentes y el ajuste del grupo de parámetros
consecuentes se puede realizar con métodos de gradiente ó método de mínimos cuadrados,
como se menciona en el capítulo2.
El sistema se puede ver como un solo bloque completo que lleva a cabo un mapeo de
entradas de valores rígidos (no difusos) a salidas de valores rígidos (no difusos), es decir la
relación que existe entre x e y. Por lo tanto, este mapeo puede ser expresado
cuantitativamente como y=f(x).
Este sistema puede utilizarse en diversas aplicaciones como son el control, procesamiento
de señales, robótica y electrónica de consumo, control de tráfico, control en centrales
térmicas, reconocimiento de objetos, etc.[4]
Si al anterior sistema de la figura 4.1 le damos una aplicación de tipo adaptivo, este sistema
toma la forma de un modelo iterativo tal y como se observa en la figura 4.2. y es parecido
al sistema adaptivo de lazo cerrado de la figura 2.3 del capítulo 2.
En este sistema, los valores de entrada son normalizados y convertidos en representaciones
difusas hacia el interior del sistema procesador adaptivo difuso, esta etapa transforma los
datos rígidos en valores difusos (valores lingüísticos adecuados).[4]
base de conocimiento tienen una relación muy estrecha, el operador de agregación debe ser
la intersección [4].
Cuando el operador intersección es el que se utiliza, el resultado de la inferencia difusa es
de la forma:
Si x1 es A1j y x2 es A2j y ..... y xn es Anj entonces “y” es Bj
Las mi funciones de membresía µAij cubren el intervalo [Ci-,Ci+] en el sentido que para cada
xi ∈ [Ci-,Ci+] existe al menos una µAij(xi) ≠ 0 lo que permite que la función no quede
indefinida. Esta definición de funciones se mantiene siempre fija.
Paso 2.- Se construye un conjunto de mi reglas difusas [6],[7] del tipo SI-ENTONCES de la
forma:
R(j1,...,jn) : Si xi es Aij1 y ... y xn es Anjn , Entonces y es B(j1,...,jn).
Gaussiana( x : σ , c) = e {−[( x −c ) / σ ] }
2
(4.2)
µ A→ B ( x, y ) = Φ[ µ A ( x), µ B ( y )] (4.3)
producto algebraico. Como resultado de esto, los tipos de inferencia aplicados pueden ser
inferencia max-min (máximo-mínimo), así como también la inferencia max-prod (máximo-
producto), usando la operación de composición.
Paso 4.- Finalmente se lleva a cabo la defusificación para producir una salida de acuerdo a
las necesidades de nuestro sistema difuso.
El modelo que resulta es el de la figura 4.3, el cual puede ser interpretado como la unión de
un prefiltro difuso y un combinador aditivo como el mostrado en la figura 2.7.
Este modelo es una propuesta aplicada por Wang/Mendel en un ecualizador para canales no
lineales en un proceso de transmisión digital de alta velocidad donde se produce una
distorsión intersímbolos [2],[6],[7]. Esta propuesta se adecua para que pueda operar con
señales audibles y que permita procesarlas para eliminar ruido ó distorsiones ocasionadas
por algún medio en particular.
Los pesos w1, w2, ... , wm del filtro difuso son los grados de veracidad de cada regla y
depende del grado de pertenencia de la señal de entrada.
Otro aspecto importante y útil en la conformación del filtro es entender que algunos pesos
tienen mayor grado de veracidad que otros, de tal forma que se asigna un mayor valor a este
peso w, en cambio otras reglas que lo son en menor escala tendrán un menor peso[9],[10],
estos valores se asignan al inicio y se irán modificando con el procedimiento de adaptación
[7], en el caso que se desconozcan, inicialmente se pueden asignar con valor unitario . El
combinador aditivo es equivalente a una combinación de reglas como parte de una
defusificación.[7].
Entonces la salida final del filtro adaptivo FAD es la suma pesada de las salidas del
prefiltrodifuso y los valores asociados con cada respectivo peso [1],[8] esto es:
n
f ( x) = ∑ f i wi (4.4)
i =1
donde fi es el valor de la iésima salida del prefiltro difuso y wi son los pesos del filtro.
Un método más complicado para el cálculo de la salida total es tomar el promedio pesado
de la salida asociada con cada respectivo peso w,[1],[8], esto es:
n
∑ f i wi
f ( x) = i =1n (4.5)
∑ wi
i =1
La figura 4.3 muestra el modelo de filtro obtenido mediante los pasos anteriormente
descritos
La señal “ x” a la entrada del filtro es un archivo de sonido que contiene una secuencia de
datos, este corresponde a una señal audible y es obtenido mediante un muestreo que pueden
ser de 8khz, 11khz, 22 khz, ó hasta 40.1 khz según la calidad de la señal, así como de la
señal que se trate. Recordar que los sonidos cubren una gama de 20 Hz a 20 Khz y en el
caso específico de la señal de voz el intervalo de frecuencias es del orden de 250 Hz a 3500
Khz. Por lo que se eligen los muestreos que se requieran de acuerdo al tipo de señal
(Teorema de Nyquist) y cuyos valores de amplitud corresponden a un universo de discurso
[-1,1]. Por supuesto que al incrementar el muestreo el número de datos será mayor y
consecuentemente el proceso tardará más tiempo.
El filtro puede disponer de varias entradas de datos, aunque a mayor número de estos, el
grado de complejidad computacional es mayor. Para los resultados obtenidos en esta
investigación se utilizan dos entradas, una puede utilizar unidad de retardo ó las dos, según
se aplique, ya sea predictor o identificador de sistema. Estos datos x(n), x(n-1), . . . ,x(n-i),
son valores rígidos y se transforman en valores difusos mediante funciones de membresía
de algún tipo en particular distribuidas sobre el universo de discusión de manera uniforme y
en número impar, es decir, utilizar tres, cinco, siete o más funciones[4]. Algunos autores
sugieren el traslape de aproximadamente 0.5 en las funciones triangulares, debido a que
puede disparar al menos dos funciones a la vez, además de que conviene que la suma de los
grados de membresía no exceda de 1. Si se considera la implementación en programa o
circuito conviene utilizar funciones triangulares o trapecio y si se desea obtener una salida
del sistema difuso más suave, es útil utilizar funciones diferenciables como las de tipo
gaussiano[4]. La figura 4.5 muestra la forma de fusificar una secuencia de datos x(n) con
los dos tipos de función que fueron utilizadas.
a)
b) c)
Figura 4.5 Fusificación: a) Secuencia de datos y su intersección con conjuntos difusos
b) y c) Cálculo del grado de membresía función triangular y gaussiana respectivamente
Los traslapes no necesariamente tienen que ser iguales, incluso las funciones de membresía
podrían ser diferentes, depende del conocimiento del proceso, del diseñador y de su
experiencia para resolver el problema.
Son tres los métodos para la definición de las funciones de membresía de los antecedentes
y de los consecuentes[5] que se utilizan para particionar las entradas y salidas (universos de
discurso) en un conjunto difuso.
1.- Categorización del prototipo, 2.- Grado de similitud 3.- Distancia como similaridad
Los tres métodos empleados suponen que el sistema bajo consideración tiene n entradas no
interactivas, es decir no hay dependencia una de otra, pero los valores numéricos de estas
variables prototipos y la correspondiente función de membresía de estas variables prototipo
representadas no son claras para nosotros. Estos valores son altamente subjetivos e
intuitivos para el humano, ni siquiera el experto conoce los valores exactos[5].
Pero existen algunos métodos intuitivos asignados a valores lingüísticos que pueden ser
descritos por medio de dos diferentes situaciones.
1) Donde son conocidos los límites de las entradas y salidas de alguna manera. En este caso
el intervalo es dividido en iguales porciones y la parte media es tomada como el punto
prototipo de la partición.
Basado en esto la funciones triangulares o de otro tipo pueden ser definidas en las variables
de cada intervalo de las entradas y salidas en tantas funciones como sea necesario[5].
2) Es posible preguntar al observador de un sistema no lineal, que nos de los puntos típicos
e intervalos que correctamente representan el conocimiento del sistema de forma
lingüística. Y este procedimiento similar puede ser usado para derivar una clase de
funciones de membresía de cada variable. Por ejemplo, el humano crea particiones que son
singletons (conjuntos difusos con un solo elemento), p1,p2,..etc. o valores rígidos
(intervalos) de acuerdo al conocimiento del sistema. Las particiones p1,p2.. etc. toman los
valores lingüísticos y términos que el humano ha usado para la designación de los
prototipos o han sido usados por él de forma natural en proposiciones que constituyen
reglas si-entonces y después estos valores son fusificados [5].
Después de este bloque los valores que obtenemos son valores difusos y al menos uno de
ellos es diferente de cero. Estos valores son los antecedentes de las reglas difusas. Estos
valores pueden ser derivados de los conjuntos definidos según las variables lingüísticas de
la figura 4.5 ó directamente los grados de pertenencia que le corresponde en el rango [0,1]
como sucede, en el diseño que se propone.
El siguiente bloque nos proporcionará el conjunto de reglas que determinarán los
consecuentes del motor de inferencias, cada consecuente proporcionará un grado de
colaboración para obtener una salida que sea parecida a la señal deseada, por lo tanto le
asignaremos un peso, cuyo valor definirá su contribución a la formación del valor más
cercano al deseado.
El número de reglas quedará definido por el número de funciones de membresía que
contenga cada bloque fusificador. Aquí utilizamos dos bloques de entrada, aunque hemos
aclarado que se pueden utilizar más bloques, así, sí cada uno de estos bloques cuenta con
tres funciones de membresía , el total de reglas será de 9. Si el conjunto de funciones es de
5 entonces el total de reglas será de 25 , lo anterior define una operación del tipo n2.
Lo anterior queda entendido si vemos que el máximo número de reglas esta dado por:
l = k1 k2 k3 … kn
donde l: es el número máximo de reglas
k: es el número de particiones en cada universo de discurso
n: es el número de universos que se contemplan en el sistema.
Las reglas de control difusas son declarativas y no secuenciales, lo que significa que el
orden en que se expresan no es importante.
La forma de ilustrar gráficamente el número máximo de reglas que constituye la base de
conocimiento de un sistema difuso, es a través de una FAM (memoria asociativa difusa).
Para sistemas con dos entradas y una salida es aceptado el siguiente formato de matriz. Esta
representación permite una rápida y simple verificación de las propiedades de la base de
reglas. La figura 4.6 se observa la FAM que se obtiene del sistema difuso para dos valores
de entrada y cinco funciones de membresía en su universo de discurso.
Las reglas forman la base de conocimiento y cada una da como resultado un grado de
pertenencia o grado de activación, y debido a que los datos de entrada activan más de un
conjunto difuso se utiliza el operador de implicación “y”.
Si observamos el ejemplo de la figura 4.5, el valor rígido de entrada de x1(4) de la función
triangular, corresponde a la variable lingüística P y tiene un grado de pertenencia de 0.75 y
para la variable CE de 0.25. Al asignar cada variable a la región con el máximo grado de
pertenencia, entonces x1(4) es considerado P. Si es el mismo caso para el universo de x2,
el formato de la regla sería de la forma:
Si x1 es P y x2 es P entonces “y” es B1
De la misma manera se puede tomar el concepto de una neurona difusa y esta puede
modelarse como una unidad de procesamiento que recibe señales difusas de entrada a
través de una sinapsis borrosa, siendo la entrada el producto difuso de la salida de la
neurona anterior por el peso difuso de la conexión. La salida neta de la neurona se obtiene
como la suma difusa de las entradas a la neurona [11], figura 4.8.
N
y t = max ( min( wi1 , s j ), min( wi 2 , s 2 ), K , min( wiN , s N ))
j =1
Cuando las variaciones de la señal de entrada son muy variables como lo es una señal de
audio (las simulaciones se llevan a cabo con señales de voz y sonidos audibles) la potencia
de la señal no es uniforme, esto provoca que la utilización de un algoritmo LMS para la
minimización del error en un filtro adaptivo no pueda converger correctamente. Por lo tanto
se hace necesario la aplicación de un algoritmo capaz de mostrar robustez ante variaciones
de esta naturaleza y como consecuencia se utiliza en esta estructura un algoritmo del tipo
NLMS( algoritmo LMS normalizado).
El objetivo de esta tarea es usar los valores pasados de la señal de entrada para predecir el
valor en algún punto del futuro, el número de funciones de membresía son 5, distribuidas
uniformemente sobre el universo de discurso. La señal de prueba es una señal cuadrada y
una señal senoidal, los cambios entre cada uno de los valores sucesivos de estas señales son
diferentes, en el caso de la señal senoidal el cambio de valores es suave, a diferencia del
caso de la señal cuadrada que tiene cambios abruptos en determinados puntos. Esto con la
finalidad de notar la eficiencia entre dos tipos de función de membresía. Para determinar la
eficiencia del filtro adaptivo se muestran dentro de los resultados el espectro de las señales
con la finalidad de observar la diferencia de aproximación.
Los resultados obtenidos son mostrados en la figura 10 y 11.
(a) (b)
(c) (d)
Figura 4.10 Señal aproximada: (a) y (b) 5 funciones triangulares, (c) y (d) 5 funciones gaussianas.
a) b)
Figura 4.11 Aproximación: a) barrido de frecuencias b) una señal audible
Se llevan a cabo comparaciones con un filtro transversal clásico como es el filtro adaptivo
FIR, tomando en cuenta que es un modelo que se utiliza para la adaptación de un gran
número de filtros, su estructura es la que se observa en la figura numero 4.13.
Los resultados son los que se muestran en la figura 4.15 y 4.16, en esta gráfica se observa
en la parte superior, la señal que se obtiene después de pasar por el bloque no lineal, a esta
señal la llamamos señal deseada, en la gráfica de la figura 4.15 se observa la salida que
aproxima el FAD y en la figura 4.16 la aproximación del filtro FIR, las últimas dos gráficas
de cada figura corresponden al espectro de frecuencia para ambas salidas, mismas que
sirven para poder comparar el grado de aproximación entre ellas.
Figura 4.15 Resultados obtenidos con FAD(funciones de membresía triangulares) en una señal cuadrada
distorsionada mediante un bloque no lineal
Figura 4.16 Resultados obtenidos con FIR en una señal cuadrada con bloque no lineal
Esta configuración también resulta útil para suprimir ruido. Si nos referimos a la figura 4.12
veremos que tiene un punto donde es posible agregar ruido aleatorio, para esta simulación
se utilizaron señales audibles (voz, ruidos diversos) , Las pruebas se realizaron sin aplicar el
bloque no lineal ó aplicando una función muy simple como por ejemplo (sen2 x o una sola
exponencial). El ruido agregado máximo en las simulaciones es de 70% respecto de la
señal.
Los resultados son vistos en la figura 4.17 y 4.18
Figura 4.17. Resultados para señal de voz y ruido con FAD de 5 funciones de membresía gaussianas
Figura 4.18. Resultados para señal de voz con ruido con FAD de 5 funciones de membresía triangulares
Figura 4.19. Resultados para señal de voz con ruido de un filtro FIR
Figura 4.21. Grafica MSE del FAD con diferentes valores de alfa
Figura 4.22. Grafica MSE del filtro FIR con diferentes valores de alfa
4.6. Referencias
[1] Jyh_Shing Roger Jang. Chuen-Tsai Sun, “Neuro–Fuzzy Modeling and Control”.
Proceedings of the IEEE. Vol.83.No. 3, Marzo 1995.
[2] Jerry M Mendel. “Fuzzy Logic Systems for Engineering: A Tutorial”. Proceedings of
the IEEE, vol.83.no.3.march 1995.
[3] Li-Xin Wang, “ A Course in Fuzzy Systems and Control” Ed. Prentice Hall 1997.
[4] I. Baturone, A. Barriga, S. Sánchez-Solano, C. J. Jiménez-Fernández, D. R. López
“Microelectronic Design of Fuzzy Logic –Based Systems” .
[5] Timothy J. Ross, “Fuzzy Logic with Engineering Applications”. Ed. Mc Graw-Hill.
[6] Li-Xin Wang,Jerry M.Mendel, “Fuzzy Adaptive Filters, with Aplication to Nonlinear
Channel Equalization”, IEE Transactionson fuzzy systems, Vol.1 No.3 pp 161-168,1993.
[7] Jerry m. Mendel, “Uncertain Rule-Based Fuzzy Logic Systems: Introduction and New
Directions”, Ed. Prentice Hall 2001.
[8] Jyh-Shing Roger Jang, Chuen-Tsai Sun, Eiji Mizutani, “Neuro-Fuzzy and Soft
Computing”, A Computacional Aprproach to Learning and Machina Intelligence, Ed.
Prentice Hall 1997.
[9] José Ambrosio Bastián, “Algoritmo Neurodifuso para Ecualización de Canales” tesis
para obtener el grado de Maestro en Ciencias.Agosto 2001.
[10] Abraham Kandel,Gideon Langholz “Fuzzy hardware” Ed. Kluwer Academic
Publishers 1998.
[11] JR Hilera,VJ Martínez,”Redes Neuronales Artificiales” Ed. Alfaomega-Rama.2000.
[12] Manual de la caja de herramientas Fuzzy de Matlab.
A.1 Programa para llevar a cabo la simulación del algoritmo de un filtro aplicando lógica
difusa en un canal no lineal para señales audibles.
Con posibilidad de cambiar el número de funciones gaussianas, sus centros y el ancho de la
misma, dentro del cuerpo del programa se aplica adición de ruido y una función no lineal.
66
Programas Apéndice A
x1=zeros(1,5);
x2=zeros(1,5);
%-----------------------------SIMULACION-----------------------------------
Num_iter=90; %Numero de iteraciones por bloque
Num_block=90; %Numero total de bloques
kin=10; %contador
fn=yn;
for i=1:Num_block
S=0;
me=0;
for j=1:Num_iter
kin=kin+1;
Z2(1)=yn(kin);
%- - - - - - - - - - -bloque con funcion no lineal- - - - - - - - - - - - -
Z2(1)=Z2(1)+xn(kin); %adición ruido
%fn(kin)=Z2(1);%*(sin(yn(kin+2)))*exp(-yn(kin))-0.05;
y1(kin)=yn(kin);
yd(kin)=yn(kin)+xn(kin);
%*****ADAPTIVO******
%------------------- OBTENCIÓN DEL GRADO DE PERTENENCIA-----------------
x1(1,1)=exp(-((fn(kin)-c1)/a)^2);
x1(1,2)=exp(-((fn(kin)-c2)/a)^2);
x1(1,2)=exp(-((fn(kin)-c2)/a)^2);
x1(1,3)=exp(-((fn(kin)-c3)/a)^2);
x1(1,3)=exp(-((fn(kin)-c3)/a)^2);
x1(1,4)=exp(-((fn(kin)-c4)/a)^2);
x1(1,4)=exp(-((fn(kin)-c4)/a)^2);
x1(1,5)=exp(-((fn(kin)-c5)/a)^2);
%------------------------------BLOQUE DIFUSO-----------------------------
%SE OBTIENE EL MINIMO DE LOS VECTORES(PRODUCTO CARTESIANO DIFUSO)
%for m=1:5, for k=1:5, z(m,k)=min(x1(1,m),x2(1,k));,end,end,p=z;
%SE OBTIENE A TRAVES DEL PRODUCTO
p=x2(1,1:5)'*x1(1,1:5);
p1=[p(1,1:5),p(2,1:5),p(3,1:5),p(4,1:5),p(5,1:5)];%ordenacion en vector
y0(kin)=(p1*W); %sumatoria del producto
error2(i)=error;
SR(i)=(S/me); %Relación señal a ruido lineal
end
67
Programas Apéndice A
h=1:Num_block;
%figure(3);
%plot(WA);
68
Programas Apéndice A
A.2 Algoritmo para realizar la simulación de la de lógica difusa para filtrado adaptivo
con funciones triangulares.
Con posibilidad de cambiar el número, centro y ancho de la función para observar su
desempeño frente a señales audibles con agregado de ruido y un bloque con una función no
lineal.
69
Programas Apéndice A
Z2(1)=yn(kin);
%-------------bloque con funcion no lineal --------------------------------
Z2(1)=Z2(1);%+xn(kin)/10;
yd(kin)=Z2(1)*(sin(yn(kin)))*(sin(yn(kin)));%exp(-yn(kin));
y1(kin)=yn(kin);
%*****adaptivo*****
%------------------OBTENCIÓN DEL GRADO DE PERTENENCIA-------------------
x=fn(kin);
if x<=(-0.5)
x1(1,1)=-2*x-1;
x1(1,2)=2*x+2;
else if x<=(0)
x1(1,2)=-2*x;
x1(1,3)=2*x+1;
else if x<=0.5
x1(1,3)=-2*x+1;
x1(1,4)=2*x;
else if x<=1
x1(1,4)=-2*x+2;
x1(1,5)=2*x-1;
end,end,end,end
%---------------------------BLOQUE DIFUSO--------------------------------
%SE OBTIENE EL MINIMO DE LOS VECTORES(PRODUCTO CARTESIANO DIFUSO)
%for m=1:5, for k=1:5, z(m,k)=min(x1(1,m),x2(1,k));,end,end,p=z;
%SE OBTIENE A TRAVES DEL PRODUCTO
p=x2(1,1:5)'*x1(1,1:5);
p1=[p(1,1:5),p(2,1:5),p(3,1:5),p(4,1:5),p(5,1:5)];%ordenacion en vector
y0(kin)=(p1*W); %sumatoria del producto
%Calculo del error
error=yd(kin)-y0(kin);
error1(kin)=error;
%---------------------------ADAPTACIÓN-----------------------------------
[W]=nlms(N,alfa,error,Y,W);
WA(kin)=W(3,1);
Y=p1';
x2(1,1:5)=x1(1,1:5);% paso del dato de x1 a x2
end
end
%-----------------ESPECTRO DE FRECUENCIAS DE LAS SEÑALES-------------------
k=1:1200;
hertz=k*(6.5536*4);
%------------------ NUMERO DE MUESTRAS QUE SE DESPLEGAN--------------------
figure(2);
yn2=y0(1000:2000);
yn=yn(1:1000);
%---------------------VISUALIZACIÓN DE LAS SEÑALES-------------------------
subplot(5,1,1),plot(yn);title('Señal original');
subplot(5,1,2),plot(yn2);title('Sal. bloque difuso');
yn1=yd(1000:2000);
subplot(5,1,3),plot(yn1);title('Deseada');
a2=abs(fft(y0));
%------------------PARA OBSERVAR EL RANGO DE FRECUENCIAS-------------------
subplot(5,1,4),plot(hertz(1:800),a2(1:800));title('Sal.bloque difuso');
b2=abs(fft(yd));
70
Programas Apéndice A
subplot(5,1,5),plot(hertz(1:800),b2(1:800));title('Deseada');
xd2=yd*10;
x02=y0*15;
figure(3);
plot(WA);
%figure(1);plot(error1);
%---------------------PARA VER DIFERENCIAS DE SEÑAL------------------------
figure
plot(yn1,'r')
grid on;
hold on
plot(yn2,'g')
c=(yn1)-(yn2);
plot(c,'b')
A.3 Algoritmo para realizar la simulación con un filtro transversal FIR, de señal audible
y un bloque no lineal.
%------------------------------SIMULACION----------------------------------
71
Programas Apéndice A
%xn=2.0*(rand(1)-0.5)/add;
for ki=N2:-1:2
Z(ki)=Z(ki-1); %recorrer linea de retardo
end
Z(1)=x;
y1=x;
%yd=y1;
yd(kin)=yn(kin)+xn(kin);
xr(kin)=yn(kin)+xn(kin);
xrr(kin)=xn(kin);
%yd(kin)=y1+(4.*cos(x2).*(x)./(1+x.^2))./25;
72
Programas Apéndice A
figure(2);
yn4=yn(1:5999);
yn2=y0(2:6000);
yn1=yd(2:6000);
subplot(5,1,2),plot(yn4);title('Señal original');
subplot(5,1,3),plot(yn2);title('Señal estimada');
subplot(5,1,1),plot(yn1);title('Señal ruidosa');
a2=abs(fft(y0));
subplot(5,1,4),plot(hertz(1:1200),a2(1:1200));title('Espectro de frec. señal estimada');
b2=abs(fft(yn4));
subplot(5,1,5),plot(hertz(1:1200),b2(1:1200));title('Espectro de frec. señal original');
%figure(3);plot(PXN);title('Pot Ruido');
figure(5);plot(MSE);title('MSE');
%figure(6);
%plot(xr);
%figure;plot(yn1,'r');grid on;hold on;plot(yn2,'g');c=(yn1)-(yn2);plot(c,'b')
%figure(7),plot(MSE,'r')
%hold on
73
Programas Apéndice A
xn(kin)=2.0*(rand(1)-0.5)/add;
for ki=N2:-1:2
Z2(ki)=Z2(ki-1); %recorrer linea de retardo
end
Z2(1)=x;
y1=0.0;
N3=N2-5;
for ki=1:N2-5
y1=y1+Z2(ki)*A(ki);
end
y1=y1+1*(A(N3+1)*Z2(N3+1)*A(N3+2)*Z2(N3+2));
y1=y1+1*(A(N3+2)*Z2(N3+2)*A(N3+3)*Z2(N3+3));
y1=y1+1*(A(N3+3)*Z2(N3+3)*A(N3+4)*Z2(N3+4));
y1=y1+1*A(N2)*(Z2(N2)*Z2(N2));
yd(kin)=y1+xn(kin);
%yd(kin)=y1/8;
yd(kin)=y1+(4.*cos(xz).*x./(1+x.^2))./25;
%---------------GRADO DE PERTENENCIA------------------------------------
74
Programas Apéndice A
n=n+1;
if yn(n)<=0
x11=-yn(n);
x1(1,1)=x11;
x22=yn(n)+1;
x1(1,2)=x22;
else
x22=-yn(n)+1;
x1(1,2)=x22;
x33=yn(n);
x1(1,3)=x33;
end
%----------------------BLOQUE DIFUSO-------------------------------------
%SE OBTIENE EL MINIMO DE LOS VECTORES(PRODUCTO CARTESIANO DIFUSO)
%for m=1:3, for k=1:3, z(m,k)=min(x1(1,m),x2(1,k));,end,end,b=z;
%SE OBTIENE A TRAVES DEL PRODUCTO
b=x2(1,1:3)'*x1(1,1:3);
b1=[b(1,1:3),b(2,1:3),b(3,1:3)];%ordenacion en vector
y0(kin)=(b1*W); %sumatoria del producto
%Calculo del error
error=yd(kin)-y0(kin);
%---------------------ADAPTACIÓN---------------------------------------
[W]=nlms(N,alfa,error,Y,W);
%miu=alfa/((y0(kin)*y0(kin)')+0.1);
Y=b1';
%W=W+(miu*error*y0(kin));
x2(1,1:3)=x1(1,1:3);% paso del dato de x1 a x2
n=n+1;
%Promedios
pot_sig=pot_sig+(x*x);%(y1*y1);
pot_err=pot_err+((y1-y0(kin))*(y1-y0(kin)));
pot_noise=pot_noise+(xn(kin)*xn(kin));
end
MSE(i)=10.0*LOG10(pot_err/pot_sig);
PX(i)=10.0*LOG10(pot_sig/Num_iter);
PXN(i)=10.0*LOG10(pot_noise/Num_iter);
SNR(i)=10.0*LOG10(pot_sig/pot_err);
E(i)=error;
end
k=1:10000;
%hertz=k*(6.5536/8);
hertz=k*(6/8);
%-----------------------------VISUALIZACIÓN--------------------------------
figure(1);
plot(PX);title('pot señal');hold on,plot(PXN,'r');
figure(2);
yn2=y0(2:701);
plot(y0);title('Sal.bloque difuso');
yn1=yd(1:700);
subplot(4,1,1),plot(yd);title('Señal deseada');
%figure(3)
%plot(PXN);title('Pot Ruido');
75
Programas Apéndice A
a2=abs(fft(y0));
subplot(4,1,3),plot(hertz(1:600),a2(1:600));title('Espectro de frec. salida bloque difuso');
b2=abs(fft(yd));
subplot(4,1,4),plot(hertz(1:600),b2(1:600));title('Espectro de frec. señal deseada');
%figure(5);plot(MSE);title('MSE');
76
Programas Apéndice A
%------------------------------SIMULACION----------------------------------
Num_iter=90; %Numero de iteraciones por bloque
Num_block=90; %Numero total de bloques
add=1.0; %relación señal a ruido
kin=1;
for i=1:Num_block
pot_sig=0.0;
pot_err=0.0;
pot_noise=0.0;
for j=1:Num_iter
kin=kin+1;
x=yn(kin);
x2=yn(kin-1);
xn=10.0*(rand(1)-0.5)/add;
xr(kin)=xn;
for ki=N2:-1:2
Z2(ki)=Z2(ki-1); %recorrer linea de retardo
end
Z2(1)=x;
y1=0.0;
N3=N2-5;
for ki=1:N2-5
y1=y1+Z2(ki)*A(ki);
end
y1=y1+1*(A(N3+1)*Z2(N3+1)*A(N3+2)*Z2(N3+2));
y1=y1+1*(A(N3+2)*Z2(N3+2)*A(N3+3)*Z2(N3+3));
y1=y1+1*(A(N3+3)*Z2(N3+3)*A(N3+4)*Z2(N3+4));
y1=y1+1*A(N2)*(Z2(N2)*Z2(N2));
yd(kin)=y1+xn;
yd(kin)=y1+(4.*cos(x2).*(x)./(1+x.^2))./25;
%yd=y1;
%------------------------- FIR adaptivo------------------------------------
[y0(kin),Y]=fir_out(N,x,Y,W);
%-----------------------Calculo del error----------------------------------
error=yd(kin)-y0(kin);
%----------------------------Adaptación------------------------------------
[W]=nlms(N,alfa,error,Y,W);
%-----------------------------Potencias------------------------------------
pot_sig=pot_sig+(y1*y1);
pot_err=pot_err+((y1-y0(kin))*(y1-y0(kin)));
pot_noise=pot_noise+(xn*xn);
end
MSE(i)=10.0*LOG10(pot_err/pot_sig);
PX(i)=10.0*LOG10(pot_sig/Num_iter);
PXN(i)=10.0*LOG10(pot_noise/Num_iter);
end
%--------------VISUALIZACIÓN,GRÁFICAS Y ESPECTROS--------------------------
k=1:10000;
%k=1:1000
hertz=k*(6.5536/4);
%hertz=k*(10240);
%figure(1);
%plot(PX);title('pot señal');hold on,plot(PXN,'r');
77
Programas Apéndice A
figure(2);
yn2=y0(2:5001);
subplot(4,1,2),plot(yn2);title('Sal. bloque fir');
%figure(3)
%plot(PXN);title('Pot Ruido');
yn1=yd(1:5000);
subplot(4,1,1),plot(yn1);title('Señal deseada');
a2=abs(fft(y0));
subplot(4,1,3),plot(hertz(1:800),a2(1:800));title('Espectro de frec. salida bloque fir');
b2=abs(fft(yd));
subplot(4,1,4),plot(hertz(1:800),b2(1:800));title('Espectro de frec. señal deseada');
figure(5);plot(MSE);title('MSE');
%figure(6);
%plot(xr);
%figure;plot(yn1,'r');grid on;hold on;plot(yn2,'g');c=(yn1)-(yn2);plot(c,'b')
figure(7),plot(MSE,'b')
hold on
78
Programas Apéndice A
A1(n,k)=(B+C+D+E);
y1=y1+10*(A(n,k)*Z2(N3+2)*A(n,k)*Z2(N3+3));
y1=y1+10*(A(n,k)*Z2(N3+3)*A(n,k)*Z2(N3+4));
y1=y1-10*(A(n,k)*Z2(N3+3)*A(n,k)*Z2(N3+4));
y1=y1-10*A(n,k)*(Z2(N2)*Z2(N2))*cos (A(n,k));
A1(n,k)=y1(n,k)+Z2(n)*cos(A(n,k));
A(n,k)=A(n,k);
end
end
dom=linspace(min(Z2),max(Z2),20);
[xx,yy]=meshgrid(dom,dom);
%zz=A.*(xx)*A.*sin(yy); %función
zz=3.*sin(xx).*yy./(1+yy.^2);
%zz1=A1.*cos(xx)*A1.*sin(yy);
zz1=exp(-xx)./1.5.*(sin(xx)).*sin(xx);
%n2(k) = 4*sin(n1(k))*n1(k-1)/(1+n1(k-1)^2)
figure(1)
subplot(1,2,1);surf(xx, yy, zz);
subplot(1,2,2);surf(xx, yy, zz1);
A.7 Funciónes
function[W]=nlms(N,alfa,error,Y,W)
%Algoritmo de Adaptación NLMS
miu=alfa/((Y'*Y)+0.1);
W=W+miu*error*Y;
function[W]=nlmsf(N,alfa,error,Y0,W)
%Algoritmo de Adaptación NLMS
miu=alfa/((Y0'*Y0)+0.1);
W=W+miu*error*Y0;
function[y,Z]=fir_out(N,xr,Z,A);
% salida del filtro FIR
for k=N:-1:2
Z(k)=Z(k-1); %recorrer linea de retardo
end
Z(1)=xr; %cargar nuevo dato
79
Programas Apéndice A
figure(1)
%subplot(1,2,1);surf(xx, yy, zz);
%subplot(1,2,2);surf(xx, yy, zz1);
surf(xx, yy, zz);
81
APÉNDICE B
ARTÍCULOS PUBLICADOS
Artículo aceptado y presentado en el 1er congreso Cas Tour / ICED efectuado en el puerto
de Veracruz, México, del 16 al 19 de noviembre de 2004.
RESUMEN
En éste trabajo se analiza un filtro adaptivo con humanos o por la relación de pares de datos de
estructura basada en lógica difusa y un algoritmo entrada-salida en un procedimiento de adaptación.
de adaptación del error cuadrático medio de la El FAD emplea funciones de membresía que
señal (NLMS). La ventaja más importante en un caracterizan los conceptos difusos en las reglas SI-
filtro adaptivo difuso (FAD) es que la información ENTONCES [2]. Estas funciones de membresía
lingüística (en forma de reglas del tipo SI- pueden ser diversas (triangular, trapezoidal,
ENTONCES) y la información numérica (en gaussiana, etc.), y se eligen dependiendo de la
forma de pares de entrada y salida) pueden ser experiencia, perspectivas del usuario ó mediante
combinadas dentro del filtro de una manera un método de prueba y error. En este trabajo se
uniforme. El filtro es aplicado a un canal de aplicaron funciones triangular y gaussiana las
comunicación no lineal simulando algunos cuales ofrecieron buenos resultados.
problemas en la transmisión de la información. Para este trabajo es necesario definir las señales de
Los resultados de ésta aproximación no lineal entrada dentro de un intervalo de [-1,1]
comparada con las técnicas de filtrado clásico considerado como universo de discusión, aunque
resultan mas adecuadas para el caso de canales no puede tomar valores diferentes si es requerido.
lineales. Para la adaptación de los pesos del bloque difuso,
se emplea un algoritmo tipo NLMS (criterio del
I INTRODUCCIÓN error mínimo cuadrático medio normalizado)
debido a su baja complejidad computacional.
En general, un filtro adaptivo puede ser entendido El filtro propuesto aplica un producto cartesiano
como un sistema que trata de cambiar por sí de “n” dimensiones por “m” elementos que
mismo, en respuesta a un fenómeno que lo resultan en un mapeo de (n x m) elementos. La
involucra . En otras palabras trata de ajustar sus aproximación de la señal depende del número de
parámetros con un objetivo específico a través de dimensiones y elementos. Asi si se requiere mayor
un algoritmo de adaptación [1]. Los filtros aproximación también se requiere mayor número
adaptivos se pueden realizar con filtros tipo FIR de elementos y dimensiones.
(Filtro de respuesta finita al impulso) o filtros tipo El FAD es comparado con un filtro transversal de
IIR (Filtro de respuesta infinita al impulso). El respuesta finita al impulso (FIR) que utiliza la
primero tiene características de estabilidad y sin técnica de filtrado clásico con un orden similar al
distorsión de fase, en cambio el filtro IIR resulta que utiliza el filtro con técnica difusa, para
de un orden menor si la fase lineal no es crítica, observar las diferencias entre uno y otro. Se lleva
pero si no es bien diseñado tiene problemas de a cabo una simulación con señales de entrada
estabilidad. Debido a la ya mencionada estabilidad correspondientes a sonidos diversos, (señal
de los sistemas, se prefiere el uso de los filtros cuadrada, senoidal y voz). Así mismo se aplica
FIR. Pero si el sistema involucra cambios no como mecanismo de inferencia la composición
lineales, el filtro FIR requiere un orden mayor max-min y max-producto para observar su
(mayor número de coeficientes) y por lo tanto se comportamiento y buscar una mayor eficiencia.
hace más complejo.
El propósito de éste articulo es desarrollar un II DESARROLLO
filtro de baja complejidad y que pueda adaptar
cambios no lineales aplicando las técnicas de Estructura básica. La figura 1 muestra la
lógica difusa. arquitectura de un sistema de lógica difusa [3].
Un FAD está formado por un conjunto de reglas Como se observa, consiste de 4 bloques
difusas. Estas reglas son dadas por expertos
83
fundamentales. Fusificador, base de conocimiento estos datos se obtiene la relación entre pares
(reglas), mecanismo de inferencia y defusificador. ordenados del universo (entre –1 y 1) de las xn
mediante la implicación difusa.[5]:.
84
El FAD sigue con mayor detalle la función no aproximación en señales de datos, a su vez las
lineal, la cual sí se pierde en un filtro adaptivo tipo funciones gaussianas ofrecieron buena
FIR. aproximación en señales de tipo analógicas
El sistema difuso aplicado a las diferentes fuentes (contínuas).
de datos se muestra en la figura 2. Posteriormente como se observa en la figura 5 se
utilizó el FAD con señal de voz y ruido aditivo,
nuevamente haciendo uso de funciones
triangulares y gaussianas. Como resultado
adicional se obtiene el espectro de frecuencias
para visualizar de otra forma la aproximación de
la señal bajo prueba.
85
los pesos para minimizar el error en cada
Las figuras 7 y 8 señalan los resultados al iteración.
comparar el FAD con un filtro FIR. Esta vez la Algunas de las ventajas más importantes de los
señal que se utilizó es una onda cuadrada filtros adaptivos difusos es la incorporación al
distorsionada por una función no lineal. filtro de la información lingüística proveniente del
conocimiento humano (en forma de reglas
IF_THEN ) .
La simulación mostró que el filtro tiene un buen
comportamiento para identificar sistemas que
tienen una función no lineal y que se requieren
pocos datos para poder obtener la adaptación, a
diferencia de los filtros FIR (los cuales requiere
un número mayor de datos de entrada para la
adaptación).
V REFERENCIAS
86
Artículo aceptado y presentado en el 1er Congreso Mexicano de Ingeniería en
Comunicaciones y Electrónica efectuado en el Centro de Educación Continua y a
Distancia del IPN. Allende no. 38 Col. Centro, Ciudad de México D.F. , del 1 al 3 de
junio de 2005.
87
Aplicación de la Lógica Difusa en el Filtrado Adaptivo
1 Introducción
En general, un filtro adaptivo puede ser entendido como un sistema que trata de ajustar
sus parámetros con un objetivo específico a través de un algoritmo de adaptación [1].
Los filtros adaptivos se pueden realizar con filtros tipo FIR (Filtro de respuesta finita al
impulso) o filtros tipo IIR (Filtro de respuesta infinita al impulso). El primero tiene
características de estabilidad sin distorsión de fase, en cambio el filtro IIR es un filtro
recursivo que resulta de un orden menor si la fase lineal no es crítica, pero si no es bien
diseñado tiene problemas de estabilidad. Debido a la ya mencionada estabilidad de los
sistemas, se prefiere el uso de los filtros FIR. Pero si el sistema involucra cambios no
lineales, el filtro FIR requiere un orden mayor (mayor número de coeficientes), y por lo
tanto se hace más complejo.
El propósito de éste articulo es desarrollar un filtro de baja complejidad, que pueda
adaptar cambios no lineales aplicando las técnicas de lógica difusa. El FAD es
comparado con un filtro transversal de respuesta finita al impulso (FIR) que utiliza la
técnica de filtrado clásico con un orden similar al que utiliza el filtro con técnica
difusa, para observar las diferencias entre uno y otro. Se lleva a cabo una simulación
con señales de entrada correspondientes a sonidos diversos, (señal cuadrada, senoidal
y voz).
88
2 Estado del arte
Un Filtro adaptivo difuso (FAD) está formado por un conjunto de reglas difusas. Estas
reglas son dadas por expertos humanos o por la relación de pares de datos de entrada-
salida en un procedimiento de adaptación. El FAD emplea funciones de membresía que
caracterizan los conceptos difusos en las reglas SI-ENTONCES [2]. Estas funciones de
membresía pueden ser diversas (triangular, trapezoidal, gaussiana, etc.), y se eligen
dependiendo de la experiencia, perspectivas del usuario ó mediante un método de
prueba y error. Es conveniente aplicar funciones triangular o trapecio debido a la
menor dificultad de representación mediante circuitos si el filtro se implementa en
silicio o en programa y si se desea obtener una salida del sistema difuso más suave, es
útil aplicar funciones diferenciables como las de tipo Gaussiano[3], las cuales ofrecen
buenos resultados.
Es necesario definir las señales de entrada dentro de un intervalo de [-1,1] considerado
como universo de discusión, aunque puede tomar otros valores si es requerido.
El filtro propuesto aplica un producto cartesiano de “n” dimensiones por “m”
elementos que resultan en un mapeo de (n x m) elementos. La aproximación de la
señal depende del número de elementos. De donde se derivan las reglas difusas. A estas
reglas se les asigna un grado de veracidad como peso. Para la adaptación de los pesos
del bloque difuso, se emplea un algoritmo de adaptación como en cualquier sistema
adaptivo.
3 Metodología
y = f (x) (1)
Paso 1.- Definir los conjuntos difusos mi en el espacio de entrada [Ci-,Ci+] del universo
de discusión U, que es etiquetado Fij (i=1,2,...,n ; j=1,2,...,m) [4].
Las mi funciones de membresía µ Fij cubre el intervalo [Ci-,Ci+] en el sentido que
para cada xi ∈ [Ci-,Ci+] existe al menos una µ Fij(xi) ≠ 0 . Estas funciones de membresía
son fijas y no cambian durante el procedimiento de adaptación.
Para obtener el dato difuso, se aplica éste sobre las funciones de membresía en el
universo de discusión. Para cada dato de entrada x1,x2,...,xn , se obtienen n datos en el
eje y (según el número de funciones de membresía que se apliquen). Con estos datos
se obtiene la relación entre pares ordenados del universo [ –1, 1] de las xn mediante la
implicación difusa.[6]:.
donde Φ puede ser cualquier operador de implicación y puede dar lugar a una
estrategia de inferencia como por ejemplo: inferencia max-min ó inferencia max-prod ,
usando la operación de composición.
Paso 2.- Se construye un conjunto de mi reglas difusas del tipo SI-ENTONCES ;
R(j1,...,jn) : Si xi es Fij1 y ... y xn es Fnjn , Entonces d es G(j1,...,jn).
Paso 3.- La agregación permite obtener una conclusión final de las reglas activadas
por el dato de entrada, y conduce al valor de salida final.
Paso 4.- La defusificación produce una salida rígida de nuestro Sistema Difuso que
es la salida del bloque de la Fig. 1. En este caso se emplea el modelo de un combinador
aditivo [4][5] el cual puede ser interpretado como un filtro adaptivo que es activado por
los conjuntos difusos cuya salida es la adición de los pesos asignados. Esta salida es
adaptada por medio de un algoritmo NLMS por su baja complejidad computacional y
su probada eficacia en señales variantes en el tiempo[1].
4 Resultados Experimentales
Una serie de datos muestreados han sido considerados. Es el caso de palabras, tono,
sonido, y algunas señales que presentan cambios abruptos como es la función cuadrada.
El sistema difuso aplicado a las diferentes fuentes de datos se muestra en la Fig. 2.
Para motivo de prueba primeramente se utilizó el filtro como predictor para observar
el grado de aproximación de las señales de entrada del tipo onda cuadrada y senoidal.
90
Fig.2 Filtro adaptivo difuso propuesto
Como se observa en las figuras anteriores, las funciones de tipo triangular ofrecen
una mayor aproximación en señales de datos, a su vez las funciones gaussianas
ofrecieron buena aproximación en señales de tipo analógicas (contínuas).
Posteriormente como se observa en la Fig. 5 se utilizó el FAD con señal de voz y
ruido aditivo, nuevamente haciendo uso de funciones triangulares y gaussianas. Como
resultado adicional se obtiene el espectro de frecuencias para visualizar de otra forma la
aproximación de la señal bajo prueba.
Fig.5 a)Señal de voz, b)Voz con ruido aditivo, c)Señal estimada con el FAD,
d)Espectro de la señal estimada, e)Espectro de la señal deseada.
Se hace mención que con señales de voz se obtuvieron mejores resultados aplicando
funciones gaussianas.
El sistema ha sido aplicado como identificador, y se compara con otro que utiliza un
filtro adaptivo FIR con semejante grado. Ambos son aplicados a bloques no lineales y
los resultados muestran una diferencia a medida que la no linealidad es mayor. La Fig.
6 señala los resultados al comparar el FAD con un filtro FIR. Esta vez la señal que se
utilizó es una onda cuadrada distorsionada por una función no lineal.
FIR FAD
92
5 Conclusiones y trabajo futuro
Referencias
[1] B.Farhang-Boroujeny, Adaptive Filters. ed. John Wiley & Sons 2000. West Sussex
PO19 IUD, England
[2] Li-Xin Wang,Jerry M.Mendel, Fuzzy Adaptive Filters, with Aplication to
Nonlinear Channel Equalization, IEE Transactions on fuzzy systems, Vol.1 No.3.
1993. pp 161-168.
[3] I. Baturone, A. Barriga, S. Sánchez-Solano, C. J. Jiménez-Fernández, D. R. López
Microelectronic Design of Fuzzy Logic–Based Systems
[4] Jyh S., Roger J., Chuen-Tsai S., Neuro –Fuzzy Modeling and Control. Proceedings
of the IEEE. Vol.83.No. 3, Marzo 1995.pp 378-403
[5] Abraham Kandel, Gideon Langholz Fuzzy hardware Ed. Kluwer Academic
Publishers 1998.
[6] Timothy J. R., Fuzzy Logic with Engineering Applications. ed. Mc Graw-Hill.1997
[7] M Mendel J. Fuzzy Logic Systems for Engineering: A Tutorial. Proceedings of the
IEEE, vol.83.no.3. 1995.pp 345-375.
Lista de acrónimos
94