Está en la página 1de 9

CANCELADOR DE ECO

Introduccin:
El problema del eco es bien conocido en el mbito de la telefona clsica,
donde los efectos del retardo de lnea sobre una comunicacin 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 ms, con el creciente aumento de los sistemas telefnicos "manos
libres", muy utilizados en los vehculos, o en las oficinas, al igual que con los
telfonos inalmbricos, surge otro tipo de eco: el eco acstico. Este eco es
producto de la realimentacin de la seal que emite el parlante, a travs del
micrfono. La siguiente figura muestra un esquema de lo que ocurre con el eco
acstico.

La manera de evitar que esa realimentacin acstica se propague a travs


de la lnea telefnica deteriorando considerblemente la seal y provocando
molestias para el interlocutor, es cancelar la seal de eco mediante algn filtro.
Un mtodo clsico y sencillo, que se encuentra dentro de la clasificacin de
filtros adaptativos, es el de Least Mean Squares o ms conocido por su sigla,
LMS. Existen mejoras sobre el algoritmo bsico de LMS, como por ejemplo, la
normalizacin del coeficiente de adaptacin (mu) a travs de la potencia. A su
vez, hay diversas formas de implementar el clculo o una estimacin de la

potencia. En nuestro caso optamos en primera instancia por la versin bsica del
LMS. Luego, para ver la mejora que introduce la normalizacin del coeficiente
de adaptacin tomando en cuenta la potencia de seal, implementamos la versin
normalizada. El objetivo de este proyecto fue tomar contacto con los mecanismos
de cancelacin de eco en su idea bsica de funcionamiento. De ms esta decir
que existen muchos otros algoritmos, modificaciones y consideraciones sobre los
tratados en este proyecto, algunas de los cuales mencionaremos mas adelante.

Fundamento Terico:
Ms que a un fundamento terico del proyecto, apuntamos a una "justificacin"
de los puntos ms importantes del mismo.
Por qu la eleccin de un filtro FIR? Segn 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 mnimo local.
Lo que se puede obtener, basados en los resultados de Hankel para aproximacin
con mnimos cuadrados, son cotas superiores e inferiores para la norma del error
en una implementacin con filtros IIR. Luego, si comparamos con los resultados
que se obtienen para la solucin ptima de un algoritmo con flitro FIR
(minimizando el error cuadrtico medio), graficando en un rango de hasta 1500
coeficientes, se puede apreciar que la solucin para una implementacin con FIR
queda entre medio de las dos cotas de la solucin con IIR y que a su vez, la
diferencia en la norma del error obtenida en cada implementacin, es muy poca
cuando superamos los 500 coeficientes.

Por qu la eleccin de un filtro adaptativo? Para el trabajo con seales dinmicas y no


estacionarias como la voz, es necesaria la adaptacin del filtro a los bruscos cambios de la

selal de entrada. Mientras que un filtro transversal (tipo Wiener) solo se aplicara

a seales que son procesos estacionarios para los cuales conozco las propiedades
estadsticas, el propsito de un filtro adaptativo es justamente no depender de
esta hiptesis, 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 cuadrtico medio, como es el caso del LMS. La frecuencia de esta
adaptacin puede variar segun la implementacin y el tipo de seales que
manejamos. Es evidente que un "refresco" de coeficientes con mayor frecuencia
permite obtener una mejor adaptacin 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 clculo y el retardo
(tener presente que la cancelacin del eco debe ser realizada en tiempo real). Por
otro lado, la performance del filtro mejora cuando aumentamos el nmero de
coeficientes. Esto genera una situacin de compromiso entre la performance del
filtro en cuanto a la cancelacin y en lo que se refiere al retardo. Para la
implementacin de un sistema en tiempo real se hace necesario el uso de DSP.
Esta combinacin de DSP-filtro adaptativo, es una dupla frecuentemente
encontrada en los sistemas de tratamiento de seales y de voz en particular.
El algoritmo de LMS es un clsico dentro de este tipo de filtros. La ventaja en
este algoritmo es la simplicidad de implementacin y la relatvamente 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 nmero de
coeficientes, requiriendo por ende gran capacidad computacional y bastante
memoria. Dado que un cancelador de eco, para operar en tiempo real, debe poder
ser implementado en un nico DSP, existen algunas implementaciones ms
eficientes que han sido desarrollados en los ltimos 15 o 20 aos. Ejemplos de
ello, son los que pasamos a mencionar a continuacin.
Filtrado adaptativo en subbandas: La seal de entrada es procesada en M
bandas idnticas a travs de filtros de anlisis (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 seal de entrada y luego se pasa
cada subbanda a travs de un filtro adaptativo tipo LMS. Las subbandas
correspondientes de seal y extremo lejano son combinadas (sumadas como en el
LMS comn) obteniendo M bandas, que luego son sobremuestreadas por L
(vuelven a la frec. original) y filtradas en una etapa de sntesis. Finalmente, la
suma de las seales resultantes en cada banda, es la seal con el eco cancelado.

Filtrado adaptativo en el dominio de la frecuencia: Es una aplicacin en


bloques del LMS en el dominio de la frecuencia. La versin que combina bajo
costo de implementacin con un retardo aceptable es denominada PBFDAF
(Partitioned Block Frequency Adaptive Filters). En esta implementacin, 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 expresin de w(k) es bastante compleja, por lo que no entraremos en detalle.
La adaptacin de w(k) en el paso n+1, sigue cumpliendo en rasgos generales la
expresin mostrada en el algoritmo LMS, solo que ahora se le agregan
transformadas de Fourier discretas (DFT) y el tratamiento en bloques de la seal.
Para obtener ms detalles sobre este algoritmo, ver [1].

Cancelacin Adaptiva del eco

La cancelacin del eco acstico es una aplicacin sencilla de los filtros


adaptativos. Podemos ver al eco como ruido interferente, aditivo, en el sistema.
La clave de la cancelacin del eco es una buena estimacin del medio de
propagacin (eco path). El filtro debe dar a la salida, una seal que se aproxime
lo ms posible al eco acstico. Las ecuacines que rigen este algoritmo son muy
simples:
1) Clculo 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 nmero
de retardos del filtro.
2) Estimacin del error: e(n) = v(n) - Vaprox(n)
3) Adaptacin de coeficientes: hj(n+1) = hj(n) + mu*e(n)*u(n-k), siendo j el
ndice del coeficiente.
El parmetro mu, es el coeficiente de adaptacin, es positivo y usualmente menor
que 2. En la versin normalizada (NLMS), se puede sustituir este parmetro aqu
considerado como esttico, por otro que contemple la potencia de la seal de
entrada. Lllammosle k(u) en este caso, k(u) = mu / Potencia(u). Una manera

