universidad autonoma metropolitana …148.206.53.84/tesiuami/uami15674.pdf · toolbox para...

41

Upload: doankien

Post on 01-Oct-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

~ 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:

~ 10 ~

~ 11 ~

~ 12 ~

3.3 Secuencias como señales continuas discretizadas

~ 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.

~ 27 ~

~ 28 ~

~ 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:

~ 34 ~

~ 35 ~

~ 36 ~

~ 37 ~

~ 38 ~

~ 39 ~

~ 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.