Вы находитесь на странице: 1из 6

Cancelador_eco

DSP - Canceladores de eco basados en LMS y NLMS

Virginia Marchesano

Nicolás de León

Introducción
Fundamento Teórico
Resultados en Matlab
Implementación en el DSP
Conclusiones del proyecto

Introducción:

El problema del eco es bien conocido en el ámbito de la telefonía clásica, donde los efectos del retardo de línea
sobre una comunicación establecida en medianas y grandes distancias resultaban bastante molestos. Pero el eco
presente en estos casos, producto del desbalance entre dos y cuatro hilos, no es el único caso de eco. Es más, con el
creciente aumento de los sistemas telefónicos "manos libres", muy utilizados en los vehículos, o en las oficinas, al
igual que con los teléfonos inalámbricos, surge otro tipo de eco: el eco acústico. Este eco es producto de la
realimentación de la señal que emite el parlante, a través del micrófono. La siguiente figura muestra un esquema de lo
que ocurre con el eco acústico.

La manera de evitar que esa realimentación acústica se propague a través de la línea telefónica deteriorando
consideráblemente la señal y provocando molestias para el interlocutor, es cancelar la señal de eco mediante algún
filtro. Un método clásico y sencillo, que se encuentra dentro de la clasificación de filtros adaptativos, es el de Least
Mean Squares o más conocido por su sigla, LMS. Existen mejoras sobre el algoritmo básico de LMS, como por
ejemplo, la normalización del coeficiente de adaptación (mu) a través de la potencia. A su vez, hay diversas formas de
implementar el cálculo o una estimación de la potencia. En nuestro caso optamos en primera instancia por la versión
básica del LMS. Luego, para ver la mejora que introduce la normalización del coeficiente de adaptación tomando en

http://iie.fing.edu.uy/ense/asign/dsp/proyectos/2001/grupo_h_canc_eco/Cancelador_eco.htm[24/09/2010 12:10:44 p.m.]


Cancelador_eco

cuenta la potencia de señal, implementamos la versión normalizada. El objetivo de este proyecto fue tomar contacto
con los mecanismos de cancelación de eco en su idea básica de funcionamiento. De más esta decir que existen muchos
otros algoritmos, modificaciones y consideraciones sobre los tratados en este proyecto, algunas de los cuales
mencionaremos mas adelante.

Fundamento Teórico:

Más que a un fundamento teórico del proyecto, apuntamos a una "justificación" de los puntos más importantes del
mismo.

¿Por qué la elección de un filtro FIR? Según resultados obtenidos en [3], el uso de un filtro IIR no trae aparejadas
mejoras significativas en la performance del cancelador. Fundamentalmente esto se basa en tres o cuatro ideas.
Primero, no es trivial garantizar que un algoritmo IIR alcance la mejor performance posible que el modelo IIR pueda
ofrecer, debido a la probable existencia de un mínimo local. Lo que se puede obtener, basados en los resultados de
Hankel para aproximación con mínimos cuadrados, son cotas superiores e inferiores para la norma del error en una
implementación con filtros IIR. Luego, si comparamos con los resultados que se obtienen para la solución óptima de
un algoritmo con flitro FIR (minimizando el error cuadrático medio), graficando en un rango de hasta 1500
coeficientes, se puede apreciar que la solución para una implementación con FIR queda entre medio de las dos cotas
de la solución con IIR y que a su vez, la diferencia en la norma del error obtenida en cada implementación, es muy
poca cuando superamos los 500 coeficientes.

¿Por qué la elección de un filtro adaptativo? Para el trabajo con señales dinámicas y no estacionarias como la voz, es
necesaria la adaptación del filtro a los bruscos cambios de la selñal de entrada. Mientras que un filtro transversal (tipo
Wiener) solo se aplicaría a señales que son procesos estacionarios para los cuales conozco las propiedades estadísticas,
el propósito de un filtro adaptativo es justamente no depender de esta hipótesis, generalmente falsa en la realidad, para
funcionar. Un filtro adaptivo es aquel cuyos coeficientes son actualizados mediante un algoritmo que cumple con un
criterio de performance predefinido, que puede ser minimizar el error cuadrático medio, como es el caso del LMS. La
frecuencia de esta adaptación puede variar segun la implementación y el tipo de señales que manejamos. Es evidente
que un "refresco" de coeficientes con mayor frecuencia permite obtener una mejor adaptación del filtro, por eso es
usual que se recalculen los coeficientes con cada muestra. Sin embargo, recalcular los coeficientes con cada nueva
muestra aumenta la necesidad de cálculo y el retardo (tener presente que la cancelación del eco debe ser realizada en
tiempo real). Por otro lado, la performance del filtro mejora cuando aumentamos el número de coeficientes. Esto
genera una situación de compromiso entre la performance del filtro en cuanto a la cancelación y en lo que se refiere al
retardo. Para la implementación de un sistema en tiempo real se hace necesario el uso de DSP. Esta combinación de
DSP-filtro adaptativo, es una dupla frecuentemente encontrada en los sistemas de tratamiento de señales y de voz en
particular.

