UNIVERSIDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/UAMI15674.pdf · Toolbox para...
Transcript of UNIVERSIDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/UAMI15674.pdf · Toolbox para...
~ 1 ~
“SIMULACIÓN DEL ALGORITMO LMS PARA FILTRADO ADAPTABLE”
PROYECTO DE INGENIERÍA ELECTRÓNICA
QUE PARA OBTENER EL TÍTULO DE
INGENIERO ELECTRÓNICO PRESENTA
HERMINIO DE LA CRUZ OSORIO
ASESOR DR. FAUSTO CASCO SÁNCHEZ
MÉXICO, D.F. MARZO 2011
UNIVERSIDAD AUTONOMA METROPOLITANA
UNIDAD IZTAPALAPA
CIENCIAS BÁSICAS E INGENIERÍA
INGENIERÍA ELECTRÓNICA
~ 2 ~
AGRADECIMIENTO
Mi eterno agradecimiento:
Al Dr. Fausto Casco Sánchez por su dedicación, actitud positiva, gran apoyo, infinita paciencia,
dirección y asesoría.
~ 3 ~
ÍNDICE
Prefacio 5
I. Introducción 6
II. Matlab como lenguaje de programación 7
2.1 Presentación 7
2.2 Origen del Matlab 7
2.3 Perfil del Matlab, características básicas de la versión utilizada 7
III. Secuencias típicas y sus transformadas de Fourier 9
3.1 Presentación 9
3.2 Señales como funciones elementales 9
3.3 Secuencias como señales continuas discretizadas 12
3.3.1 Secuencia escalón unitario 13
3.3.2 Secuencia impulso unitario 14
3.3.3 Secuencia pulso rectangular 15
3.3.4 Secuencia exponencial 15
3.3.5 Secuencia senoidal 16
3.3.6 Secuencia random 18
3.4 Transformada discreta de Fourier de las secuencias típicas 20
IV. Filtros digitales 24
4.1 Presentación 24
4.2 Estructura de un filtro FIR y su ecuación de diferencias 24
4.3 Transformada z de un filtro FIR y su respuesta en frecuencia 25
4.4 Simulaciones de un filtro FIR usando Matlab 26
V. Filtros adaptables 29
5.1 Presentación 29
~ 4 ~
5.2 Estructura de un filtro adaptable 29
5.3 Algoritmo LMS 30
5.4 Simulaciones de un filtro FIR adaptable 33
VI. Conclusiones 40
Bibliografía 41
~ 5 ~
PREFACIO
En una ocasión acudí a un evento auspiciado por Microsoft en el WTC de la ciudad de México y
además de maravillarme por las innovaciones presentadas ahí, llamó mucho mi atención un
problema que estaban padeciendo los conferencistas que daban sus pláticas en varias salas
improvisadas en la entrada: eran cuatro conferencias que se impartían simultáneamente y dado
que eran salas improvisadas, separadas por paredes falsas de escasa altura, el problema era
evidente, las pláticas se interferían. Sólo los que estaban en las tres primeras filas podían escuchar
al conferencista de la sala en la que estábamos, porque los de las últimas filas escuchaban una
mezcla de los conferencistas contiguos: era una mezcla indeseable de audios. El resultado, mucha
gente decepcionada por la mala logística de este evento.
Ese día vi la necesidad de un sistema electrónico que fuera capaz de cancelar -o sino, sí al menos
reducir a un nivel aceptable- la interferencia producida por el sonido proveniente del
conferencista contiguo.
El sistema electrónico capaz de satisfacer la necesidad antes mencionada y que resolvería, sin
duda, el problema arriba expuesto es un cancelador de ruido. Este sistema es un filtro adaptable
que posee un filtro programable y un algoritmo de adaptación.
Además de la aplicación anterior, los filtros adaptables se pueden usar exitosamente en campos
tan diversos como comunicaciones, control, radar, sonar, sismología e ingeniería biomédica.
Dada la gran gama de aplicaciones de los filtros adaptables, y los resultados portentosos que
proporcionan, me resulta por demás atractivo abordarlo como proyecto terminal para la
obtención del título de ingeniero electrónico.
~ 6 ~
I. INTRODUCCIÓN
Considerando que la realización de los filtros digitales es posible ya sea por medio de
procesadores de propósito particular, o bien a través de un programa que simula su
comportamiento, en el presente proyecto de investigación se aborda el tema desde la perspectiva
de la programación, esto es, mediante programas que simulan el comportamiento de un filtro
adaptable, en particular el trabajo se concentra en la simulación del algoritmo de adaptación,
siendo éste el LMS (Least Mean Squares).
En una segunda etapa, el presente trabajo busca mejorar los resultados obtenidos con el
algoritmo LMS, implementando para ello el algoritmo NLMS (LMS Normalizado) de un paso y,
posteriormente, el de doble paso.
La organización que se siguió en este trabajo de investigación fue la siguiente:
En el capítulo I se hace un adelanto del enfoque que tendrá el presente proyecto de
investigación, así como su estructura básica en forma global.
En el capítulo II se hace una revisión de lo más relevante del lenguaje de programación
empleado, el MATLAB; sin pretender entrar en detalles, se hace mención de los rasgos principales
que lo hacen el más idóneo para éste proyecto.
En el capítulo III se describen las secuencias de mayor utilidad en el procesamiento digital de
señales, siendo éstas, la secuencia escalón unitario, secuencia impulso unitario, secuencia pulso
rectangular, secuencia exponencial, secuencia senoidal y la secuencia random.
En el capítulo IV se trata el tema de los filtros digitales y se hace un estudio para cimentar las
bases en que se apoya todo el proyecto. Para ello se estudia la estructura de un filtro FIR y sus
características principales, culminando el capítulo con una simulación de un filtro digital mediante
el lenguaje MATLAB.
En el capítulo V se aborda el tema del filtro adaptable, describiendo su estructura y las
características más sobresalientes que posee. Es en esta parte donde se detalla el algoritmo LMS.
Posteriormente, en este mismo capítulo, se presentan los resultados de las simulaciones del
algoritmo LMS y sus versiones mejoradas para diferentes valores en sus parámetros.
~ 7 ~
II. MATLAB COMO LENGUAJE DE PROGRAMACIÓN
2.1 Presentación
MATLAB es un lenguaje de programación muy versátil dado que se puede emplear como un
lenguaje de programación (como si se tratase de C, Pascal, etc.) y también como una herramienta
de visualización de datos, aunado a su capacidad de simulación de modelado no lineal. Perfil que
lo hace el más adecuado para usarse en los diversos programas de simulación del presente
trabajo.
2.2 Origen del MATLAB
El término MATLAB proviene de la contracción de las palabras Matrix Laboratory.
La primera versión de MATLAB fue hecha en el lenguaje fortran por Cleve Moler quien utilizó
diversas rutinas de las librerías LINPACK y EINSPACK para su construcción, siendo estas librerías la
máxima expresión del software de computación matricial, utilizado para resolver numerosos
problemas relacionados con los sistemas lineales y el cálculo de eigenvalores y eigenvectores.
Incluso hoy en día estas dos librerías forman parte del grupo de librerías más importantes en
cálculo y computación.
2.3 Perfil del MATLAB, características básicas de la versión utilizada
La versión del MATLAB utilizada fue escrita en lenguaje C por Steve Bangert, Steve Kleiman, John
Little y Cleve Moler para la empresa The Math Works Group. Este programa ha ido
robusteciéndose con la participación de diversos autores que fueron incorporando una amplia
gama de aplicaciones específicas, creadas para MATLAB denominadas “Toolbox”.
Las características más sobresalientes del MATLAB para el presente proyecto son:
Es un programa para cálculo científico concebido para resolver problemas con formulación
matricial, por ende apto para resolver problemas en ingeniería, ciencias, computación y
disciplinas matemáticas.
Es un programa command_driven, es decir, permite la introducción de comandos
escribiéndolos uno a uno a continuación del símbolo >> (prompt) que aparece en la
ventana.
Fácil de aprender, usar, manejar e implementar en PC´s.
Posee un robusto Toolbox que son librerías de funciones MATLAB que agrupan utilidades y
herramientas que permiten resolver determinado tipo de problemas.
Librería de Aplicaciones de MATLAB
~ 8 ~
Toolbox para procesamiento de señales.
MATLAB tiene un conjunto de funciones útiles para el procesamiento de señales en la librería
“Signal Processing Toolbox”. Con estas funciones es posible realizar una gama extensa de
aplicaciones como:
Análisis de filtros digitales, incluyendo respuesta en frecuencia, retardo de grupo, retardo
de fase.
Implementación de filtros, tanto directo como usando técnicas en el dominio de la
frecuencia, basados en la FFT.
Diseño de filtros IIR, incluyendo Butterworth, Chebyshev tipo I, Chebyshev tipo II y elíptico.
Diseño de filtros FIR mediante el algoritmo óptimo de ParksMcClellan.
Procesamiento de la Transformada Rápida de Fourier, FFT, incluyendo la transformación
para potencias de dos y su inversa y transformada para no potencias de dos.
Librería matemática MATLAB C
MATLAB C Math Library ofrece una amplia gama de funciones clásicas del programa MATLAB,
proporcionadas como librerías objeto, incluyendo básicamente las siguientes categorías de
funciones presentes en MATLAB y ficheros M compilados:
Álgebra lineal.
Funciones matemáticas elementales y especializadas.
Operadores lógicos y aritméticos.
Matrices elementales y manipulación de vectores.
Matrices especiales.
Estadística básica y análisis de datos.
Polinomios e interpolación.
Gestión de cadena de caracteres, entradas y salidas.
Gestión de memoria y errores.
MATLAB ofrece Simulink como un anexo, que interactúa con él y con el lenguaje de bajo nivel C.
Simulink es usado para simulación de modelado no lineal avanzado. Ofrece además soluciones de
aplicaciones específicas, por ejemplo, control, procesamiento de señales, redes neuronales, etc.
~ 9 ~
III. SECUENCIAS TÍPICAS Y SUS TRANSFORMADAS DE FOURIER
3.1 Presentación
Los dispositivos o sistemas, en el campo de la electrónica, se diseñan o construyen para procesar
información que llegan a éstos a través de cualquier medio de propagación, esta información es
conocida como señal; siendo la información que contiene y el medio por el cual se transmite, sus
dos aspectos importantes.
La información que lleva una señal se manifiesta a través de la variación de ésta con respecto al
tiempo. Las formas de cómo las señales varían con el tiempo son básicamente dos: aquellas que
cambian continuamente en el tiempo, conocidas como señales analógicas (también llamadas
señales continuas en el tiempo), y aquellas que cambian en forma discreta en intervalos de
tiempo, a las cuales se les conoce como señales digitales (también llamadas señales discretas).
Una señal analógica es susceptible a ser transformada a una señal digital, para de esta forma ser
procesada por elementos o sistemas digitales. Pasando así de un dominio continuo a un dominio
discreto.
En el dominio discreto, las señales tienen una forma de presentarse muy simple y muy fácil de
manejar, desde el punto de vista matemático y por tanto computacional. Esta forma es conocida
como secuencias, unas simples y llanas secuencias de números, de ahí que a las señales en este
dominio también se les llama secuencias, como es el caso de este trabajo de investigación.
Se afirma en el párrafo anterior que, las secuencias de números son muy sencillas de manejar
desde el punto de vista matemático, y esto es debido a que obedecen los principios simples de
una progresión ya sea aritmética o geométrica, además, son aplicables operadores como el límite
para su tratamiento. En resumen, se puede abreviar en una función matemática con un dominio
muy acotado y de valores discretos.
Desde este enfoque matemático, sin subestimar el enfoque físico, resulta conveniente hacer una
revisión, primero de las señales analógicas para después exponer las señales discretas, digitales o
mejor aún, secuencias.
3.2 Señales como funciones elementales
Una señal, en el contexto que nos ocupa, es representable por una función matemática, la cual
pese a constituir la base de un análisis formal, facilita enormemente su tratamiento. Sin embargo
no debemos perder de vista que una función es simplemente una modelación de la señal.
Entre las funciones básicas que sirven para modelar a las señales están:
~ 13 ~
Como el sistema que nos ocupa es uno de tipo digital, es imprescindible tratar con suficiente
profundidad a estas señales conocidas como secuencias.
Las secuencias se obtienen al muestrear a las señales continuas o analógicas, y por ende, muchas
de sus características las heredan de éstas, sin menoscabo de las propias al ser discretizadas.
El proceso de muestreo se encarga de tomar muestras en cada intervalo de tiempo (periodo) de
una señal continua limitada en banda, para ello se utiliza el teorema Nyquist, el cual indica que si
una señal f(t) no posee componentes espectrales más allá de 2πfmax , entonces las muestras de f(t)
tomadas a intervalos 1/2πfmax poseen información suficiente sobre f(t).
Con lo anterior se puede concluir que, una secuencia es una muy buena aproximación de una
señal continua.
Un muestreo ideal es aquel que se realiza con deltas de Dirac, sin embargo en la práctica se usa,
en lugar de deltas, un tren de pulsos. Pero antes de muestrear a una señal, es necesario limitarla
en banda, lo cual se logra mediante un filtro pasa-bajas; pues de lo contrario el espectro de la
señal es infinito y esto ocasiona que el espectro de la señal muestreada, F(ω), tenga
traslapamiento.
Las secuencias que, de una u otra forma, están involucradas en este proyecto de investigación
son:
3.3.1 Secuencia Escalón Unitario, u[n]:
~ 14 ~
La diferencia con su similar en tiempo continuo es que, el valor para n=0 está definido, mientras
que para la función escalón en tiempo continuo, en t=0 la función es discontinua.
La secuencia escalón unitario se puede utilizar para definir a una gran variedad de señales
importantes en procesamiento de señales. Una secuencia arbitraria puede por tanto ser
representada como una suma de secuencias escalón unitario, adecuadamente desplazada y
escalada
3.3.2 Secuencia Impulso Unitario, δ*n+:
La secuencia impulso unitario también se puede expresar como una diferencia de secuencias de
escalón unitario
δ*n+=u[n]-u[n-1]
La aplicación del impulso unitario a un sistema lineal de tiempo discreto proporciona la
respuesta impulso del sistema. Además, una secuencia arbitraria, x[n], puede ser definida a partir
de secuencias impulso unitario, adecuadamente desplazadas.
~ 15 ~
donde δ*n-k] es la unidad para n=k y cero para todos los otros términos. El impulso unitario es
también referido en la literatura científica como muestra unitaria, secuencia delta y secuencia
impulso.
3.3.3 Secuencia Pulso Rectangular, p[n]
La secuencia pulso rectangular está definida a partir de una diferencia de secuencias escalón
unitario.
3.3.4 Secuencia exponencial, exp[n]:
exp[n] = Can
o
x[n]=Can
~ 16 ~
donde C y a son generalmente números complejos. En general se pueden presentar los siguientes
casos:
Si C y a son valores reales, x[n] es una secuencia exponencial real y además si a>1, 0<a<1, -1<a<0
y a<-1, se obtienen varios casos particulares que se muestran en las siguientes gráficas.
En estas gráficas se puede observar que, la secuencia crece con n para a >1 y decrece con n
para a <1, y además que los signos de los elementos o muestras de la secuencia se alternan con
n si a<0. Los casos límite son cuando a=1, para el cual x[n] es una secuencia constante (dc), y a=-1
en cuyo caso x[n]=±C con signos alternados.
En una secuencia exponencial real, si “a” es igual a un valor menor que la unidad, entonces esta
secuencia representa la respuesta del sistema a un impulso unitario para una clase simple de
sistemas lineales de tiempo discreto frecuentemente encontrado en el procesamiento digital de
señales. Por otro lado, una secuencia exponencial compleja es la base para un desarrollo de una
representación de Fourier de una secuencia.
3.3.5 Secuencia Senoidal
La secuencia senoidal puede definirse a partir de la secuencia exponencial en su forma compleja,
esto es
~ 17 ~
x*n+=Caⁿ
si se elige a=ejο, donde la frecuencia ο es un valor real cuyas unidades son los radianes, y
C=C ej, se tiene entonces
x[n]=C ej·( e jο)n
=C ej · e jοn
=C ej(οn+ )
Haciendo uso de la identidad de Euler e±j =cos ± j sen, queda
x[n]=C cos(n+)+ j C sen(n+)
Una secuencia senoidal real puede por tanto ser escrita, con C =A, como
x[n]=Acos(on+)
=Re(Ae j(οn+ ))
y si se usa la identidad de Euler
la expresión anterior queda como
~ 18 ~
Tal como ocurre con la senoidal en t continuo, es de esperarse que la secuencia senoidal (real o
compleja) sea periódica, es decir, satisfaga
x[n+N]=x[n]
para todo valor de n y período N>0. Sin embargo en el caso de la secuencia senoidal, esto puede
ser verdadero o falso, dependiendo del valor de la frecuencia ο. Específicamente, si e jn es
periódico, con periodo N, entonces de la ecuación anterior tenemos
ejn+N)= ejn· ejN= ejn
y así ejN=1
donde el exponente οN debe ser un múltiplo de 2; esto es
οN=2k
para algún entero k o equivalentemente
Esto es, la frecuencia de normalización ο/2 debe ser un número racional si la secuencia
senoidal compleja se desea que sea periódica.
Una segunda diferencia en el caso de la secuencia senoidal es que, valores distintos de
frecuencia ο no necesariamente producen secuencias senoidales como ocurriría en tiempo
continuo.
3.3.6 Secuencia Random
Antes de describir la secuencia random, es conveniente primero presentar la señal random en
tiempo continuo.
Las señales random son aquellas que tienen un comportamiento el cual no se puede predecir.
Estas señales están caracterizadas por sus propiedades estadísticas y espectrales.
Las señales random pueden clasificarse en dos grandes categorías:
Las señales random estacionarias, en éstas las características estadísticas son invariantes
en tiempo.
Las señales random no-estacionarias, las cuales no tienen esta propiedad.
~ 19 ~
La amplitud, para cada valor de n, de una señal random real x(n) está definida por una ley
probabilística. Esta ley puede ser expresada como una densidad de probabilidad p(x,n) definida
por
Esta densidad de probabilidad es usada para calcular las propiedades estadísticas y espectrales
de la señal o proceso random.
Un proceso random en tiempo discreto, x[n], consiste en un conjunto de muestras de x(n). Las
propiedades estadísticas de x[n] son similares a la caracterización de x(n), con la restricción de que
n es ahora una variable entera.
A continuación se presentan las expresiones equivalentes en tiempo discreto para un proceso
random:
El momento de orden L de x[n] está definido como
donde xnL =x[n]L , p(xn)=p(x,n) y dxn=dx[n]).
De aquí que el momento de primer orden m₁(n) llamado valor medio o esperanza de x[n],
denotado por E[xn] queda expresado por
y el momento de segundo orden, llamado la covarianza queda como
donde p(x1,x2;n1,n2) es la densidad de probabilidad conjunta del par de variables random
[x(n1),x(n2)].
Como se dijo anteriormente, la señal es estacionaria si sus propiedades estadísticas son
independientes del índice tiempo n (invariante en tiempo), esto es, si la densidad de probabilidad
es independiente del tiempo n:
p(x,n)=p(x)
~ 20 ~
El carácter estacionario puede ser limitado a los momentos de primero y segundo orden,
entonces la señal random es en un sentido amplio estacionaria y queda caracterizada por las
siguientes ecuaciones simplificadas:
y
E[x(n)·x(n-p)]=r(p)
La función r(p) es la función de autocorrelación de la señal.
En general estos parámetros estadísticos son difíciles de estimar o medir directamente en razón
de que requieren de la disponibilidad de muchos procesos o que el experimento se repita muchas
veces, lo cual es a menudo impráctico. Pero gracias a la propiedad de ergodicidad en una señal
estacionaria, estos parámetros se pueden calcular equivalentemente de la siguiente forma:
Tal como ocurre en un proceso random de tiempo continuo, un proceso random de tiempo
discreto tiene energía infinita, pero una potencia media finita. El espectro de densidad de potencia
S(f) es obtenido como la transformada de Fourier de la función de autocorrelación r(p):
Por último cabe mencionar que una aproximación típica usada para modelar la entrada random
es generar una secuencia gaussiana random, que es ya una rutina disponible en la mayoría de los
sistemas computacionales.
3.4 Transformada Discreta de Fourier de las secuencias típicas
La transformada discreta de Fourier (TDF) convierte una señal de tiempo discreto (secuencia,
x[n]) a una secuencia en frecuencia discreta X[k].
Las ecuaciones correspondientes al par de TDF son:
~ 21 ~
donde x[n]: secuencia finita
X[k]: TDF de la secuencia finita x[n]
Cabe hacer mención que para aplicar la TDF en una secuencia periódica xp[n], sólo se considera
un período.
A continuación se presentan las TDF de algunas secuencias típicas específicas:
1. Secuencia Escalón Unitario
Otra forma de representar x[n] sería x[n]={1, 1, 1, 1, 1} para n=0, 1, 2, 3, 4;
es decir, x[0]=1, x[1]=1 , x[2]=1, x[3]=1, x[4]=1
Aplicando la ecuación de la TDF para obtener X[k]
Después de hacer los cálculos correspondientes para cada iteración se obtiene
X[k] = {5, 0, 0, 0, 0} para k= 0, 1, 2, 3, 4;
es decir, X[0]=5, X[1]=0, X[2]=0, X[3]=0, [4]=0
~ 22 ~
2. Secuencia exponencial real, x[n]=an, 0≤n<N con ІaІ<1
Si deseamos transformar esta secuencia sin ningún valor numérico específico para a, n y
N, sustituimos x[n]=an en la ecuación de la TDF para hallar X[k]
Usando la fórmula de la sumatoria
resulta
pero
dado que
para k=0, 1, 2,… Por lo tanto la TDF para esta secuencia es:
para k= 0, 1, 2, … N-1
3. Secuencia seno
~ 23 ~
Para obtener la TDF de esta secuencia se puede sustituir x[n] en su forma trigonométrica o en su
forma exponencial compleja (Identidad de Euler) en la ecuación de X[k]
Al sustituir
se obtiene la TDF de esta secuencia
para k=0, 1, 2,…N-1
Otra manera es cambiando
a su forma exponencial compleja, esto es
Al sustituir resulta
Al simplificar obtenemos la TDF de esta secuencia
para k=0, 1, 2, …,N-1
~ 24 ~
IV. FILTROS DIGITALES
4.1 Presentación
Un filtro digital es un sistema digital que desarrolla el proceso de filtrado mediante una
evaluación numérica de una ecuación diferencial lineal, normalmente en tiempo real y/o bajo el
control de un programa.
El fin que persigue un proceso de filtrado es tan diverso como sus diferentes campos de estudio,
así por ejemplo se le puede destinar a alisamiento, predicción, diferenciación, integración,
separación de señales, remoción de ruido, etc. Pero siempre se tratará de transformaciones
lineales que actúan sobre datos.
Los filtros digitales difieren de los analógicos por la naturaleza de las señales de entrada y de
salida. Estas diferencias en las señales de entrada y de salida determinan sus diferentes técnicas
de procesamiento: esto es, los filtros digitales sólo requieren desarrollar operaciones de suma,
multiplicación y retardo, mientras que los filtros analógicos están basados en la relación de las
operaciones matemáticas de diferenciación e integración.
Hay dos tipos de filtros digitales: los filtros digitales no recursivos, también conocidos como
filtros FIR (Filtros de Respuesta Impulso Finita) y los filtros digitales recursivos, conocidos también
con el nombre de Filtros IIR (Filtros de Respuesta Impulso Infinita).
En el presente trabajo de investigación se usa un filtro digital de tipo FIR.
4.2 Estructura de un Filtro FIR y su ecuación de diferencias
El filtro FIR genera su salida ponderando las entradas con un conjunto de constantes y sumando
estos resultados. Estas constantes son denominadas los coeficientes del filtro y son las
responsables de la operación del filtro. En realidad, el diseño de un filtro consiste justamente en la
elección de los valores de estos coeficientes.
La estructura básica de un filtro FIR, requiere N-1 retardos, N multiplicaciones y N-1 sumas para
producir cada una de las muestras de salida. Esta estructura se muestra en la figura 4.1
~ 25 ~
En donde x[n] es la entrada del filtro y representa la muestra presente de la misma, x[n-i] son
muestras pasadas de la entrada; h*0+, …, h*N-1] representan los coeficientes de la respuesta al
impulso del filtro; y[n] es la salida del mismo.
El filtro FIR es definido por la siguiente ecuación de diferencias
y[n]= h[0]x[n]+ h[1]x[n-1]+h[2]x[n-2++ …+ h*N-1]x[n-(N-1)]
Esta ecuación puede abreviarse con el uso de sumatorias resultando
en donde h[i] es real y causal con valores en el intervalo 0≤i≤N-1
4.3 Transformada z de un filtro FIR y su respuesta en frecuencia
A partir de la ecuación de diferencias del filtro FIR en su forma abreviada, es posible obtener la
respuesta en frecuencia del filtro; para lograrlo aplicamos la transformada z en ambos lados de la
ecuación
~ 26 ~
Al aplicar la transformada z resulta
Haciendo i=n, y dividiendo ambos lados de la ecuación por X(z)
La respuesta en frecuencia del filtro se obtiene haciendo
Por lo tanto, finalmente resulta:
Es oportuno mencionar que una de las características más atractivas del filtro FIR es la referente
a la posibilidad de obtener una respuesta de fase lineal debido a la forma que toma la respuesta
impulso del filtro h[n].
Veamos la condición que hace posible esta linealidad en fase.
Expresando H(ej), que en general es de tipo complejo, en términos de magnitud y fase:
H( ej)=H(ej)ej(
Para que el filtro presente fase lineal, se requiere que θ(ω) cumpla con la condición:
θ(ω)=-αω, -π≤ω≤π
donde α es una constante que representa el retraso, en número de muestras, que sufre la
secuencia a procesar.
4.4 Simulaciones de un filtro FIR usando Matlab
Para finalizar este capítulo a continuación se presentan los resultados obtenidos al implementar
un filtro FIR en el lenguaje Matlab.
~ 29 ~
V. FILTROS ADAPTABLES
5.1 Presentación
Siempre que hay un requerimiento para procesar señales que resultan de alguna operación en
un ambiente de estadística desconocida, el uso de un filtro adaptable ofrece una solución atractiva
para el problema, dado que generalmente provee un mejoramiento significativo en el desempeño
comparado con un filtro fijo diseñado por métodos convencionales. Además el uso de filtros
adaptables provee nuevas capacidades de procesamiento de señal que no sería posible de otra
forma. Así encontramos que los filtros adaptables son aplicadas exitosamente en campos tan
diversos como comunicaciones, control, radar, sonar, sismología e ingeniería biomédica.
Aunque las aplicaciones anteriores son realmente diferentes en naturaleza, éstas tienen un rasgo
común básico: un vector de entrada y una respuesta deseada, que son usados para computar una
estimación de error, la cual es vuelta a usar para controlar un conjunto de coeficientes ajustables
del filtro. Estos coeficientes pueden tomar la forma de coeficientes de ponderación, coeficientes
de reflexión, parámetros de rotación, dependiendo de la estructura del filtro empleado. Sin
embargo la diferencia esencial entre varias aplicaciones de filtrado adaptable surge en la manera
en la cual la respuesta deseada es extraída.
5.2 Estructura de un filtro adaptable
El principio de funcionamiento de un filtro adaptable descansa en su estructura, la cual se
presenta a continuación, primero en diagrama a bloques y posteriormente con más detalle.
~ 30 ~
En esta figura se puede apreciar que la salida de un filtro digital, programable con coeficiente
variable, es restada de una señal de referencia d[n] para producir una secuencia de error e[n], la
cual es usada en combinación con los elementos de la secuencia de entrada x[n], para actualizar
los coeficientes del filtro, siguiendo un criterio para ser minimizado.
5.3 Algoritmo LMS
El algoritmo LMS (Least Mean Squares) es un algoritmo de filtrado lineal adaptable que consiste
de dos procesos básicos:
1. Un proceso de filtrado, el cual involucra
a) La computación de la salida de un filtro transversal (FIR), y
b) Generación de error por comparación de la salida con la señal de referencia.
2. Un proceso adaptable, el cual involucra el ajuste automático de los coeficientes de
ponderación del filtro en concordancia con la estimación de error.
Así, la combinación de estos dos procesos operando simultáneamente constituye un lazo de
retroalimentación alrededor del algoritmo LMS como se ilustra en el diagrama a bloques de la
figura 5.1.
~ 31 ~
Los detalles de los componentes del filtro transversal son presentados es la figura 5.2. las
entradas x[n], x[n-1], x[n-2+, …, x[n-(M-1)], conforman los elementos del vector X[n], que es un
vector Mx1, donde M-1 es el número de elementos de retardo; estas entradas generan un espacio
multidimensional denotado por Xn.
De manera análoga los coeficientes Ŵ₀*n+, Ŵ₁*n+, …, ŴM-1 *n+ conforman el vector Ŵ*n+, vector
de Mx1. Los valores computados para el vector de los coeficientes Ŵ*n+ usando el algoritmo LMS
representa una estimación cuyo valor se espera se aproxime a la solución Wiener W₀ cuando el
número de iteraciones n tienda al infinito.
Durante el proceso de filtrado la señal de referencia d[n], es suministrada para el procesamiento,
al lado del vector X[n]. Dada esta entrada, el filtro transversal produce una salida d[nxn] usada
como una estimación de la señal de referencia d[n]. Por consiguiente, podemos definir una
estimación de error e[n] como la diferencia entre la respuesta deseada y la salida actual del filtro,
como se indica en la figura 5.2. La estimación de error e[n] y el vector X[n] son aplicados al
mecanismo de control (algoritmo) y el lazo de retroalimentación alrededor de los coeficientes de
ponderación es así cerrado.
En el mecanismo adaptable de control de coeficientes, una versión escalar del producto interior
de la estimación de error e[n] y las entradas x[n-k+ es computado por k=0, 1, 2, … M-2, M-1. El
resultado obtenido define la corrección δŴk[n] aplicado a Ŵk[n]. El factor de escalamiento usado
en esta computación es denotado por μ, y es llamado parámetro de tamaño de paso.
Es de notar que el algoritmo LMS usa el producto x[n-k]e*[k] como una estimación del elemento
k en el vector gradiente J[n].
Como se señaló anteriormente el algoritmo LMS involucra una retroalimentación en su
operación, con la cual se relaciona con el tema de la estabilidad. En este sentido se tiene un
criterio que establece que
J*n+→J*∞+ cuando n→∞
Donde J[n]es el error cuadrático medio producido por el algoritmo LMS a un tiempo n y su valor
final J*∞+ es una constante. Un algoritmo que satisface este criterio se dice que converge en su
cuadrático medio. Para que el algoritmo LMS satisfaga este criterio, su parámetro de tamaño de
paso tiene que satisfacer ciertas condiciones relacionadas a la eigen-estructura de la matriz de
correlación de las entradas.
Para desarrollar una estimación del vector gradiente J[n], la estrategia más obvia es substituir
el cálculo de la matriz de correlación R y la correlación cruzada, vector P, en la fórmula
~ 32 ~
donde
son las derivadas parciales de la función J[n] con respecto a la parte real de ak[n] y la parte
imaginaria bk[n] del k-ésimo coeficiente ponderada Wk [n], respectivamente, con k= 0, 1, 2, …, M-1
el cual es
J=-2P+2RW[n]
La elección más simple de cálculo para R y P es usar estimaciones instantáneas que son basadas
en los valores de las muestras del vector X[n] y la señal de referencia d[n], como se define por
y
Por lo tanto la estimación instantánea del vector gradiente es
Esta estimación es sesgada porque el cálculo del vector Ŵ*n+ es un vector random que depende
del vector X[n]. Nótese que [n] puede ser visto como un operador aplicado al error cuadrático
instantáneo e[n] 2.
De aquí es posible obtener una nueva relación recursiva para actualizar el vector Ŵ*n+:
Ŵ*n+1+= Ŵ*n++μX*n+[d*[n]-XH*n+ Ŵ*n+]
Equivalentemente podemos escribir los resultados anteriores en la forma de tres relaciones
básicas como sigue:
~ 33 ~
1. Salida del filtro: y [n]=ŴH[n]X[n]
2. Estimación de error e[n]= d[n]- y[n]
3. Adecuación de coeficientes de ponderación Ŵ*n+1+= Ŵ[n]+ μX*n+e**n+
4. Las ecuaciones de 1 y 2 definen la estimación de error, el cual está basado sobre el cálculo
corriente del vector Ŵ*n+. Nótese además que el segundo término, μX*n+e**n+ en la
ecuación de la relación 3, representa la corrección que es aplicada al cálculo corriente del
vector Ŵ*n+. El procedimiento iterativo es empezado con el valor inicial Ŵ[0] no conocido.
El algoritmo descrito, y resumido por las tres relaciones anteriores, es la forma compleja del
algoritmo LMS. Para cada iteración, se requiere conocer el valor más reciente de X[n], d[n], y Ŵ[n].
5.4 Simulaciones de un filtro adaptable
En esta sección se presentan los resultados obtenidos de las simulaciones del filtro FIR
adaptable, usando en primera instancia el algoritmo LMS, y posteriormente el NLMS de doble
paso:
~ 40 ~
VI. CONCLUSIONES
El carácter estable del filtro FIR radica en que no emplea una retroalimentación en su estructura,
en contraste con un filtro IIR. Así también, su linealidad de fase en la salida, es debida a la
respuesta impulsiva particular que tiene este tipo de filtro. Ambas características resultaron
atractivas para seleccionar al filtro FIR como soporte para este proyecto. Sin embargo se tiene
presente que este filtro seleccionado requerirá un mayor tiempo de procesamiento para una
determinada secuencia de entrada, si se compara con un filtro IIR, y esto es debido a que un filtro
FIR requiere un mayor número de coeficientes, elevando con ello el orden del filtro.
En lo referente al algoritmo de adaptación usado, en un inicio el LMS de paso fijo, si lo que se
requiere es un error de salida pequeño entonces habrá que usar un tamaño de paso pequeño, y el
costo a pagar es la lentitud en la convergencia; pero si lo que se necesita es rapidez en la
convergencia, entonces el paso a usar debe ser grande, lo cual conlleva a un error de salida
grande. A partir de esta situación, se observa la necesidad de implementar un algoritmo que
combine la ventaja de uno y otro tamaño de paso, logrando con ello elevar la eficiencia en cuanto
a rapidez de convergencia y disminución del error de salida, alcanzando altos niveles de
cancelación en un menor tiempo.
~ 41 ~
BIBLIOGRAFIA
*1+ Aljama C. T., Cadena M. M., Charleston V. S., Yáñez S. O., “PROCESAMIENTO DIGITAL DE
SEÑALES”, UAM-IZTAPALAPA, México, 1992.
*2+ Barrios R. J., “INTRODUCCION A LOS FILTROS DIGITALES”, UAM-IZTAPALAPA, México, 1992.
[3] Bellanger M. G., “ADAPTIVE DIGITAL FILTERS AND SIGNALS ANALYSIS”, Marcel Dekker, Inc., New York, USA, 1987.
*4+ Bose N. K., “DIGITAL FILTER, THEORY AND APPLICATIONS”, Krieger Publishing Company, Florida, USA.
[5] Burrus C. S., McClellan J. H., Oppenheim A. V., Parks T. W., Schafer R. W. Schuessler H. W. “EJERCICIOS DE TRATAMIENTO DE LA SEÑAL UTILIZANDO MATLAB V.4”, Prentice Hall, España,
1998.
*6+ Casco S. F. “Algoritmos LMS de Paso Variable”, Tesis doctoral, UAM-IZTAPALAPA, México, 1997.
*7+ Clarkson P. M. “OPTIMAL AND ADAPTIVE SIGNAL PROCESSING”, CRC Press, USA, 1993.
[8] DeFatta D.J., Lucas J. G., Hodkiss W. S., “DIGITAL SIGNALS PROCESSING: A SYSTEM DESING APPROACH”, John Willey & Sons, USA, 1986.
*9+ Hanselman D., Littlefield B. “MASTERING MATLAB A COMPREHENSIVE TUTORIAL AND REFERENCE”, The Matlab Curriculum Series. Prentice Hall, USA, 1996.
[10] Haykin S., “ADAPTIVE FILTER THEORY”, Prentice-Hall, New Jersey, USA, 1996.
[11] Ingle V. K., Proakis J. G., “DIGITAL SIGNAL PROCESSING USING MATLAB”, Brooks/CoIe Thomson Learning, Canada, 2000.
[12] Jenkins W. K., Hull A. W., Strait J. C., Schnaufer B.A., Li Xia O “ADVANCED CONCEPTS lN
ADAPTIVE SIGNAL PROCESSING”, kluwer Academic publishers, USA, 1996.
[13] Papoulis A. “SISTEMAS DIGITALES Y ANALOGICOS, TRANSFORMADAS DE FOURIER,
ESTIMACION ESPECTRAL”, Marcombo, Barcelona, España, 1986.
[14] Stanley W. D., “DIGITAL SIGNAL PROCESSING”, Preston Publishing, USA.
*15+ Velez S. N. “LAS TRANSFORMADAS EN LA INGENIERIA Y CIENCIAS”, Limusa Noriega Editores,
México, 1997.
[16] “MATLAB USER’S GUIDE”, The Math Works Inc., USA, 1993.