sencilla de estimar la potencia de seal, sin recurrir a la estricta y tediosa


definicin, es la expresin recursiva que planteamos a continuacin:
Pu(n) = (1-b)*Pu(n-1) + b*u(n)*u(n) , con b positivo y menor que 2.
El parmetro 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.

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 seal de extremo lejano y el
retardo supuesto, otra que realiza la actualizacin de coeficientes y finalmente, la
que implementa el cancelador en si. Los parmetros del algoritmo son: la seal
de audio, el eco, el nmero de retardos del filtro adaptativo y el coeficiente de
adaptacin 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 continuacin se muestran los resultados obtenidos al aplicar el algoritmo con
512 coeficientes, con un retardo para la seal de eco de unos 25 ms, para el
archivo ty.wav (optamos por este por ser el de menor tamao).

La grfica anterior muestra la seal 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.

Implementacin 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 cancelacin
obtenida era apenas perceptible por el odo. En vista de esto, se prob
aumentando el nmero de coeficientes del filtro adaptativo, tanto en el LMS
como en el NLMS, a 1024 (mximo posible con la memoria disponible en el
DSP). Los algoritmos que implementan esta nueva versin son el LMS1k.asm y
el NLMS1k.asm. El aumento del nmero de coeficientes mejor la cancelacin,
haciendo perceptible la diferencia entre la seal con eco y la seal de salida
(cancelada).
Conclusiones del proyecto
Se implementaron dos algoritmos canceladores de eco basados en LMS:
inicialmente la versin bsica y luego la normalizada. Si bien la idea de
implementar la versin normalizada era aumentar la cancelacin del eco, no se

notaron mejoras significativas (al menos no perceptibles por el odo).


Posteriormente, buscando nuevamente una marcada atenuacin del eco, se
aument el nmero de coeficientes del filtro. En este caso si se lograron mejoras
apreciables.
Otras mejoras que se le podran agregar al algoritmo planteado:

Emplear una cancelacin por bloques (BLMS) o por subbandas: Esto


permitira mejorar la convergencia.
Complementar el sistema con un algoritmo de control y eliminacin 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 cancelacin. Un
ejemplo de algoritmo de control se puede encontrar en [1]. Se deben tomar en
consideracin aspectos tales como un umbral para determinar la presencia de eco,
distinguindola del ruido local. Tambin se debe tener especial cuidado con las
situaciones de "double talk", un problema no trivial en los telfonos manos libres.
Es as que en la figura se muestran lazos de control que salen del controlador
regulando la adaptacin y la seal de salida del filtro y tambin desde la entrada
d(n) y la salida e(n) hacia el controlador. Los dos primeros lazos significan al
control sobre la necesidad de adaptacin segn las variables de entrada al
controlador, dadas por los segundos lazos mencionados.

En el diagrama tambin aparece un bloque de procesamiento no lineal, que no


mas que un "recorte" de la salida en funcin 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 categoras: sin memoria y con memoria.
El eco sin memoria es el que generalmente se presenta en forma de saturacin 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
electromecnicas son usualmente mucho mayores que el perodo de muestreo.
Existen algoritmos pre-adaptativos para compensar este tipo de eco pero nosotros
no entraremos en este tema. Pueden obtener mayor informacin 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. Dpartement 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- Nremberg. Telecommunications Laboratory. Germany.

También podría gustarte