Escolar Documentos
Profissional Documentos
Cultura Documentos
INSTITUTO POLITÉCNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA
SECCIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN
ESIME CULHUACAN
“Algoritmo LMS con Error Codificado Usando un DSP ”
TESIS
Que para obtener el grado de:
MAESTRO EN CIENCIAS DE INGENIERÍA EN MICROELECTRÓNICA
Presenta:
ING. JUAN GERARDO ÁVALOS OCHOA
Asesores:
DR. JUAN CARLOS SÁNCHEZ GARCÍA
DR. JOSÉ VELÁZQUEZ LÓPEZ
México D.F. 2008
glP'l
INSTITUTOPOLITECNICO
NACIONAL
SECRETARíADE INVESTIGACIÓN
Y POSGRADO
ACTADE REVIS/ÓN
DE IES/S
porel alumno:
Presentada
AVALOS OCHOA JUANGERARDO
Apellidopaterno nombre(s)
Conregistro:B 0 6 1 3 4 1
asp¡rante
de:
MAESTRÍA EN CIENCIAS EN MICROELECTRÓNICA
DE INGENIERíA
Después de intercambiaropiniones los miembros de la Comisión manifestaronSU
APROBACIONDE LA IESIS, en vifud de que satisfacelos requisitosseñaladospor las
disposiciones
reglamentarias
vigentes.
LA COMISIÓNREVISORA
Directorde tesis
S .E .P ,
/ sEccroNDEE ruDtos DE
o EtrwEsncnmr\
Es¡MECULHIJACAI.¡
DELCOLEGIO
EL PRESIDENTE
INSTITATO POLITECNICO NACIONAL
SECRETARIADE INVESTIGACION Y POSGRADO
CARTACESIONDE DERECHOS
En la Ciudad de Méxtqa el día 12 del mes Junio del ario 2008_, el (la) que suscribe
Juan Gerardo Avalos Ochoa alumno (a) del Programa de Maeskía en Ciencias de Ingeniería
en Microelectrónica_ con número de registro _80613,11,adscrito a SEPI ESIME Culhuacan,
manifiestaque es autor (a) intelectual del presentetrabajo de Tesis bajo la dirección del Dr.
Juan Carlos SánchezGarcía y cede los derechosdel trabajo intitulado Algoritmo LMS con
error codificado usando un DSP, al Instituto Politécnico Nacional para su difusión, con fines
académicosy de investigación.
Los usuarios de la información no deben reproducir el contenido textual, gráficaso datos del
trabajo sin el permiso expreso del autor ylo director del trabajo. Este puede ser obtenido
escribiendo a Ia siguiente dirección gerardo.avalos@prodigy.net.mx.
jcsanchezgarcia@gmail.com Si el permiso se otorga, el usuario deberá dar el
agradecimientocorrespondientey citar la fuente del mismo.
Nombrey firma
AGRADECIMIENTOS
A mis Padres, gracias a su cariño, guía y apoyo he logrado alcanzar uno de mis objetivos
dentro de mi formación profesional.
A mis Hermanos, por comprenderme y apoyarme en todo momento.
A mis Asesores, por sus consejos y apoyo, sin los cuales este trabajo no hubiera podido
ser realizado.
A mis amigos, por compartir conmigo tantos instantes de alegría.
Al Instituto Politécnico Nacional, por la formación académica recibida.
Al Consejo Nacional de Ciencia y Tecnología, por el apoyo otorgado a través de la beca
para estudios de Maestría.
ÍNDICE
Índice de Figuras y Tablas I
Acrónimos IV
Resumen V
Abstract V
Objetivo VI
Justificación VI
Introducción VII
Capítulo I. Filtrado Adaptivo 1
1.1 Filtros Digitales 2
1.2 Estructuras Adaptivas 4
1.3 Filtro de Wiener 5
1.4 Algoritmo de Mínimos Cuadrados Promediados LMS 8
1.6 Aplicaciones Principales 11
1.7 Referencias 14
Capítulo II. Algoritmo de mínimos Cuadrados Promediados con Error Codificado 15
2.1 Modificaciones del Algoritmo LMS 16
2.1.1 Algoritmos de Signo 16
2.1.2 Algoritmo LMS Normalizado (NLMS) 17
2.1.3 Algoritmo Log‐Log LMS 17
2.1.4 Algoritmo de Paso Variable (VSLMS) 18
2.1.5 Algoritmo de Paso Variable Normalizado en el Tiempo (TVSLMS) 19
2.1.6 Algoritmo VECLMS 20
2.1.7 Algoritmo CC LMS 21
2.2 Algoritmo LMS con Error Codificado 21
2.3 Representación de Números de Punto Fijo y Flotante en Procesadores Digitales
de Señales 22
2.4 Codificación y Recodificación del Error 25
2.5 Referencias 29
Capítulo III. Implementación del Algoritmo de mínimos Cuadrados Promediados con Error
Codificado (ECLMS) en el DSP TMS320C6713 31
3.1 Realización de Sistemas Adaptivos 32
3.1.1 Microcontroladores 32
3.1.2 Procesadores de Propósito General 33
3.1.3 Field Programmable Gate Array (FPGA) 34
3.1.4 Procesadores Digitales de Señales (DSP) 35
3.2 Procesador Digital de Señales TMS320C6713 37
3.3 Tarjeta de pruebas DSK TMS320C6713 41
TM
3.4 Ambiente de desarrollo Code Composer Studio 43
3.5 Implementación del Algoritmo ECLMS en el DSK TMS320C6713 44
3.6 Referencias 45
Capítulo IV. Resultados 47
4.1 Predictor Lineal 47
4.2 Identificador de Sistemas 55
4.3 Cancelador de Ruido 59
4.4 Algoritmo de Mínimos Cuadrados Promediados con Error Codificado Sobre
Adaptado (OAECLMS) 65
4.5 Referencias 71
Conclusiones y Trabajo a Futuro 72
Apéndice
A. Código del Programa Desarrollado 74
B. Publicaciones 79
ÍNDICE DE FIGURAS Y TABLAS
Capítulo I. Filtrado Adaptivo.
Fig. 1.1 Implementación de Filtro Digital 1
Fig. 1.2 Filtro FIR utilizando una estructura transversal 4
Fig. 1.3 Estructura general de los filtros adaptivos 5
Fig. 1.4 Estructura básica del filtro de Wiener 6
Fig. 1.5 Superficie de error 7
Fig. 1.6 Filtro adaptivo como identificador de sistemas 12
Fig. 1.7 Filtro adaptivo como predictor 12
Fig. 1.8 Filtro adaptivo como cancelador de ruido 13
Fig. 1.9 Filtro adaptivo como modelador inverso de canales de comunicación 13
Capítulo II. Algoritmo de mínimos Cuadrados Promediados con Error Codificado ECLMS.
Fig. 2.1 Representación Numérica 23
Fig. 2.2 Representación de datos en punto flotante 24
Fig. 2.3 Representación de datos en punto flotante de doble precisión 24
Fig. 2.4 Estructura de filtrado adaptivo usando el algoritmo ECLMS 26
Capítulo III. Implementación del Algoritmo de mínimos Cuadrados Promediados con Error
Codificado (ECLMS) en el DSP TMS320C6713.
Fig. 3.1 Diagrama de bloques del TMS320C6713 38
Fig. 3.2 Tarjeta DSK TMS320C6713 41
Fig. 3.3 Diagrama de bloques del DSK TMS320C6713 42
Fig. 3.4 Ciclo de diseño de aplicaciones para la familia TMS320C6000 43
Fig. 3.5 Comparación de los algoritmos LMS y ECLMS 44
Capítulo IV. Resultados.
Fig. 4.1 Filtro Adaptivo como Predictor Lineal 47
Fig. 4.2 Señales de voz de entrada y salida del predictor lineal usando el algoritmo LMS 48
Fig. 4.3 Acercamiento de la señal deseada 49
I
Fig. 4.4 Acercamiento de la señal de salida del predictor lineal usando el algoritmo
LMS 49
Fig. 4.5 Espectrogramas de la señal de entrada y la señal de salida del predictor lineal
usando el algoritmo LMS 49
Fig. 4.6 Señales de salida del predictor lineal usando el algoritmo LMS con diferentes
factores de convergencia 50
Fig. 4.7 Acercamiento de la señal de salida del filtro adaptivo usando el algoritmo LMS
con un µ = 1 X 10‐10 50
Fig. 4.8 Señales de voz de entrada y salida del predictor lineal usando el algoritmo
ECLMS con error codificado a 4 bits 51
Fig. 4.9 Acercamiento de la señal de salida del predictor lineal usando el algoritmo
ECLMS con error codificado a 4 bits 51
Fig. 4.10 Espectrogramas de la señal de entrada y la señal de salida del predictor lineal
usando el algoritmo ECLMS con error codificado a 4 bits 52
Fig. 4.11 Señales de salida del predictor lineal usando el algoritmo ECLMS codificado a
4 bits con diferentes factores de convergencia 53
Fig. 4.12 Señales de salida del predictor lineal usando el algoritmo ECLMS codificado a
8 bits con diferentes factores de convergencia 54
Fig. 4.13 Acercamiento de la señal de salida del predictor lineal usando el algoritmo
ECLMS con error codificado a 8 bits y un factor de convergencia µ = 1 X 10‐10 54
Fig. 4.14 Espectrogramas de las señales de salida del predictor lineal usando el algoritmo
ECLMS con error codificado a 8 bits con diferentes factores de convergencia 55
Fig. 4.15 Filtro adaptivo como identificador de sistemas 56
TM
Fig. 4.16 Diseño del filtro pasa bajas en la herramienta FDATool de MATLAB 56
Fig. 4.17 Respuesta en frecuencia del sistema desconocido 57
Fig. 4.18 Respuesta en frecuencia del identificador usando el algoritmo LMS con
un factor de convergencia µ=1 X 10‐14 57
Fig. 4.19 Respuesta en frecuencia del identificador usando el algoritmo ECLMS con
error codificado a 8 bits y un factor de convergencia µ=1 X 10‐14 58
Fig. 4.20 Respuesta en frecuencia del identificador usando el algoritmo LMS con
un factor de convergencia µ=1 X 10‐12
58
Fig. 4.21 Respuesta en frecuencia del identificador usando el algoritmo ECLMS con
error codificado a 8 bits y un factor de convergencia µ=1 X 10‐12 59
Fig. 4.22 Filtro adaptivo como cancelador de ruido 59
Fig. 4.23 Señales utilizadas en la estructura de cancelador de ruido 60
Fig. 4.24 Espectrogramas de las señales utilizadas en el cancelador de ruido 60
Fig. 4.25 Señal de salida del cancelador de ruido usando el algoritmo LMS 61
II
Fig. 4.26 Espectrograma de la señal de salida del cancelador de ruido usando el
algoritmo LMS 61
Fig. 4.27 Señales de salida del cancelador de ruido usando el algoritmo ECLMS 62
Fig. 4.28 Espectrograma de las señales de salida del cancelador de ruido usando el
Algoritmo ECLMS 62
Fig. 4.29 Señales utilizadas en la estructura de cancelador de ruido 63
Fig. 4.30 Espectrogramas de las señales utilizadas en el cancelador de ruido 63
Fig. 4.31 Forma de onda en el tiempo y espectrograma de la señal de salida del
cancelador de ruido usando el algoritmo LMS 64
Fig. 4.32 Formas de onda en el tiempo de las señales de salida del cancelador de ruido
usando el algoritmo ECLMS 64
Fig. 4.33 Espectrogramas de las señales de salida del cancelador de ruido usando el
algoritmo ECLMS 65
Fig. 4.34 Señales de entrada y salida del predictor lineal, usando los algoritmos ECLMS
y OAECLMS con error codificado a 4bits 67
Fig. 4.35 Espectrogramas de la señal de entrada y la señal de salida del predictor lineal,
usando los algoritmos ECLMS y OAECLMS con error codificado a 4 bits 67
Fig. 4.36 Acercamiento a la señal de salida del predictor lineal, usando el OAECLMS con
error codificado a 4 bits 68
Fig. 4.37 Señales de entrada y salida del predictor lineal usando los algoritmos ECLMS y
OAECLMS con error codificado a 8bits 68
Fig. 4.38 Espectrogramas de la señal de entrada y la señal de salida del predictor lineal,
usando los algoritmos ECLMS y OAECLMS con error codificado a 8 bits 69
Fig. 4.39 Acercamiento a la señal de salida del predictor lineal, usando el OAECLMS con
error codificado a 8 bits 69
Lista de Tablas
Tabla. 3.1 Formato de datos del procesador TMS320C6713 40
Tabla 4.1 Resultados obtenidos en la estructura de predictor lineal 70
III
ACRÓNIMOS
ALU Unidad Lógico‐Aritmética (Arithmetic Logic Unit)
ADC Convertidor Analógico / Digital (Analog to Digital Converter)
CPU Unidad de Procesamiento Central (Central Proccesing Unit)
DAC Convertidor Digital / Analógico (Digital to Analog Converter)
DP Doble Precisión (Double Precision)
DSP Procesador Digital de Señales (Digital Signal Processor)
ECLMS Mínimos Cuadrados Promediados con Error Codificado (Error Coded Least
Mean Square)
FIR Respuesta al Impulso Finito (Finite Impulse Response)
FPGA Dispositivos de Lógica Programable (Field Programmable Gate Array)
IIR Respuesta al Impulso Infinito (Infinite Impulse Response)
LMS Mínimos Cuadrados Promediados (Least Mean Square)
MPYSP Multiplicación de Precisión Sencilla (Multiply Single Precision)
MPYDP Multiplicación de Doble Precisión (Multiply Double Precision)
MSE Error Cuadrático Medio (Mean Square Error)
NLMS Mínimos Cuadrados Promediados Normalizado (Normalized Least Mean
Square)
NOP Retardo (No Operation)
OAECLMS Mínimos Cuadrados Promediados con Error Codificado Sobre Adaptado
(Over Adapted Error Coded Least Mean Square)
RAM Memoria de Acceso Aleatorio (Random Access Memory)
RLS Mínimos Cuadrados Recursivos (Recursive Least Square)
SP Precisión Sencilla (Single Precision)
VSLMS Mínimos Cuadrados Promediados de Paso Variable (Variable Step Least
Mean Square)
TVSNLMS Mínimos Cuadrados Promediados Normalizado de Paso Variable en el
Tiempo (Time Varying Size Normalized Least Mean Square)
IV
RESUMEN
El algoritmo de mínimos cuadrados promediados con error codificado (ECLMS) es una
variante que tiene por objetivo simplificar la aritmética del algoritmo LMS
convencional, reduciendo el número de operaciones de punto flotante y aumentando
así la velocidad de convergencia. En este trabajo se presenta la implementación en
hardware de los algoritmos LMS y ECLMS con el propósito de comparar su tiempo de
procesamiento, ya que anteriormente esta variante solo había sido probada con un
software de simulación como lo es MATLABTM. Para la implementación se decidió
utilizar el procesador digital de señales TMS320C6713 de Texas Instrument, ya que su
conjunto de instrucciones y arquitectura lo hacen una herramienta adecuada para el
desarrollo de algoritmos de procesamiento adaptivo. Se realizaron las pruebas en
tiempo real usando las estructuras adaptivas de predictor lineal, identificador de
sistemas y cancelador de ruido obteniéndose las formas de onda en el tiempo y los
espectrogramas respectivos. Los resultados obtenidos muestran que el algoritmo LMS
con error codificado presenta una velocidad de convergencia mayor que el algoritmo
LMS.
ABSTRACT
The error coded least mean square algorithm (ECLMS) is a variant whose objective is to
simplify the arithmetic of the conventional LMS algorithm, reducing the number of
floating point operations and increasing thus the convergence speed. In this work is
presented a hardware implementation of the LMS and ECLMS algorithms with the
intention to compare their processing time, since this variant has only been tested with
simulation software like MATLABTM. For the implementation it was decided to use the
digital signal processor TMS320C6713 from Texas Instrument, because his instruction
set and architecture makes him an appropriate tool for the development of adaptive
processing algorithms. The tests were done in real time using the adaptive structures
of lineal predictor, system identification and noise canceller obtaining the time wave
forms and the spectrograms respective. The obtained results show that the ECLMS
algorithm presents a greater convergence speed than the LMS algorithm.
V
OBJETIVO
Realizar diversas aplicaciones de filtrado adaptivo en tiempo real usando los
algoritmos LMS y ECLMS, con el propósito de comparar su tiempo de procesamiento y
velocidad de convergencia.
JUSTIFICACIÓN
La codificación del error en el algoritmo LMS es una propuesta que se realizó en la
Sección de Estudios de Posgrado e Investigación de la ESIME Culhuacan. Esta propuesta
tiene la finalidad de reducir la complejidad aritmética y aumentar la velocidad de
procesamiento, lo cual permite utilizar este algoritmo en filtros adaptivos para
sistemas de comunicación de alta velocidad.
El trabajo que aquí se presenta es parte de una línea de investigación que tiene por
objetivo realizar un circuito integrado que contenga un filtro adaptivo con el algoritmo
ECLMS. Anteriormente el análisis de este algoritmo solo se había hecho por medio de
una herramienta de simulación como lo es el software MATLABTM, por este motivo se
plantea realizar una implementación en hardware en tiempo real, para obtener la
velocidad de procesamiento y así realizar una comparación de los algoritmos ECLMS y
LMS.
VI
INTRODUCCIÓN
La contaminación de una señal por otra no deseada (ruido o distorsión), es uno de los
principales problemas que se encuentran en diversas aplicaciones de procesamiento de
señales y comunicaciones digitales. Este tipo de fenómenos se deben a procesos
variantes en el tiempo que en algunos casos son desconocidos. Por ejemplo durante la
transmisión de señales de un punto a otro el medio por el cual se transmite, el cual es
llamado comúnmente canal, puede introducir ruido o distorsión debido a las
variaciones de sus propiedades, las cuales la mayoría de las ocasiones son
desconocidas. Este problema puede solucionarse por medio del uso de filtros
adaptivos, los cuales sirven para disminuir o en algunas ocasiones eliminar por
completo la distorsión de la señal.
Los filtros adaptivos se usan en diferentes aplicaciones, entre las que se encuentran:
cancelador de eco telefónico, sistemas de navegación, identificador de sistemas,
predictor lineal, cancelador de ruido, ecualización de canales de comunicación,
mejoramiento de señales biomédicas, procesamiento de señales de radar, entre otras.
La característica principal de los filtros adaptivos es que pueden modificar su respuesta
durante la operación con el fin de lograr un comportamiento deseado, para esto es
necesario el uso de un algoritmo de adaptación que se encargue de actualizar los
coeficientes del filtro. Los algoritmos de adaptación más conocidos, son el algoritmo
RLS (Recursive Least Square – Mínimos Cuadrados Recursivos), y el algoritmo LMS
(Least Mean Square – Mínimos Cuadrados Promediados), donde el algoritmo LMS
posee una complejidad computacional baja pero el algoritmo RLS ofrece una mayor
velocidad de convergencia. Por este motivo se han realizado diversas modificaciones al
algoritmo LMS con el objetivo de obtener una velocidad de convergencia más rápida o
de simplificar la complejidad computacional.
En este trabajo se presenta la implementación en tiempo real en un procesador digital
de señales (DSP – Digital Signal Processor) del algoritmo ECLMS (Error Coded Least
Mean Square), el cual es una modificación del algoritmo LMS convencional que
presenta una complejidad computacional baja y aumenta la velocidad de
convergencia.
VII
En el capítulo I se presentan los principios de funcionamiento de los filtros adaptivos y
del algoritmo LMS, además de las principales aplicaciones en las que se usan este tipo
de filtros.
En el capítulo II se hace un análisis de algunas de las variantes del algoritmo LMS,
incluyendo el algoritmo ECLMS. También se muestran los efectos que produce la
codificación del error y las ventajas que se obtienen al trabajar con números enteros.
En el capítulo III se hace una revisión de las principales alternativas que existen para
implementar filtros digitales en tiempo real, además, se presenta el procesador digital
de señales (DSP) TMS320C6713 de Texas InstrumentsTM el cual fue elegido para la
implementación del algoritmo ECLMS.
En el capítulo IV se reportan los resultados obtenidos al comparar la implementación
en tiempo real de los algoritmos LMS y ECLMS en diferentes estructuras de filtrado
adaptivo.
El apéndice A contiene los archivos utilizados para la creación del proyecto y el
apéndice B los artículos publicados.
VIII
CAPÍTULO I
FILTRADO ADAPTIVO
En el campo del procesamiento digital de señales, los filtros digitales se diseñan para
tener una respuesta en frecuencia deseada que altere el espectro de una señal de
entrada. Los objetivos de los filtros son reducir o remover el ruido de una señal,
extraer información de señales o separar dos señales previamente combinadas.
Un filtro digital es un algoritmo matemático implementado en un hardware o software
que pueda recibir datos a través de un ADC (analog to digital converter – convertidor
analógico digital), estos datos son procesados y el resultado es convertido de nuevo en
una señal analógica Fig. 1.1.
Fig. 1.1 Implementación de Filtro Digital.
Los filtros digitales presentan algunas ventajas sobre los analógicos, las cuales
consisten en:
• Alta confiabilidad.
• Exactitud, la precisión del filtro solo está limitada por el tamaño de los datos
utilizados.
• Menor sensibilidad a la temperatura y al envejecimiento.
• La respuesta en frecuencia de un filtro digital se puede ajustar automáticamente si
se utiliza un procesador programable.
• Se pueden filtrar varias señales de entrada con un solo hardware.
• Los datos de la señal original y de la señal filtrada se pueden almacenar para poder
ser utilizados posteriormente.
• Son fáciles de diseñar y simular.
1
Sin embargo, los filtros analógicos pueden trabajar con señales con un ancho de banda
mayor, además, la velocidad de operación de los filtros digitales en tiempo real
depende de la velocidad del procesador utilizado y el número de operaciones
aritméticas que deben ser realizadas por el algoritmo de filtrado, las cuales se
incrementan cada vez que la respuesta del filtro se vuelve más estrecha. Para que los
filtros digitales puedan trabajar en tiempo real es necesario que el procesador
utilizado posea las características adecuadas, estas características dependen de la
frecuencia de muestreo y de la complejidad del filtro.
Existen diversas aplicaciones en las que se pueden presentar algunos problemas. En
algunos casos cuando se utilizan los filtros digitales, las señales o los sistemas pueden
sufrir algunos cambios con el tiempo y la naturaleza exacta del cambio no es
predecible; en tales casos es altamente deseable diseñar un filtro que pueda aprender
del proceso mismo, de manera que se pueda adaptar para manejar la situación. Para
resolver muchos de estos problemas se propone el uso de filtros adaptivos, cuya
característica principal es que estos pueden modificar sus parámetros durante la
operación con el fin de lograr un comportamiento deseado.
1.1 Filtros Digitales
El diseño de filtros consiste en la aproximación de una función de transferencia por
medio de una lista de coeficientes. Existen diferentes técnicas para el diseño de filtros.
La ecuación de convolución es muy útil en el diseño de filtros FIR e IIR, ya que se
puede aproximar con un número finito de términos [1].
Para filtros FIR, la salida se calcula empleando (1.1).
N −1
y ( n) = ∑ h( k ) x ( n − k )
K =0
(1.1)
Y para Filtros IIR se emplea (1.2).
∞
y ( n) = ∑ h( k ) x ( n − k )
K =0
(1.2)
2
En (1.2) se puede observar que para los filtros IIR la duración del impulso es infinita ya
que h(k) en (1.1) solo tiene N valores. Los filtros FIR presentan algunas ventajas y
desventajas frente a los filtros IIR, por ejemplo los filtros FIR pueden tener una
respuesta de fase lineal exacta mientras que la respuesta de la fase de los filtros IIR no
es lineal, además, los FIR presentan mayor estabilidad ya que no son recursivos, sin
embargo, los filtros IIR pueden ser implementados con un menor número de
coeficientes, de esta forma realizan un menor número de operaciones y así el tiempo
de procesamiento es menor [1]. Otro factor a considerar es que la complejidad
computacional de los filtros IIR es mayor, por lo tanto el filtro con el que se trabajó en
el desarrollo de este proyecto es de tipo FIR.
Tomando en cuenta la ecuación de convolución para filtros FIR, si la entrada es un
impulso unitario x(n)=δ(0), el impulso de salida será y(n)= h(n). En (1.1) se muestra que
un filtro FIR puede ser implementado si se tiene el conocimiento de la entrada x(n) en
el tiempo n y de las señales retrasadas x(n‐k).
La transformada z de (1.1) se puede escribir como:
Y ( z ) = h(0) X ( z ) + h(1) z −1 X ( z ) + h(2) z −2 X ( z ) + ... + h( N − 1) z − ( N −1) X ( z ) (1.3)
La ecuación (1.1) representa la convolución en tiempo entre los coeficientes y las
muestras de entrada, lo cual es equivalente a una multiplicación en el dominio de la
frecuencia o:
Y ( z) = H ( z) X ( z) (1.4)
Donde H(z) = ZT[h(k)] es la función de transferencia:
N −1
H ( z ) = ∑ h(k ) z −k = h(0) + h(1) z −1 + h(2) z −2 + ... + h( N − 1) z −( N −1)
k =0
3
estructura Transversal, Lattice o Arreglo sistólico, de las cuales, la más usada es la
estructura transversal por su simplicidad para implementarlo.
En la Fig. 1.2 se presenta una estructura transversal, la señal de entrada x(n) y la salida
del filtro para esta estructura están relacionadas por (1.1), el símbolo z‐1 representa
una muestra retrasada, por lo tanto x (n‐1) es la señal x(n) retrasada por una muestra.
En las implementaciones digitales los símbolos z‐1 representan un movimiento de
registros o locaciones de memoria. Para el cálculo de cada muestra de salida y(n) se
requiere:
• N‐1 locaciones de memoria para almacenar N‐1 muestras de entrada.
• N locaciones de memoria para almacenar N coeficientes.
• N multiplicaciones y N‐1 adiciones.
Fig. 1.2 Filtro FIR utilizando una estructura transversal.
1.2 Estructuras Adaptivas
Actualmente existen aplicaciones de comunicaciones digitales en las cuales se
presentan problemas como lo son la interferencia intersímbolo, eco, ruido aditivo, los
cuales generan errores. Estos problemas pueden solucionarse por medio del uso de
filtros adaptivos.
4
La principal característica de estos filtros es que pueden modificar su respuesta durante
la operación, con el fin de lograr un comportamiento deseado, para esto es necesario el
uso de un algoritmo de adaptación que se encargue de actualizar los coeficientes del
filtro. Los algoritmos de adaptación más conocidos, son el algoritmo RLS (Recursive
Least Square – Mínimos Cuadrados Recursivos), y el algoritmo LMS (Least Mean
Square – Mínimos Cuadrados Promediados). El algoritmo RLS ofrece mayor velocidad
de convergencia con respecto al algoritmo LMS, pero en cuanto complejidad
computacional el algoritmo LMS tiene la ventaja.
Un filtro adaptivo, mostrado en la Fig. 1.3, cuenta con cuatro terminales, donde x es la
señal de entrada, d la señal deseada, y la señal de salida y e la señal de error, la cual es
utilizada para adaptar los parámetros del filtro adaptivo [4].
Fig. 1.3 Estructura general de los filtros adaptivos.
La mayoría de los filtros adaptivos de la actualidad se implementan por medio de
sistemas digitales, debido a que presentan algunas ventajas sobre los filtros analógicos,
las cuales consisten en: alta confiabilidad, exactitud, y menor sensibilidad a la
temperatura y al envejecimiento. Sin embargo los filtros analógicos presentan una
velocidad de convergencia mayor que los digitales [2], debido a que en los sistemas
digitales se requiere de realizar un número elevado de operaciones de punto flotante
[3].
1.3 Filtro de Wiener
Algunos de los algoritmos de adaptación pueden ser vistos como una aproximación de
los filtros de Wiener. En la Fig. 1.4 se observa la estructura básica de un filtro de
Wiener. La señal y(n) consiste de una componente que esta correlacionada con x(n) y
5
otra que no lo está, el filtro de Wiener produce una estimación óptima de la parte de
y(n) que esta correlacionada con x(n) [4].
Fig. 1.4 Estructura básica del filtro de Wiener.
La señal de salida del filtro de Wiener es la señal de error, la cual es la diferencia de la
señal y(n) con la señal x(n). Asumiendo que la estructura utilizada es la de un filtro FIR
con N coeficientes, la relación entre la entrada y salida del filtro está dada por:
N −1
e( n) = y (n) − nˆ ( n) = y ( n) − W T X ( n) = y (n) − ∑ w(i ) x( n − i )
i =0 (1.6)
Donde X y W, son las señales de entrada y el vector de pesos respectivamente, y están
dados por:
⎡ X ( n) ⎤ ⎡ w(0) ⎤
⎢ X (n − 1) ⎥ ⎢ w(1) ⎥
X ( n) = ⎢ ⎥ W =⎢ ⎥
⎢M ⎥ ⎢M ⎥
⎢ ⎥ ⎢ ⎥
⎣ X ( n − ( N − 1)) ⎦ ⎣ w( N − 1) ⎦ (1.7)
Al elevar (1.6) al cuadrado se obtiene:
e 2 ( n) = y 2 (n) − 2 y ( n) X 2 (n)W + W T X (n) X T ( n)W (1.8)
Suponiendo que el vector de entrada x(n) y la señal y(n) son estacionarias se puede
obtener el error cuadrático medio (MSE – mean square error), J:
[ ] [ ] [ ] [ ]
J = E e 2 (n) = E y 2 (n) − 2 E y (n) X T ( n)W + E W T X (n) X T ( n)W = σ 2 + 2 PTW + W T RW
(1.9)
6
Donde σ
2
[
] es la varianza de y(n), P = E[y(n) X (n)] es la longitud N del vector
= E y 2 ( n)
muestra la gráfica del MSE y los coeficientes W. Esta gráfica es conocida como la
superficie de error.
Fig. 1.5 Superficie de error.
El gradiente de la superficie de error esta dado por:
dJ
∇= = −2 P + 2 RW
dW (1.10)
Cada conjunto de coeficientes, w (i) (i=0,1,…, N‐1), corresponde a un punto en la
superficie. En el punto mínimo de la superficie, el gradiente es cero y el vector de pesos
del filtro obtiene su valor óptimo (1.11).
Wopt = R −1P
(1.11)
La ecuación (1.11) es conocida como solución de Wiener‐Hopf. Los filtros de Wiener
tienen un uso práctico limitado, ya que requieren de una matriz de autocorrelación R
(1.12), y un vector de correlación P (1.13), los cuales no son conocidos a priori,
además, es necesario realizar inversión de matrices, lo cual consume tiempo.
⎡ γ xx (0) γ xx (1) ,........., γ xx ( L − 1) ⎤
⎢ γ xx (1) γ xx (0) ,........., γ xx ( L − 2)⎥ T
R=⎢ ⎥ = E[ X(n) X (n)]
⎢ : : : : ⎥
⎢⎣γ xx ( L − 1) γ xx ( L − 2) ,........., γ xx (0)⎥⎦
(1.12)
P = E[ d ( n) X( n)] = E[ X ( n) d ( n)] (1.13)
7
1.4 Algoritmo de Mínimos Cuadrados Promediados LMS
Entre los algoritmos más comúnmente usados tenemos aquellos basados en la
búsqueda del gradiente, de los cuales el algoritmo LMS es su mejor exponente. Lo
anterior se debe principalmente a su baja complejidad computacional, flexibilidad y
robustez. En este algoritmo los pesos se ajustan hasta que el error cuadrático medio
sea minimizado (MSE), al contrario al filtro de Wiener en el objetivo es encontrar Wopt.
Un algoritmo basado en la búsqueda del gradiente descendente esta dado por:
W (n) = W ( n − 1) − μ∇ (1.14)
Donde W(n) es el vector de coeficientes, ∇ es el gradiente de la superficie de error
cuadrático medio y µ es un factor que controla la estabilidad y velocidad de adaptación
del algoritmo. El gradiente de la superficie de error es un vector de derivadas con
respecto a cada uno de los pesos, y esta dado por:
T
⎡ ∂e 2 (n) ∂e 2 ( n) ∂e 2 (n) ⎤
∇ = E⎢ , ,....., ⎥
⎣ ∂w0 ∂w1 ∂wn −1 ⎦
(1.15)
De la Fig. 1.3 tenemos que la señal de error está dada por:
e( n) = d ( n) − W T X ( n) (1.16)
De manera que el gradiente se puede escribir como:
∇ = −2 E[e(n) x(n), e(n) x(n − 1),..., e(n) x(n − N + 1)] .
T
(1.17)
El cálculo del gradiente no es tan simple en la práctica debido a la presencia del
operador expectación. Esta dificultad radica principalmente en el hecho de que la
superficie de error, o en su defecto la función de error, es desconocida de antemano en
la práctica y debe ser estimada a partir de los datos de entrada. Una solución a este
problema que fue propuesta por Widrow, consiste en remplazar el gradiente
instantáneo por:
8
T
∧ ⎡ ∂e 2 (n) ∂e 2 (n) ∂e 2 (n) ⎤
∇ = 2⎢ , ,....., ⎥
⎣ ∂w0 ∂w1 ∂wn−1 ⎦
(1.18)
El cual se puede reescribir como:
∧
∇ = −2[e( n) x( n), e( n) x( n − 1),....., e( n) x( n − N + 1)] T (1.19)
∧
∇ = −2 e ( n ) X ( n ) (1.20)
Finalmente substituyendo (1.20) en (1.14) obtenemos:
W ( n) = W ( n − 1) + 2 μe( n) X( n) (1.21)
La ecuación (1.21) se puede reescribir como:
W ( n + 1) = W ( n) + μe( n) X ( n) (1.22)
La ecuación (1.22) se conoce como el algoritmo de mínimos cuadrados promediados
LMS o algoritmo de Widrow – Hopf. Donde W(n+1) es el peso siguiente, W(n) es el
peso actual, μ es el factor de convergencia, X(n) es la señal de entrada al filtro y e(n) es
la señal de error.
En este algoritmo los pesos se ajustan hasta que el error cuadrático medio sea
minimizado, el factor de convergencia µ determina el error mínimo local así como la
velocidad de convergencia, siendo directamente proporcional a la velocidad de
convergencia e inversamente proporcional al error cuadrático medio mínimo [3], es
decir cuando µ es grande la velocidad de convergencia es alta pero el error cuadrático
medio es más alto, y cuando µ es pequeño la velocidad de convergencia se reduce
pero el error cuadrático medio es menor.
Para mantener la estabilidad el factor de convergencia debe de cumplir:
1 − 2μλi < 1, i = 1,2,....., N − 1
(1.23)
9
Donde λi es el i‐esimo valor propio de la matriz R(1.12), de otra forma se puede escribir
como:
1
0<μ <
λmáx (1.24)
La estimación de los valores propios es un problema complejo que requiere de un
número elevado de operaciones. Así, con el fin de proporcionar un rango de validez de
aplicación práctica se obtiene la siguiente ecuación para μ.
1
0 < μ ≤ (1.25)
N x 2 ( n)
Donde x2(n) es el valor cuadrático medio de la potencia de x(n) y N es el número de
coeficientes del filtro.
El algoritmo LMS requiere aproximadamente N multiplicaciones para calcular la salida
del filtro, y N+1 multiplicaciones para calcular μe(n)X(n) ya que el factor μ permanece
constante durante toda la operación del sistema y μe(n) es común para todos los
coeficientes del filtro. Así la complejidad del filtro, medido en términos del número de
multiplicaciones es 2N +1 multiplicaciones / período de muestreo.
Al diseñar los filtros adaptivos se deben tomar en cuenta los siguientes parámetros:
• Complejidad Computacional. Esta es de vital importancia cuando se realizan
aplicaciones de filtrado adaptivo en tiempo real ya que existen limitaciones en
hardware que pueden afectar el funcionamiento del sistema. Un algoritmo de
alta complejidad computacional como lo es el RLS requiere un hardware con
mayores recursos, ya que en términos de valores reales este algoritmo necesita
realizar M2 + 5M + 1 multiplicaciones, M2 + 3M sumas y 1 división para calcular
la salida del filtro., en caso que los datos sean valores imaginarios se deben
realizar 4M2 + 16M + 1 multiplicaciones, 4M2 + 12M ‐ 1 sumas y 1 división, para
calcular la señal de salida.
• Longitud del filtro. Dependiendo de la longitud del filtro el sistema podrá ser
modelado con mayor precisión, es decir entre más grande sea el filtro más
10
preciso serán los resultados, sin embargo, el tiempo de procesamiento puede
aumentar, afectando la estabilidad del sistema y el MSE mínimo.
• Ambientes no estacionarios. En un ambiente estacionario la superficie de error
tiene una forma y orientación constantes y por lo tanto el filtro adaptivo
converge rápidamente y opera cerca del punto óptimo. Si la señal cambia
después de que los pesos convergieron, el filtro responde al cambio reajustando
los pesos hasta obtener un conjunto nuevo de valores. En un ambiente no
estacionario, el filtro tiene por objetivo no solamente el de buscar la solución
óptima sino también el de seguir la posición del cambio. El funcionamiento del
algoritmo LMS es pobre en ambientes que varían rápidamente en el tiempo.
Por otra parte el algoritmo RLS posee un mejor funcionamiento en ambientes
no estacionarios.
1.5 Aplicaciones Principales
Los filtros adaptivos son utilizados para resolver diversos problemas que se puedan
presentar en aplicaciones como control, procesamiento de señales de radar y sonar,
cancelación de interferencias, comunicaciones, control activo de ruido, ingeniería
biomédica, entre otras. La operación de los filtros adaptivos para cada aplicación
depende de la manera de obtener las señales tanto de referencia como de entrada. A
continuación se presentan algunas de las estructuras de filtrado adaptivo utilizadas
para resolver estos problemas.
• Identificador de Sistemas
En este caso el objetivo que se persigue es que la función de transferencia o respuesta
al impulso del filtro adaptivo se aproxime a la respuesta al impulso del sistema
desconocido [1]. En la Fig. 1.6 se muestra la estructura utilizada como identificador de
sistemas, donde la señal de entrada x es la misma tanto para el sistema desconocido
como para el filtro adaptivo. La señal de error e es la diferencia de la respuesta del
sistema desconocido y la respuesta del filtro adaptivo, esta señal de error es
retroalimentada al filtro adaptivo y es usada para actualizar los coeficientes del filtro
hasta que la señal de salida es y = d. Si el proceso de adaptación ha sido completado y
11
el sistema desconocido es linear e invariante en el tiempo, las características del filtro
adaptivo no cambian. Este tipo de estructuras se utilizan con frecuencia en control
automático.
Fig. 1.6 Filtro adaptivo como identificador de sistemas.
• Predicción lineal
La predicción lineal es una técnica de estimación, la cual se emplea para modelar
procesos aleatorios correlacionados, con el objetivo de encontrar la representación
paramétrica de estos procesos [5]. En la Fig. 1.7 se muestra la estructura del predictor
lineal. En esta estructura la señal deseada d es igual a la señal de entrada x del filtro
adaptivo, el error se calcula al restar la señal deseada con la señal de salida del filtro.
Fig. 1.7 Filtro adaptivo como predictor.
• Cancelador de Ruido
Los sistemas canceladores de ruido son usados en diversas aplicaciones como lo son:
médicas (electrocardiogramas), cancelación de ruido en señales de voz, cancelación de
ecos en canales telefónicos, entre otros [6]. En la Fig. 1.8 se muestra la estructura
utilizada como cancelador de ruido, donde la señal d es corrompida por ruido aditivo n.
La señal de entrada del filtro adaptivo es una señal de ruido n’ que esta correlacionado
12
con el ruido n, la señal de ruido n’ puede venir de la misma fuente que n pero
modificada por el ambiente. El filtro adaptivo se ajusta de tal manera que una réplica
de la señal de ruido n que está presente en la señal d, aparece en la salida del filtro, al
restar la señal de salida con la señal d se obtiene la señal limpia de ruido. A diferencia
de otras aplicaciones la señal de salida de la estructura es la señal de error.
Fig. 1.8 Filtro adaptivo como cancelador de ruido.
• Modelado Inverso
Esta estructura mostrada en la Fig. 1.9, es utilizada para la ecualización y la igualación
de canales, su objetivo es reducir la distorsión de canal que es producida por la
transmisión de datos de alta velocidad sobre los canales telefónicos. Los ecualizadores
se encargan de generar una función de transferencia W(z)=1/H(z), por lo tanto
H(z)W(z)=1, lo cual implica un trabajo perfecto, es decir que la secuencia de datos
transmitidos s(n) y la entrada del detector deberán aparecer sin ninguna distorsión.
Desafortunadamente esta es una situación ideal que no se puede usar en la mayoría de
las aplicaciones prácticas.
Fig. 1.9 Filtro adaptivo como modelador inverso de canales de comunicación.
13
1.6 Referencias
[1] Chassaing Rulph; “Digital Signal Processing and Applications with the C6713 and
C6416 DSK (Topics in Digital Signal Processing)”, Ed. Wiley Interscience 2004, pag.
119‐135.
[2] Hector Perez Meana, Mariko Nakano Miyatake, Luis Niño de Rivera, Juan Sanchez
Garcia, “Desarrollos Recientes en sistemas adaptivos analógicos”, Revista
Científica, Vol. 5 No. 3, July‐ September 2001; pag. 113 ‐ 12.
[3] J. Velazquez Lopez, Juan Carlos Sanchez Garcia, Hector Perez Meana, “Adaptive
filters with codified error LMS Algorithm”, International Journal Electromagnetic
Waves and Electronic Systems, Jul. 2006, pp. 23‐28.
[4] Ifeachor Emmanuel C., Jervis Barrie W., “Digital Signal Processing a Practical
Approach”, Ed. Addison Wesley 1993, pag. 541 ‐ 556.
[5] B. Farhang‐Boroujeny; “Adaptive Filters, Theory and applications”, Ed. John Wiley
& Sons, 1998 pp. 6 ‐ 7.
[6] Sayed Ali H., “Fundamentals of Adaptive Filtering”, Ed. Wiley Interscience 2003,
pag. 213‐225
14
CAPÍTULO II
Algoritmo de mínimos Cuadrados Promediados con Error
Codificado ECLMS
Se han realizado diversas modificaciones al algoritmo LMS con el objetivo de obtener
una velocidad de convergencia más rápida o de simplificar la complejidad
computacional. Estas nuevas variantes del algoritmo se pueden clasificar en dos
grupos: variantes con baja complejidad computacional y variantes con factor de
convergencia variable.
Las variantes del algoritmo LMS con baja complejidad computacional disminuyen el
número de operaciones matemáticas, lo cual hace que su diseño e implementación en
sistemas adaptivos digitales, analógicos o mixtos, sea más sencilla. Sin embargo, estos
algoritmos presentan en algunas ocasiones una velocidad de convergencia más lenta
que el algoritmo LMS convencional y también presentan un MSE mayor que el LMS.
Las variantes con factor de convergencia variable proponen el ajuste de este factor en
cada iteración, lo que permite incrementar la velocidad de convergencia, pero se tiene
la desventaja de que la complejidad computacional aumenta, de esta forma el diseño e
implementación se vuelven mucho más complicados.
El algoritmo de mínimos cuadrados promediados con error codificado ECLMS (Error
Coded Least Mean Square) es una variante que presenta una complejidad
computacional baja y además aumenta la velocidad de convergencia con respecto al
algoritmo LMS. El objetivo de esta nueva variante es el de reducir el número de
operaciones de punto flotante, haciendo más sencilla la implementación en sistemas
adaptivos y reduciendo el tiempo de procesamiento. Como el tiempo de
procesamiento se reduce es posible realizar la sobre – adaptación para aumentar la
velocidad de convergencia.
15
2.1 Modificaciones del Algoritmo LMS
A continuación se presentan algunas de las modificaciones más populares propuestas
en los últimos años.
2.1.1 Algoritmos de Signo
Los algoritmos de signo están definidos por las siguientes ecuaciones [1]:
Algoritmo sign ‐ error LMS
W ( n + 1) = W ( n) + μsign[e( n)]X( n − k ) (2.1)
Algoritmo sign ‐ data LMS
W ( n + 1) = W ( n) + μsign[ X( n − k )]e( n) (2.2)
Algoritmo sign – sign LMS
W ( n + 1) = W ( n) + μsign[e( n)]sign[ X( n − k )] (2.3)
Donde
1 x(n) > 0
sign x(n) = 0 x(n) = 0 (2.4)
‐1 x(n) < 0
Como se puede observar en (2.4) estas modificaciones del algoritmo LMS usan la
función de signo para reducir la complejidad y la velocidad de convergencia, además,
estas variantes no alteran la estructura del filtro adaptivo, sin embargo estas
modificaciones presentan un MSE mucho más alto que el del algoritmo LMS
convencional [2].
16
2.1.2 Algoritmo LMS Normalizado (NLMS – Normalized Least
Mean Square)
Considere el algoritmo LMS que se muestra en (2.5), en el cual el factor de
convergencia varía en el tiempo.
W ( n + 1) = W ( n) + μe( n) X ( n) (2.5)
La estabilidad y la convergencia de este algoritmo dependen de la longitud del filtro y la
potencia de la señal, por lo tanto el factor de convergencia se puede escribir como se
muestra en (2.6).
1 1
μ ( n) = T =
2 x ( n) x ( n) 2 x( n) 2 (2.6)
Sustituyendo (2.6) en (2.5) para encontrar la recursión obtenemos:
1
W ( n + 1) = W ( n) + T e( n) X ( n) (2.7)
x ( n) x ( n)
En la práctica una manera de asegurar la recursión es usando la ecuación (2.8).
μ
W ( n + 1) = W ( n) + e( n) X ( n) (2.8)
ε + x ( n) x ( n)
T
Donde µ y ε son constantes. La velocidad de convergencia de este algoritmo es mayor
que la del LMS, sin embargo su complejidad computacional es 3M+1 multiplicaciones y
3M sumas, la cual es mayor que la del algoritmo LMS.
2.1.3 Algoritmo LOG‐LOG LMS
Este algoritmo realiza la cuantización de la señal de entrada y de error a la potencia de
dos más cercana y usa los valores cuantizados para actualizar los coeficientes del filtro
17
adaptivo [4]. Al igual que las variantes de signo en esta modificación la estructura de
filtrado no es alterada. Como los valores cuantizados son potencia de dos, pueden ser
representados en forma log2, lo cual implica que las operaciones se realicen más rápido
por ser palabras cortas. En la ecuación (2.9) se presenta el algoritmo LOG‐LOG LMS.
W ( n + 1) = W ( n) + Q[ μQ[e( n)]Q[ X( n − k )]] (2.9)
Donde Q(x) = 2r
(2.10)
r = round [log2(x)] (2.11)
Esta modificación es similar a las variantes de signo ya que reduce la velocidad de
convergencia, pero también pierde información de las magnitudes, por lo que el MSE
no llega a ser el mismo que el del algoritmo LMS convencional.
2.1.4 Algoritmo de Paso Variable (VSLMS – Variable Step‐Size
LMS)
Cuando la adaptación empieza W(n) está lejos de su valor optimo, para que la
convergencia sea rápida es necesario tener un paso de tamaño grande (como se
mencionó anteriormente, el factor de convergencia es directamente proporcional a la
velocidad de convergencia e inversamente proporcional al error cuadrático medio),
mientras los coeficientes del filtro se acercan a la solución el tamaño del paso debe
disminuir para reducir el exceso de MSE, para resolver este problema se propone el uso
de algoritmos de paso variable, los cuales ajustan el factor de convergencia en cada
iteración, con esto se pueden obtener velocidades de convergencia mayores pero la
complejidad computacional del algoritmo aumenta.
Para ajustar el tamaño del paso se le asigna a cada coeficiente del filtro un parámetro
de paso variante en el tiempo, de manera que el algoritmo LMS toma la siguiente
forma [5]:
W ( n + 1) = Wi ( n) + 2 μ i ( n)e( n) X( n − i ) i=0,1, …, M – 1 (2.12)
18
Donde Wi(n) es el i‐esimo coeficiente de W(n) en la iteración n y µi(n) está asociado al
tamaño del paso. El tamaño del paso se determina en base a los cambios que ocurren
en el cálculo de la señal del gradiente instantáneo. Cambios sucesivos en la señal del
gradiente indican que el algoritmo esta cerca a su solución óptima y por lo tanto el
valor del tamaño del paso debe ser reducido. El tamaño del paso debe ser reducido por
un factor c1 basado en un número m1 de cambios sucesivos de e(n) x(n‐ 1), de igual
forma para incrementar el tamaño del paso es necesario un factor c2 basado en m2
cambios de señal sucesivos.
Para elegir el valor óptimo de µ se debe tomar en cuenta los criterios de (2.13)
1; µ’(n) ≥ 1
µ(n)= µmin; µ’(n+1) < µmin (2.13)
µ’(n); µmin < µ’(n) < 1
2.1.5 Algoritmo de Paso Variable Normalizado en el Tiempo (TVS
NLMS – Time Varying Size Normalized LMS)
Para el cálculo del factor de convergencia de este algoritmo es necesario conocer la
potencia promedio de la señal de entrada y el error cuadrático medio. El algoritmo TVS
NLMS se muestra en (2.14) [6].
W ( n + 1) = W ( n) + β ( n)e( n) X( n) (2.14)
Donde
1
β= 2
x ( n) (2.15)
ε
α ( n) = (2.16)
ε + e 2 ( n)
19
e2 es la potencia promedio del error la cual se obtiene tomando algunas muestras y Є
es una constante positiva la cual debe satisfacer (2.17).
ε x 2 ( n) > e 2 ( n) (2.17)
2.1.6 Algoritmo VECLMS
Para obtener el factor de convergencia en este algoritmo se debe realizar el cálculo de
la ecuación (2.18) [5].
p ( n) = e( n)e( n − 1) (2.18)
Como se puede observar en (2,18) p(n) depende del valor actual del error, por lo tanto
se puede estimar por medio de la ecuación (2.19).
p ( n) = γp ( n − 1) + (1 + γ )e( n)e( n − 1) (2.19)
Para esta variante el factor de convergencia es igual al valor cuadrático medio de p(n),
como se muestra en (2.20).
μ ' ( n) = γμ ' ( n − 1) + (1 − γ ) p ( n)
2
(2.20)
En este caso también se debe establecer un factor de convergencia mínimo, ya que si
µ’(n) es mayor o igual a dos el sistema podría ser inestable, aunque también se debe
tener en cuenta que si el factor de convergencia es demasiado pequeño el algoritmo
puede no responder a variaciones estadísticas de la señal de entrada. Para elegir el
valor adecuado de µ(n) se utiliza (2.21).
1; µ’(n) ≥ 1
µ(n)= µmin; µ’(n) < µmin (2.21)
µ’(n); µmin < µ’(n) < 1
20
2.1.7 Algoritmo CC LMS
En esta modificación se calcula el factor de convergencia usando (2.22) [5].
μ ' ( n ) = e( n ) y ( n ) (2.22)
Donde µ’es proporcional al valor estimado de la primera componente de la correlación
cruzada entre la señal de error y la salida del filtro. El cálculo recursivo de µ’ se
muestra en (2.23).
μ ' ( n) = γμ ' ( n − 1) + (1 − γ )e( n) y ( n) (2.23)
Al igual que el algoritmo VECLMS, se debe elegir un factor de convergencia mínimo, ya
que si el factor de convergencia es mayor o igual a dos el sistema puede hacerse
inestable y si el factor de convergencia es demasiado pequeño se impide la respuesta
correcta a variaciones estadísticas de la señal de entrada. Para la elección del factor de
convergencia adecuado se utiliza (2.24)
μ ' ( n)
1; 2 ≥ 1
x ( n)
μ ' ( n)
µ(n)= µmin; < µmin
x 2 ( n)
μ ' ( n) μ ' ( n)
2 ; µmin < <1
x ( n) x 2 ( n)
2.2 Algoritmo LMS con Error Codificado
Como se puede observar en la ecuación (2.25), para un filtro digital el valor de la señal
de entrada X(n) es de punto fijo mientras que el valor de la señal de error e(n) y el
factor de convergencia µ son de punto flotante, por lo tanto el resultado de la
multiplicación de estos factores será un valor de punto flotante.
21
W ( n + 1) = W ( n) + μe( n) X ( n) (2.25)
El algoritmo LMS con error codificado es una variante que tiene por objetivo reducir el
número de operaciones de punto flotante en el algoritmo de adaptación, aumentando
así la velocidad de convergencia y reduciendo la complejidad computacional del
algoritmo [7].
La propuesta consiste en engañar al algoritmo de adaptación, para hacerle creer que el
error obtenido es mayor y de esta manera incrementar la velocidad de convergencia.
Entonces con las consideraciones realizadas, se propone realizar la codificación del
error, es decir, representar el error instantáneo mediante un valor entero, con lo cual
el error aparente tener un valor mayor y además no se pierde información significativa
del incremento del error, lo cual es importante en la velocidad de convergencia. A
continuación se hace una revisión de la representación de números en punto fijo y en
punto flotante, para detallar la importancia de la reducción de operaciones de punto
flotante.
2.3 Representación de Números de Punto Fijo y Flotante en
Procesadores Digitales de Señales.
El valor decimal de un número en complemento a dos de B = bN‐1bN‐2…b1b0,b1Є{0,1}
esta dado por la ecuación (2.26).
D( B) = −b N −1 2 N −1 + b N − 2 2 N − 2 + ... + b1 21 + b0 2 0 (2.26)
La representación en complemento a dos permite al procesador realizar operaciones
de adición y substracción de números enteros, pero al utilizar este tipo de
representación el rango dinámico se vuelve limitado, por ejemplo en un sistema de 16
bit no es posible representar un número mayor a 215 ‐1 = 32767 y menor a ‐215 ‐1 =
32768. Para evitar esta limitación los números deben ser normalizados entre ‐1 y 1, es
decir deben ser representados como fracciones. Para realizar esta representación se
debe establecer un punto binario imaginario, como se muestra en la Fig. 2.1 De esta
manera, los valores fraccionales están dados por la ecuación (2.27).
22
F ( B) = −b N −1 2 0 + b N − 2 2 −1 + ... + b1 2 − ( N − 2) + b0 2 − ( N −1) (2.27)
Fig. 2.1 Representación Numérica.
La representación numérica mostrada en la Fig. 2.1 es conocida como representación
fraccional o formato Q. Al trabajar con números en formato Q se debe tener cuidado al
manipular el punto binario, por ejemplo si se tiene un espacio de memoria de 16 bit y
se quiere multiplicar dos números en formato Q‐15 (cada número consiste de 1 bit de
signo más 15 bits que representan la parte fraccional), se obtiene un número en
formato Q‐30 (el bit 31 es de signo y el 32 es conocido como extensión de bit de signo),
por lo tanto no existe suficiente espacio para almacenar el resultado ya que solo se
pueden almacenar 16 bits, lo que se hace en este caso es almacenar los bits más
significativos es decir se hace un corrimiento a la derecha de 15 bit (SHR – shift right),
de esta forma el resultado del producto sería almacenado en formato Q‐15.
Basado en la representación en complemento a dos, un rango dinámico de – (2N‐1) ≤ D
(B) <2N‐1 – 1 puede ser logrado, donde N representa el número de bits.
Otro de los problemas que se puede presentar cuando se utiliza la representación
entera es el sub‐desbordamiento, el cual se presenta cuando el resultado es más
grande del conjunto o es más pequeño que el número más chico del conjunto. Por
ejemplo si se tiene un sistema de 4 bit donde el número más negativo es ‐8 y el
número más positivo es 7, una operación de multiplicación o adición que tenga por
resultado un número mayor a 7 o menor que ‐8 causará sub‐desbordamiento. La
representación en formato Q puede resolver este problema al normalizar el rango
dinámico entre ‐1 y 1. Al usar la representación Q, el rango dinámico es dividido en 2N
secciones, donde 2‐(N‐1) es el tamaño de la sección. El número más negativo siempre es
23
‐1 y el número más positivo es 1 – 2‐(N‐1). Por ejemplo la multiplicación de 0110 por
1110 es el equivalente a multiplicar 6 por ‐2 en decimal, el resultado de esta
multiplicación es ‐12 el cual es un número que excede el rango dinámico de un sistema
de 4 bit. Basado en una representación en Q‐3 estos números corresponden a 0.75 y ‐
0.25 respectivamente, el resultado de la multiplicación es ‐0.1875, por lo tanto cae
dentro del rango de la representación fraccional. Para las dos formas de representación
se genera el mismo número de unos y ceros, sin embargo la diferenciase se da en la
interpretación de los bits.
En el caso del DSP con el cual se desarrollo el proyecto se tienen dos representaciones
de datos de punto flotante, una de precisión sencilla (SP – Single Precision) y otra de
doble precisión (DP – Double Precision).
En el formato de precisión sencilla los valores son expresados como:
‐1s*2(exp‐127)*1.frac (2.28)
Donde s es el bit de signo (bit 31), exp son los bits de exponente (bits del 23 al 30), y
frac son los bits que representan la fracción (bits del 0 al 22).
Fig. 2.2 Representación de datos en punto flotante.
En el formato de doble precisión, se usan más bits para representar la fracción y el
exponente, como se indica en la ecuación (2.29).
‐1s*2(exp‐1023)*1.frac (2.29)
En este caso se tiene 1 bit de signo, 11 bits para el exponente y 52 bit para representar
la fracción, de esta manera se puede trabajar con números tan grandes como
1.7*10308 y tan pequeños como 2.2*10‐308.
Fig. 2.3 Representación de datos en punto flotante de doble precisión.
24
La arquitectura interna de un DSP de punto flotante es más complicada que la de un
dispositivo de punto fijo. Todos los registros y buses de datos deben de ser de 32 bits
en lugar de 16; el multiplicador y el ALU deben ser capaces de realizar rápidamente
operaciones aritméticas de punto flotante, el set de instrucciones debe ser más grande
y además estas instrucciones requieren más ciclos de reloj o latencias para ser
ejecutadas, comparadas con las instrucciones de punto fijo. Por ejemplo para el DSP
C6713 que es el utilizado en este trabajo, la instrucción MPYSP (multiplicación de
precisión sencilla) requiere de tres retardos o NOPs (No Operation) para poder ser
ejecutada y la instrucción MPYDP (multiplicación de doble precisión) requiere de nueve
retrasos o NOPs, mientras que la instrucción para multiplicaciones de punto fijo MPY
solo necesita de un retraso o NOP. Sin embargo las operaciones en punto flotante
tiene mejor precisión y un rango dinámico mayor que el punto fijo, también hay que
tener en cuenta que los programas de punto flotante tienen un ciclo de desarrollo
menor, ya que los programadores no necesitan preocuparse de asuntos como el sub‐
desbordamiento.
2.4 Codificación y Recodificación del Error
El algoritmo LMS con error codificado (ECLMS) se muestra en la ecuación (2.30).
W ( n + 1) = W ( n) + μC[e( n)]X( n) (2.30)
Donde W(n+1) es el peso siguiente, W(n) es el peso actual, μ es el factor de
convergencia, X(n) es la señal de entrada al filtro y C[e(n)] es el error codificado.
La codificación del error se puede realizar de manera externa al filtro, al usar un
recodificador que se encargará de convertir el error de punto flotante en un valor de
punto fijo [8]. De esta manera la estructura del filtro no cambia, ya que las operaciones
de codificación se realizan por separado, haciendo al algoritmo LMS con error
codificado (ECLMS) compatible con los sistemas adaptivos existentes.
25
Fig. 2.4 Estructura de filtrado adaptivo usando el algoritmo ECLMS.
Entonces con el recodificador del error se elimina el uso de operaciones de punto
flotante y ahora se necesitan realizar N multiplicaciones de punto fijo entre el error
codificado y el vector de muestras de la señal de entrada, un desplazamiento en el
resultado de dicha multiplicación y una suma con los valores anteriores de los pesos.
Para realizar matemáticamente la codificación del error, se requiere efectuar su
cuantización y asignarle un código, lo cual se logra empleando la ecuación (2.31) [8].
⎛ e(n ) ⎞
C [e(n )] = round ⎜ ⎟ (2.31)
⎝ Res ⎠
Donde round es la función de redondeo, e(n) es el error actual del filtro y Res es la
resolución del filtro.
Así el error que se obtiene de (2.31) es un número entero al que se le asigna un código
binario, de esta forma el producto del error y la señal de entrada se reduce a sumas y
desplazamientos libres de exponente. Para el cálculo de la resolución se debe usar
(2.32) [8].
e
Res = nmáx (2.32)
2 −1
Donde emax es el error máximo probable y n es el número de bits de codificación.
Debido a que se desconoce el error máximo, se puede hacer una estimación a partir del
valor máximo posible de la señal de entrada al filtro adaptivo, la cual no llega a ser
mayor del 90% de la amplitud máxima [9].
26
Como se mencionó anteriormente al codificar el error la velocidad de convergencia
aumenta, dado que el error inicial que observará el algoritmo será grande haciendo
que el algoritmo aumente el tamaño de los pesos de esta forma la velocidad de
convergencia aumenta. Conforme avanza el proceso de adaptación, el error disminuirá,
el cual tendrá un comportamiento similar al algoritmo LMS con error de signo, debido a
que la variante de signo solo considera los valores uno positivo o uno negativo y la
variante propuesta además considera manejar la opción de cero cuando el error está
por debajo de la mitad del valor resolución, esto sucederá siempre y cuando la
magnitud del error cumpla las condiciones mostradas en la ecuación (2.33) [9].
1 3
Res ≤ e(T ) < Res
2 2 (2.33)
Cuando el valor de la resolución es demasiado pequeño, entonces la cantidad de
información que se pierde es menor, por lo tanto la velocidad de convergencia es
mayor. Así la resolución es inversamente proporcional al número de bits de
codificación, entonces para obtener una resolución grande, se requiere de un número
de bits reducido y para reducir la resolución es necesario un mayor número de bits,
pero se debe tener cuidado en elegirlo correctamente, ya que una cantidad de bits
grande puede hacer que el algoritmo llegue a divergir.
Para evitar la divergencia en base al número de bits, se sustituye el proceso de
codificación del error en la ecuación (2.30) para obtener lo mostrado en (2.34).
Q[e( n)]
W ( n + 1) = W ( n) + μ X( n) (2.34).
Re s
Donde Q[e(T)] es la cuantización del error para realizar la codificación. Como se puede
observar en (2.34), al realizar el proceso de codificación del error, se afecta al factor de
convergencia, lo cual puede traer como consecuencia un aumento en la velocidad de
convergencia. Entonces haciendo un cambio de variable:
μ
μ′ = (2.35)
Res
27
Como se mencionó en el capítulo 1 para evitar la divergencia el factor de convergencia
debe cumplir con lo establecido en la ecuación (2.36).
0 < μ ' ≤ 1 (2.36)
2
N x ( n)
Sustituyendo (2.35) en la ecuación (2.36) obtenemos:
μ 1
0< < (2.37)
Res N x 2 (T )
Para obtener la relación entre el número de bits y el factor de convergencia, se
sustituye la ecuación de la resolución (2.32) en (2.37) con lo cual se genera la ecuación
(2.38).
e max
0<μ < (2.38)
(2 n
)
− 1 N x 2 ( n)
La ecuación (2.38) nos muestra la relación que existe entre el factor de convergencia y
el número de bits usados en la codificación, por lo tanto, a mayor número de bits
aumenta la velocidad de convergencia.
Para realizar una implementación digital más sencilla se puede hacer la codificación del
error sin la necesidad de utilizar una división, para esto la ecuación de codificación del
error se puede escribir como se muestra en (2.39) [10].
⎛ 1 ⎞
C [e(n )] = round ⎜ e(n ) ⎟ (2.39)
⎝ Res ⎠
De la ecuación (2.39) se puede observar que son necesarios dos pasos para la
codificación del error, en donde el primero es la multiplicación del error instantáneo
por el inverso de la resolución, el cual es un valor constante y el segundo paso es el
redondeo del resultado para obtener el error codificado como un valor entero.
Entonces se puede escribir el proceso de codificación como se muestra en la ecuación
(2.40).
C [e(n )] = round (C '[e(n )]) (2.40)
28
Donde C’[e(n)] sustituye al producto del error instantáneo y el inverso de la resolución,
así la implementación digital es más sencilla ya que se omite la división, por ejemplo
para realizar una división en el DSP C6713 es necesario utilizar la instrucción RCPSP
(single precision reciprocal approximation – aproximación recíproca de punto flotante
de precisión sencilla), de esta manera se tiene que tomar el reciproco del
denominador y después multiplicarlo con el reciproco del numerador, lo cual implica
un mayor número de ciclos de reloj para poder calcular la operación.
2.5 Referencias
[1] Gersho A., “Adaptive Filtering with Binary Reinforcement”, IEEE Trans. On Info.
Thy., vol. IT – 30, Marzo 1984, pag. 191‐199.
[2] Dasgupta S., Johnson C. R., “Some Comments on the Behavior of Sign – Sign
Adaptive Identifiers”, Systems and Control Letters, vol. 7, Abril 1986,pag. 75 – 82.
[3] Poularikas Alexander D., Ramadan Zayed M., “Adaptive Filtering Primer with
Matlab”, Ed. Taylor & Francis 2006, pag. 137 ‐ 141.
[4] Shivaling S. Mahant‐Shetti, Srinath Hosur and Alan Gatherer; “The LOG‐LOG LMS
Algorithm”; Acoustic, Speech and Signal Processing, 1997. ICAASSP‐97 IEEE;
Volumen 3, Abril 1997, pp 2357‐2360.
[5] H. Perez Meana, M. Nakano Miyatake, “Algoritmos LMS con factores de
convergencia variables en el tiempo”, Revista Científica, vol. 8 No. 3, 2004, pag.
139‐150.
[6] Mariko Nakano, Hector Perez, Luis Niño de Rivera, Fausto Casco y Juan Carlos
Sanchez, “A Time Varying Step Size NLMS Algorithm For Adaptive Echo Canceller
Structures”, IEICE Trans on Fundamentals of Electronics, Communications and
Computer Science, vol. E78, No. 2, Febrero 1995, pag. 254‐258.
29
[7] J. Velazquez Lopez, Juan Carlos Sanchez Garcia, Hector Perez Meana, “Adaptive
filters with codified error LMS Algorithm”, International Journal Electromagnetic
Waves and Electronic Systems, Jul. 2006, pp. 23 ‐ 28.
[8] J. Velázquez López, Juan Carlos Sánchez García, Héctor Pérez Meana, “Algoritmo
LMS modificado para aplicaciones de filtrado adaptivo de rápida velocidad de
convergencia”, Proceedings CIECE 2005, Puebla México.
[9] J. Velázquez Lopez, Juan Carlos Sánchez García, Héctor Pérez Meana, “Adaptive
echo canceller using a modified LMS algorithm”, Proceedings ICEEE 2005,
CINVESTAV, México D.F.
[10] José Velázquez, Juan G. Ávalos, Daniel Espinobarro, Juan C. Sánchez, “Analysis and
Implementation of LMS Algorithm with Coding Error in the DSP TMS320C6713”,
18th International Conference on Electronics, Communications and Computers (
CONIELECOMP 2008). 3‐5 March 2008 in Cholula, Puebla, Mexico.
30
CAPÍTULO III
Implementación del Algoritmo de mínimos Cuadrados
Promediados con Error Codificado (ECLMS) en el DSP
TMS320C6713.
El procesamiento digital de señales se ha convertido en la base de la revolución digital.
Hoy en día se puede encontrar procesadores digitales de señales en teléfonos
celulares, reproductores de audio y video, cámaras digitales, sistemas de control de
motores, infraestructura telefónica entre otros.
Hace algunas décadas, los desarrolladores descubrieron que al procesar las señales de
manera digital, se obtenían algunos avances significativos sobre las que se obtenían al
trabajar con señales analógicas. Algunas de estas ventajas son:
• Las señales digitales pueden ser mandadas sin pérdidas de datos a mayores
distancias que las señales analógicas.
• Los procesadores son programables, lo cual le permite al programador
continuar mejorando su trabajo sin necesidad de diseñar nuevo hardware.
• Se pueden realizar copias perfectas de señales digitales, tales como audio y
video, haciendo cada copia tan buena como la original.
• Un mismo procesador puede ser usado para diferentes aplicaciones, tan solo se
necesita cambiar el programa que se encuentra en memoria.
• Alta confiabilidad, exactitud, y menor sensibilidad a la temperatura y al
envejecimiento
Debido a estas ventajas la mayoría de los filtros adaptivos de la actualidad se
implementan por medio de sistemas digitales.
En este capítulo se hace una revisión de las principales alternativas que existen para
implementar filtros digitales en tiempo real, además, se presenta el procesador digital
de señales (DSP – Digital Signal Processor) TMS320C6713 de Texas InstrumentsTM el
cual fue elegido para la implementación del algoritmo ECLMS, ya que el conjunto de
31
instrucciones y la arquitectura con la que cuenta hacen de éste procesador una
herramienta adecuada para el desarrollo de algoritmos de procesamiento adaptivo.
3.1 Realización de Sistemas Adaptivos
En la actualidad, los dispositivos provistos de una o varias CPU se denominan
microcontroladores, microprocesadores y DSP, y todos ellos se caracterizan por ser
capaces de ejecutar programas ubicados en una memoria. Las diferencias entre ellos
residen en el diseño, y su uso depende de la aplicación que se le piense dar al sistema
desarrollado.
Para la implementación del algoritmo ECLMS en tiempo real se decidió utilizar un DSP,
ya que la principal característica de estos dispositivos es que poseen una CPU con una
gran potencia de cálculo, con la cual pueden realizar un gran número de operaciones
aritméticas en el menor tiempo posible, esto los hace una herramienta adecuada para
el desarrollo de algoritmos de procesamiento digital, como lo son filtrado, correlación,
análisis espectral, entre otros. A continuación se presentan las características de las
principales alternativas que aparecen al uso de los DSP.
3.1.1 Microcontroladores
Un controlador es un dispositivo cuyo objetivo es el gobierno de uno o varios procesos.
Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su
implementación física si ha variado. En la década de los años cincuenta y sesenta, los
controladores se diseñaban con componentes de lógica discreta. Posteriormente
apareció la placa de circuito impreso, que incorporaba a su alrededor una CPU y varios
dispositivos externos de memoria y de entrada/salida. En la actualidad, todos los
elementos necesarios de un controlador se han incluido en un único chip, el cual recibe
el nombre de microcontrolador.
32
El microcontrolador suele incorporar, integrados en el chip, múltiples dispositivos: una
CPU (normalmente no muy rápida y con una capacidad de procesamiento de
información no excesivamente elevada, aunque suficiente para controlar la mayoría de
los procesos reales), memorias semiconductoras de tipo
ROM/PROM/EPROM/EEPROM/FLASH para contener el programa de control y RAM
para almacenar los datos (dispositivos con unos tiempos de respuesta muy rápidos y
con una capacidad de almacenar información baja, la suficiente para contener un
programa de control y sus datos), líneas de entrada/salida para comunicarse con el
exterior, así como periféricos tales como temporizadores, canales serie y paralelo,
convertidores A/D y D/A, fundamentales en la realización y monitorización del control
de cualquier sistema físico. Las ventajas de la utilización de un microprocesador
provienen sobre todo del aumento de la fiabilidad que ofrece el sistema de control, ya
que el microcontrolador necesita un reducido número de componentes externos, y de
la disminución de los costos asociados, tanto en la etapa de diseño como en la
realización del sistema final de control.
Los microcontroladores se clasifican en función del tamaño del bus de datos. Los
microcontroladores de 8 y 16 bits de bus de datos no alcanzan, en ningún caso, las
velocidades de los DSP. Las estructuras internas de los microcontroladores de 32 bits se
asemejan a la de los DSP, pero no están preparados para el trabajo en paralelo
mediante arquitecturas multiprocesadores, sino que están pensados en más bien para
el funcionamiento en solitario y con el menor número de dispositivos externos (a ser
posible, el producto final dispondrá de un único integrado, el propio
microcontrolador).
3.1.2 Procesadores de Propósito general
Son procesadores que tienen por objetivo manejar un gran volumen de datos e
instrucciones de forma eficiente, y son usados comúnmente en las computadoras
personales o PC. El CPU de estos procesadores posee una capacidad de procesamiento
de información elevada, lo que limita el número de periféricos que se pueden integrar
en el chip, por lo tanto este tipo de procesadores suelen ser más grandes y consumen
más potencia que un DSP. También suelen necesitar periféricos de almacenamiento de
instrucciones y datos masivos (memorias ópticas o magnéticas), que tienen una gran
33
capacidad de almacenamiento de información pero que son lentos al transferir
información con la CPU. Para evitar los problemas derivados de la lentitud del acceso
de la CPU a los dispositivos de almacenamiento masivo de información, se integran
memorias semiconductoras de tipo RAM en los procesadores, las cuales funcionan
como periféricos de memoria caché (estas son memorias que cambian continuamente
su contenido, manejando siempre las instrucciones y datos a las que más
recientemente ha accedido la CPU).
Una de las principales diferencias con los DSP, es que Los programadores no pueden
especificar que instrucciones y datos se almacenarán en la memoria caché de los GPP,
mientras que en los DSP los programadores tienen la oportunidad de controlar la
caché, de manera que el programa sea más eficiente al poder controlar el bus de datos
de la memoria externa y la memoria interna.
3.1.3 Field Programmable Gate Array (FPGA)
Los FPGA (Field Programmable Gate Array) son dispositivos que contienen bloques de
circuitos lógicos comunicados por conexiones programables. Según la arquitectura que
tenga el FPGA, el tamaño, el número de bloques y la cantidad de conexiones varían.
A diferencia de cualquier microprocesador, su labor no se realiza mediante la ejecución
secuencial de instrucciones, sino que se programa en la circuitería que lleva dentro, es
decir para programar estos dispositivos se necesita de un software especial para definir
las conexiones y las funciones de los bloques de circuitos lógicos.
Cuando aparecieron estos dispositivos en el mercado, sus principales inconvenientes
eran la falta de versatilidad (no valían para otra cosa distinta de aquella para la que
fueron diseñados) y el costo de desarrollo que tenían asociado era mayor, ya que el
diseño de una aplicación basada en FPGA era mucho más costosa en tiempo que el
desarrollo de un programa en C o ensamblador para un procesador digital de señales,
esto se debe a que estos dispositivos se programan por medio de lenguajes de
descripción de hardware, como lo son: VHDL, Verilog o ABEL. Además, su utilidad
principal estaba en el empleo como coprocesadores de los DSP.
34
En la actualidad, y gracias al desarrollo de las herramientas de programación y de las
tecnologías de fabricación y técnicas de integración asociadas a estos dispositivos, los
inconvenientes relacionados con la falta de versatilidad se han solucionado, aunque
el costo de desarrollo sigue siendo superior al ligado a los DSP.
3.1.4 Procesadores Digitales de Señales (DSP)
Son microprocesadores orientados al procesamiento de señales digitales y a la
realización de cálculos de alta velocidad. Estos procesadores se caracterizan por tener
arquitecturas especiales, orientadas a la realización hardware de los cálculos que otro
tipo de microprocesadores implementan vía software, mediante la ejecución secuencial
de varias instrucciones. El hardware de la CPU de este tipo de sistemas digitales es por
ello, generalmente, mucho más complejo que el de otros microprocesadores o
microcontroladores.
La principal diferencia de los DSP y otros procesadores modernos es que los primeros
se diseñan para ser escalables, es decir se diseñan para poder operar en paralelo con
otros dispositivos similares. Para ello se le añaden periféricos de control y bloqueo del
programa (como líneas de entrada – salida que pueden bloquear la ejecución de ciertas
instrucciones si se encuentran a un determinado valor) y periféricos de entrada – salida
de alta velocidad (como puertos serie síncronos) que permiten la conexión sencilla de
varios DSP para aplicaciones que requieren múltiples procesadores.
Por lo tanto es deseable utilizar un DSP cuando se requiere:
• Disminuir costos.
• Disminuir tamaños.
• Menor consumo de potencia.
• Procesamiento de señales de alta frecuencia en tiempo real.
La gran oferta de DSP existentes en el mercado, hacen necesario un proceso de
selección que permita distinguir cuál es el más adecuado para el procesamiento o la
aplicación a desarrollar. Los factores que hay que tener en cuenta para elegir un DSP
son los siguientes:
35
Formato de los datos. Los DSP se dividen en la forma en cómo manejan los datos, ya
sea usando datos de punto fijo o datos de punto flotante. Los de punto fijo requieren
de un hardware más simple, lo que se traduce en la reducción del costo unitario y en
un menor consumo y tamaño. Por otra parte los de punto flotante simplifican la
programación de algoritmos, al tener un mayor rango dinámico, sin embargo, tiene un
consumo de potencia, costo y tamaño mayores.
Ancho de datos. El tamaño de los buses de datos nos da una medida de los flujos de
información entre la CPU y los periféricos. Un mayor ancho de datos permite que los
flujos de información sean más rápidos, aunque la arquitectura del sistema se vuelve
más complicada. El tamaño del bus de datos también tiene implicaciones sobre el
tamaño final del chip, el número de pines del encapsulado y el tamaño de los
dispositivos externos de memoria.
Organización de la memoria. La disponibilidad de suficiente memoria interna permite
aprovechar de manera más eficiente la arquitectura interna del DSP y evita la
necesidad de accesos al exterior. La presencia de memorias caché de programa o datos
acelera la ejecución, pero la arquitectura del procesador se vuelve más complicada.
Arquitectura del procesador. La estructura de ejecución de las instrucciones y el grado
de paralelismo influyen de manera decisiva en la velocidad de ejecución de una
aplicación.
Velocidad. Los fabricantes suelen dar como parámetros de velocidad los millones de
instrucciones por segundo (MIPS), los millones de operaciones flotantes por segundo
(MFLOPS) o los millones de operaciones de multiacumulación por segundo (MMACS)
que el DSP es capaz de ejecutar. Estos parámetros son realmente valores máximos y
que únicamente se cumplen en condiciones óptimas de ejecución, por lo que son sólo
parcialmente válidos como patrón de comparación entre diferentes procesadores.
El problema principal con los MIPS es que este parámetro no establece una medida del
funcionamiento de los DSP. La velocidad de los DSP se debe medir en base a cuanto
trabajo puede realizar cada instrucción, y esto depende de la arquitectura y el conjunto
de instrucciones del procesador, por ejemplo el procesador TMS320C6201 de Texas
InstrumentsTM cuenta con un reloj de 200 MHz y puede realizar hasta 1600 MIPS, al
parecer la cantidad de MIPS que realiza indica una gran velocidad si se compara con el
procesador Lucent DSP16210 que realiza 100 MIPS, pero su problema es que sus
36
instrucciones realizan tareas muy simples, por este motivo es necesario realizar varias
instrucciones para lograr hacer la misma tarea que una instrucción del DSP16210
puede realizar [2].
Una posible solución para obtener una medida objetiva de velocidad consiste en
utilizar una operación en lugar de una instrucción como elemento de comparación,
como puede ser las MMAC. En algunos DSP, una operación de multiacumulación está
asociada a una instrucción, con lo que la velocidad en MMAC coincidirá con la
velocidad de MIPS. El problema asociado a este indicador de velocidad es que no
distingue correctamente entre diferentes DSP. Las tareas asociadas a una instrucción
de multiacumulación varían de un DSP a otro. La mejor aproximación para indicar la
velocidad de un microprocesador y un DSP consiste en definir una serie de aplicaciones
o programas estándar (benchmarking) y comparar las velocidades de ejecución de esos
programas en diferentes DSP [3].
3.2 Procesador Digital de Señales TMS320C6713
La familia de DSP TMS320C6000 de Texas InstrumentsTM agrupa los DSP más rápidos y
con mayor potencia de cálculo del mercado, por este motivo se decidió usar el DSP
TMS320C6713 para la implementación del algoritmo ECLMS.
El TMS320C6713 es un DSP de punto flotante que opera a 225 MHz y puede realizar
1350 millones de operaciones de punto flotante por segundo (MFLOPS) y 450 millones
de multiacumulaciones por segundo (MMACS), y está basado en la arquitectura VLIW
(Very Long Instruction Word – Palabra de Instrucción Muy Larga), este tipo de
arquitecturas se caracterizan por tener muchas unidades funcionales que operan en
paralelo, permitiendo de esa forma ejecutar varias instrucciones en un mismo ciclo de
reloj [4].
El C6713 cuenta con ocho unidades funcionales de manera que se puedan realizar ocho
instrucciones por cada ciclo. Por ejemplo, con un reloj de 225 MHz, el C6713 es capaz
de alimentar instrucciones de 32 bit cada 1/(225 MHz) o 4.44 ns.
37
El C6713 incluye una memoria interna de 264 KB de dos niveles, el nivel 1 son dos
memorias caché de 4 Kbyte, una para programas y otra para datos. El nivel 2 es una
memoria de 256 Kbytes, de la cual ¼ puede ser utilizada como memoria caché.
También cuenta con ocho unidades funcionales o de ejecución compuestas por seis
unidades lógico aritméticas (ALUs) y dos unidades multiplicadoras, además, de dos
registros de propósito general de 32 bit Fig. 3.1.
XB, PCI,
Memoria
Host Port
Interna
GPIO
Memoria
EMIF Buses
Externa
McBSP
.D .D
Registros A
Registros B
.M .M
EDMA
.L1 .L2
Timers
.S .S
CPU
Fig. 3.1 Diagrama de bloques del TMS320C6713.
Otras características generales de este tipo de DSP se pueden resumir como se
muestra a continuación:
• Registros internos de 32 bit y propósito general (acumuladores), agrupados en
dos tablas de igual número de registros cada una.
• Controlador interno de eventos independientes de la CPU: EDMA (Enhanced
Direct Memory Access ‐ capaz de transferir datos de una locación a otra ya sea
38
externa o interna, en el rango de direcciones de memoria de la CPU sin que
ésta intervenga, con 16 canales programables independientes y con memoria
interna para mantener las configuraciones de futuras transferencias).
• Puerto digital de entrada/salida de propósito general (GPIO – General Purpouse
Input Output).
• Dos temporizadores de 32 bit.
• Puerto que implementa un protocolo serie síncrono McBSP (Multi Channel
Buffered Serial Port), comúnmente usado para conectarse a codecs (codec:
combinación de convertidores D/A, A/D), también puede ser utilizado para
cualquier tipo de comunicación serie síncrona.
• Periféricos para la conexión con otros dispositivos externos: HPI de 16 bits
(Host Port Interface ‐ puerto de comunicación del DSP que permite a un
dispositivo externo al mismo, que funcionaría como maestro en la transferencia
de información, acceder al espacio de memoria del propio DSP), XBUS (bus de
expansión que incorpora las funciones del puerto HPI, aunque con la posibilidad
de intercambio asíncrono y síncrono de información y en modo maestro o
esclavo, y de puerto de entrada/salida) y EMIF (External Memory Interface ‐
interfaz de acceso a cuatro rangos de direcciones independientes, con
periféricos externos y protocolos diferentes –SRAM, SDRAM, SBSRAM‐
mediante bus de datos de 32 bit).
• Dispone de seis unidades aritmético‐lógicas y de dos multiplicadores, en total
ocho unidades funcionales. El compilador asigna (planificación estática de la
ejecución de las instrucciones del usuario) cada una de las unidades funcionales
a las diferentes instrucciones que operan en paralelo. Las ocho unidades
funcionales son:
•
a) Dos multiplicadores internos (unidad funcional M.). Operadores
capaces de realizar multiplicaciones con números de punto flotante y
punto fijo.
39
b) Dos unidades aritméticas y lógicas (unidad funcional .S). Operadores
capaces de realizar operaciones aritméticas de 32 bit con números de
punto flotante y punto fijo, también esta unidad es la que se encarga de
realizar el corrimiento de datos, los ciclos de instrucciones y las
instrucciones condicionales.
c) Dos unidades aritméticas y lógicas (unidad funcional .L). Operadores
capaces de realizar operaciones aritméticas y de comparación de 32 o
40 bits con números de punto flotante y punto fijo.
d) Dos unidades aritméticas y lógicas (unidad funcional .D). Operadores
capaces de realizar operaciones aritméticas de 32 bit, además es la
unidad que se encarga de cargar y almacenar datos de la memoria.
Los formatos de datos que se pueden manejar en el TMS320C6713 son los siguientes:
Tipo de Dato Tamaño Representación
Tabla. 3.1 Formato de datos del procesador TMS320C6713.
40
3.3 Tarjeta de pruebas DSK TMS320C6713
Para la implementación del algoritmo se utilizó el DSK TMS320C6713 (Developer
Starter Kits) Fig. 3.2, la cual es una tarjeta que permite desarrollar diversas aplicaciones
con los procesadores digitales de señales de Texas InstrumentsTM. A continuación se
realiza una descripción de las características que posee el DSK TMS320C6713:
Fig. 3.2 Tarjeta DSK TMS320C6713.
• DSP TMS320C6713 que opera a 225 MHz.
• Memoria externa SDRAM de 16Mbytes.
• Memoria Flash de 512 Kbytes.
• Codec TLVAIC23, estéreo con dos entradas y dos salidas analógicas.
• CPLD (Complex Programmable Logic Device).
• Cuatro LED accesibles a través del CPLD.
• Cuatro DIP switch accesibles a través del CPLD.
• Tres interruptores de configuración.
• Interfaz para memoria externa (EMIF) de 32 bit a 100 MHz.
• Entrada de alimentación de 5V.
• Interfaz con el host (HPI) y soporte de emulación JTAG por USB.
• Interfaz para expansión de periféricos.
41
En la Fig. 3.3, se presenta el diagrama de bloques del DSK TMS320C6713.
Fig. 3.3 Diagrama de bloques del DSK TMS320C6713.
La interfaz de los DSP con el host se realiza utilizando el puerto de emulación JTAG
(Joint Test Action Group, es el nombre común utilizado para la norma IEEE 1149.1
titulada Standard Test Access Port and Boundary‐Scan Architecture).
El codec TLV320AIC23 sirve para adquirir y generar señales analógicas, este dispone de
dos salidas serie, la primera conectada al periférico McBSP0 para la gestión del control
y la segunda al McBSP1 realizando la transferencia de las muestras adquiridas por el
proceso de conversión analógico/digital o enviando los valores digitales necesarios para
el proceso de conversión digital/analógico. Este codec puede manejar datos de 16, 20,
24 y 32 bits y cuenta con una frecuencia de muestreo variable de 8 a 96 KHz.
42
3.4 Ambiente de desarrollo Code Compouser StudioTM
Code Compouser StudioTM (CCS) provee las herramientas necesarias para el desarrollo
de software en el DSP. Mediante CCS, se dispone de un entorno que permite al usuario
editar, compilar, simular, construir y depurar aplicaciones de software para el DSP. En
la Fig. 3.4 se muestra el ciclo que sigue el CCS para desarrollar una aplicación.
Fig. 3.4 Ciclo de diseño de aplicaciones para la familia TMS320C6000.
El archivo de configuración DSP/BIOS es una opción en la cual se pueden generar los
archivos de mapeo de memoria, interrupciones, instrumentación, sincronización, etc.,
de manera más sencilla, sin tener que crear archivos de comandos o particiones de
memoria.
El archivo fuente escrito en C, se construye con la ayuda de un editor de texto incluido
en el entorno, el CCS posee un compilador que se encarga de convertir el archivo en C
en lenguaje ensamblador o también es posible escribir el archivo fuente en lenguaje
ensamblador.
Los archivo objeto (.OBJ) y las librerías son enlazados para crear el archivo ejecutable
(.OUT), posteriormente el archivo .OUT es cargado en el DSP por el debugger del CCS.
43
La tendencia habitual en estos DSP, es desarrollar las aplicaciones utilizando el
lenguaje C, ya que el lenguaje ensamblador del DSP no se suele utilizar debido a la
complejidad de su uso y el alto grado de conocimiento que se requiere de la
arquitectura interna del microprocesador.
Fig. 3.5 Comparación de los algoritmos LMS y ECLMS.
44
El CCS contiene algunos archivos para la inicialización de los periféricos de la tarjeta,
por lo tanto para la creación del proyecto se tuvo que escribir el archivo fuente, el
mapeo de memoria y las interrupciones en lenguaje C, estos archivos se muestran en
el apéndice A.
Para las pruebas de funcionamiento de los algoritmos se utilizó las estructuras
adaptivas de predictor lineal, identificador de sistemas y cancelador de ruido, en la
sección de resultados se reportan las formas de onda en el tiempo, el comportamiento
en el dominio de la frecuencia y los espectrogramas de la evaluación en tiempo real de
estas estructuras.
Adicionalmente se realizó la implementación de una mejora que consiste en la sobre
adaptación del algoritmo ECLMS, es decir se calcula el valor de los pesos del filtro pero
sin cambiar las muestras almacenadas en el vector de retardos durante j iteraciones,
de esta manera se incrementa la velocidad de convergencia. Para esta modificación
también se reportan las formas de onda en el tiempo y en el dominio de la frecuencia.
La comparación de los algoritmos en MIPS no se realizó, ya que como se mencionó
anteriormente este ya no es un parámetro que se use para medir el funcionamiento de
los DSP [2].
Para realizar la comparación se obtuvo el número de ciclos de reloj en los que se
ejecuta cada algoritmo, de esta forma se puede comprobar si la reducción de
operaciones de punto flotante disminuye el tiempo que tarda el procesador en
ejecutar el algoritmo.
3.6 Referencias
[1] Hector Perez Meana, Mariko Nakano Miyatake, Luis Niño de Rivera, Juan Sanchez
Garcia, “Desarrollos Recientes en sistemas adaptivos analógicos”, Revista
Científica; Vol. 5 No. 3, July‐ September 2001, pag. 113‐12
[2] Jennifer Eyre, Jeff Bier, "DSP Processors Hit the Mainstream," Computer IEEE,
vol. 31, no. 8, pp. 51‐59, Aug., 1998
45
[3] Barrero García J. Federico, Toral Marín Sergio L., Ruiz González Mariano,
“Procesadores Digitales de Señal de Altas Prestaciones de Texas Instruments”, Ed.
McGraw Hill, España 2005, pag . 57‐63, 84‐87
[4] TMS320C6000 CPU and instructions Set Reference Guide, SPRU189F, Texas
Instruments, Dallas Texas, 2000.
[5] Jose Velazquez, Juan G. Avalos, Daniel Espinobarro, Juan C. Sanchez, "Analysis and
Implementation of LMS Algorithm with Coding Error in the DSP TMS320C6713,"
conielecomp, pp. 165‐170, 18th International Conference on Electronics,
Communications and Computers (conielecomp 2008), 2008
[6] N. Kehtarnavaz, B. Simsek, “C6x – Based Digital Signal Processing”, Ed. Prentice
Hall 2000.
[7] TMS320C6000 Peripherals Ref. Guide, SPRU190, Texas Instruments, Dallas Texas,
2000.
[8] TMS320C6000 Manual Update Sheet, SPRZ122, Texas Instruments, Dallas Texas,
2000.
46
CAPÍTULO IV
Resultados
En este capítulo se presenta la implementación de los algoritmos LMS, ECLMS y
OAECLMS en el DSP TMS320C6713 con el propósito de comparar su funcionamiento en
estructuras de filtrado adaptivo.
Las pruebas se realizaron en tiempo real usando las estructuras adaptivas de predictor
lineal, identificador de sistemas y cancelador de ruido, obteniéndose las formas de
onda en el tiempo, el comportamiento en el dominio de la frecuencia y los espectrogramas
respectivos.
4.1 Predictor Lineal
En esta estructura la señal deseada es igual a la señal que entra en el filtro adaptivo, el
error se calcula al restar la señal deseada con la señal de salida del filtro Fig. 4.1.
Fig. 4.1 Filtro Adaptivo como Predictor Lineal.
La estructura se probó con la frase: “Escuela Superior de Ingeniería Mecánica y
Eléctrica del Instituto Politécnico Nacional”, la cual es una señal de audio monoaural de
8 bits muestreada a 8KHz con una duración de 9.2484 s.
47
Cuando se usan procesadores de punto flotante usualmente se eligen valores del factor
de convergencia más pequeños que 1 X 10‐7 para evitar la divergencia del algoritmo
[1], ya que estos procesadores cuentan con un rango dinámico mayor que les permite
realizar operaciones con valores muy pequeños.
Para esta prueba el filtro adaptivo contó con un factor de convergencia µ = 1 X 10‐9 y 5
coeficientes, también se realizaron pruebas con un mayor numero de coeficientes, sin
embargo, no se obtuvo una mejora sustancial, por el contrario se observo que el
tiempo de procesamiento aumenta. Con el software MATLABTM se obtuvo la forma de
onda en el tiempo de la señal deseada y la señal de salida del predictor lineal Fig. 4.2.
Señal deseada
1
0.5
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras 4
x 10
Señal de salida del filtro adaptivo
0.5
0
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras 4
x 10
Fig. 4.2 Señales de voz de entrada y salida del predictor lineal usando el algoritmo
LMS.
Debido a que el convertidor A/D – D/A tiene implementados algunos filtros, digitales y
analógicos, la señal de salida del DSP presenta una atenuación con respecto a la señal
original. En las figuras esta marcado con una línea el punto de referencia que se tomó
para obtener el tiempo de retraso que existe en la señal de salida del predictor lineal
con respecto a la señal de referencia.
En la Fig. 4.3 se muestra el acercamiento que se hizo al punto de referencia de la señal
deseada, registrándose un tiempo de 791.7 ms. De igual forma se realizó un
acercamiento a la señal de salida del filtro adaptivo Fig. 4.4, en la que se obtuvo un
48
tiempo de 972.3 ms, por lo tanto el retraso generado con respecto a la señal original es
de 180.6 ms.
Fig. 4.3 Acercamiento de la señal deseada.
Fig. 4.4 Acercamiento de la señal de salida del predictor lineal usando el algoritmo
LMS.
TM
También con MATLAB se obtuvo el espectrograma de las señales de entrada y salida
del predictor lineal, en el que se observa que la señal de salida del filtro adaptivo
presenta algunas diferencias en las componentes de alta frecuencia Fig. 4.5.
Señal deseada
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida del filtro adaptivo
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.5 Espectrogramas de la señal de entrada y la señal de salida del predictor lineal
usando el algoritmo LMS.
49
El algoritmo LMS también se probó con diferentes valores del factor de convergencia.
En la Fig. 4.6 se muestran los resultados que se obtuvieron al usar un factor de
convergencia µ = 1 X 10‐10 y µ = 1 X 10‐11. Como se puede observar al utilizar un valor
de µ = 1 X 10‐11 el sistema ya no funciona de manera adecuada debido a que tarda en
adaptarse a los cambios en la estadística de la señal, esto nos indica que al disminuir
más el valor del factor de convergencia el sistema ya no alcanzará la convergencia,
además, se hicieron pruebas aumentando el valor de µ en donde se observó que al
hacerlo mayor a 1 X 10‐7 el sistema diverge [2‐3].
Señal de salida del filtro adaptivo con un factor de convergencia µ = 1 X 10-10
0.4
0.2
Amplitud
-0.2
-0.4
-0.6
0 1 2 3 4 5 6 7 8
Número de muestras 4
x 10
Señal de salida del filtro adaptivo con un factor de convergencia µ = 1 X 10-11
0.1
0.05
Amplitud
-0.05
-0.1
-0.15
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Fig. 4.6 Señales de salida del predictor lineal usando el algoritmo LMS con diferentes
factores de convergencia.
Se realizó un acercamiento a la señal obtenida con un µ = 1 X 10‐10 Fig. 4.7, el tiempo
que se registro fue de 975.7 ms, es decir esta 3.4 ms retrasada con respecto a la señal
obtenida con un µ = 1 X 10‐9, con esto se comprueba que al utilizar valores más
grandes del factor de convergencia se aumenta la velocidad de convergencia.
Fig. 4.7 Acercamiento de la señal de salida del filtro adaptivo usando el algoritmo LMS
con un µ = 1 X 10‐10.
50
Las pruebas del algoritmo ECLMS se realizaron con error codificado a 4 y 8 bits, con
MATLABTM se obtuvieron las formas de onda en tiempo de las señales. En la Fig. 4.8 se
observa la señal de salida del predictor lineal con cinco coeficientes, usando el ECLMS
con error codificado a 4 bits y un µ = 1 X 10‐9.
Señal deseada
1
Amplitud 0.5
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
0.5
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Fig. 4.8 Señales de voz de entrada y salida del predictor lineal usando el algoritmo
ECLMS con error codificado a 4 bits.
En la Fig. 4.9 se muestra el acercamiento realizado a la señal de salida del filtro
adaptivo, el tiempo registrado fue de 970.3 ms, por lo tanto la señal está retrasada
178.6 ms con respecto a la señal deseada y 2 ms menos que la señal obtenida con el
algoritmo LMS.
Fig. 4.9 Acercamiento de la señal de salida del predictor lineal usando el algoritmo
ECLMS con error codificado a 4 bits.
Se obtuvo los espectrogramas de la señal de entrada y salida del filtro adaptivo Fig.
4.10, en los cuales se observan algunas diferencias en las altas frecuencias, sin
51
embargo, las componentes en frecuencia de la señal obtenida con el algoritmo ECLMS
presentan una mayor similitud a los de la señal deseada que las componentes de la
señal obtenida con el algoritmo LMS.
Señal deseada
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo ECLMS con error codificado a 4 bits
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.10 Espectrogramas de la señal de entrada y la señal de salida del predictor
lineal usando el algoritmo ECLMS con error codificado a 4 bits.
En el capítulo II se mencionó que al realizar el proceso de codificación del error el
factor de convergencia se ve afectado, lo cual se puede observar en las ecuaciones (4.1)
y (4.2). De esta manera si se emplea un número de bits considerable en la codificación,
el valor de la resolución va a disminuir ocasionando que el factor de convergencia
aumente, por lo tanto el factor de convergencia resultante μ’ es inversamente
proporcional a la resolución, lo cual indica que al tener un valor de resolución pequeño
implica que el factor de convergencia final aumente.
W ( n + 1) = W ( n) + μ ' Q[e( n)]X( n) (4.1)
μ
μ′ = (4.2)
Res
Donde Res es la resolución del filtro, ecuación (2.32).
Para observar los efectos que la codificación del error produce en el factor de
convergencia, se realizaron pruebas con diferentes valores del factor de convergencia.
En la Fig. 4.11 se muestran los resultados que se obtuvieron al usar un factor de
52
convergencia µ = 1 X 10‐10 y µ = 1 X 10‐11, en este caso a diferencia del algoritmo LMS
se puede trabajar con factores de convergencia más pequeños, pero se debe tener
cuidado al elegir un valor mayor ya que un valor más grande que µ = 1 X 10‐8 hace que
algoritmo diverja.
Señal de salida usando el algoritmo ECLMS con error codificado a 4 bits y un µ = 1 X 10-10
0.5
0
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Señal de salida usando el algoritmo ECLMS con error codificado a 4 bits y un µ = 1 X 10-11
0.4
0.2
Amplitud
-0.2
-0.4
-0.6
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Fig. 4.11 Señales de salida del predictor lineal usando el algoritmo ECLMS codificado a
4 bits con diferentes factores de convergencia.
Al aumentar el número de bits se obtiene una mejor resolución, lo cual provoca que el
factor de convergencia aumente, así al codificar el error a 8 bits la velocidad de|
convergencia se incrementa.
En la Fig. 4.12 se muestran las señales de salida del filtro adaptivo usando el ECLMS con
error codificado a ocho bits y factores de convergencia µ = 1 X 10‐9 y µ = 1 X 10‐10. En
las pruebas realizadas se observó que para evitar la divergencia se debe utilizar valores
más pequeños que µ = 1 X 10‐9.
En la Fig. 4.13 se presenta el acercamiento realizado a la señal obtenida con un factor
de convergencia µ = 1 X 10‐10, el tiempo registrado en el punto de referencia fue de
969.2 ms, por lo tanto la señal está retrasada 172.1 ms con respecto a la señal deseada
y 1.1 ms menos que la señal obtenida con el algoritmo ECLMS codificado a 4 bits con un
µ = 1 X 10‐9.
53
Señal de salida usando el algoritmo ECLMS con error codificado a 8 bits y µ = 1 X 10-9
1
0.5
Amplitud
0
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Señal de salida usando el algoritmo ECLMS con error codificado a 8 bits y µ = 1 X 10-10
0.5
0
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Fig. 4.12 Señales de salida del predictor lineal usando el algoritmo ECLMS codificado a
8 bits con diferentes factores de convergencia.
Fig. 4.13 Acercamiento de la señal de salida del predictor lineal usando el algoritmo
ECLMS con error codificado a 8 bits y un factor de convergencia µ = 1 X 10‐10 .
Los espectrogramas muestran que las señales obtenidas con el ECLMS con error
codificado a 8 bits presentan componentes adicionales en las altas frecuencia y las
componentes de baja frecuencia están reforzadas.
54
Señal de salida usando el algoritmo ECLMS con error codificado a 8 bits y un µ = 1 X 10-9
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo ECLMS con error codificado a 8 bits y un µ = 1 X 10-10
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.14 Espectrogramas de las señales de salida del predictor lineal usando el
algoritmo ECLMS con error codificado a 8 bits con diferentes factores de convergencia.
A través de las formas de onda en el tiempo, se puede observar que el algoritmo
ECLMS posee una velocidad de convergencia mayor que el algoritmo LMS
convencional, debido a que las operaciones de punto fijo se ejecutan en un número
menor de ciclos de reloj, comparado con el número de ciclos que requieren las
operaciones de punto flotante.
Para comprobarlo se obtuvo el número de ciclos de reloj en los que se ejecutan los dos
algoritmos, obteniéndose que el algoritmo LMS se ejecuta en 76 ciclos de reloj
mientras que el algoritmo ECLMS se ejecuta en 71 ciclos de reloj por cada iteración.
Aparentemente este es un número reducido sin embargo al aumentar el número de
iteraciones se puede observar que el tiempo de procesamiento disminuye.
4.2 Identificador de Sistemas
En esta configuración la señal de referencia es la salida del sistema desconocido, como
se muestra en la Fig. 4.15.
55
Fig. 4.15 Filtro adaptivo como identificador de sistemas.
En esta implementación el sistema desconocido es un filtro FIR pasa bajos de 30
coeficientes, con una frecuencia de corte de 850 Hz a ‐6dB, diseñado con el FDATool
(Filter Design and Analysis Tool – Herramienta de Diseño y Análisis de Filtros) de
MATLABTM Fig. 4.16. Tanto el sistema desconocido como el adaptivo fueron
implementados en el DSP.
Fig. 4.16. Diseño del filtro pasa bajas en la herramienta FDATool de MATLABTM.
Las pruebas se realizaron usando el algoritmo LMS convencional y el algoritmo ECLMS
con error codificado a 8 bits. El sistema adaptivo tiene la misma longitud que el sistema
desconocido y el factor de convergencia es µ=1 X 10‐14 para ambos algoritmos.
56
Con el analizador de redes 4395A de Hewlett Packard se obtuvo la respuesta en
frecuencia del sistema desconocido y el filtro adaptivo, donde la respuesta tiene una
atenuación adicional de 3dB producida por el códec AIC23.
En la Fig. 4.18 se muestra la respuesta en frecuencia del sistema adaptivo usando el
algoritmo LMS, donde se puede observar que el algoritmo no alcanza la convergencia
mientras que el algoritmo ECLMS con las mismas condiciones si llega a converger Fig.
4.19.
Fig. 4.17 Respuesta en frecuencia del sistema desconocido.
Fig. 4.18 Respuesta en frecuencia del identificador usando el algoritmo LMS con un
factor de convergencia µ=1 X 10‐14.
57
Fig. 4.19 Respuesta en frecuencia del identificador usando el algoritmo ECLMS con
error codificado a 8 bits y un factor de convergencia µ=1 X 10‐14.
También se probó esta estructura con el algoritmo LMS y ECLMS con error codificado a
8 bits y un factor de convergencia µ=1 X 10‐12 para ambos algoritmos. En las figuras se
puede observar que con estas condiciones los algoritmos alcanzan a converger y
presentan prácticamente la misma respuesta.
Fig. 4.20 Respuesta en frecuencia del identificador usando el algoritmo LMS con un
factor de convergencia µ=1 X 10‐12.
58
Fig. 4.21 Respuesta en frecuencia del identificador usando el algoritmo ECLMS con
error codificado a 8 bits y un factor de convergencia µ=1 X 10‐12.
4.3 Cancelador de Ruido
En la Fig. 4.22 se muestra la estructura utilizada como cancelador de ruido, donde la
señal deseada (d(n)) es corrompida por ruido aditivo N(n). El objetivo del filtro
adaptivo es ajustarse de tal manera que una réplica de la señal de ruido N que está
presente en la señal deseada (d(n)), aparece en la salida del filtro, al restar la señal de
salida con la señal deseada se obtiene la señal limpia de ruido.
Fig. 4.22 Filtro adaptivo como cancelador de ruido.
Para la implementación se utilizó como señal deseada la frase: “Escuela Superior de
Ingeniería Mecánica y Eléctrica del Instituto Politécnico Nacional”, la cual es una señal
de audio monoaural de 8 bits muestreada a 8 KHz, para la señal de ruido se utilizó otra
señal de audio monoaural de 8 bits muestreada a 11 KHz. Debido a que el codec AIC
59
23 de la tarjeta es estéreo fue posible introducir la señal de ruido por el canal izquierdo
y la señal deseada por el canal derecho, de esta forma las señales se sumaron por
medio del DSP Fig. 4.23.
Señal deseada
1
Amplitud
0
-1
0 1 2 3 4 5 6 7 8
Número de muestras 4
x 10
Ruido
0.5
Amplitud
-0.5
0 2 4 6 8 10 12
Número de muestras 4
x 10
Señal deseada + ruido
1
Amplitud
-1
0 1 2 3 4 5 6 7 8
Número de muestras 4
x 10
Fig. 4.23 Señales utilizadas en la estructura de cancelador de ruido.
Para analizar el comportamiento en frecuencia de las señales se obtuvo por medio de
MATLABTM los espectrogramas Fig. 4.24.
Señal deseada
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Ruido
Frecuencia (Hz)
4000
2000
0
2 4 6 8 10 12 14
Tiempo (s)
Señal deseada + ruido
Frecuencia(Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.24 Espectrogramas de las señales utilizadas en el cancelador de ruido.
60
En la estructura de cancelador de ruido se toma como señal de salida la señal de error,
en la Fig. 4.25 se muestra la señal de error obtenida al usar el algoritmo LMS con un
factor de convergencia µ=1 X 10‐10 y 5 coeficientes. En la imagen se puede observar que
la señal no está libre de ruido.
0.6
0.4
0.2
0
Amplitud
-0.2
-0.4
-0.6
-0.8
0 1 2 3 4 5 6 7 8
Número de muestras 4
x 10
Fig. 4.25 Señal de salida del cancelador de ruido usando el algoritmo LMS.
Se obtuvo el espectrograma de la señal de salida del cancelador de ruido Fig. 4.26, en el
cual se puede observar que todavía existen varias componentes en frecuencia de la
señal de ruido, debido a que en estas condiciones el algoritmo LMS no alcanza a
converger.
4000
3500
3000
2500
Frecuencia (Hz)
2000
1500
1000
500
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.26 Espectrograma de la señal de salida del cancelador de ruido usando el
algoritmo LMS.
También se probó la estructura de cancelador de ruido con el algoritmo ECLMS con
error codificado a 4 y 8 bits, el filtro contó con 5 coeficientes y un factor de
convergencia µ= 1 X 10‐10, es decir se probó en las mismas condiciones que el algoritmo
LMS convencional. En la Fig. 4.27 se puede observar que el algoritmo alcanza la
61
convergencia, por lo tanto la señal de salida esta libre de ruido, lo cual también se
puede apreciar en los espectrogramas obtenidos Fig. 4.28 .
Señal de salida usando el algoritmo ECLMS con error codificado a 4 bits
1
0.5
Amplitud
0
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
0.5
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Fig. 4.27 Señales de salida del cancelador de ruido usando el algoritmo ECLMS.
Señal de salida usando el algoritmo ECLMS con error codificado a 4 bits
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo ECLMS con error codificado a 8 bits
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.28 Espectrograma de las señales de salida del cancelador de ruido usando el
algoritmo ECLMS.
La estructura también se probó usando una fuente de ruido diferente, para esto por
medio del generador de ondas arbitrarias AWG2005 de SONY se generó una señal de
ruido blanco de 1 V con un ciclo de 1 ms, esta señal se sumo a la señal deseada por
62
medio del DSP. Las formas de onda en el tiempo y los espectrogramas de las señales
utilizadas en el cancelador de ruido se muestran en la Fig. 4.29 y 4.30.
Señal deseada
1
Amplitud
0
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Ruido
0.5
Amplitud
-0.5
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Fig. 4.29 Señales utilizadas en la estructura de cancelador de ruido.
Señal deseada
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Ruido
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal deseada + ruido
Frecuencia(Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.30 Espectrogramas de las señales utilizadas en el cancelador de ruido.
Al utilizar el algoritmo LMS con un factor de convergencia µ= 1 X 10‐10 y 5 coeficientes,
el algoritmo no alcanza a converger por lo tanto la señal de salida sigue manteniendo
las componentes de ruido Fig. 4.31.
63
0.6 4000
3500
0.4
3000
0.2
2500
Frecuencia (Hz)
0
Amplitud
2000
-0.2
1500
-0.4
1000
-0.6 500
-0.8 0
0 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 9
Número de muestras Tiempo (s) 4
x 10
Fig. 4.31 Forma de onda en el tiempo y espectrograma de la señal de salida del
cancelador de ruido usando el algoritmo LMS.
Sin embargo cuando se utiliza el algoritmo ECLMS codificado a 4 y 8 bits, con un factor
de convergencia µ= 1 X 10‐10 y 5 coeficientes, la señal de salida queda libre de ruido
Fig. 4.32.
Señal de salida usando el algoritmo ECLMS con error codificado a 4 bits.
1
0.5
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
0.5
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Fig. 4.32. Formas de onda en el tiempo de las señales de salida del cancelador de ruido
usando el algoritmo ECLMS.
En los espectrogramas de las señales de salida se puede observar que cuando el error es
codificado a 4 bits todavía se presentan algunas componentes en frecuencia adicionales
de la señal de ruido, las cuales son eliminadas cuando el error es codificado a 8 bits Fig.
4.33, esto se debe a que la velocidad de convergencia aumenta al usar un mayor numero
de bits en la codificación.
64
Señal de salida usando el algoritmo ECLMS con error codificado a 4 bits.
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo ECLMS con error codificado a 8 bits.
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.33 Espectrogramas de las señales de salida del cancelador de ruido usando el
algoritmo ECLMS.
4.4 Algoritmo de Mínimos Cuadrados Promediados con Error
Codificado Sobre Adaptado (OAECLMS)
Una de las características del algoritmo ECLMS es que reduce el tiempo de
procesamiento lo que hace posible la sobre adaptación o re uso de datos.
La sobre adaptación es una técnica que se aplica en sistemas con alta velocidad de
procesamiento, y esta se efectúa recalculando el valor de los pesos del filtro, pero sin
cambiar las muestras almacenadas en el vector de retardos durante j iteraciones. Así al
aplicar la sobre adaptación al algoritmo ECLMS se obtiene (4.3) [6].
W(n + j) = W(n + j −1) + μC[e(n + j −1)]X(n) (4.3)
donde C[e(n+j‐1)] es el error codificado
El error codificado es calculado usando (4.4) [6].
65
⎛ e(n + j − 1) ⎞
C [e(n + j − 1)] = round ⎜ ⎟
⎝ Res ⎠ (4.4)
Donde round es la función de redondeo, e(n) es el error actual del filtro y Res es la
resolución del filtro.
Para el cálculo de la resolución se debe usar (4.5) [6].
e
Res = nmáx
2 −1 (4.5)
Donde emax es el error máximo probable y n es el número de bits de codificación.
Para la evaluación de los algoritmos ECLMS y OAECLMS se utilizó la estructura adaptiva
de predictor lineal Fig.4.1.
Para comparar el funcionamiento de estos algoritmos se obtuvieron las formas de
onda en el tiempo, el comportamiento en el dominio de la frecuencia y los
espectrogramas de la evaluación en tiempo real. La estructura se probó con la frase:
“Escuela Superior de Ingeniería Mecánica y Eléctrica del Instituto Politécnico Nacional”,
la cual es una señal de audio monoaural de 8 bits muestreada a 8KHz con una duración
de 9.2484 s. Para las pruebas el filtro adaptivo contó con 5 coeficientes para ambos
algoritmos.
En la Fig. 4.34 se muestra la señal de salida del filtro adaptivo usando los algoritmos
ECLMS y OACLMS sobreadaptado con tres iteraciones adicionales, el error esta
codificado a 4 bits y el factor de convergencia es µ = 1 X 10‐7 para ambos algoritmos.
Como se puede observar el algoritmo LMS diverge, mientras que el algoritmo OAECLMS
alcanza a converger, debido a que el recalculo de los pesos ocasiona la reducción de la
potencia del error [5].
66
Señal Deseada
1
Amplitud
0
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Amplitud
0
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
-1
0 1 2 3 4 5 6 7 8
Número de muestras 4
x 10
Fig. 4.34 Señales de entrada y salida del predictor lineal, usando los algoritmos
ECLMS y OAECLMS con error codificado a 4bits.
Se obtuvieron los espectrogramas de estas señales con el fin de observar su
comportamiento en el dominio de la frecuencia y el tiempo Fig. 4.35. En el
espectrograma de la señal obtenida con el algoritmo OAECLMS se puede observar que
las componentes de baja frecuencia permanecen intactas, solamente se observan
algunas componentes adicionales en las altas frecuencias.
Señal Deseada
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo ECLMS codificado a 4 Bits
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo OAECLMS codificado a 4 Bits
Frecuencia(Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.35 Espectrogramas de la señal de entrada y la señal de salida del predictor lineal,
usando los algoritmos ECLMS y OAECLMS con error codificado a 4 bits.
67
Para observar la diferencia en las velocidades de convergencia se realizó un
acercamiento a la señal generada con el algoritmo OAECLMS Fig. 4.36, en la cual se
registro un tiempo de 1.0339 s.
Fig. 4.36 Acercamiento a la señal de salida del predictor lineal, usando el OAECLMS con
error codificado a 4 bits.
En la Fig. 4.37 se presentan las formas de onda en el tiempo obtenidas con los
algoritmos ECLMS y OAECLMS sobreadaptado con tres iteraciones adicionales, el error
esta codificado a 8 bits y el factor de convergencia es µ = 1 X 10‐7 para ambos
algoritmos. En este caso el algoritmo ECLMS de nuevo no alcanza a converger,
mientras que el algoritmo OAECLMS aumenta su velocidad de convergencia ya que se
utilizó un número mayor de bits para la codificación del error.
Señal Deseada
1
Amplitud
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4
Fig.4.37 Señales de entrada y salida del predictor lineal usando los algoritmos ECLMS
y OAECLMS con error codificado a 8bits.
68
Los espectrogramas muestran que la señal obtenida con el OAECLMS presenta
componentes adicionales en las altas frecuencia Fig. 4.38, además, las componentes de
baja frecuencia están reforzadas.
Señal Deseada
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo ECLMS codificado a 8 Bits
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo OAECLMS codificado a 8 Bits
Frecuencia(Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 4.38. Espectrogramas de la señal de entrada y la señal de salida del predictor lineal,
usando los algoritmos ECLMS y OAECLMS con error codificado a 8 bits.
Al realizar un acercamiento a la señal generada con el algoritmo OAECLMS se registró
un tiempo de 984.7 ms Fig. 4.39, es decir es 49.2 ms más rápida que la señal obtenida
con el algoritmo OAECLMS con error codificado a 4 bits.
Fig. 4.39. Acercamiento a la señal de salida del predictor lineal, usando el OAECLMS con
error codificado a 8 bits.
Para comparar el funcionamiento de los algoritmos LMS, ECLMS y OAECLMS en la
estructura de predictor lineal, se registró los tiempos de respuesta y el número de
69
ciclos de reloj en los que se ejecuta cada algoritmo. Los resultados se muestran en la
tabla 4.1.
Algoritmo µ No. de Bits Tiempo de Ciclos de Reloj en
Utilizados en la Respuesta los que se
Codificación del Ejecuta el
Error Algoritmo
Tabla 4.1. Resultados obtenidos en la estructura de predictor lineal.
70
4.5 Referencias
[1] Kehtarnavaz Nasser, “Real – Time Digital Signal Processing Based on the
TMS320C6000”, Ed. Elsevier 2005, pag. 194.
[2] J. G. Avalos, J. M. González, J. Velázquez, J. C. Sánchez, “Implementación del
algoritmo LMS en el DSP TMS320C6713”, XXIX Congreso Internacional de
Ingeniería Electrónica (ELECTRO 2007).
[3] J. G. Avalos, J. M. González, J. Velázquez, J. C. Sánchez, “Implementación del
Algoritmo LMS con Error Codificado en el DSP TMS320C6713”, 10º Congreso
Nacional de Ingeniería Electromecánica y de Sistemas (CNIES 2007), ESIME
Zacatenco.
[4] José Velázquez, Juan G. Ávalos, Daniel Espinobarro, Juan C. Sánchez, "Analysis and
Implementation of LMS Algorithm with Coding Error in the DSP TMS320C6713,"
CONIELECOMP, pp. 165‐170, 18th International Conference on Electronics,
Communications and Computers (CONIELECOMP 2008), 2008
[5] J. Velázquez, J. C. Sánchez, J. G. Ávalos, “Algoritmo LMS con Error Codificado
para Filtrado Adaptivo”, “Información Tecnológica”, vol. 19 no. 5, 2008.
[6] J. G. Avalos, J. Velázquez, J. C. Sánchez, “Implementación del algoritmo de mínimos
cuadrados promediados con error codificado sobre adaptado (OAECLMS) con el
DSP TMS320C6713”, 6º Congreso Internacional en Innovación y Desarrollo
Tecnológico (CIINDET 2008), Por Publicarse.
71
Conclusiones y Trabajo a Futuro.
La tecnología con la que cuenta el procesador digital de señales TMS320C6713 permite
realizar algoritmos de filtrado en tiempo real, lo cual se constató con la
implementación de los algoritmos LMS y ECLMS en estructuras adaptivas de
predicción lineal, identificador de sistemas y cancelador de ruido.
A través de las formas de onda en el tiempo y los espectrogramas se comprobó que el
algoritmo ECLMS posee una velocidad de convergencia mayor que el algoritmo LMS
convencional, debido a que el número de operaciones de punto flotante se reduce, por
lo tanto el número de ciclos de instrucción que se ejecutan es menor provocando que
la velocidad de procesamiento sea mayor.
La codificación del error afecta al factor de convergencia, de esta manera si se aumenta
el número de bits en la codificación se presenta una mejora en la velocidad de
convergencia ya que se obtiene mayor precisión en el proceso de codificación, sin
embargo se debe tener cuidado al elegir la cantidad de bits ya que un número muy
grande puede provocar que el sistema diverja.
Se ha comprobado que el algoritmo ECLMS reduce el tiempo de procesamiento, esto
nos da la posibilidad de realizar la sobre adaptación o re‐uso de datos, la cual es una
técnica que permite recalcular el valor de los pesos en cada iteración produciendo una
reducción en el valor mínimo del error cuadrático medio.
Con los resultados obtenidos se pudo comprobar que al aplicar el algoritmo OAECLMS
en la configuración de predictor lineal con señales de audio, se puede usar valores más
grandes del factor de convergencia sin que el algoritmo diverja lo cual produce un
aumento en la velocidad de convergencia.
El codificador no afecta la estructura del filtro y tampoco al algoritmo de adaptación,
debido a que la codificación del error se realiza por separado, por lo tanto el algoritmo
ECLMS es compatible con los filtros adaptivos digitales existentes. Así se plantea como
trabajo a futuro realizar diversas implementaciones en el DSP en las cuales se utilice la
codificación del error con diferentes variantes del algoritmo LMS, lo que nos permitiría
alcanzar velocidades de convergencia mayores.
72
También sería de gran utilidad aumentar el grado de optimización del programa
desarrollado con el objetivo de que el código sea más eficiente, para lograr esto se
necesita realizar toda la programación del proyecto en lenguaje ensamblador.
Debido a que la implementación que se realizó fue hecha con una tarjeta de pruebas
DSK, se podría crear un sistema en el que solamente se utilicen los periféricos
necesarios para el filtrado digital, así se tendría un sistema con el cual se pueda probar
las diferentes modificaciones que se realicen a los algoritmos de adaptación.
Dentro de la línea de investigación también se ha hecho una propuesta para mejorar el
tiempo de procesamiento y de complejidad de diseño, esta nueva modificación plantea
almacenar los resultados del producto del segundo término del algoritmo ECLMS de
manera previa en una memoria convirtiendo al algoritmo en una suma aritmética, lo
cual es posible debido a que al realizar la codificación del error se tiene un número
finito de posibles resultados, dicha propuesta se planea desarrollar en un DSP para
poder determinar su efectividad.
73
Ápendice A
Código del Programa Desarrollado
1. Identificador de Sistemas usando el algoritmo ECLMS.
#include "DSK6713_AIC23.h"
#define _TI_ENHANCED_MATH_H 1
#include <math.h>
Uint32 fs=DSK6713_AIC23_FREQ_8KHZ;
#define beta 1E‐10 //Valor del Factor de Convergencia
#define N 5 //Número de coeficientes del filtro
#define LEFT 0
#define RIGHT 1
float w[N];
int delay[N];
int dly[N];
short output;
short out_type = 1;
volatile union{unsigned int uint; short channel[2];}AIC23_data;
interrupt void c_int11()
{
int i,;
float E=0, res=283.33;
int yn=0, deseada=0, Ec=0, ruido=0, suma=0;
AIC23_data.uint = input_sample();
deseada = (AIC23_data.channel[LEFT]);
delay[0] = deseada;
for (i = 0; i < N; i++) //Filtro FIR desconocido
d += (h[i] * dly[i]);
for (i = N‐1; i > 0; i‐‐)
dly[i] = dly[i‐1];
74
for (i = 0; i < N; i++) //Filtro Adaptivo
yn += (w[i] * delay[i]);
E = (d – yn);
Ec = roundf(E * res);
for (i = N‐1; i >= 0; i‐‐) //Algoritmo ECLMS
{
w[i] = w[i] + beta*Ec*delay[i];
delay[i] = delay[i‐1];
}
if(out_type == 1)
output=((short)yn); //Señal de salida del Filtro Adaptivo
else if(out_type==2)
output=((short)d); //Señal de Salida del Filtro FIR Desconocido
output_sample(output);
return;
}
void main()
{
short T=0;
for (T = 0; T < 5; T++)
{
w[T] = 0;
delay[T] = 0;
}
comm_intr();
while(1);
}
2. Mapeo de Memoria
MEMORY
{
IVECS: org=0h, len=0x220
IRAM: org=0x00000220, len=0x0002FDE0 /*memoria interna*/
SDRAM: org=0x80000000, len=0x00100000 /*memoria externa*/
FLASH: org=0x90000000, len=0x00020000 /*memoria flash*/
}
75
SECTIONS
{
.EXT_RAM :> SDRAM
.vectors :> IVECS
.text :> IRAM
.bss :> IRAM
.cinit :> IRAM
.stack :> IRAM
.sysmem :> IRAM
.const :> IRAM
.switch :> IRAM
.far :> IRAM
.cio :> IRAM
.csldata :> IRAM
}
3. Programa fuente para la comunicación e inicialización del DSK.
#include "C6713dskinit.h"
#define using_bios
extern Uint32 fs;
void c6713_dsk_init() //Inicialización de periféricos
{
DSK6713_init(); //LLama al BSL para inicializar DSK‐EMIF,PLL
hAIC23_handle=DSK6713_AIC23_openCodec(0, &config);
DSK6713_AIC23_setFreq(hAIC23_handle, fs); //Establece frecuencia de muestreo
MCBSP_config(DSK6713_AIC23_DATAHANDLE,&AIC23CfgData);//Interfaz de 32 bits AIC23
MCBSP_start(DSK6713_AIC23_DATAHANDLE, MCBSP_XMIT_START | MCBSP_RCV_START |
MCBSP_SRGR_START | MCBSP_SRGR_FRAMESYNC, 220); //Inicio del canal de datos
}
void comm_poll()
{
poll=1;
c6713_dsk_init(); //Inicializa DSP y codec
}
void comm_intr() // Comunicación con interrupciones
{
76
poll=0;
IRQ_globalDisable(); //Deshabilita interrupciones
c6713_dsk_init();
CODECEventId=MCBSP_getXmtEventId(DSK6713_AIC23_codecdatahandle);//McBSP1
#ifndef using_bios
IRQ_setVecs(vectors);
#endif
IRQ_map(CODECEventId, 11);
IRQ_reset(CODECEventId);
IRQ_globalEnable();
IRQ_nmiEnable();
IRQ_enable(CODECEventId);
output_sample(0); //Inicio de McBSP para mandar las muestras a la salida
}
void output_sample(int out_data) //Salida de canales izquierdo y derecho
{
short CHANNEL_data;
AIC_data.uint=0;
AIC_data.uint=out_data;
CHANNEL_data=AIC_data.channel[RIGHT];
AIC_data.channel[RIGHT]=AIC_data.channel[LEFT];
AIC_data.channel[LEFT]=CHANNEL_data;
if (poll) while(!MCBSP_xrdy(DSK6713_AIC23_DATAHANDLE));
MCBSP_write(DSK6713_AIC23_DATAHANDLE,AIC_data.uint);//Escritura/salida datos
}
void output_left_sample(short out_data) //Salida del canal izquierdo
{
AIC_data.uint=0;
AIC_data.channel[LEFT]=out_data;
if (poll) while(!MCBSP_xrdy(DSK6713_AIC23_DATAHANDLE));
MCBSP_write(DSK6713_AIC23_DATAHANDLE,AIC_data.uint);
}
void output_right_sample(short out_data) //Salida del canal derecho
{
AIC_data.uint=0;
AIC_data.channel[RIGHT]=out_data;
if (poll) while(!MCBSP_xrdy(DSK6713_AIC23_DATAHANDLE));
MCBSP_write(DSK6713_AIC23_DATAHANDLE,AIC_data.uint);
}
Uint32 input_sample()
77
{
short CHANNEL_data;
if (poll) while(!MCBSP_rrdy(DSK6713_AIC23_DATAHANDLE));
AIC_data.uint=MCBSP_read(DSK6713_AIC23_DATAHANDLE);
CHANNEL_data=AIC_data.channel[RIGHT];
AIC_data.channel[RIGHT]=AIC_data.channel[LEFT];
AIC_data.channel[LEFT]=CHANNEL_data;
return(AIC_data.uint);
}
short input_left_sample() //Entrada canal izquierdo
{
if (poll) while(!MCBSP_rrdy(DSK6713_AIC23_DATAHANDLE));
AIC_data.uint=MCBSP_read(DSK6713_AIC23_DATAHANDLE);
return(AIC_data.channel[LEFT]);
}
short input_right_sample() //Entrada canal derecho
{
if (poll) while(!MCBSP_rrdy(DSK6713_AIC23_DATAHANDLE));
AIC_data.uint=MCBSP_read(DSK6713_AIC23_DATAHANDLE);//Leer canal derecho
return(AIC_data.channel[RIGHT]);
}
78
Ápendice B
Publicaciones
Artículos Publicados en Congresos
• J. G. Avalos, J. Velázquez, J. C. Sánchez, “Implementación del algoritmo de
mínimos cuadrados promediados con error codificado sobre adaptado
(OAECLMS) con el DSP TMS320C6713”, 6º Congreso Internacional en
Innovación y Desarrollo Tecnológico (CIINDET 2008), Por Publicarse.
• José Velázquez, Juan G. Ávalos, Daniel Espinobarro, Juan C. Sánchez, "Analysis
and Implementation of LMS Algorithm with Coding Error in the DSP
TMS320C6713," CONIELECOMP, pp. 165‐170, 18th International Conference
on Electronics, Communications and Computers (CONIELECOMP 2008),
2008
• J. Velázquez López, Juan Gerardo Ávalos Ochoa, Juan Carlos Sánchez García, Luis
Díaz Hernández,“Comparación del Algoritmo de Mínimos Cuadrados
Promediados con Error Codificado, con Algoritmos de Paso Variable”, 10º
Congreso Nacional de Ingeniería Electromecánica y de Sistemas (CNIES 2007),
ESIME Zacatenco.
• J. G. Avalos, J. M. González, J. Velázquez, J. C. Sánchez, “Implementación del
Algoritmo LMS con Error Codificado en el DSP TMS320C6713”, 10º Congreso
Nacional de Ingeniería Electromecánica y de Sistemas (CNIES 2007), ESIME
Zacatenco.
• J. G. Avalos, J. M. González, J. Velázquez, J. C. Sánchez, “Implementación del
algoritmo LMS en el DSP TMS320C6713”, XXIX Congreso Internacional de
Ingeniería Electrónica (ELECTRO 2007).
79
Artículos Publicados en Revistas
• J. Velázquez, J. G. Ávalos, J. C. Sánchez, “Análisis e Implementación en DSP del
Algoritmo LMS con Error Codificado”, “IEEE Latinoamericana“, Artículo en
revisión.
• J. Velázquez, J. C. Sánchez, J. G. Ávalos, “Algoritmo LMS con Error Codificado
para Filtrado Adaptivo”, “Información Tecnológica”, vol. 19 no. 5, 2008.
80
CIINDET 2008
6º Congreso Internacional en Innovación y Desarrollo Tecnológico,
8 al 10 de octubre de 2008, Cuernavaca, Morelos., México.
J. G. Avalos Ochoa, Student Member,IEEE, J. Velázquez Lopez, Student Member, IEEE, J. C. Sánchez
García, Member, IEEE.
64 Pag. 1
CIINDET 2008
6º Congreso Internacional en Innovación y Desarrollo Tecnológico,
08 al 10 de octubre de 2008, Cuernavaca, Morelos., México
Pag. 2
CIINDET 2008
6º Congreso Internacional en Innovación y Desarrollo Tecnológico,
08 al 10 de octubre de 2008, Cuernavaca, Morelos., México
0
IV. Resultados de la Implementación en el DSP -1
TMS320C6713 0 1 2 3 4
Número de muestras
5 6 7
4
8
x 10
Señal de salida usando el algoritmo OAECLMS codificado a 4 Bits
1
Para la evaluación de los algoritmos ECLMS y
Amplitud
Pag. 3
CIINDET 2008
6º Congreso Internacional en Innovación y Desarrollo Tecnológico,
08 al 10 de octubre de 2008, Cuernavaca, Morelos., México
4000 1
Amplitud
2000 0
0 -1
0 1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9
Número de muestras x 10
4
Tiempo (s)
Señal de salida usando el algoritmo ECLMS codificado a 8 Bits
Señal de salida usando el algoritmo ECLMS codificado a 4 Bits 1
Frecuencia (Hz)
4000
Amplitud
0
2000
-1
0 0 1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8 9 Número de muestras 4
x 10
Tiempo (s) Señal de salida usando el algoritmo OAECLMS codificado a 8 Bits
Señal de salida usando el algoritmo OAECLMS codificado a 4 Bits 1
Frecuencia(Hz)
4000
Amplitud
0
2000
-1
0 1 2 3 4 5 6 7 8
0
1 2 3 4 5 6 7 8 9 Número de muestras x 10
4
Tiempo (s)
Fig. 6. Señales de entrada y salida del predictor lineal, usando los
Fig. 4. Espectrogramas de la señal de entrada y la señal de salida del algoritmos ECLMS y OAECLMS con error codificado a 8bits.
predictor lineal, usando los algoritmos ECLMS y OAECLMS con
error codificado a 4 bits.
Los espectrogramas muestran que la señal obtenida
con el OAECLMS presenta componentes adicionales
Para observar la diferencia en las velocidades de en las altas frecuencia Fig. 7, además, las componentes
convergencia se realizó un acercamiento a la señal de baja frecuencia están reforzadas.
generada con el algoritmo OAECLMS Fig. 5, en la cual .
se registro un tiempo de 1.0339 s.
Señal Deseada
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de salida usando el algoritmo ECLMS codificado a 8 Bits
Frecuencia (Hz)
4000
2000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 5. Acercamiento a la señal de salida del predictor lineal, usando Señal de salida usando el algoritmo OAECLMS codificado a 8 Bits
Frecuencia(Hz)
4000
el OAECLMS con error codificado a 4 bits.
2000
Pag. 4
CIINDET 2008
6º Congreso Internacional en Innovación y Desarrollo Tecnológico,
08 al 10 de octubre de 2008, Cuernavaca, Morelos., México
Pag. 5
18th International Conference on Electronics, Communications and Computers
-+
x Filter e
Key words -- LMS, adaptive filters, ECLMS, linear
prediction, DSP. y
Adaptation
1. Introduction algorithm
166
affected [17], which can bring as consequence a speed x(T) d(T)
μ 1 (12)
0< < w(T)
e(T)
Res N x 2 (T ) LMS
Algorithm
In order to obtain the relation between the number of bits Fig. 2. Adaptive filter predictor.
and the convergence factor, it is replaced (10) in (12) with
which the shown thing is generated in (13) The results of the Mean Square Error, (MSE) comparison
of LMS algorithm versus ECLMS algorithm, are shown in
Errmax (13) Fig. 3. These results obtained the same convergence factor,
0<μ <
(2 n
)
− 1 N x 2 (T ) the maximum error was 90% at the peak value of the input
signal and for ECLMS algorithm eight bits in the coding of
The equation (15) shows the existing direct the error were used.
proportionality between the convergence factor and the
number of bits used in the coding, therefore, to greater 0
LMS
number of bits, greater speed of convergence. SNR = 20 dB
ECLMS a 8 bits
The resolution error value is important from the loss of -5
1 3
Res < e(T ) < Res (14)
2 2 -25
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Iteration 4
x 10
Then, the greater resolution value, the more similar will Fig. 3. , Average quadratic Error of LMS algorithm against ECLMS.
the ECLMS algorithm will be to the LMS algorithm with
sign of faster error, besides, a minor amount of bits is In the results shown in Fig. 3, the mean square error for
required, but the average quadratic error will be greater. It ECLMS algorithm it’s noticeable that it converges much
is mentioned in a similar way to the sign variable, because more efficiently compared to the conventional LMS
the variable of single sign considers the values: one positive algorithm, in addition, it managed to obtain the same
or one negative, and the variable proposal considers, in minimum error in both cases. The speed increase of
addition, to handle the zero option when the error is below convergence of ECLMS algorithm was explained
the resolution. previously, the important thing is the minimum level of the
MSE, which is not altered although ECLMS algorithm has
4. Simulation Results a similar behavior to the variable sign once it has found the
minimum value of the MSE.
In this section, the obtained results of simulation with
MatlabTM appear, in order to make a comparative analysis 5. Results of the Implementation in the DSP
of the proposal modification, in respect to conventional TMS320C6713
LMS algorithm, when the adaptive filter carries out the
linear prediction, the analysis of behavior of the number of The C6713 is considered to be one of the Texas
coding bits is made. A linear predictive adaptive filter, is InstrumentsTM most powerful processors, the CPU is based
connected as it is in Fig. 2, where the desired signal is equal on a very long instruction word (VLWI) architecture, what
to the input signal of the adaptive filter, therefore, the signal makes this one an appropriate tool for the development of
of the error is obtained subtracting the input signal from the adaptive processing algorithms. This processor has eight
output signal of the filter. The structure of the cross- functional units that works in parallel, six arithmetic logic
sectional filter or finite impulse response (FIR) as it is also units (ALUs) and two multiplier units with whom a total of
known. The linear predicting is a technique of spectral eight 32-bit instructions can be fetched every clock cycles,
assessment, which is used to model correlated random also it contains 264 kB of internal memory and two sets of
processes, with the objective to find the parametric 32-bit general purpose registers. The CPU operates at
representation of these processes. 225MHz (4.4 ns cycle time) delivering a peak performance
167
of 1350 million of floating operations per second Desired Signal
4000
(MFLOPS) and 450 million multiply accumulate cycles per
Frequency (Hz)
3000
second (MMACS).
The DSK board includes: 2000
1000
(SDRAM).
Frequency (Hz)
3000
switches. 0
1 2 3 4 5 6 7 8 9
• External memory interface (EMIF). Time (s)
Fig. 5. Spectrograms of the input signal and the output signal of the
To create the application we used the software Code linear predictor.
Composer StudioTM which is a useful integrated
We did an approaching to the reference point from the
development environment (IDE) that includes tools for
input signal and we obtained a time of 792.8 ms Fig. 6.
code generation, such as a C compiler, an assembler, and a
linker and provides an easy-to-use software tool to build
and debug programs.
The tests were made in real time using a linear predictor
structure, as input signal we used the phrase “Escuela
Superior de Ingenieria Mecanica y Electrica del Instituto
Politecnico Nacional”, which is a 8-bit monaural audio
signal with a sampling frequency of 8 KHz and a duration
of 9.2484s. For all the tests the adaptive filter had five
coefficients and µ=10-11. Fig. 6. Approaching to the reference signal.
B. ECLMS Algorithm
The tests with the ECLMS were made using 4 and 8 bits
in the codification of the error, the resolution was estimated
before the algorithm was implemented in the DSP through
(10), owing to the maximum error in the equation it’s not
known, an estimation can be made from the maximum
possible value of the adaptive filter input signal, which is
not greater than 90% of the maximum amplitude, therefore,
the resolution obtained for a 4 bit codification was 0.06. To
Fig. 4. Input and output voice signals of the linear predictor.
codify the error was used (9) which it’s necessary to make
With MATLABTM we also obtained the spectrogram of the division between the sample and the resolution,
the input signal and the adaptive filter output Fig. 5, the however, division in the DSP involves a larger number of
figure shows that the output signal has some additional clock cycles than a multiplication, so the inverse of the
frequency components with respect to the input signal. resolution was calculated and the value obtained was
168
16.6666, this way the codified error in the DSP can be We can observe in Fig. 11 the input and output signals
calculated through (15). from the adaptive filter using the ECLMS algorithm
codified to 8 bits, the calculated resolution is 283.333.
C [e(T )] = round (e(T ) Re s ) (15)
Fig. 11. Input and output voice signals of the linear predictor,
using ECLMS algorithm codified to 8 bits.
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Time (s)
Adaptive Filter Output Signal
4000
Fig. 12. Rapprochement to the adaptive filter output signal,
Frequency (Hz)
3000
using ECLMS algorithm codified to 8 bits.
2000
1000
Through the time waveforms, we can see that the
0
1 2 3 4 5 6 7 8 9 ECLMS algorithm improves the speed convergence,
Time (s)
because the floating point operations need more clock
Fig. 9. Spectrograms of the input signal and the output signal of the cycles to be executed than the fixed point operations. To
linear predictor, using ECLMS algorithm codified to 4 bits.
make a comparison we obtained the number of clock cycles
Fig. 10 shows an approaching that was done to the from the two algorithms, the LMS algorithm is executed in
reference point of the filter output signal, where there is a 75 clock cycles while the ECLMS is executed in 71 clock
time of 954.9 ms, the delay generated with respect to the cycles for each iteration.
original signal is 162.1 ms and 590 µs less than the signal
obtained with the LMS algorithm. 6. Conclusions
A modification to LMS algorithm is shown, with the
objective to reduce the number of floating point operations,
this way the computational complexity is simplified making
the digital adaptive filters implementation easier.
The proposed modification doesn’t affect the adaptive
filter structure and neither the adaptation algorithm,
because the error codification is made separately, hence,
ECLMS algorithm is compatible with the existing digital
Fig. 10. Approaching to the adaptive filter output signal, using
adaptive filters.
ECLMS algorithm codified to 4 bits. Besides the reduction of the algorithm complexity, the
169
results show that the processing time is reduced in the DSP [17] J. Velazquez Lopez, Juan Carlos Sanchez Garcia, Hector Perez
Meana, Miguel Roman Macias and Teresa Andrade Ruiz, “Over
implementation. This can be useful to employ the left over adapted LMS Algorithm with Codified Error”; Proceedings
time to make the algorithm over adaptation, this way the Electronics, Robotics and Automotive Mechanics Conference Vol I;
weights are recalculated with the same stored data in the Cuernavaca Morelos México; September 2006.
[18] J. Velazquez Lopez, Juan Carlos Sanchez Garcia and Hector Perez
filter delay line. Meana, “Algorithm LMS with codified error for adaptive filters”,
The clock cycle reduction in the processing apparently Proceedings 3rd International Workshop on Random Fields
looks like a reduced number, but when the number of Modeling and Processes in Inhomogeneous Media”, 24-25 October
iterations is increased it can be observed that the overall 2005, Guanajuato, Mexico.
[19] José Velázquez López, “Algoritmo LMS con error codificado para
processing time is reduced. aplicaciones de filtrado adaptivo”, Tesis to received the Ph.D. degree
in Communications, at Polytechnic Institute (IPN), México D.F. May
2007.
7. References
[1] Carusone, A., Johns, D.A.; “Analogue adaptive filters: past and
present”; Circuits, Devices and Systems, IEEE Proceedings; Vol:
147, February 2000; pp:82 – 90.
[2] Hector Pérez Meana, Mariko Nakano Miyatake, Luis Niño de
Rivera, Juan Sánchez García; “Desarrollos recientes en sistemas
adaptables analógicos”; Revista Científica; Vol. 5 Núm. 3; July-
September 2001; pp. 113-129.
[3] Tai-Cheng Lee and Bezhad Razavi; “A 125 Mixed-Signal Echo
Canceller for Gigabit Ethernet on Copper Wire”; IEEE Journal of
Solid-State circuits, Vol. 36, No. 3, March 2001; pp. 366-373.
[4] Ayal Shoval, David A. Johns and W. Martin Snelgrove;
“Comparison of DC Offset Effects in Four LMS Adaptive
Algorithms”; IEEE Transactions on Circuits and Systems-II: Analog
and Digital Signal Processing; Vol. 42, No. 3, March 1995; pp. 176-
185.
[5] Bhupendra K. Ahuja, Miles A. Copeland and Chong Hon Chan, “A
Sampled Analog MOS LSI Adaptive Filter”, IEEE Journal Of Solid-
State Circuits, Vol. SC-14, No.1, February 1979; pp. 148-154.
[6] Miguel Figueroa, Seth Bridges, David Hsu, and Chris Diorio, “A
19.2 GOPS Mixed-Signal Filter With Floating-Gate Adaptation”,
IEEE Journal of Solid State Circuits, Vol. 39, No. 7, Julio 2004; pp.
1196-1201.
[7] Al Jackson; “ADSL For High-Speed Broadband Data Service”;
Aerospace Conference, 1998. Proceedings., IEEE, Volume 4, 21-28
March 1998; pp: 451–465.
[8] Hanna Bogucka and Krzysztof Wesolowski; “Frequency-Domain
Echo Cancellation in Digital Multicarrier Modulation Systems”;
IEEE Transactions on Communications; Vol. 48, No.2, February
2000; pp: 333-342.
[9] Katleen Van Acker, Geert Leus, Marc Moneen; “Per Tone
Equalization for DMT-Based Systems”; IEEE Transactions on
Communications, Vol. 49, No. 1, January 2001, pp: 109-119.
[10] Sau-Gee Chen, Yung-An Kao, and Kwung-Yee Tsai. “A New
Efficient LMS Adaptive Filtering Algorithm”; IEEE Transactios on
Circuits and Systems –II, Vol 43, No. 5, May 1996, pp 372-378.
[11] Chris J. Nicol, Patrik Larsson, Kamran Azadet, and Jay H. O’Neill;
“A Low-Power 128-Tap Digital Adaptive Equalizer For Broadband
Modems”; IEEE Journal of Solid State Circuits, Vol. 32, No. 11,
November1997; pp. 1777-1789.
[12] Shivaling S. Mahant-Shetti, Srinath Hosur and Alan Gatherer; “The
Log-Log LMS Algorithm” Acoustics, Speech, and Signal
Processing, 1997. ICASSP-97., 1997 IEEE International Conference
on, 21-24 April 1997; pp. :2357-2360 vol.3.
[13] Bhupendra K. Ahuja, Miles A. Copeland and Chong H. Chan; “A
new adaptive algorithm and its implementation in MOS LSI”; IEEE
Journal of Solid State Circuits, Vol. SC-14, No. 4, Agust 1979; pP.
747-753.
[14] J. Velázquez López, Juan Carlos Sánchez García y Héctor Pérez
Meana; “Algoritmo LMS con error codificado”; Proceedings CAS-
Tour/ICED 2004; Veracruz México.
[15] J. Velázquez López, Juan Carlos Sánchez García y Héctor Pérez
Meana; “Algoritmo LMS modificado para aplicaciones de filtrado
adaptivo de rápida velocidad de convergencia”, Proceedings CIECE
2005; Puebla México.
[16] J. Velazquez Lopez, Juan Carlos Sanchez Garcia and Hector Perez
Meana, “Adaptive filters with codified error LMS Algorithm”;
TELECOMMUNICATIONS AND RADIO ENGINEERING 2006.
Issue 6, pp. 547-559.
170
26 - 30,
ITCH - ELECTRO 2007 Octubre 17-19, Chihuahua, México
Avalos Ochoa Juan G., González Escobedo José M., Velázquez López José, Sánchez García Juan C.
Instituto Politécnico Nacional
Sección de Estudios de Posgrado e Investigación. ESIME Culhuacán
Av. Santa Ana #1000 Col. San Francisco Culhuacán, Coyoacán México DF. C.P. 04430
Fax (55) 5656-2058
gerardo.avalos@prodigy.net.mx
1. INTRODUCCIÓN
Figura 1. Estructura general de los filtros
En el campo del procesamiento digital de señales,
adaptivos.
los filtros digitales se diseñan para tener una
respuesta en frecuencia deseada que altere el
Los algoritmos de adaptación más conocidos, son
espectro de una señal de entrada. Estos filtros
el algoritmo RLS (Recursive Least Square –
presentan algunas ventajas sobre los analógicos, las
Mínimos Cuadrados Recursivos), y el algoritmo
cuales consisten en: alta confiabilidad, exactitud, y
menor sensibilidad a la temperatura y al LMS (Least Mean Square – Mínimos Cuadrados
envejecimiento [1]. Sin embargo, existen diversas Promediados). El algoritmo RLS ofrece mayor
aplicaciones en las que se pueden presentar velocidad de convergencia con respecto al
algunos problemas. En algunos casos cuando se algoritmo LMS, pero en cuanto complejidad
utilizan los filtros IIR (Infinite Impulse Response – computacional, el algoritmo LMS tiene la ventaja
Respuesta al Impulso Infinita) y FIR (Finite [2].
Impulse Response – Respuesta al Impulso Finita)
las señales o los sistemas pueden sufrir algunos 2. ALGORITMO LMS
cambios con el tiempo y la naturaleza exacta del La ecuación (1) se conoce como el algoritmo LMS
cambio no es predecible; en tales casos es o algoritmo de Widrow –Hopf.
altamente deseable diseñar un filtro que pueda
aprender del proceso mismo, de manera que se W (n + 1) = W (n) + µX (n)e(n) (1)
169
ITCH - ELECTRO 2007 Octubre 17-19, Chihuahua, México
donde W(n) es el peso actual, W(n+1) es el peso calcula al restar la señal deseada con la señal de
siguiente, µ es el factor de convergencia, e(n) salida del filtro.
es la señal de error y X(n) es la señal de entrada al
filtro. Este algoritmo se basa en la búsqueda del
gradiente del error, por lo tanto los pesos se ajustan
hasta que el error cuadrático medio sea
minimizado, el factor de convergencia µ determina
el error mínimo local así como la velocidad de
convergencia, siendo directamente proporcional a
la velocidad de convergencia e inversamente
proporcional al error cuadrático medio mínimo [3]. Figura 2. Filtro adaptivo como predictor.
4.1. Predictor Lineal Por medio del códec AIC23 del DSK se envía la
La predicción lineal es una técnica de estimación, señal deseada al DSP, el cual se encargará de
la cual se emplea para modelar procesos aleatorios realizar el filtrado adaptivo de la señal, y de
correlacionados, con el objetivo de encontrar la obtener el error, posteriormente a través del códec
representación paramétrica de estos procesos [4]. AIC23 se envía la señal a la salida.
En la figura 2 se muestra la estructura del predictor
lineal. En esta estructura la señal deseada es igual a Para la primera prueba se utilizó como señal
la señal que entra en el filtro adaptivo, el error se deseada un tono de 800 Hz con una amplitud de
1Vpp. El filtro adaptivo contó con cinco
coeficientes y un factor de convergencia µ = 10-9.
170
ITCH - ELECTRO 2007 Octubre 17-19, Chihuahua, México
Amplitud
figura 3. 0
-0.5
-1
0 1 2 3 4 5 6 7 8
Tiempo 4
x 10
Señal de Salida del Filtro Adaptivo
1
0.5
Amplitud
0
-0.5
-1
0 1 2 3 4 5 6 7 8
Tiempo 4
x 10
3000
Frecuencia
0.04
2000
0.02 1000
0
Amplitud
0 1 2 3 4 5 6 7 8 9
Tiempo
Señal de Salida del Filtro Adaptivo
-0.02
4000
-0.04 3000
Frecuencia
2000
-0.06
-2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 2.5
Tiempo -3
1000
x 10
171
ITCH - ELECTRO 2007 Octubre 17-19, Chihuahua, México
3000
Frecuencia
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo
Señal de Salida del Filtro Adaptivo
4000
3000
Frecuencia
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo
5. CONCLUSIONES
La tecnología con la que cuenta el DSP
TMS320CC6713 permite realizar algoritmos de
filtrado en tiempo real, lo cual se constató con la
implementación del algoritmo LMS en estructuras
adaptivas de predicción lineal e identificador de
sistemas.
172
ITCH - ELECTRO 2007 Octubre 17-19, Chihuahua, México
6. AGRADECIMIENTOS
Se agradece al CONACYT el apoyo otorgado a
través de la beca No. 202372 para Estudios de
Maestría, y al I.P.N. por su apoyo a través del
Programa Institucional de Formación de
Investigadores mediante la beca del proyecto CGPI
- 20071464.
7. REFERENCIAS
[1] J. Velázquez López, Juan Carlos Sánchez
García, Héctor Pérez Meana, “Adaptive filters
with codified error LMS Algorithm”,
International Journal Electromagnetic Waves
and Electronic Systems, pp. 23-28, Jul. 2006.
[2] J. Velázquez López, Juan Carlos Sánchez
García, Héctor Pérez Meana, “Algoritmo LMS
modificado para aplicaciones de filtrado
adaptivo de rápida velocidad de
convergencia”, Proceedings CIECE 2005,
Puebla México.
[3] SPRS186L – Floating Point Digital Signal
Processor, Texas Instruments application
notes, Nov. 2005.
[4] J Velázquez López, Juan Carlos Sánchez
García, Héctor Pérez Meana, “Adaptive echo
canceller using a modified LMS algorithm”,
Proceedings ICEEE 2005, CINVESTAV,
México D.F.
[5] J Velázquez López, Juan Carlos Sánchez
García, Héctor Pérez Meana, “Algoritmo
LMS con error codificado”, Proceedings
CASTour/ICED 2004; Veracruz México.
173
1
d
Resumen--En este trabajo se presenta el análisis e
implantación en un procesador digital de señales, de una variante
del algoritmo de adaptación de mínimos cuadrados (LMS – Least
Mean Square). La modificación se realiza codificando el error del x Filtro
-
+ e
algoritmo, con el propósito reducir la complejidad de diseño para
su implementación en filtros adaptivos digitales, debido a que el y
error está compuesto por valores enteros. Los resultados
demuestran un aumento en la velocidad de convergencia, debido Algoritmo de
Adaptación
a que se afecta de manera indirecta al factor de convergencia,
además de obtenerse una reducción de operaciones de punto Fig. 1. Estructura general de los filtros adaptivos.
flotante, lo cual acelera la velocidad de procesamiento, como lo
demuestran los resultados obtenidos en la implantación del La eficiencia de los filtros adaptivos depende
algoritmo en el procesador digital de señales TMS320C6713 de principalmente de la técnica de diseño utilizada y el algoritmo
Texas Instruments. de adaptación.
Los filtros adaptivos pueden ser diseños analógicos [1-3],
Palabras Clave-- LMS, filtros adaptivos, ECLMS, predicción
digitales o mixtos los cuales presentan sus ventajas y
lineal, DSP.
desventajas, por ejemplo, los filtros analógicos son de bajo
I. INTRODUCCION consumo de potencia y respuesta rápida, pero presentan
problemas de desbalanceo (offset), el cual afecta el
E L desarrollo de los sistemas de comunicaciones digitales,
ha permitido tener comunicaciones más rápidas, pero los
problemas que se presentan aumentan en la misma medida, lo
funcionamiento del algoritmo de adaptación [4]. Los filtros
digitales son libres del desbalanceo y ofrecen una respuesta de
mayor precisión, pero son de gran complejidad debido a las
que incrementa la complejidad de diseño de los sistemas de operaciones de punto flotante. Los diseños mixtos [5-6],
comunicación para evitar el menor número de errores en la presentan problemas de desacoplamiento entre los bloques
transmisión de información. analógicos y digitales. Estas técnicas realizan el
El campo del procesamiento digital de señales ha procesamiento de la señal en el dominio del tiempo, pero
contribuido en el desarrollo de las comunicaciones también existen filtros adaptivos que trabajan en el dominio de
electrónicas, debido a que los problemas que se presentan en la frecuencia [7-9], los cuales realizan filtrado adaptivo en
ellas como son la interferencia intersímbolo, eco eléctrico, subbandas con buena respuesta, pero el diseño de estos filtros
ruido aditivo, se pueden solucionar empleando filtros requieren de procesadores digitales de señales. Otras
adaptivos, los cuales tienen una estructura como la que se propuestas realizan una modificación directa a la estructura
muestra en la Fig. 1, en donde se puede ver que requiere de del filtro para aumentar la eficiencia en la convolución [10].
una señal de entrada x, la señal deseada d, además genera una Los algoritmos de adaptación más conocidos, son el
señal de salida y con una señal de error e, la cual se emplea algoritmo de mínimos cuadrados recursivos (RLS – Recursive
para adaptar los parámetros del filtro adaptivo [1]. Se emplean Least Square), y el algoritmo de mínimos cuadrados (LMS –
los filtros adaptivos debido a que son sistemas que se Least Mean Square), en donde el algoritmo RLS ofrece mayor
autoajustan a las variables del entorno, lo cual permite velocidad de convergencia con respecto al algoritmo LMS,
resolver problemas en procesos aleatorios. pero en cuanto complejidad computacional, el algoritmo LMS
tiene la ventaja. Por su simplicidad computacional, el
algoritmo LMS es el que tiene mayor uso en el diseño e
implementación de filtros adaptivos integrados.
En este artículo se presenta una modificación al algoritmo
de adaptación LMS, con el objetivo de reducir la complejidad
de diseño digital o implantación de filtros adaptivos en
sistemas digitales programables, además la modificación
Los autores de este artículo son miembros de la Sección de Estudios de
Posgrado e Investigación ESIME Culhuacan del Instituto Politécnico puede ser compatible con los sistemas de filtrado adaptivos
Nacional. (jvelazquez@ieee.org)
2
Errmáx (10)
Res = 4
2n − 1 2
Error cuantizado
Amplitud
0
Error codificado
Q[e(T )]
20
wk (T + 1) = wk (T ) + µ x k (T )
(11)
Amplitud
Res 0
-20
Como se puede observar en (11), al realizar el proceso de
-40
codificación del error, se afecta al factor de convergencia [17], 0 100 200 300 400 500 600 700 800
No. de Iteraciones
lo cual puede traer como consecuencia un aumento en la
Fig. 2. Error codificado y cuantizado en proceso de adaptación.
velocidad de convergencia cuando el factor de convergencia
es mayor a la resolución. Entonces haciendo un cambio de
Como se puede ver en la Fig. 2, una vez que se logra
variable:
reducir el error, al codificarlo puede tomar valor de uno o cero
como lo indica la ecuación (16):
µ (12)
µ'=
Res
1 3
Res < e(T ) < Res
(14)
2 2
Ahora, para evitar la divergencia el factor de convergencia
debe de cumplir lo mostrado en la ecuación (13)
entonces, entre mas grande sea el valor de la resolución, el
algoritmo ECLMS funcionará de manera similar al algoritmo
0 < µ'<
1 (13)
LMS con signo de error más rápido, además de que se
N x 2 (T )
necesita emplear menor cantidad de bits, pero el error
cuadrático medio será mayor. Se menciona de manera similar
sustituyendo (12) en la ecuación (13) tenemos: a la variante de signo, debido a que la variante de signo solo
considera los valores uno positivo o uno negativo y la variante
µ 1 (14)
0< < propuesta además considera manejar la opción de cero cuando
Res N x 2 (T )
el error está por debajo de la resolución.
Cuando el error codificado es igual a cero, entonces el valor
para obtener la relación entre el número de bits y el factor de de los pesos del filtro se mantienen con el mismo valor, de
convergencia, se sustituye (10) en (14) con lo cual se genera aquí se puede explicar porque se altera el nivel del error
lo mostrado en (15) cuadrático medio, cuando se emplea un valor de resolución
grande.
Errmax (15)
0<µ <
(2 n
)
− 1 N x 2 (T ) IV. RESULTADOS DE SIMULACIÓN.
En esta sección se presentan los resultados de simulación
La ecuación (15) nos muestra la proporcionalidad directa
obtenidos con MatlabTM, con el propósito de realizar un
existente entre el factor de convergencia y el número de bits
análisis comparativo de la modificación propuesta, con
usados en la codificación, por lo tanto, a mayor número de
respecto al algoritmo LMS convencional cuando el filtro
bits, aumenta la velocidad de convergencia.
adaptivo lleva a cabo la predicción lineal, además se realiza el
El valor de la resolución del error, es importante desde el
análisis de comportamiento del número de bits de
punto de vista de la pérdida de información. Al utilizar un
codificación.
mayor número de bits, entonces el valor de la resolución será
Un filtro adaptivo como predictor lineal, se conecta com se
pequeño y por lo tanto una mejor aproximación al valor del
muestra en la Fig. 3, en donde la señal deseada es igual a la
error. Para observar esto con mejor detalle, se muestra el
señal de entrada del filtro adaptivo, por lo tanto, la señal del
comportamiento del error en un proceso de adaptación en la
error se obtiene restando a la señal de entrada la señal de
Fig. 2, en donde se puede ver la magnitud del error al ser
salida del filtro. La estructura del filtro es transversal o
cuantizado y el valor que toma una vez codificado.
también conocido filtro de respuesta al impulso finito (FIR –
finite impulse response).
La predicción lineal es una técnica de estimación espectral,
la cual se emplea para modelar procesos aleatorios
correlacionados, con el objetivo de encontrar la representación
paramétrica de estos procesos.
4
x(T) d(T)
0
8 bits
SNR = 20 dB
4 bits
1 bit
-5
y(T)
Filtro +
-
-10
MSE (dB)
e(T)
w(T)
Algoritmo
LMS -15
se obtuvieron el mismo factor de convergencia, el error Fig. 5. LMS con error codificado empleando diferente número de bits
máximo fue del 90% del valor pico de la señal de entrada y de codificación.
para el algoritmo ECLMS se utilizaron ocho bits en la
codificación del error. Los resultados mostrados en la Fig. 5, demuestran que con
mayor número de bits, la velocidad de convergencia es mayor,
pero cuando el número de bits es mayor a ocho, el error
0
LMS
cuadrático medio diverge, debido a que el número de bits
SNR = 20 dB
ECLMS a 8 bits afecta al factor de convergencia y por lo tanto no se cumple
-5
con lo estipulado en la ecuación (15). Otro aspecto a observar
cuando se realiza la codificación con un solo bit, el algoritmo
-10 propuesto es similar a la variante de sigo de error del
MSE (dB)
algoritmo LMS.
-15 La Fig. 6, muestra la respuesta del algoritmo LMS y
ECLMS cuando se predice una señal. Esta gráfica nos permite
-20 medir de una manera más efectiva el número de iteraciones
necesarias para alcanzar el mínimo local.
-25
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
No. de Iteraciones 4
x 10 5
Señal deseada
Fig. 4. Error cuadrático medio del algoritmo LMS contra ECLMS.
Amplitud
0
convencional, además de que se logra obtener el mismo error
-5
mínimo en ambos casos. 0 500 1000 1500 2000 2500 3000
Iteraciones
3500 4000 4500 5000
0
mínimo del MSE, el cuál no se afecta a pesar de que el
algoritmo ECLMS tiene un comportamiento similar a la -5
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
del MSE. Fig. 6. Comparación de los algoritmos LMS y ECLMS en el dominio del
tiempo.
Otra prueba realizada, fue cambiar el número de bits de
Los resultados de la Fig. 6, muestran que el algoritmo
codificación de la señal de error, empleando las mismas
ECLMS converge al error mínimo en aproximadamente una
condiciones de operación que en el experimento anterior. Con
décima parte del número de iteraciones que requiere el
este experimento logramos obtener la relación que existe entre
algoritmo LMS.
el número de bits, la velocidad de convergencia y el error
mínimo. Los resultados obtenidos se muestran en la Fig. 5. V. RESULTADOS DE IMPLEMENTACIÓN EN EL DSP
TMS320C6713
El conjunto de instrucciones y la arquitectura del
TMS320C6713 de Texas Instruments hacen de éste una
herramienta adecuada para el desarrollo de algoritmos de
procesamiento adaptivo. Este procesador esta basado en la
arquitectura VLWI (Very Long Instruction Word - Palabra
5
de Instrucción muy Larga) y cuenta con 8 unidades figura se puede observar que la señal de salida presenta
funcionales que trabajan en paralelo, 6 unidades lógico algunas componentes en frecuencia adicionales con respecto a
aritméticas y 2 unidades multiplicadoras, con las cuales se la señal de entrada.
puede ejecutar hasta un máximo de 8 instrucciones por cada
ciclo de reloj. El CPU opera a 225MHz lo que permite Señal Deseada
Frecuencia (Hz)
3000
0
1 2 3 4 5 6 7 8 9
• Códec de 32 bit TLV320AIC23 estéreo, con dos entradas y Tiempo (s)
Señal de Salida del Filtro Adaptivo
dos salidas analógicas, frecuencia de muestreo variable a 4000
8, 22, 48 y 96Khz.
Frecuencia (Hz)
3000
• Interfaz EMIF (External Memory Interface – Interfaz de Fig. 8. Espectrogramas de la señal de entrada y la señal de salida del
Memoria Externa) de 32 bits a 100 MHz. predictor lineal.
• Conectores para expansión de periféricos, interfaz con el
host y soporte de emulación JTAG por USB. Se realizo un acercamiento al punto de referencia de la
señal de entrada obteniéndose un tiempo de 792.8 ms Fig. 9.
Las pruebas se realizaron en tiempo real usando una
estructura de predictor lineal, como señal de entrada se utilizo
la frase “Escuela Superior de Ingeniería Mecánica y Eléctrica
del Instituto Politécnico Nacional”, la cual es una señal de
audio monoaural de 8 bits muestreada a 8KHz con una
duración de 9.2484 s. Para todas las pruebas el filtro adaptivo
contó con 5 coeficientes y un µ = 10-11.
A. Algoritmo LMS
Para realizar la comparación del funcionamiento de los Fig. 9. Acercamiento de la señal de referencia.
algoritmos se obtuvo las formas de onda en el tiempo y los
espectrogramas de las señales por medio de MATLAB TM. En En la Fig. 10 se presenta el acercamiento que se hizo al
la Fig. 7 se muestran las formas de onda en el tiempo de las punto de referencia de la señal de salida del filtro adaptivo,
señales de entrada y de salida del filtro adaptivo usando el donde se registró un tiempo de 960.8 ms. Por lo tanto el
algoritmo LMS convencional, la línea punteada en la figura retraso generado con respecto a la señal original es de 168 ms.
marca el punto de referencia tomado para establecer el tiempo
de retraso que existe en la señal de salida del predictor lineal
con respecto a la señal de referencia.
Señal Deseada
1
0.5
Amplitud
-0.5
-1
0 1 2 3 4 5 6 7 8
Fig. 10. Acercamiento de la señal de salida del filtro adaptivo.
Número de muestras 4
x 10
Señal de Salida del Filtro Adaptivo
1
B. Algoritmo ECLMS
0.5
En la Fig. 11 se observa las formas de onda en el tiempo de
Amplitud
0
la señal entrada y la señal de salida del filtro adaptivo usando
-0.5
el algoritmo ECLMS con una codificación de error de cuatro
-1
0 1 2 3 4 5 6 7 8 bits.
Número de muestras 4
x 10
0.5 0.5
Amplitud
Amplitud
0 0
-0.5 -0.5
-1 -1
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
Número de muestras 4 Número de muestras 4
x 10 x 10
Señal de Salida del Filtro Adaptivo Señal de Salida del Filtro Adaptivo
1 1
0.5 0.5
Amplitud
Amplitud
0 0
-0.5 -0.5
-1 -1
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
Número de muestras 4 Número de muestras 4
x 10 x 10
Fig. 11. Señal de entrada y salida del filtro adaptivo, usando el Fig. 14. Señal de entrada y salida del filtro adaptivo, usando el
ECLMS con error codificado a 4bits. ECLMS con error codificado a 8 bits.
También se obtuvo el espectrograma de las señales Fig. 12, En la Fig. 15 se muestra que la señal de salida del predictor
en el que se observa que las señales son muy similares en las lineal con el ECLMS codificado a ocho bits, presenta un
componentes de baja frecuencia, además de presentar algunas tiempo de respuesta de 952 ms, es decir, esta retrasada 159.2
diferencias en las componentes de alta frecuencia. ms con respecto a la señal original y 880 µs menos que la
Señal Deseada señal obtenida con el algoritmo LMS convencional.
4000
Frecuencia (Hz)
3000
2000
1000
0
1 2 3 4 5 6 7 8 9
Tiempo (s)
Señal de Salida del Filtro Adaptivo
4000
Frecuencia (Hz)
3000
2000
1000
Fig. 15. Acercamiento de la señal de salida del filtro adaptivo, usando
0 el ECLMS con error codificado a 8 bits.
1 2 3 4 5 6 7 8 9
Tiempo (s)
Fig. 12. Espectrogramas de la señal de entrada y la señal de salida del A través de las formas de onda en el tiempo, se puede
filtro adaptivo, usando el ECLMS con error codificado a 4 bits. observar que el algoritmo ECLMS posee una velocidad de
convergencia mayor que el algoritmo LMS convencional,
En la Fig. 13, se presenta el acercamiento realizado al debido a que las operaciones de punto fijo se ejecutan en un
punto de referencia de la señal de salida del filtro, en la cual se número menor de ciclos de reloj, comparado con el número de
registró un tiempo de 954.9 ms, el retraso que presenta con ciclos que requieren las operaciones de punto flotante. Para
respecto a la señal original es de 162.1 ms y 590 µs menos comprobarlo se obtuvo el número de ciclos de reloj de los dos
que la señal obtenida con el algoritmo LMS. algoritmos, obteniéndose que el algoritmo LMS se ejecuta en
90 ciclos de reloj mientras que el algoritmo ECLMS se ejecuta
en 86 ciclos de reloj por cada iteración.
VI. CONCLUSIONES.
Se presentó una modificación al algoritmo LMS, con el
objetivo de reducir el número de operaciones de punto
flotante, con lo cual se logra obtener una simplificación en la
complejidad computacional y por lo tanto, mayor facilidad en
la implementación de filtros adaptivos digitales.
Fig. 13. Acercamiento de la señal de salida del filtro adaptivo, usando La modificación propuesta no afecta a la estructura del
el ECLMS con error codificado a 4 bits. filtro adaptivo y tampoco al algoritmo de adaptación, debido a
En la Fig. 14 se muestran las señales de entrada y salida del que la codificación del error se realiza por separado, por lo
filtro adaptivo, usando el ECLMS con error codificado a ocho tanto, el algoritmo ECLMS es compatible con los filtros
bits. adaptivos digitales existentes.
Otro aspecto importante al realizar la codificación del
error, además de la reducción de la complejidad del algoritmo,
se reduce el tiempo de procesamiento como lo demuestran los
7
resultados de la comparación de los algoritmos, en la [17] J. Velazquez Lopez, Juan Carlos Sanchez Garcia, Hector Perez Meana,
Miguel Roman Macias and Teresa Andrade Ruiz, “Over adapted LMS
implementación en el DSP. Esto se puede aprovechar para Algorithm with Codified Error”; Proceedings Electronics, Robotics and
emplear el tiempo sobrante en realizar la sobreadaptación del Automotive Mechanics Conference Vol I; Cuernavaca Morelos México;
algoritmo, es decir, recalcular los pesos empleando los September 2006.
[18] J. Velazquez Lopez, Juan Carlos Sanchez Garcia and Hector Perez
mismos datos almacenados en la línea de retardo del filtro.
Meana, “Algorithm LMS with coded error for adaptive filters”,
La reducción del número de ciclos de reloj en el Proceedings 3rd International Workshop on Random Fields Modeling
procesamiento por cada iteración, aparentemente es un and Processes in Inhomogeneous Media”, 24-25 October 2005,
número reducido, pero al aumentar el número de iteraciones Guanajuato, Mexico.
[19] José Velázquez López, “Algoritmo LMS con error codificado para
se podrá observar de forma considerable la reducción del aplicaciones de filtrado adaptivo”, Tésis que para obtener el grado de
tiempo de procesamiento. doctor en ciencias, Sección de Estudios de Posgrado Unidad Culhuacan
del Instituto Politécnico Nacional, México D.F. Mayo 2007.
VII. REFERENCIAS.
[1] Carusone, A., Johns, D.A.; “Analogue adaptive filters: past and present”;
Circuits, Devices and Systems, IEEE Proceedings; Vol: 147, Febrero
2000; pags:82 – 90. José Velázquez Nació en la ciudad de México en Mayo
[2] Hector Pérez Meana, Mariko Nakano Miyatake, Luis Niño de Rivera, de 1976. Graduado como ingeniero en comunicaciones y
Juan Sánchez García; “Desarrollos recientes en sistemas adaptables electrónica en diciembre de 2000 en la Escuela Superior
analógicos”; Revista Científica; Vol. 5 Núm. 3; Julio-Septiembre 2001; de Ingeniería Mecánica y Eléctrica Unidad Culhuacan
pags. 113-129. del Instituto Politécnico Nacional.
[3] Tai-Cheng Lee and Bezhad Razavi; “A 125 Mixed-Signal Echo Realizó sus estudios de maestría de ingeniería en
Canceller for Gigabit Ethernet on Copper Wire”; IEEE Journal of Solid- microelectrónica y doctorado en comunicaciones y
State circuits, Vol. 36, No. 3, Marzo 2001; pags. 366-373. electrónica en la Sección de Estudios de Posgrado e
[4] Ayal Shoval, David A. Johns and W. Martin Snelgrove; “Comparison of Investigación de la misma Unidad, graduándose en el
DC Offset Effects in Four LMS Adaptive Algorithms”; IEEE 2002 y 2007 respectivamente.
Transactions on Circuits and Systems-II: Analog and Digital Signal Actualmente es profesor titular del departamento de Ingeniería en
Processing; Vol. 42, No. 3, Marzo 1995; pags.. 176-185. Computación en la Escuela Superior de Ingeniería Mecánica y Eléctrica
[5] Bhupendra K. Ahuja, Miles A. Copeland and Chong Hon Chan, “A Culhuacan. Sus áreas de interés son el procesamiento digital de señales,
Sampled Analog MOS LSI Adaptive Filter”, IEEE Journal Of Solid- filtrado adaptivo, comunicaciones y diseño VLSI.
State Circuits, Vol. SC-14, No.1, Febrero 1979; pags. 148-154.
[6] Miguel Figueroa, Seth Bridges, David Hsu, and Chris Diorio, “A 19.2 Juan Gerardo Ávalos Ochoa recibió el grado de
GOPS Mixed-Signal Filter With Floating-Gate Adaptation”, IEEE ingeniero en comunicaciones y electrónica en el 2006,
Journal of Solid State Circuits, Vol. 39, No. 7, Julio 2004; pag. 1196- en la Escuela Superior de Ingeniería Mecánica y
1201. Eléctrica Unidad Culhuacan del Instituto Politécnico
[7] Al Jackson; “ADSL For High-Speed Broadband Data Service”; Nacional. Actualmente esta realizando sus estudios de
Aerospace Conference, 1998. Proceedings., IEEE, Volumen 4, 21-28 maestría en ciencias de ingeniería de microelectrónica
Marzo 1998; pags: 451–465. en la Sección de Estudios de Posgrado e Investigación,
[8] Hanna Bogucka and Krzysztof Wesolowski; “Frequency-Domain Echo en la ESIME Culhuacan. Su área de interés es el
Cancellation in Digital Multicarrier Modulation Systems”; IEEE procesamiento digital de señales.
Transactions on Communications; Vol. 48, No.2, Febrero 2000; pags:
333-342. Juan Carlos Sánchez (M’91) recibió el grado de
[9] Katleen Van Acker, Geert Leus, Marc Moneen; “Per Tone Equalization ingeniero en electrónica y el Grado de Doctor en
for DMT-Based Systems”; IEEE Transactions on Communications, Vol. Ciencias en la Universidad Autónoma Metropolitana, de
49, No. 1, Enero 2001, pags: 109-119. la Ciudad de México, México, en 1987 y 2000,
[10] Sau-Gee Chen, Yung-An Kao, and Kwung-Yee Tsai. “A New Efficient respectivamente.
LMS Adaptive Filtering Algorithm”; IEEE Transactios on Circuits and De 1987 a 1997 fue profesor en la Universidad
Systems –II, Vol 43, No. 5, Mayo 1996, pag 372-378. Autónoma Metropolitana. Desde 1997 es profesor
[11] Chris J. Nicol, Patrik Larsson, Kamran Azadet, and Jay H. O’Neill; “A investigador en la Sección de Estudios de Posgrado en
Low-Power 128-Tap Digital Adaptive Equalizer For Broadband Investigación, en la ESIME Culhuacan, del Instituto
Modems”; IEEE Journal of Solid State Circuits, Vol. 32, No. 11, Politécnico Nacional (IPN) de México.
Noviembre 1997; pag. 1777-1789. Recibió el Premio a la Investigación 1999, en el área de
[12] Shivaling S. Mahant-Shetti, Srinath Hosur and Alan Gatherer; “The Telecomunicaciones, Computación y Teleinformática, por parte del IPN y es
Log-Log LMS Algorithm” Acoustics, Speech, and Signal Processing, miembro del Sistema Nacional de Investigadores de México.
1997. ICASSP-97., 1997 IEEE International Conference on, 21-24 April Su área de interés está en el desarrollo de circuitos VLSI analógicos para
1997; pag. :2357-2360 vol.3. las comunicaciones y el control.
[13] Bhupendra K. Ahuja, Miles A. Copeland and Chong H. Chan; “A new
adaptive algorithm and its implementation in MOS LSI”; IEEE Journal
of Solid State Circuits, Vol. SC-14, No. 4, agosto 1979; pag. 747-753.
[14] J. Velázquez López, Juan Carlos Sánchez García y Héctor Pérez Meana;
“Algoritmo LMS con error codificado”; Proceedings CAS-Tour/ICED
2004; Veracruz México.
[15] J. Velázquez López, Juan Carlos Sánchez García y Héctor Pérez Meana;
“Algoritmo LMS modificado para aplicaciones de filtrado adaptivo de
rápida velocidad de convergencia”, Proceedings CIECE 2005; Puebla
México.
[16] J. Velazquez Lopez, Juan Carlos Sanchez Garcia and Hector Perez
Meana, “Adaptive filters with codified error LMS Algorithm”;
TELECOMMUNICATIONS AND RADIO ENGINEERING 2006.
Issue 6, Pág. 547-559.
CENTRO DE INFORMACIÓN TECNOLÓGICA (CIT)
INFORMACIÓN c/ Mons. Subercaseaux 667, Casilla 724
TECNOLÓGICA Fono-Fax: 56-51-551158, La Serena – Chile
http//: www.citchile.cl
Estimado(a) autor(a):
Informamos a Ud. que el artículo titulado “Algoritmo LMS con Error Codificado
para Filtrado Adaptivo” de los autores José Velázquez, Juan C. Sánchez y Gerardo
Ávalos, ha sido aceptado para publicación en nuestra revista internacional
“INFORMACIÓN TECNOLÓGICA”, y será publicado en el volumen 19 número 5 del año 2008.
Las separatas de su artículo serán enviadas dentro de la primera quincena del mes de
Octubre del presente año.
Carlos J. Rojas
Editor Asistente
“Algoritmo LMS con Error Codificado para Filtrado Adaptivo”
José Velázquez, Juan C. Sánchez y Gerardo Ávalos.
Instituto Politécnico Nacional.
Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Culhuacan.
Sección de Estudios de Posgrado e Investigación.
Av. Santa Ana #1000 Col San Francisco Culhuacan C.P. 04430 México D.F.
jvelazquez@ieee.org
Resumen- En este trabajo se presenta el análisis cuantitativo de una variante del algoritmo de
adaptación de mínimos cuadrados (LMS – Least Mean Square). La modificación se realiza
codificando el error del algoritmo, con el propósito de aumentar la velocidad de convergencia y
reducir la complejidad de diseño para su implementación en filtros adaptivos digitales, debido a
que el error está compuesto por valores enteros. Los resultados demuestran que la velocidad de
convergencia aumenta, lo cual permite aplicarse en filtros adaptivos donde se requiera una
velocidad de convergencia alta y además la modificación propuesta es compatible con los filtros
adaptivos existentes, debido a que la codificación del error se puede realizar por separado. El
algoritmo se utilizó en filtros adaptivos que se utilizaron en predicción lineal e identificación de
sistemas y además se compara el algoritmo propuesto con el algoritmo LMS sobreadaptado.
-5
Predictor lineal.
-10
Para realizar esta prueba, se empleó el
MSE (dB)
esquema mostrado en la Fig. 2:, en -15
donde la señal deseada es igual a la
señal de entrada del filtro adaptivo, por lo -20
tanto, la señal del error se obtiene
restando a la señal de entrada la señal -25
de salida del filtro. El filtro tiene una 0 0.2 0.4 0.6 0.8 1 1.2
No. de Iteraciones
1.4 1.6 1.8
4
x 10
2
-14
-10
MSE (dB)
MSE (dB)
-16
-18
-15
-20
-22
-20
-24
-25 -26
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
No. de Iteraciones 4 No. de Iteraciones 4
x 10 x 10
Fig. 4: LMS con error codificado Fig. 5: LMS con error codificado con
empleando diferente número de bits de diferentes valores de resolución.
codificación.
En la Fig. 5: se observa que la velocidad
Los resultados mostrados en la Fig. 4:, de convergencia no se ve afectada
demuestran que a mayor número de bits, cuando se cambia la resolución del
la velocidad de convergencia es mayor, codificador, solo cambia ligeramente el
pero cuando el número de bits es mayor error mínimo cuando el error máximo
a ocho, el error cuadrático medio diverge probable disminuye. Esto sucede cuando
debido a que no se está cumpliendo con el error es menor al valor del error
la condición estipulada en la ecuación máximo, pero cuando el error es mayor
(17). Además, al realizar la codificación al valor del error máximo programado,
con un solo bit, el algoritmo propuesto es entonces el algoritmo ECLMS generará
equivalente a la variante del algoritmo un error cuadrático medio mayor o en el
LMS cuando solo se considera el signo peor de los casos se puede presentar la
de la señal de error. divergencia.
0
También es importante saber como SNR = 20 dB
90 %
50 %
poder determinar el error máximo -5
10%
0
obtenidos se muestran en la Fig. 9:, en
-5
0 500 1000 1500 2000 2500 3000
Iteraciones
3500 4000 4500 5000 donde se observa que el algoritmo LMS
5 con error codificado, requiere de un
Respuesta con LMS
número menor de iteraciones para
Amplitud
-5
encontrar el error mínimo local que
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Iteraciones obtiene el algoritmo LMS convencional.
5
Respuesta con ECLMS Esto se debe a lo explicado en los
Amplitud
-60
En la Fig. 8:, se muestra la estructura del
filtro adaptivo cuando se emplea como -70
0 0.5 1 1.5 2 2.5 3 3.5 4
0
-20
MSE (dB)
90%
SNR = 20 dB
50%
-30 10%
-5
-40
-10
MSE (dB)
-50
-60 -15
0 0.5 1 1.5 2 2.5 3 3.5 4
No. de Iteraciones 4
x 10
30
Fig. 12: Análisis de Resolución y número
20
SNR = 20 dB 90%
50%
de bits de codificación.
10%
10
0
Al igual que en la predicción, el algoritmo
-10
ECLMS presenta el mismo
comportamiento en la resolución y el
MSE (dB)
-20
-30
número de bits de codificación. La
-40
respuesta de los dos algoritmos en el
-50
dominio del tiempo con los resultados de
-60
la Fig. 13:.
-70
0 0.5 1 1.5 2 2.5 3 3.5 4
No. de Iteraciones 4
x 10
0
la diferencia en la velocidad de
-2
0 50 100 150 200 250 300 350 400 450 500
convergencia y el valor mínimo del error
2
ECLMS
cuadrático medio.
Amplitud
0
-2
0 50 100 150 200 250 300 350 400 450 500 LMS Sobreadaptado
SNR = 30 dB
ECLMS
2
LMS -10 ECLMS Sobreadaptado
Amplitud
0
-20
-2
0 50 100 150 200 250 300 350 400 450 500
No. de muestras
MSE
-30
-20
ECLMS y LMS con re-uso de datos, o Fig. 15: Comparación del algoritmo
también conocida como LMS ECLMS Sobreadaptado.
sobreadaptado, empleando las mismas
condiciones de trabajo para los dos Una prueba adicional realizada, es
algoritmos y observar su rendimiento con realizando la comparación entre el
la medición del error cuadrático algoritmo ECLMS cuando se adapta
promedio. En la Fig. 14:, se observa la utilizando ocho bits en la codificación del
comparación entre el algoritmo LMS error y un ECLMS adaptado con ocho
sobreadaptado con cinco iteraciones bits y sobreadaptado con diez bits en la
codificación del error, obteniéndose el la complejidad de implantación de los
resultado mostrado en la Fig. 15:. Los filtros adaptivos digitales.
resultados de la Fig. 15, muestran una
disminución del error cuadrático medio Otro aspecto importante, es que la rápida
mínimo, cuando se utiliza un mayor velocidad de convergencia que se logra
número de bits en el algoritmo ECLMS obtener con la codificación del error,
adaptado con ocho bits y sobreadaptado permite emplear este algoritmo en
con diez bits. Esto se debe a que en la sistemas de comunicación de alta
sobreadaptación, con la codificación del velocidad, por ejemplo ADSL, en donde
error con un mayor número de bits se requiere que los filtros adaptivos
permite tener mayor cantidad de tengan una rápida velocidad de
información sobre la magnitud del error, convergencia.
reflejándose en el nivel del error
cuadrático medio. Esto da pie a realizar REFERENCIAS.
combinaciones con el número de bits en
la codificación del error para adaptar y [1] Carusone, A., Johns, D.A.; “Analogue
sobreadaptar y con ello obtener mejores adaptive filters: past and present”;
resultados. Circuits, Devices and Systems, IEEE
Proceedings; Vol: 147, Febrero 2000;
CONCLUSIONES. pags:82 – 90.
[2] Héctor Pérez Meana, Mariko Nakano
Se presentó una modificación al
Miyatake, Luis Niño de Rivera, Juan
algoritmo LMS, con el objetivo de
Sánchez García; “Desarrollos recientes
aumentar su velocidad de convergencia y
en sistemas adaptables analógicos”;
disminuir el número de operaciones de
Revista Científica; Vol. 5 Núm. 3; Julio-
punto flotante. Esto permite una
Septiembre 2001; pags. 113-129.
implementación menos compleja en
filtros adaptivos digitales. [3] Tai-Cheng Lee and Bezhad Razavi;
“A 125 Mixed-Signal Echo Canceller for
La modificación propuesta no afecta a la Gigabit Ethernet on Copper Wire”; IEEE
estructura del filtro adaptivo y tampoco al Journal of Solid-State circuits, Vol. 36,
algoritmo de adaptación, debido a que la No. 3, Marzo 2001; pags. 366-373.
codificación del error se realiza por [4] Ayal Shoval, David A. Johns and W.
separado, por lo tanto, el algoritmo Martin Snelgrove; “Comparison of DC
ECLMS es compatible con los filtros Offset Effects in Four LMS Adaptive
adaptivos digitales existentes. Algorithms”; IEEE Transactions on
Circuits and Systems-II: Analog and
La reducción de la complejidad del filtro Digital Signal Processing; Vol. 42, No. 3,
adaptivo, se puede mejorar con la buena Marzo 1995; pags.. 176-185.
elección del número de bits de [5] Bhupendra K. Ahuja, Miles A.
codificación y la resolución del Copeland and Chong Hon Chan, “A
codificador. Sampled Analog MOS LSI Adaptive
Filter”, IEEE Journal Of Solid-State
Los resultados mostrados con la Circuits, Vol. SC-14, No.1, Febrero 1979;
sobreadaptación del algoritmo ECLMS, pags. 148-154.
demuestran la posibilidad de poder [6] Miguel Figueroa, Seth Bridges, David
obtener una mejora en la disminución de Hsu, and Chris Diorio, “A 19.2 GOPS
la potencia del error y al conjuntarse con Mixed-Signal Filter With Floating-Gate
la combinación del número de bits en la Adaptation”, IEEE Journal of Solid State
codificación del error, se puede disminuir
Circuits, Vol. 39, No. 7, Julio 2004; pag. [15] J. Velázquez López, Juan Carlos
1196-1201. Sánchez García y Héctor Pérez Meana;
[7] Al Jackson; “ADSL For High-Speed “Algoritmo LMS modificado para
Broadband Data Service”; Aerospace aplicaciones de filtrado adaptivo de
Conference, 1998. Proceedings., IEEE, rápida velocidad de convergencia”,
Volumen 4, 21-28 Marzo 1998; pags: Proceedings CIECE 2005; Puebla
451–465. México.
[8] Hanna Bogucka and Krzysztof [16] J. Velazquez Lopez, Juan Carlos
Wesolowski; “Frequency-Domain Echo Sanchez Garcia and Hector Perez
Cancellation in Digital Multicarrier Meana, “Adaptive filters with codified
Modulation Systems”; IEEE Transactions error LMS Algorithm”;
on Communications; Vol. 48, No.2, TELECOMMUNICATIONS AND RADIO
Febrero 2000; pags: 333-342. ENGINEERING 2006. Issue 6, Pág. 547-
559.
[9] Katleen Van Acker, Geert Leus, Marc
Moneen; “Per Tone Equalization for [17] J. Velazquez Lopez, Juan Carlos
DMT-Based Systems”; IEEE Sanchez Garcia, Hector Perez Meana,
Transactions on Communications, Vol. Miguel Roman Macias and Teresa
49, No. 1, Enero 2001, pags: 109-119. Andrade Ruiz, “Over adapted LMS
Algorithm with Codified Error”;
[10] Sau-Gee Chen, Yung-An Kao,
Proceedings Electronics, Robotics and
and Kwung-Yee Tsai. “A New Efficient
Automotive Mechanics Conference Vol I;
LMS Adaptive Filtering Algorithm”; IEEE
Cuernavaca Morelos México; September
Transactios on Circuits and Systems –II,
2006.
Vol 43, No. 5, Mayo 1996, pag 372-378.
[18] J. Velazquez Lopez, Juan Carlos
[11] Chris J. Nicol, Patrik Larsson,
Sanchez Garcia and Hector Perez
Kamran Azadet, and Jay H. O’Neill; “A
Meana, “Algorithm LMS with coded error
Low-Power 128-Tap Digital Adaptive
for adaptive filters”, Proceedings 3rd
Equalizer For Broadband Modems”; IEEE
International Workshop on Random
Journal of Solid State Circuits, Vol. 32,
Fields Modeling and Processes in
No. 11, Noviembre 1997; pag. 1777-
Inhomogeneous Media”, 24-25 October
1789.
2005, Guanajuato, Mexico
[12] Shivaling S. Mahant-Shetti,
Srinath Hosur and Alan Gatherer; “The
Log-Log LMS Algorithm” Acoustics,
Speech, and Signal Processing, 1997.
ICASSP-97., 1997 IEEE International
Conference on, 21-24 April 1997; pag.
:2357-2360 vol.3.
[13] Bhupendra K. Ahuja, Miles A.
Copeland and Chong H. Chan; “A new
adaptive algorithm and its implementation
in MOS LSI”; IEEE Journal of Solid State
Circuits, Vol. SC-14, No. 4, agosto 1979;
pag. 747-753.
[14] J. Velázquez López, Juan Carlos
Sánchez García y Héctor Pérez Meana;
“Algoritmo LMS con error codificado”;
Proceedings CAS-Tour/ICED 2004;
Veracruz México.