El algoritmo de LMS es un clásico dentro de este tipo de filtros. La ventaja en este algoritmo es la simplicidad de
implementación y la relatívamente buena performance. Lo que se alega en contra del algoritmo LMS o NLMS, es que
es muy costoso obtener un modelo acertado del "echo path" con este algoritmo en sistemas altamente reververantes,
debido a la necesidad de un elevado número de coeficientes, requiriendo por ende gran capacidad computacional y

http://iie.fing.edu.uy/ense/asign/dsp/proyectos/2001/grupo_h_canc_eco/Cancelador_eco.htm[24/09/2010 12:10:44 p.m.]


Cancelador_eco

bastante memoria. Dado que un cancelador de eco, para operar en tiempo real, debe poder ser implementado en un
único DSP, existen algunas implementaciones más eficientes que han sido desarrollados en los últimos 15 o 20 años.
Ejemplos de ello, son los que pasamos a mencionar a continuación.

Filtrado adaptativo en subbandas: La señal de entrada es procesada en M bandas idénticas a través de filtros de
análisis (idealmente pasabandas) y luego cada subbanda es submuestreada por un factor L (L < M para evitar
solapamientos luego, al recomponer). En el extremo lejano (parlante, por ejemplo), se aplica el mismo proceso que a la
señal de entrada y luego se pasa cada subbanda a través de un filtro adaptativo tipo LMS. Las subbandas
correspondientes de señal y extremo lejano son combinadas (sumadas como en el LMS común) obteniendo M bandas,
que luego son sobremuestreadas por L (vuelven a la frec. original) y filtradas en una etapa de síntesis. Finalmente, la
suma de las señales resultantes en cada banda, es la señal con el eco cancelado.

Filtrado adaptativo en el dominio de la frecuencia: Es una aplicación en bloques del LMS en el dominio de la
frecuencia. La versión que combina bajo costo de implementación con un retardo aceptable es denominada PBFDAF
(Partitioned Block Frequency Adaptive Filters). En esta implementación, el filtro adaptativo de N retardos, se
particiona en N/P (N/P entero) partes iguales Wj(k) (con j entre 0 y N/P - 1):

Wj(k) = w(k) , para k = [jP, (j+1)P - 1]

Wj(k) = 0 en otro caso

La expresión de w(k) es bastante compleja, por lo que no entraremos en detalle. La adaptación de w(k) en el paso n+1,
sigue cumpliendo en rasgos generales la expresión mostrada en el algoritmo LMS, solo que ahora se le agregan
transformadas de Fourier discretas (DFT) y el tratamiento en bloques de la señal. Para obtener más detalles sobre este
algoritmo, ver [1].

Cancelación Adaptiva del eco

La cancelación del eco acústico es una aplicación sencilla de los filtros adaptativos. Podemos ver al eco como ruido
interferente, aditivo, en el sistema. La clave de la cancelación del eco es una buena estimación del medio de
propagación (eco path). El filtro debe dar a la salida, una señal que se aproxime lo más posible al eco acústico. Las
ecuaciónes que rigen este algoritmo son muy simples:

1) Cálculo del eco: Vaprox(n) = H(n)*U(n)

Donde H(n)={h0,h1,..., hM-1}, U(n)={u(n), u(n-1),....., u(n-M+1)} y M el número de retardos del filtro.

2) Estimación del error: e(n) = v(n) - Vaprox(n)

3) Adaptación de coeficientes: hj(n+1) = hj(n) + mu*e(n)*u(n-k), siendo j el índice del coeficiente.

El parámetro mu, es el coeficiente de adaptación, es positivo y usualmente menor que 2. En la versión normalizada
(NLMS), se puede sustituir este parámetro aquí considerado como estático, por otro que contemple la potencia de la
señal de entrada. Lllamémosle k(u) en este caso, k(u) = mu / Potencia(u). Una manera sencilla de estimar la potencia
de señal, sin recurrir a la estricta y tediosa definición, es la expresión recursiva que planteamos a continuación:

Pu(n) = (1-b)*Pu(n-1) + b*u(n)*u(n) , con b positivo y menor que 2.

El parámetro b es conocido como "forgetting factor" y mientras se tome menor que 2, los errores de redondeo pueden
considerarse despreciables. Este estimador es el que empleamos en nuestro algoritmo normalizado.

http://iie.fing.edu.uy/ense/asign/dsp/proyectos/2001/grupo_h_canc_eco/Cancelador_eco.htm[24/09/2010 12:10:44 p.m.]


Cancelador_eco

Resultados en Matlab:

A los efectos de probar el algoritmo LMS, se implementaron algunas versiones en Matlab hasta obtener resultados
satisfactorios. Se implementaron tres subrutinas: una para generar el eco a partir de la señal de extremo lejano y el
retardo supuesto, otra que realiza la actualización de coeficientes y finalmente, la que implementa el cancelador en si.
Los parámetros del algoritmo son: la señal de audio, el eco, el número de retardos del filtro adaptativo y el coeficiente
de adaptación del filtro (mu). Se realizaron pruebas para diferentes archivos .wav. Las rutinas (en Matlab 5.0)
empleadas son eco.m, coef.m y lms512.m.

A continuación se muestran los resultados obtenidos al aplicar el algoritmo con 512 coeficientes, con un retardo para la
señal de eco de unos 25 ms, para el archivo ty.wav (optamos por este por ser el de menor tamaño).

La gráfica anterior muestra la señal de audio de entrada (azul) y el eco supuesto (rojo). Luego se muestra la salida del
filtro (en azul) comparada con el eco (verde). Para escuchar el eco que ingresa al sistema aquí. La salida se puede
escuchar acá.

http://iie.fing.edu.uy/ense/asign/dsp/proyectos/2001/grupo_h_canc_eco/Cancelador_eco.htm[24/09/2010 12:10:44 p.m.]


Cancelador_eco

Implementación en un DSP 56303

Inicialmente se implementaron los algoritmos LMS512.asm y NLMS512.asm para los algoritmos LMS y NLMS
respectivamente. Se observó que los resultados en el caso del LMS concordaban bastante con las simulaciones hechas
en Matlab, resultando que la cancelación obtenida era apenas perceptible por el oído. En vista de esto, se probó
aumentando el número de coeficientes del filtro adaptativo, tanto en el LMS como en el NLMS, a 1024 (máximo
posible con la memoria disponible en el DSP). Los algoritmos que implementan esta nueva versión son el LMS1k.asm
y el NLMS1k.asm. El aumento del número de coeficientes mejoró la cancelación, haciendo perceptible la diferencia
entre la señal con eco y la señal de salida (cancelada).

Conclusiones del proyecto

Se implementaron dos algoritmos canceladores de eco basados en LMS: inicialmente la versión básica y luego la
normalizada. Si bien la idea de implementar la versión normalizada era aumentar la cancelación del eco, no se notaron
mejoras significativas (al menos no perceptibles por el oído). Posteriormente, buscando nuevamente una marcada
atenuación del eco, se aumentó el número de coeficientes del filtro. En este caso si se lograron mejoras apreciables.

Otras mejoras que se le podrían agregar al algoritmo planteado:

Emplear una cancelación por bloques (BLMS) o por subbandas: Esto permitiría mejorar la convergencia.
Complementar el sistema con un algoritmo de control y eliminación de errores residuales.

En lo que se refiere a este último punto, un buen algoritmo de control (ver figura) debe marcar cuando es necesario
ejecutar el algoritmo de cancelación. Un ejemplo de algoritmo de control se puede encontrar en [1]. Se deben tomar en
consideración aspectos tales como un umbral para determinar la presencia de eco, distinguiéndola del ruido local.
También se debe tener especial cuidado con las situaciones de "double talk", un problema no trivial en los teléfonos
manos libres. Es así que en la figura se muestran lazos de control que salen del controlador regulando la adaptación y
la señal de salida del filtro y también desde la entrada d(n) y la salida e(n) hacia el controlador. Los dos primeros lazos

http://iie.fing.edu.uy/ense/asign/dsp/proyectos/2001/grupo_h_canc_eco/Cancelador_eco.htm[24/09/2010 12:10:44 p.m.]


Cancelador_eco

significan al control sobre la necesidad de adaptación según las variables de entrada al controlador, dadas por los
segundos lazos mencionados.

En el diagrama también aparece un bloque de procesamiento no lineal, que no mas que un "recorte" de la salida en
función de un umbral predeterminado como valor del error residual. Estos errores residuales pueden deberse a "eco no
lineal". El eco no lineal puede dividirse en dos categorías: sin memoria y con memoria. El eco sin memoria es el que
generalmente se presenta en forma de saturación en el amplificador de potencia, mientras que el eco no lineal con
memoria, es producido por el altoparlante, debido a que las constantes de tiempo electromecánicas son usualmente
mucho mayores que el período de muestreo. Existen algoritmos pre-adaptativos para compensar este tipo de eco pero
nosotros no entraremos en este tema. Pueden obtener mayor información sobre estos algoritmos en [4].

Referencias

[1] Real Time Implementationof an Acoustic Echo Canceller on DSP. Koen Eneman and Marc Moonen. Katholieke
Universiteit Leuven, ESAT. Belgium.

[2] Improvements in Audio Processing and Language Modeling in CU Communicator. Jiamping Zhang, Wayne Ward,
Bryan Pellom, Xiuyang Yu, Kadri Hacioglu.

[3] Performance Assessments of FIR vs IIR models in acoustic echo cancellation Athanasios p. Liavas, Phillip A.
Regalia. Dèpartement SIM. Institut National des Telecommunications, Evry Cedex. France.

[4] Adaptation of acoustic acho cancellers incorporating a memoriless nonlinearity. Alexander Stebger, Walter
Kellermann, Rudolf Rabenstein. University of Erlangen- Nüremberg. Telecommunications Laboratory. Germany.

http://iie.fing.edu.uy/ense/asign/dsp/proyectos/2001/grupo_h_canc_eco/Cancelador_eco.htm[24/09/2010 12:10:44 p.m.]

Вам также может понравиться