Você está na página 1de 147

                                                        

                                                                             

      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

En la Ciudadde México.D. F. siendolas 14:00 horasdel día 12 del mesde


de 2008 se reunieron
losmiembros
de la Comisión
Revisora
deTesisdesignada
por el Colegiode Profesoresde Estudiosde Posgradoe Investigación
dg sEPI-ESIME
CULHUACAN
paraexaminarla tesisde titulada:

..ALGORITMO USANDOUN DSP''


LMSCONERRORCODIFICADO

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. 

 
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) 

 
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

h(0) z ( N −1) + h(1) z N −2 + h(2) z N −3 + ... + h( N − 1)


=
z N −1      (1.5) 
 
La cual muestra que existen N‐1 polos, todos localizados en el origen. Por lo tanto, este 
filtro  FIR  es  inherentemente  estable.  Normalmente  se  describe  un  filtro  FIR  como  un 
filtro  sin  polos.  La  realización  del  filtro  FIR  se  puede  realizar  empleando  alguna 

 
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.   
 

 
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 

 
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) 
 

 
Donde    σ
2
[
]   es  la  varianza  de  y(n), P = E[y(n) X (n)]   es  la  longitud    N  del  vector 
= E y 2 ( n)

correlacionado y R = E [X (n) X (n)]  es la matriz de autocorrelación N X N. En la Fig. 1.5 se 


T

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) 

 
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: 

 
 
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) 

 
 
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

Char, Signed Char  8 bits ASCII 

Unsigned Char  8 bits ASCII 

Short  16 bits Complemento a dos

UnSigned Short  16 bits Binaria 

Int, Signed Int  32 bits Complemento a dos

Unsigned Int  32 bits Binaria 

Float  32 bits IEEE 32 bit 

Double, Long Double  64 bits IEEE 64 bit 

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. 

3.5  Implementación  del  Algoritmo  ECLMS  en  el  DSK 


TMS320C6713. 
 
 
El  algoritmo  ECLMS  hasta  este  momento  solo  había  sido  simulado  por    medio  del 
software MatlabTM, en los resultados obtenidos de la simulación se puede observar que 
el algoritmo ECLMS posee una velocidad de convergencia mayor que  la del algoritmo 
LMS  convencional Fig. 3.5 [5], por este motivo se decidió  realizar la implementación 
de  los  algoritmos  LMS  y  ECLMS  en  un  DSP,  y  así  poder    comparar  su  tiempo  de 
procesamiento en aplicaciones en tiempo real. De esta manera se analizará si es viable  
crear  un  circuito  integrado  que  contenga  un    filtro  adaptivo  que  use  el  algoritmo 
ECLMS.  
 

 
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

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

 
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

Señal de salida usando el algoritmo ECLMS con error codificado a 8 bits


1

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

Señal deseada + ruido


1
Amplitud

-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

Señal de salida usando el algoritmo ECLMS con error codificado a 8 bits.


1

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

Señal de salida usando el algoritmo ECLMS codificado a 4 Bits


1

Amplitud
0

-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4

Señal de salida usando el algoritmo OAECLMS codificado a 4 Bits


1
Amplitud

-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

Señal de salida usando el algoritmo ECLMS codificado a 8 Bits


1
Amplitud

-1
0 1 2 3 4 5 6 7 8
Número de muestras x 10
4

Señal de salida usando el algoritmo OAECLMS codificado a 8 Bits


1
Amplitud

-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 

LMS  1 X 10‐7  ‐ 963 ms 76 

OAECLMS  1 X 10‐7  4 1.0339 s 71 

OAECLMS  1 X 10‐7  8 984.7 ms 71 

LMS  1 X 10‐8  ‐ 970.2ms 76 

ECLMS  1 X 10‐8  4 968.5ms 71 

OAECLMS  1 X 10‐8  8 984.6 ms 71 

LMS  1 X 10‐9  ‐ 972.3 ms 76 

ECLMS  1 X 10‐9  4 970.3 ms 71 

ECLMS  1 X 10‐9  8 961.5 ms 71 

OAECLMS  1 X 10‐9  8 973.1 ms 71 

LMS  1 X 10‐10  ‐ 975.7 ms 76 

ECLMS  1 X 10‐10  4 973 ms 71 

ECLMS  1 X 10‐10  8 969.2 ms 71 

OAECLMS  1 X 10‐10  8 966.4ms 71 

LMS  1 X 10‐11  ‐ 1.5726 s 76 

ECLMS  1 X 10‐11  4 971.8 ms 71 

ECLMS  1 X 10‐11  8 969.6 ms 71 

OAECLMS  1 X 10‐11  8 964.8ms 71 

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.

Implementación del algoritmo de mínimos cuadrados


promediados con error codificado sobre adaptado (OAECLMS)
con el DSP TMS320C6713

J. G. Avalos Ochoa, Student Member,IEEE, J. Velázquez Lopez, Student Member, IEEE, J. C. Sánchez
García, Member, IEEE.

Resumen: En este trabajo se presenta la I. Introducción


implementación en tiempo real del algoritmo de
mínimos cuadrados promediados con error codificado La principal característica de un filtro adaptivo es que
sobre adaptado OAECLMS (Over Adapted Error puede modificar su respuesta durante la operación, con
Coded Least Mean Square) con el DSP TMS320C6713. el fin de lograr un comportamiento deseado, para esto
El algoritmo de mínimos cuadrados promediados con es necesario el uso de un algoritmo de adaptación que
error codificado (ECLMS- Error Coded Least Mean se encargue de actualizar los coeficientes del filtro y así
Square), se ha reportado como una variante del poder compensar los cambios en la señal de entrada, la
algoritmo LMS convencional que reduce el número de señal de salida, o los parámetros del sistema. Los
operaciones de punto flotante disminuyendo su algoritmos de adaptación más conocidos, son el
complejidad computacional, y obteniendo así una algoritmo RLS (Recursive Least Square – Mínimos
reducción en el tiempo de procesamiento. El Cuadrados Recursivos), y el algoritmo LMS (Least
OAECLMS es una mejora a este algoritmo que realiza Mean Square – Mínimos Cuadrados Promediados). El
la sobre adaptación o re-uso de datos, tomando al algoritmo RLS ofrece mayor velocidad de convergencia
ECLMS como etapa previa. con respecto al algoritmo LMS, pero en cuanto a
Palabras Clave: Filtrado Adaptivo, LMS complejidad computacional el algoritmo LMS tiene la
Abstract: In this paper we present a real time ventaja.
implementation of the over adapted error coded least Los filtros adaptivos tienen una estructura como la
mean square (OAECLMS) algorithm in the digital que se muestra en la Fig. 1, en donde se puede ver que
signal processor TMS320C6713. The least mean square se requiere de una señal de entrada x y una señal
algorithm with coded error (ECLMS) has been reported deseada d, además, se tiene una señal de salida y con
as a variant of the conventional LMS algorithm that una señal de error e, la cual se emplea para adaptar los
reduces the number of floating point operations parámetros del filtro adaptivo [1-2].
decreasing the computational complexity, thus a
reduction in the processing time can be obtained. The
OAECLM is an improve to this algorithm that performs
the over adaptation or re-use of data, taking the
ECLMS as previous stage.
Keywords: Adaptive Filters, LMS
 
Fig. 1 Estructura general de los filtros adaptivos.

La mayoría de los filtros adaptivos de la actualidad


Juan Gerardo Avalos Ochoa, José Velázquez López, Juan Carlos
se implementan por medio de sistemas digitales, debido
Sánchez García, Sección de Estudios de Posgrado e Investigación, a que presentan algunas ventajas sobre los filtros
IPN ESIME Culhuacan, Av. Santa Ana No. 1000 Col. San Fco. analógicos, las cuales consisten en: alta confiabilidad,
Culhuacan C.P. 04430, México D.F., gerardo.avalos@ieee.org. exactitud, y menor sensibilidad a la temperatura y al
Se agradece al CONACYT el apoyo otorgado a través de la beca No.
202372 para Estudios de Maestría.
envejecimiento. Sin embargo los filtros analógicos

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

presentan una velocidad de convergencia mayor que los


digitales, debido a que en los sistemas digitales se Para realizar la codificación se requiere de
requiere de realizar un número elevado de operaciones cuantizar y asignar un código al error cuantizado. El
de punto flotante [3]. error codificado es calculado usando (3) [6].
El algoritmo de mínimos cuadrados promediados
con error codificado ECLMS (Error Coded Least Mean ⎛ e(n + j − 1) ⎞
Square) es una variante que reduce el número de C [e(n + j − 1)] = round ⎜ ⎟ (3)
⎝ Res ⎠
operaciones de punto flotante, haciendo más sencilla la
implementación en sistemas adaptivos y reduciendo el
tiempo de procesamiento [3], en este trabajo se presenta donde round es la función de redondeo
una modificación de este algoritmo en la cual se realiza e(n) es el error actual del filtro
la sobre adaptación o re uso de datos con el fin de Res es la resolución del filtro
reducir el error cuadrático medio mínimo y aumentar la
velocidad de convergencia. Así el error que se obtiene de (3) es un número
entero al que se le asigna un código binario, de esta
II. Algoritmo OAECLMS forma el producto del error y la señal de entrada se
reduce a sumas y desplazamientos libres de exponente.
La ecuación (1) se conoce como algoritmo de Widrow Para el cálculo de la resolución se debe usar (4) [6].
– Hop o algoritmo LMS, donde W(n+1) es el peso  
siguiente del filtro, W(n) es el peso actual, μ es el factor emáx
de convergencia, X(n) es la señal de entrada al filtro y Res = (4)
e(n) es la señal de error. 2n −1

W ( n + 1) = W ( n) + μe( n) X(n) (1) donde emax es el error máximo probable


n es el número de bits de codificación
En este algoritmo los pesos se ajustan hasta que el Debido a que se desconoce el error máximo, se
error cuadrático medio sea minimizado, el factor de puede hacer una estimación a partir del valor máximo
convergencia µ determina el error mínimo local así posible de la señal de entrada al filtro adaptivo, la cual
como la velocidad de convergencia, siendo no es mayor del 90% de la amplitud máxima [6].
directamente proporcional a la velocidad de Cuando se tiene una buena resolución la cantidad
convergencia e inversamente proporcional al error de información que se pierde es menor, debido a que se
cuadrático medio mínimo [4]. obtiene una mejor aproximación en la cuantización del
El algoritmo ECLMS se ha reportado como una error, por lo tanto la velocidad de convergencia es
variante de baja complejidad computacional que mayor. Así para obtener una mejor resolución es
mejora la velocidad de convergencia con respecto al necesario utilizar un numero grande bits en la
algoritmo LMS convencional [5], además reduce el codificación, pero se debe tener cuidado en elegir este
tiempo de procesamiento lo que hace posible el uso de número correctamente, ya que una cantidad de bits
la sobre adaptación o re uso de datos. demasiado grande puede hacer que el algoritmo llegue
La sobre adaptación es una técnica que se aplica en a divergir.
sistemas con alta velocidad de procesamiento, y esta se
efectúa recalculando el valor de los pesos del filtro,
III. Implementación en el DSP TMS320C6713
pero sin cambiar las muestras almacenadas en el vector
de retardos durante j iteraciones. Así al aplicar la sobre
Las pruebas se realizaron con la tarjeta DSK
adaptación al algoritmo ECLMS se obtiene (2) [6].
TMS320C6713 de Texas InstrumentTM, que cuenta con
un DSP C6713 de punto flotante que opera a 225 MHz
W(n + j −1) = W(n + j −1) + μC[e(n + j −1)]X(n) (2) y puede realizar 1350 millones de operaciones de punto
flotante por segundo (MFLOPS) y 450 millones de
donde C[e(n+j-1)] es el error codificado

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

multiacumulaciones por segundo (MMACS), y está


basado en la arquitectura VLWI (Very Long Instruction Para comparar el funcionamiento de estos
Word – Palabra de Instrucción Muy Larga), este tipo de algoritmos se obtuvieron las formas de onda en el
arquitecturas se caracterizan por tener muchas unidades tiempo, el comportamiento en el dominio de la
funcionales que operan en paralelo, permitiendo de esa frecuencia y los espectrogramas de la evaluación en
forma ejecutar varias instrucciones en un mismo ciclo tiempo real. La estructura se probó con la frase:
de reloj. “Escuela Superior de Ingeniería Mecánica y Eléctrica
El C6713 cuenta con ocho unidades funcionales o del Instituto Politécnico Nacional”, la cual es una señal
de ejecución compuestas por seis unidades lógico de audio monoaural de 8 bits muestreada a 8KHz con
aritméticas (ALUs) y dos unidades multiplicadoras, una duración de 9.2484 s. Para las pruebas el filtro
además, de dos registros de propósito general de 32 bit adaptivo contó con 5 coeficientes para ambos
[7]. algoritmos.
La tarjeta DSK tiene las siguientes características:
En la Fig. 3 se muestra la señal de salida del filtro
• Memoria externa SDRAM de 16Mbytes. adaptivo usando los algoritmos ECLMS y OAECLMS
• Memoria Flash de 512 Kbytes. sobreadaptado con tres iteraciones adicionales, el error
• Codec TLVAIC23, estéreo con dos entradas y esta codificado a 4 bits y el factor de convergencia es µ
dos salidas analógicas. = 1 X 10-7 para ambos algoritmos. Como se puede
• CPLD (Complex Programmable Logic observar el algoritmo LMS diverge, mientras que el
Device). algoritmo OAECLMS alcanza a converger, debido a
• Cuatro LED accesibles a través del CPLD. que el recalculo de los pesos ocasiona la reducción de
• Cuatro DIP switch accesibles a través del la potencia del error.
CPLD.
• Interfaz para memoria externa (EMIF) de 32 Señal Deseada
1
bit a 100 MHz.
Amplitud

• Entrada de alimentación de 5V. 0

• Interfaz con el host (HPI) y soporte de -1


0 1 2 3 4 5 6 7 8
emulación JTAG por USB. Número de muestras x 10
4

Señal de salida usando el algoritmo ECLMS codificado a 4 Bits


• Interfaz para expansión de periféricos. 1
Amplitud

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

OAECLMS en el DSK TMS320C6713 se utilizó la 0

estructura adaptiva de predictor lineal Fig.2. En esta -1


0 1 2 3 4 5 6 7 8
estructura la señal deseada es igual a la señal de entrada Número de muestras x 10
4

del filtro adaptivo, el error se calcula al restar la señal


deseada con la señal de salida del filtro. Fig. 3. 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. 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
Fig. 2. Filtro Adaptivo como Predictor Lineal. componentes adicionales en las altas frecuencias.

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

Señal Deseada Señal Deseada


Frecuencia (Hz)

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

En la Fig. 6 se presentan las formas de onda en el 0


1 2 3 4 5 6 7 8 9
tiempo obtenidas con los algoritmos ECLMS y Tiempo (s)

OAECLMS sobreadaptado con tres iteraciones


Fig. 7. Espectrogramas de la señal de entrada y la señal de salida del
adicionales, el error esta codificado a 8 bits y el factor predictor lineal, usando los algoritmos ECLMS y OAECLMS con
de convergencia es µ = 1 X 10-7 para ambos algoritmos. error codificado a 8 bits.
En este caso el algoritmo ECLMS de nuevo no alcanza
a converger, mientras que el algoritmo OAECLMS Al realizar un acercamiento a la señal generada con
aumenta su velocidad de convergencia ya que se utilizó el algoritmo OAECLMS se registro un tiempo de
un número mayor de bits para la codificación del error. 0.9847 s Fig. 9, 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.

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

[6] 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.
[7] SPRS186L – Floating Point Digital Signal Processor, Texas
Instruments application notes, Nov. 2005.

Ing. Juan Gerardo Ávalos Ochoa. (SM’08) Recibió el


grado de ingeniero en comunicaciones y electrónica en
el 2006, en la Escuela Superior de Ingeniería Mecánica
Fig. 9. Acercamiento a la señal de salida del predictor lineal, usando y Eléctrica Unidad Culhuacan del Instituto Politécnico
el OAECLMS con error codificado a 8 bits. Nacional. Actualmente está realizando sus estudios de
maestría en ciencias de Ingeniería de Microelectrónica
V. Conclusiones en la Sección de Estudios de Posgrado e Investigación,
en la ESIME Culhuacan. Su área de interés es el
A partir del algoritmo ECLMS, el cual es una variante procesamiento digital de señales.
del algoritmo LMS, es posible realizar la sobre
adaptación o re-uso de datos. Se pudo observar que al Dr. José Velázquez López. (SM’02) Nació en la
recalcular el valor de los pesos en cada iteración se ciudad de México en Mayo de 1976. Graduado como
produce una reducción en el valor mínimo del error en ingeniero en comunicaciones y electrónica en
diciembre de 2000 en la Escuela Superior de Ingeniería
cuadrático medio.
Mecánica y Eléctrica Unidad Culhuacan del Instituto
A través de las formas de onda en el tiempo se Politécnico Nacional.
pudo comprobar que al aplicar el algoritmo OAECLMS Realizó sus estudios de maestría de ingeniería en
en la configuración de predictor lineal con señales de microelectrónica y doctorado en comunicaciones y
audio, se puede usar valores más grandes del factor de electrónica en la Sección de Estudios de Posgrado e
convergencia sin que el algoritmo diverja. Investigación de la misma Unidad, graduándose en
Al aumentar el número de bits en la codificación Julio del 2002 y Junio del 2007 respectivamente.
Actualmente es profesor títular del departamento de
del error se presenta una mejora en la velocidad de
Ingeniería en Computación en la Escuela Superior de
convergencia, ya que se obtiene mayor precisión en el Ingeniería Mecánica y Eléctrica Culhuacan. Sus áreas
proceso de codificación, sin embargo se debe tener de interés son el procesamiento digital de señales,
cuidado al elegir la cantidad de bits, ya que un número filtrado adaptivo, diseño de interfases y diseño VLSI.
muy grande puede provocar que el sistema diverja.
Dr. Juan Carlos Sánchez García. (M’91) Recibió el
VI. Referencias grado de ingeniero en electrónica y el Grado de Doctor
en Ciencias en la Universidad Autónoma
[1] B. Farhang-Boroujeny; “Adaptive Filters, Theory and Metropolitana, de la Ciudad de México, México, en
applications”, Ed. John Wiley & Sons, 1998 pp. 6 - 7. 1987 y 2000, respectivamente. De 1987 a 1997 fue
[2] Ifeachor Emmanuel C., Jervis Barrie W., “Digital Signal
profesor en la Universidad Autónoma Metropolitana.
Processing a Practical Approach”, Ed. Addison Wesley 1993,
pag. 541 - 556. Desde 1997 es profesor investigador en la Sección de
[3] J. Velázquez López, Juan Carlos Sánchez García, Héctor Pérez Estudios de Posgrado en Investigación, en la ESIME
Meana, “Adaptive filters with codified error LMS Algorithm”, Culhuacan, del Instituto Politécnico Nacional (IPN) de
International Journal Electromagnetic Waves and Electronic
México.
Systems, Jul. 2006, pp. 23-28.
[4] Sayed Ali H., “Fundamentals of Adaptive Filtering”, Ed. Wiley Recibió el Premio a la Investigación 1999, en el área
Interscience 2003, pag. 213-225 de Telecomunicaciones, Computación y
[5] José Velázquez, Juan G. Ávalos, Daniel Espinobarro, Juan C. Teleinformática, por parte del IPN y es miembro del
Sánchez, "Analysis and Implementation of LMS Algorithm
Sistema Nacional de Investigadores de México.
with Coding Error in the DSP TMS320C6713,"
CONIELECOMP, pp. 165-170, 18th International Conference Actualmente es presidente del Capítulo de Circuitos y
on Electronics, Communications and Computers Sistemas de IEEE Sección México.
(CONIELECOMP 2008), 2008

Pag. 5
18th International Conference on Electronics, Communications and Computers

Analysis and Implementation of LMS Algorithm with Coding Error in the


DSP TMS320C6713.

José Velázquez, Juan G. Ávalos, Daniel Espinobarro, Juan C. Sánchez.


Graduated and Research Section ESIME Culhuacan of National Polytechnical Institute Mexico.
jvelazquez@ieee.org

Abstract an answer of greater precision, however, they engage great


complexity due to the operations of floating point. The
In this work we present the analysis and implementation mixed designs [5-6] show mismatch problems between the
in a digital signal processor (DSP), of a variant of the analogical and digital blocks. These techniques make the
Least Mean Square (LMS) algorithm. Modification is based processing of the signal in time domain, also, adaptive
on codifying the error of the algorithm, in order to reduce filters exist that work within frequency domain [7-9], which
the design complexity for its implementation in digital make adaptive filtration in sub_bands with good response,
adaptive filters, because the error is made up of whole but the design of these filters require a digital processors of
values. The results demonstrate an increase in the signals. Other proposals make a direct modification to the
convergence speed; it’s affected indirectly by the structure of the filter to increase the efficiency in the
convergence factor, and to obtain a floating point operation convolution [10].
reduction, which accelerates processing. These, to
demonstrate the results obtained from the implementation d
of the algorithm in the digital signal processor
TMS320C6713 by Texas Instruments.

-+
x Filter e
Key words -- LMS, adaptive filters, ECLMS, linear
prediction, DSP. y

Adaptation
1. Introduction algorithm

Fig. 1. General structure of the adaptive filters.


The development of digital communication systems,
have allowed to have faster communications; this has The known algorithms of adaptation are the Recursive
brought an increasingly number of problems that appear, Least Square (RLS), and the Least Mean Square algorithm
which increases the complexity of designing the new (LMS), where algorithm RLS offers greater speed of
communication systems and prevent the least number of convergence compared to algorithm LMS, but as soon as
errors in the information broadcast. computational complexity, LMS algorithm has the
The field of digital signal processing has contributed in advantage. By its computational simplicity, LMS algorithm
the development of electronic communications, owing to is the one that has greater use in the design and
the problems that appear such as the intersymbol implementation of integrated adaptive filters.
interference, electrical echo, additive noise, etc. they can be In this article, a modification to the adapted LMS
solved using adaptive filters, which have a structure like the algorithm appears, with the objective to reduce the
one shown in Fig. 1, where it is possible to see that it complexity of digital design or implementation for adaptive
requires an input signal x, desired signal d, and in addition filters in programmable digital systems; in addition, the
generates a output signal and with a error signal e, which is modification can be compatible with existing systems of
used to adapt the parameters of the adaptive filter [1]. The digital adaptive filters.
adaptive filters are used because they are systems that are
self adjusting to the variables of the surroundings, which 2. LMS Algorithm Variations.
allows solving problems in random processes.
The efficiency of the adaptive filters mainly depends on Digital LMS algorithm is based on the search for the
the used technique of design and the algorithm of gradient in agreement with the equation (1).
adaptation. The adaptive filters can be analogical designs
[1-3], digitalized or mixed which show their advantages and wk (T + 1) = wk (T ) + μe(T )xk (T ) (1)
disadvantages, for example, the analogical filters are low
power consuming and fast response, but they represent
Where wk(T) it is the vector of weights at the moment
offset problems, which affect the operation of the algorithm
T, wk(T+1) is equal to the vector of weights in T+1, xk(T) it
of adaptation [4].The digital filters are offset free and offer
is the vector of samples of the input signal stored in the

0-7695-3120-2/08 $25.00 © 2008 IEEE 165


DOI 10.1109/CONIELECOMP.2008.7
delay line of the filter, e(n) it corresponds to the error of the the behavior of LMS algorithm is obtained; it is avoided to
filter and µ is the convergence factor of the filter. lose the information on the magnitude and sign of the error.
The convergence factor µ, determines the quadratic error Then, to fulfill the mentioned objective one sets out to
minimum average and the speed of convergence. This make the coding of the error, which it is managed to obtain
factor is directly proportional to the speed of convergence a representation of the error with a whole value without
and inversely proportional to the minimum error. Then a losing significant information on its magnitude and sign,
commitment exists between speed of convergence and which is important in order to not affect the speed of
minimum error. In order to avoid the divergence, the convergence. Therefore LMS algorithm with codified error
opposite factor must: (ECLMS) [14] is in the equation (8).

1 (2) wk (T + 1) = wk (T ) + μC [e(T )]x k (T ) (8)


0<μ <
N x 2 (T )
As it is seen in equation (8), with the coding error the
Where x 2 (T ) denotes the average quadratic value of the adaptation algorithm is not altered, because the coding of
power of the signal x(T) considered, with a reduced number the error can be made separately. When the adjustment of
of samples and N it is the number of delay elements of the existing systems is not affected, there’s only to add the
adaptive filter. coder. When analyzing the number of operations required
Some modifications to LMS algorithm have been made for algorithm ECLMS, it can show that the product between
with the purpose of reducing their computational the codified error and the sample of the input signal, it’s an
complexity, at the cost of speed of convergence and the operation between whole values. As far as the convergence
average quadratic error manifests. These modifications factor, this has a representation of a floating point, but a
consider the sign or the signs of the input signal and the representation in exponent of base two can be simplified to
error as it is in the equations (3), (4) and (5). its representation, which allows using a single bit to
represent the value of the convergence factor. Then, by
wk (T + 1) = wk (T ) + μsign[e(T )]xk (T ) (3) each element of delay of the filter a multiplication between
whole values is made, complemented by an operation of
displacement of decimal point indicated by the position it
wk (T +1) = wk (T ) + μsign[xk (T )]e(T ) (4)
occupies in the bit of the convergence factor and a sum;
which the reduction of operations of floating point which
wk (T + 1) = wk (T ) + μsign[xk (T )]sign[e(T )] (5) are noticeable, to implement it in a digital system.
In order to make the coding, it is required to quantize
Other modifications to LMS algorithm, include the and assign a code to the quantization error, which is made
quantization the input signals and error to the exponent of using the equation (9).
two nearer. These proposals are in the equations (6) known
LMS- Log and also in (7) know as LMS Log-Log [11]. ⎛ e(T ) ⎞ (9)
C [e(T )] = round ⎜ ⎟
⎝ Res ⎠
wk (T +1) = wk (T ) + μQ[e(T )]Q[xk (T )] (6)
Where e(T) is the present error of the filter, Res the
wk (T + 1) = wk (T ) + Q [μQ [e(T )]Q[x k (T )]] (7) resolution of the coder and round the quotient. When the
error obtained from (9), is a whole number, a binary code is
The modifications shown in the previous equations, assigned to him. The resolution of the coder is obtained
attempt to reduce the complexity of design of a digital using (10).
adaptive filter. Since, when making the quantization to the
exponent two. The representation of the number is made Errmáx (10)
Res =
only using a bit, but the disadvantage of these modifications 2n − 1
is observed in a low convergence speed, because it loses
information due to the error increase. Where n corresponds to the number of bits used for the
coding of the error. In order to avoid the divergence on the
3. LMS Algorithm with Codified Error. basis of the number of bits, the process of coding of the
error in the equation (9) is replaced to obtain the following
The previously displayed modifications make a (11)
simplification of the computational complexity of the
Q[e(T )] (11)
algorithm, but they have consequences like a decrease in wk (T + 1) = wk (T ) + μ x k (T )
Res
the speed of convergence, because they lose information
from the error. It is for that reason that a modification to the
adaptation algorithm is made in such a way that the As it is possible to observe in (11), when making the
reduction of operations of floating point without altering process of the error coding, the convergence factor is

166
affected [17], which can bring as consequence a speed x(T) d(T)

increase of convergence when the convergence factor is


greater to the resolution. Replacing the ratio between µand
Res we have: y(T)
Filter - +

μ 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

information point of view, because with a greater number


of bits, the value of the resolution will be small and -10
therefore a much better approach to the value of the error.
Once the error reduction is managed during the -15
adaptation, it can take value from one or zero as it indicates
the equation (14):
-20

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

• 32- bit stereo codec TLV320AIC23 with two inputs and 0


1 2 3 4 5 6 7 8 9

two outputs , variable sampling rates from 8 to 96 KHz. Time (s)


Adaptive Filter Output Signal
• 16 MB of synchronous dynamic random access memory 4000

(SDRAM).

Frequency (Hz)
3000

• 256 kB of flash memory. 2000

• Four light-emitting diodes (LEDs) and four dip 1000

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.

Fig. 7 shows the approaching that was done to the


A. LMS Algorithm reference point of the adaptive filter output signal, where
To make the performance comparison from the there is a time of 960.8 ms. Therefore, the delay generated
algorithms we obtained the time waveforms and the with respect to the original signal is 168 ms.
spectrograms of the signals through MATLAB TM. The Fig.
4 shows the time waveforms of the input signal and the
adaptive filter output using the conventional LMS
algorithm, dotted line on the figure marks the reference
point taken to establish the delay time that exist in the
output signal of the linear predictor with respect to the
reference signal.

Fig. 7. Approaching to the adaptive filter output 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)

In Fig. 8 can be observed the time waveforms of the


input and output signal from the adaptive filter using the
ECLMS algorithm codified to 4 bits.

Fig. 11. Input and output voice signals of the linear predictor,
using ECLMS algorithm codified to 8 bits.

Fig. 12 shows that the ECLMS algorithm codified to 8


Fig. 8. Input and output voice signals of the linear predictor, using bits has a response time of 952 ms, the signal is delayed
ECLMS algorithm codified to 4 bits. 159.2 ms with respect to the original signal and 880 µs less
than the signal obtained with the conventional LMS
The signals spectrograms can be observed in Fig. 9, we algorithm.
can see that the signals are very similar in the low
frequency components.
Desired Signal
4000
Frequency (Hz)

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

IMPLEMENTACIÓN DEL ALGORITMO LMS EN EL DSP TMS320C6713

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

RESUMEN pueda adaptar para manejar la situación. Para


En la actualidad los DSP’s (Digital Signal resolver muchos de estos problemas se propone el
Processors - Procesadores Digitales de Señales) uso de filtros adaptivos, cuya característica
pueden implementar filtros digitales para principal es que estos pueden modificar su
procesamiento en tiempo real. El conjunto de respuesta durante la operación con el fin de lograr
instrucciones y la arquitectura del TMS320C6713 un comportamiento deseado [2].
de Texas Instrument hacen de éste una herramienta
adecuada para el desarrollo de algoritmos de Los coeficientes de un filtro adaptivo se ajustan
procesamiento adaptivo. para compensar los cambios en la señal de entrada,
la señal de salida, o los parámetros del sistema. Los
En este trabajo se presenta la implementación con filtros adaptivos tienen una estructura como la que
el DSP TMS320C6713 del algoritmo LMS (Least se muestra en la figura 1, en donde se puede ver
Mean Square – Mínimos Cuadrados Promediados), que requiere de una señal de entrada x, la señal
que es el algoritmo más común para el deseada d, además genera una señal de salida y con
procesamiento adaptivo. Para las pruebas de una señal de error e, la cual se emplea para adaptar
funcionamiento se le utilizó en las estructuras los parámetros del filtro adaptivo.
adaptivas de predictor lineal e identificador de
sistemas, reportándose además 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. Este desarrollo
es básico para futuras evaluaciones de algoritmos
LMS más complejos.

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.

3. IMPLEMENTACIÓN. El código utilizado para la implementación del


Las pruebas se realizaron con la tarjeta DSK predictor es el siguiente:
TMS320C6713 de Texas Instrument, que cuenta
con un procesador Digital de Señales de punto #include "DSK6713_AIC23.h" for (i = N-1; i >= 0; i--)
flotante C6713 basado en la arquitectura VLIW Uint32fs=DSK6713_AIC23_FRE {w[i]=w[i]+beta*E*delay[i]
(Very Long Instruction Word – Palabra de Q_48KHZ; delay[i] = delay[i-1]; }
Instrucción muy Larga), el cual opera a 225MHz y #define beta 1E-12 if(out_type == 1)
puede realizar 1350 millones de operaciones de #define N 10 output=((short)yn);
punto flotante por segundo y 450 millones de #define LEFT 0 else if(out_type==2)
MMACS (Multiply – Accumulate– Multiplicación #define RIGHT 1 output=((short)d);
– Acumulación) de punto flotante.
float w[N]; output_sample(output);
float delay[N]; return;}
La tarjeta DSK tiene las siguientes características:
short output; void main()
códec de 32 bit TLV320AIC23 estéreo, con dos
short out_type = 1; {
entradas y dos salidas analógicas, frecuencia de
int fal; short T=0;
muestreo variable entre 8 y 96Khz, SDRAM de
16MB, memoria Flash de 256kB, interfaz EMIF volatile union{unsigned int uint; for (T = 0; T < 10; T++)
(External Memory Interface – Interfaz de Memoria short channel[2];}AIC23_data; {w[T] = 0;
Externa) de 32 bits a 100 MHz, conectores para interrupt void c_int11() delay[T] = 0; }
expansión de periféricos, interfaz con el host y { short i; comm_intr();
soporte de emulación JTAG por USB y entrada de Float yn=0, E=0, d=0, while(1);}
alimentación de 5V para alimentar el deseada=0;
microprocesador [4]. AIC23_data.uint= input_sample();
deseada=(AIC23_data.channel[LE
4. RESULTADOS FT]);
Para realizar la evaluación del algoritmo LMS en el d = deseada ;
TMS320C6713 con señales y sistemas reales se delay[0] = deseada;
utilizaron dos estructuras de procesamiento
for (i = 0; i < N; i++)
adaptivo: predictor lineal e identificador de
sistemas.

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

Con el osciloscopio TDS520C de Tektronix se Señal Deseada


1
obtuvieron las señales en el tiempo de entrada,
salida del filtro y error, las cuales se observan en la 0.5

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

Figura 5. Señales de voz de entrada y salida del


predictor lineal.
Figura 3. Señales en tiempo real de entrada, salida
y error del predictor lineal. Con MATLABTM se obtuvo el espectrograma de
las señales de entrada y salida del predictor lineal,
A través del osciloscopio se almacenaron los en el que se observa que la señal de salida del filtro
valores de la señal de error en un archivo .CSV, adaptivo esta retrasada debido al tiempo de
estos valores se graficaron en MATLABTM figura procesamiento, presentando además algunas
4, en la cual se observa que el error es de 0.06Vp frecuencias adicionales figura 6.
(6% de la señal deseada).
Señal Deseada
Señal de Error 4000
0.06

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

Figura 4. Señal de error del filtro adaptivo como 0


1 2 3 4 5 6 7 8 9
predictor lineal. Tiempo

Figura 6. Espectogramas de la señal de entrada y


La estructura se probó también con la frase: la señal de salida del predictor lineal.
“Escuela Superior de Ingeniería Mecánica y
Eléctrica del Instituto Politécnico Nacional”, la 4.2. Identificador de Sistemas
cual es una señal de audio monoaural de 8 bits En este caso el objetivo que se persigue es que la
muestreada a 8KHz figura 5. El filtro conservo los función de transferencia o respuesta al impulso del
cinco coeficientes y el factor de convergencia filtro adaptivo se aproxime a la respuesta al
µ=10-9. impulso del sistema desconocido [4]. En esta
configuración la señal de referencia es la salida del
sistema desconocido, como se muestra en la figura
7.

171
ITCH - ELECTRO 2007 Octubre 17-19, Chihuahua, México

Figura 7. 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 Figura 9. Respuesta en frecuencia del
– Herramienta de Diseño y Análisis de Filtros) de identificador.
MATLABTM, el sistema adaptivo tiene la misma
longitud con µ=10-12, ambos sistemas se También se probó esta estructura con la misma
implementaron en el DSP. Con el analizador de señal de audio utilizada en el predictor lineal, en la
redes 4395A de Hewlett Packard se obtuvo la figura 10 se muestran los espectrogramas de las
respuesta en frecuencia del sistema desconocido y señales de salida, donde se observa que la señal del
el filtro adaptivo figura 8 y figura 9, donde la filtro adaptivo esta retrasada aproximadamente
respuesta tiene una atenuación adicional de 3dB 30mseg con respecto a la señal de salida del
producida por el códec AIC23. La frecuencia de sistema desconocido.
corte del sistema desconocido es 836.36 Hz y la del
filtro adaptivo es 839.39 Hz. Señal de Salida del Sistema Desconocido
4000

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

Fig. 11. Espectogramas de la señal de salida del


Fig. 8. Respuesta en frecuencia del sistema sistema desconocido y la señal de salida del
desconocido. identificador de sistemas.

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

Las formas de onda de los sistemas adaptivos en el


dominio del tiempo, el dominio de la frecuencia y
los espectrogramas, nos sirvieron para demostrar
que los sistemas funcionan de manera adecuada y
será posible en el futuro evaluar algoritmos LMS
de mayor complejidad.

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

Análisis e Implementación en DSP del


Algoritmo LMS con Error Codificado.
José Velázquez, Juan G. Ávalos, Juan C. Sánchez.

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

digitales existentes. una velocidad de convergencia lenta, debido a que pierde


información del incremento del error.
II. VARIANTES DEL ALGORITMO LMS.
El algoritmo LMS digital se basa en la búsqueda del III. ALGORITMO LMS CON ERROR CODIFICADO.
gradiente de acuerdo con la ecuación (1). Las modificaciones presentadas anteriormente, realizan una
simplificación de la complejidad computacional del algoritmo,
wk (T +1) = wk (T ) + µe(T )x k (T ) (1) pero tienen como consecuencia una disminución en la
velocidad de convergencia, debido a que pierden información
En donde wk(T) es el vector de pesos en el instante del error. Es por ello que se realiza una modificación al
T, wk(T+1) es igual al vector de pesos en T+1, xk(T) es el algoritmo de adaptación, de tal manera que se logra la
vector de muestras de la señal de entrada almacenadas en la reducción de operaciones de punto flotante sin alterar el
línea de retardos del filtro, e(n) corresponde al error del filtro comportamiento del algoritmo LMS, debido a que se evita
y µ es el factor de convergencia del filtro. perder la información sobre la magnitud y signo del error.
El factor de convergencia µ, determina el error cuadrático Entonces, para cumplir con lo mencionado, se propone
promedio mínimo y la velocidad de convergencia. Este factor realizar la codificación del error, con lo cual se logra obtener
es directamente proporcional a la velocidad de convergencia e una representación del error con un valor entero sin perder
inversamente proporcional al error mínimo. Entonces existe información significativa sobre su magnitud y signo, lo cual es
un compromiso entre velocidad de convergencia y error importante para no afectar la velocidad de convergencia. Por
mínimo. Para evitar la divergencia, el factor de convergencia lo tanto el algoritmo LMS con error codificado (ECLMS)
debe cumplir: [14], queda como se muestra en la ecuación (8).

1 (2) wk (T +1) = wk (T ) + µC [e(T )]x k (T ) (8)


0<µ <
N x 2 (T )
Como se puede ver en (8), con la codificación del error no
donde x (T ) denota el valor cuadrático medio de la
2 se altera el algoritmo de adaptación, debido a que la
codificación del error se puede realizar por separado.
potencia de la señal x(T) estimado con un número reducido de
Entonces la adecuación de sistemas existentes no se afecta, ya
muestras y N es el número de elementos de retardo del filtro
que solo basta agregar el codificador.
adaptivo.
Analizando el número de operaciones requeridas para el
Se han realizado algunas modificaciones al algoritmo LMS
algoritmo ECLMS, se puede detectar que el producto entre el
con la finalidad de reducir su complejidad computacional,
error codificado y la muestra de la señal de entrada, es una
pero a costa de la velocidad de convergencia y del error
operación entre valores enteros. En cuanto al factor de
cuadrático medio. Estas modificaciones consideran el signo o
convergencia, este tiene una representación de punto flotante,
los signos de la señal de entrada y del error como se muestra
pero se puede simplificar su representación al utilizar una
en las ecuaciones (3), (4) y (5).
representación en potencia de base dos, lo cual permite
wk (T +1) = wk (T ) + µsign[e(T )]x k (T )
emplear un solo bit para representar el valor del factor de
(3)
convergencia. Entonces, por cada elemento de retardo del
filtro se realiza una multiplicación entre valores enteros,
wk (T +1) = wk (T ) + µsign[x k (T )]e(T ) (4)
complementado de una operación de desplazamiento de punto
decimal indicado por la posición que ocupa el bit del factor de
wk (T +1) = wk (T ) + µsign[xk (T )]sign[e(T )] (5) convergencia y una suma; con lo cual se puede observar la
reducción de operaciones de punto flotante para
Otras modificaciones al algoritmo LMS, consisten en la implementarlo en un sistema digital.
cuantizar las señales de entrada y de error a la potencia de dos Para realizar la codificación se requiere de cuantizar y
más cercana. Estas propuestas se muestran en las ecuaciones asignar un código al error cuantizado, lo cual se realiza
(6) conocida como Log-LMS y en (7) también conocida como empleando la ecuación (9).
Log-Log LMS [11].
 e(T )  (9)
C [e(T )] = round  
wk (T + 1) = wk (T ) + µQ[e(T )]Q[x k (T )] (6)  Res 
wk (T +1) = wk (T ) + Q [µQ [e(T )]Q [x k (T )]] (7)
donde e(T) es el error actual del filtro, Res la resolución del
Las modificaciones mostradas en las ecuaciones anteriores, codificador y round redondea el conciente entre ambos.
buscan reducir la complejidad de diseño de un filtro adaptivo Entonces el error obtenido de (9), es un número entero al
digital, ya que al realizar la cuantización a potencia de dos, la cual se le asigna un código binario.
representación del número se realiza utilizando solamente un La resolución del codificador se obtiene empleando (10).
bit, pero la desventaja de estas modificaciones se observa en
3

Errmáx (10)
Res = 4
2n − 1 2
Error cuantizado

Amplitud
0

donde n corresponde al número de bits empleados para la -2

codificación del error. Para evitar la divergencia en base al -4

número de bits, se sustituye el proceso de codificación del -6


0 100 200 300 400 500 600 700 800
error en la ecuación (9) para obtener lo mostrado en (11) No. de Iteraciones

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

Fig. 3. Filtro adaptivo como predictor.


-20

Los resultados de la comparación del error cuadrático


medio, (MSE – Mean Square Error) del algoritmo LMS contra -25
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
el algoritmo ECLMS, se muestra en la Fig. 4. Estos resultados No. de Iteraciones
x 10
4

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

En los resultados mostrados en la Fig. 4, se puede observar -5


0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Iteraciones
que el error cuadrático medio para el algoritmo ECLMS, 5
Respuesta con LMS
converge mucho más rápido con respecto al algoritmo LMS
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

El aumento en la velocidad de convergencia del algoritmo 5


Respuesta con ECLMS
ECLMS se explicó anteriormente, lo importante es el nivel
Amplitud

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

variante de signo una vez que ha encontrado el valor mínimo Iteraciones

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

ejecutar hasta 1350 millones de operaciones de punto flotante 4000

por segundo y 450 millones de MMACS (Multiply –

Frecuencia (Hz)
3000

Acumúlate – Multiplicación – Acumulación) de punto 2000

flotante. La tarjeta DSK tiene las siguientes características: 1000

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

• Memoria SDRAM de 16MB. 2000

• Memoria Flash de 256kB. 1000

• Cuatro LED y cuatro microinterruptores accesibles por el 0


1 2 3 4 5 6 7 8 9
usuario. Tiempo (s)

• 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

Fig. 7. Señales de voz de entrada y salida del predictor lineal.

Con MATLABTM también se obtuvo el espectrograma de


las señales de entrada y salida del filtro adaptivo Fig. 8, en la
6

Señal Deseada Señal Deseada


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

La Serena - Chile, 16 de Enero de 2008

Prof. José Velázquez López


Instituto Politécnico Nacional
Esc. Superior de Ingeniería Mecánica y Eléctrica
Sección de Estudios de Posgrado e Investigación
México, D.F.

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.

Sin otro particular, le saluda muy atentamente,

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.

Palabras Clave – ECLMS, Filtros adaptivos, LMS, LMS Sobreadaptado.

“Codified Error LMS Algorithm for Adaptive Filters”


Abstract- In this paper, a quantitative analysis of a modified LMS adaptive algorithm is presented.
Such modification is made coding error in the LMS algorithm, with the objective in to increase
convergence speed and to reduce complexity for digital adaptive filter implementation, due to error
coded generated is an integer number. Results depicts that speed convergence increases, which
lets to the modified LMS be applied in adaptive filters with high convergence speed and
furthermore the proposed modification is compatible with the existent adaptive filters, due to error
coding can be made using a separated block. The algorithm was used in adaptive filters applied to
linear prediction and system identification, furthermore the proposed algorithm is compared with
over adapted LMS algorithm.

Keywords – Adaptive filters, ECLMS, LMS, Over adapted LMS.


INTRODUCCIÓN. debido a las operaciones de punto
flotante. Los diseños mixtos [5],
Debido al gran desarrollo de los sistemas presentan problemas de
de comunicaciones, los problemas que desacoplamiento entre los bloques
se presentan aumentan en la misma analógicos y digitales. Estas técnicas
medida, lo que incrementa la complejidad realizan el procesamiento de la señal en
de diseño de los sistemas para evitar el el dominio del tiempo, pero también
menor número de errores en la existen filtros adaptivos que trabajan en
transmisión de información. el dominio de la frecuencia [7], los cuales
realizan filtrado adaptivo en sub-bandas
Por ejemplo, cancelación de eco, ruido con buena respuesta, pero el diseño de
aditivo, interferencia íntersímbolo, son estos filtros requieren de procesadores
problemas considerables que se digitales de señales. Otras propuestas
presentan a menudo; su solución está en realizan una modificación directa a la
el uso de filtros adaptivos, los cuales estructura del filtro para aumentar la
tienen una estructura como la que se eficiencia en la convolución [10].
muestra en la figura 1, en donde se
puede ver que requiere de una señal de Los algoritmos de adaptación más
entrada x, la señal deseada d, además conocidos, son el algoritmo de mínimos
genera una señal de salida y con una cuadrados recursivos (RLS – Recursive
señal de error, la cual se emplea para Least Square), y el algoritmo de mínimos
adaptar los parámetros del filtro adaptivo cuadrados (LMS – Least Mean Square),
[1]. en donde el algoritmo RLS ofrece mayor
velocidad de convergencia con respecto
d al algoritmo LMS, pero en cuanto
complejidad computacional, el algoritmo
LMS tiene la ventaja. Por su simplicidad
computacional, el algoritmo LMS es el
x Filtro
-
+ e
que tiene mayor uso en el diseño e
implementación de filtros adaptivos
y
integrados.
Algoritmo de
Adaptación
En este artículo se presenta una
Fig. 1: Estructura general de los filtros modificación al algoritmo de adaptación
adaptivos. LMS, con el objetivo de mejorar su
velocidad de convergencia, reducir la
La eficiencia de los filtros adaptivos complejidad de diseño para su
depende principalmente de la técnica de implantación en un circuito digital y
diseño utilizada y el algoritmo de compatible con los sistemas de filtrado
adaptación. Los filtros adaptivos pueden adaptivos existentes.
ser diseños analógicos [1], digitales o
mixtos los cuales presentan sus ventajas ALGORITMO LMS Y SUS VARIANTES.
y desventajas, por ejemplo, los filtros
analógicos son de bajo consumo de El algoritmo LMS digital se basa en la
potencia y respuesta rápida, pero búsqueda del gradiente de acuerdo con
presentan problemas de desbalanceo la ecuación (1).
(offset), el cual afecta el funcionamiento
del algoritmo de adaptación [4]. Los wk (T +1) = wk (T ) + μe(T )xk (T ) (1)
filtros digitales son libres del desbalanceo
y ofrecen una respuesta de mayor
precisión, pero son de gran complejidad
en donde wk(T) es el vector de pesos
actual, wk(T+1) es igual al vector de Otras modificaciones al algoritmo LMS,
pesos siguiente, xk(T) es el vector de consisten en la cuantización de las
retardos con las muestras de la señal de señales de entrada y de error a la
entrada, e(T) corresponde al error potencia de dos más cercana. Estas
instantáneo del filtro del filtro y μ es el propuestas se muestran en las
factor de convergencia del filtro. ecuaciones (6) conocida como Log-LMS
y en (7) también conocida como Log-Log
El factor de convergencia μ, determina la LMS [11].
velocidad de convergencia, el cual es
directamente proporcional a la velocidad wk (T +1) = wk (T ) + μQ[e(T )]Q[xk (T )] (6)
de convergencia e inversamente
proporcional al error cuadrático medio
mínimo, por lo tanto, existe un
compromiso entre velocidad de wk (T +1) = wk (T ) + Q[μQ[e(T )]Q[xk (T )]] (7)
convergencia y error cuadrático promedio
mínimo. Las modificaciones mostradas en las
ecuaciones anteriores, presentan una
Para evitar la divergencia, el factor de velocidad de convergencia lenta, debido
convergencia debe cumplir lo estipulado a que pierden información del incremento
en a ecuación (2): del error.

1 ALGORITMO LMS CON ERROR


0<μ < (2) CODIFICADO.
2
N x (T )
Con los algoritmos propuestos
2
donde x (T ) denota el valor cuadrático anteriormente, se propone realizar una
medio de la potencia de la señal x(T) modificación al algoritmo de adaptación
estimado con un número reducido de LMS, con el propósito de reducir el
muestras y N es el número de elementos número de operaciones de punto flotante
de retardo del filtro. y con ello tener un algoritmo más simple
de implantar en un filtro adaptivo digital.
Se han realizado algunas modificaciones
al algoritmo LMS con la finalidad de La propuesta consiste en engañar al
reducir más su complejidad algoritmo de adaptación, para hacerle
computacional, pero a costa de la creer que el error obtenido es mayor y de
velocidad de convergencia y del error esta manera incrementar la velocidad de
mínimo. Estas modificaciones han convergencia, sin olvidar la reducción de
considerado el signo o los signos de la la complejidad del algoritmo para su
señal de entrada y del error como se posible implantación en un filtro digital,
muestra en las ecuaciones (3), (4) y (5). disminuyendo las operaciones de punto
flotante empleando números enteros.
Entonces con las consideraciones
wk (T + 1) = wk (T ) + μsign[e(T )]xk (T ) (3) realizadas, se propone realizar la
codificación del error, es decir,
representar el error instantáneo mediante
wk (T +1) = wk (T ) + μsign[xk (T )]e(T ) (4)
un valor entero, con lo cual el error
aparente tiene un valor mayor y además
no se pierde información significativa del
wk (T +1) = wk (T ) + μsign[xk (T )]sign[e(T )] (5) incremento del error, lo cual es
importante en la velocidad de
convergencia. Entonces el algoritmo LMS Errmáx
con error codificado [14], [15] (ECLMS) Res = (10)
queda como se muestra en la ecuación
2n − 1
(8).
donde Errmax es el error máximo probable
y n corresponde al número de bits de
wk (T +1) = wk (T ) + μC [e(T )]xk (T ) (8) codificación [16]. Debido a que se
desconoce el error máximo, se recurre a
Analizando la ecuación (8), el número de realizar una estimación a partir de la
operaciones de punto flotante se reduce, amplitud máxima de la señal deseada o
debido a que el error codificado es un de la señal de entrada del filtro adaptivo.
valor entero, el cuál al multiplicarse con
la muestra de la señal de entrada que Como se puede ver, la modificación
también tiene un valor entero. Debido a propuesta no afecta a la estructura del
que el factor de convergencia es de un filtro y tampoco al algoritmo, por lo cual el
valor de punto flotante, para simplificar algoritmo ECLMS puede ser compatible
su representación se emplea una con los sistemas de filtrado existentes.
notación de potencia de dos, en donde el Otro punto importante es el hecho de que
valor del exponente indica el número de se reducen operaciones de punto
lugares en que se tiene que recorrer el flotante, debido a que el error codificado
punto decimal del producto entre error y es un número entero, ocasionando que
muestra de entrada. Otro aspecto una parte de la operación del algoritmo
notable con la codificación del error, es el se reduzca a operaciones de suma y
hecho de que no se altera el algoritmo de desplazamiento o la utilización de
adaptación, debido a que la codificación memoria, lo cual es más práctico en
del error se puede efectuar de forma diseños digitales.
externa al algoritmo. Entonces la
adecuación del algoritmo en sistemas Efectos de la codificación del error.
digitales existentes no se vería afectado
considerablemente, ya que solo basta En esta sección se analizan cuales son
agregar el codificador. los efectos de la codificación del error
sobre el algoritmo LMS. Primeramente la
Para realizar matemáticamente la velocidad de convergencia aumenta,
codificación del error, se requiere dado que el error inicial que observará el
efectuar su cuantización y asignarle un algoritmo será grande haciendo que el
código, empleando lo mostrado en la algoritmo aumente el tamaño de los
ecuación (9). pesos aumentando la velocidad de
convergencia. Conforme avanza el
⎛ e(T ) ⎞ proceso de adaptación, el error
C [e(T )] = round ⎜ ⎟ (9) disminuirá, el cual tendrá un
⎝ Res ⎠ comportamiento similar al algoritmo LMS
con error de signo, siempre y cuando la
en donde e(T) es el error actual del filtro, magnitud del error cumpla las
Res la resolución del codificador y round condiciones mostradas en la ecuación
redondea el resultado de la división entre (11) [17].
ambos. Entonces el error obtenido de (9),
es un número entero al cual se le asigna
1 3
un código binario. Res ≤ e(T ) < Res (11)
2 2
La resolución del codificador se obtiene
empleando (10). De la ecuación (11) se puede detectar
que al seleccionar un valor de resolución
grande, entonces el algoritmo EC-LMS por lo tanto el factor de convergencia
requiere de unas cuantas iteraciones resultante μ‘ es inversamente
para comportarse como la variante de proporcional a la resolución.
signo, pero en consecuencia se afecta en
la velocidad de convergencia y en el El factor de convergencia debe satisfacer
error cuadrático medio mínimo. (2), entonces al realizar la codificación
del error se debe considerar la
Cuando el valor de la resolución es resolución, entonces sustituyendo (14)
demasiado pequeño, entonces la en (2) se obtiene (15):
cantidad de información que se pierde es
menor, por lo tanto la velocidad de 1
convergencia es mayor. La resolución es 0 < μ′ ≤ (15)
inversamente proporcional al número de
N x 2 (T )
bits de codificación, entonces para
obtener una resolución grande, se sustituyendo (14) en (15) y despejando el
requiere de un número de bits reducido y factor de convergencia se obtiene (16):
para reducir la resolución es necesario
un mayor número de bits, pero se debe Res
0<μ ≤ (16)
tener cuidado en elegirlo correctamente, N x 2 (T )
ya que una cantidad de bits grande
puede hacer que el algoritmo llegue a
divergir. sustituyendo el cálculo de la resolución
(10) en (16)
Para observar el problema de la
divergencia por la codificación del error, errormax
0<μ≤
se sustituye las operaciones de la
codificación del error, en la ecuación (8)
( )
N x 2 (T ) 2 n − 1
(17)

para obtener (12) donde Q[e(T)] es la


es decir, el factor de convergencia para
cuantización del error para realizar la
el algoritmo LMS con error codificado,
codificación.
además de lo expuesto en la ecuación
(2), es inversamente proporcional al
Q[e(T )]
wk (T + 1) = wk (T ) + μ xk (T ) (12) número de combinaciones posibles con n
Res número de bits de codificación. Por lo
tanto, al aumentar el número de bits en la
De la ecuación (12) se detecta que existe codificación del error, entonces tendrá
una relación de la resolución con el factor que disminuir el factor de convergencia.
de convergencia, entonces se puede
realizar el cambio de variable para RESULTADOS.
obtener (13)
En esta sección se presentan los
wk (T + 1) = wk (T ) + μ ' Q[e(T )]xk (T ) (13) resultados obtenidos, con el propósito de
realizar un análisis comparativo de la
donde: modificación propuesta. Los resultados
que se muestran, realizan la
comparación con respecto al algoritmo
μ
μ′ = (14) LMS convencional y el algoritmo LMS
Res sobreadaptado cuando el filtro adaptivo
lleva a cabo la predicción lineal y la
identificación de sistemas, además se
realiza el análisis de comportamiento del
número de bits de codificación y la 0
resolución del codificador. SNR = 20 dB
LMS
ECLMS a 8 bits

-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

estructura transversal o también


Fig. 3: Error cuadrático medio del
conocido filtro de respuesta al impulso
algoritmo LMS contra ECLMS.
finito (FIR – finite impulse response).
En los resultados mostrados en la Fig. 3:,
La predicción lineal es una técnica de
se puede observar que el error
estimación espectral, la cual se emplea
cuadrático medio (MSE – Mean Square
para modelar procesos aleatorios
Error) para el algoritmo ECLMS,
correlacionados, con el objetivo de
converge mucho más rápido con
encontrar la representación paramétrica
respecto al algoritmo LMS convencional,
de estos procesos.
además de que no se empeora el error
x(T) d(T)
cuadrático mínimo en ECLMS. El
aumento de la velocidad de convergencia
con ECLMS se debe a que de manera
indirecta se está afectando al factor μ,
y(T) debido a que inicialmente el error es
Filtro +
- grande y por lo tanto el error codificado
e(T)
corresponde a un valor grande, pero
w(T) como avanza el proceso de adaptación,
Algoritmo
LMS
el error va disminuyendo hasta tener un
comportamiento similar a la variante de
Fig. 2: Filtro adaptivo como predictor. signo del algoritmo LMS, debido a que el
error codificado tendrá valores de uno o
Los resultados de la comparación del cero.
algoritmo LMS contra el algoritmo
modificado, se muestra en la Fig. 3:, los Otra prueba realizada, fue cambiar el
cuales se obtuvieron utilizando MatlabTM, número de bits de codificación de la
empleando el mismo factor de señal de error, empleando las mismas
convergencia y el error máximo fue del condiciones de operación que en el
90% del valor pico de la señal de experimento anterior. Con este
entrada. experimento logramos obtener la relación
que existe entre el número de bits, la
velocidad de convergencia y el error
mínimo. Los resultados obtenidos se
muestran en la Fig. 4:.
0 -8
8 bits 90 %
SNR = 20 dB SNR = 20 dB
4 bits -10 50 %
1 bit 10 %
-5
-12

-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%

probable, las pruebas anteriores se


hicieron considerando que el error -10
máximo probable, es igual al 90% de la
MSE (dB)

amplitud máxima de la señal de entrada. -15

Cambiando la resolución con respecto a -20


otros valores máximos de la señal de
entrada, se obtienen los resultados que -25
se muestran en la Fig. 5:. 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

Fig. 6: Análisis de Resolución y número de


bits.

Otro análisis interesante, es encontrar la


relación que existe entre la resolución y
el número de bits de codificación.
Empleando un bit de codificación y
variando la resolución se obtuvieron los
resultados de la Fig. 6:.
La gráfica de la Fig. 6:, indica que la observar en esta configuración, que la
velocidad de convergencia y el error señal de entrada x(T) se aplica de
cuadrático medio mínimo en el algoritmo manera simultanea al sistema
ECLMS, no solamente depende en gran desconocido y al identificador de
medida del número de bits de sistema, entonces la señal deseada será
codificación, también depende de la la respuesta del sistema desconocido. El
resolución utilizada. Entonces, si requiere sistema desconocido usado, es un filtro
de utilizar un menor número de bits de transversal con pesos aleatorios, en
codificación, entonces el error máximo donde el número de elementos de
que se debe considerar en la resolución retardo es el mismo en el sistema
debe ser menor también. desconocido y en el filtro adaptivo.

La Fig. 7:, muestra la respuesta del x(T)


Sistema d(T)
algoritmo LMS y ECLMS cuando se Desconocido
predice una señal. Esta gráfica nos
permite medir de una manera más
efectiva el número de iteraciones Identificador y(T)
+
de Sistema -
necesarias para alcanzar el mínimo local.
Se hace la aclaración en el número de
e(T)
iteraciones presentadas en la Fig. 7:, se
toma la parte inicial, con el propósito de Fig. 8: Identificador de sistema
observar con mayor claridad el proceso
de adaptación, lo cual se refleja en la Al igual que el predictor lineal, se midió el
amplitud de la señal de salida. error cuadrático medio, comparando el
5
algoritmo ECLMS, contra el algoritmo
Señal deseada
LMS convencional. Los resultados
Amplitud

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

0 resultados obtenidos en la predicción


-5
lineal, al realizar la codificación del error,
0 500 1000 1500 2000 2500 3000
Iteraciones
3500 4000 4500 5000
se afecta indirectamente al factor de
convergencia hasta que converge el
Fig. 7: Comparación de los algoritmos algoritmo.
LMS y ECLMS en el dominio del tiempo.
0
LMS
Los resultados de la Fig. 7:, muestran -10
SNR = 20 dB ECLMS a 8 bits

que el algoritmo ECLMS converge al


-20
error mínimo en aproximadamente una
décima parte del número de iteraciones -30
MSE (dB)

que requiere el algoritmo LMS.


-40

Identificador de sistema. -50

-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

identificador de sistema. Se puede No. de Iteraciones 4


x 10
Fig. 9: Error cuadrático medio del la resolución para observar su efecto en
algoritmo LMS contra ECLMS. el error cuadrático medio. De los
resultados mostrados en la Fig. 11:, se
Al igual que en el predictor, se cambió el puede ver que la resolución del
número de bits de codificación. Los codificador no afecta en la velocidad de
resultados se muestran en la Fig. 10:, en convergencia del algoritmo LMS con
donde se puede comprobar la error codificado. Al disminuir la
proporcionalidad existente entre la resolución se logra reducir el error
velocidad de convergencia y el número cuadrático medio, pero cuando la
de bits empleados en la codificación del resolución es muy baja, el mínimo local
error, pero sin perder la importancia de del error cuadrático es mayor.
cumplir la condición de la ecuación (17)
para evitar la divergencia. Ahora observemos la relación que existe
entre la resolución del codificador y el
10
número de bits de codificación. El
SNR = 20 dB 8 bits
4 bits
resultado obtenido se muestra en la Fig.
0
1 bit 12:
-10

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

Fig. 10: LMS con error codificado -20

empleando diferente número de bits de


codificación. -25
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

Fig. 11: ECLMS con diferentes valores de


resolución.
Otro punto aspecto importante a revisar,
es el efecto de la resolución que se
emplea en el codificador, para el caso de
identificador de sistema. La Fig. 11:,
muestra los resultados obtenidos
codificando a ocho bits, pero modificando
2
adicionales, ECLMS con 8 bits y ECLMS
Señal deseada
sobreadaptado con 8 bits, detectándose
Amplitud

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

Fig. 13: Comparación de los algoritmos


-40
LMS y ECLMS en el dominio del tiempo.
-50

Al igual que en el predictor, el algoritmo


ECLMS presenta mayor velocidad de -60
0 0.5 1 1.5 2 2.5 3 3.5 4

convergencia. No. de Iteraciones


x 10
4

Fig. 14: MSE para LMS sobreadaptado y


Identificador de sistema con re-uso de ECLMS.
datos.
Al aplicar la sobreadaptación en el
Una variante del algoritmo LMS para algoritmo ECLMS, se obtiene un error
aumentar la velocidad de convergencia, cuadrático medio mínimo local menor, lo
es el uso del mismo vector de datos para cual es un beneficio en la reducción de la
reajustar el vector de pesos durante j potencia del error, debido al recalculo de
iteraciones mas como lo muestra la los pesos en cada iteración normal del
ecuación (18), esta variante se conoce algoritmo LMS convencional.
también como el algoritmo LMS
sobreadaptado. 0
ECLMS
SNR = 30 dB

wk (T + j ) = wk (T + j −1) + μxk (T )e(T + j −1)


ECLMS Sobreadaptado
-10
(18) ECLMS Sobreadaptado con 10 bits

-20

Como se observa en (18), se realiza el -30


recalculo del vector de pesos sin realizar
MSE

el corrimiento en el vector de datos de la -40

señal de entrada. Esta modificación no -50

es reciente, y está pensada para


aplicarse en sistemas con alta velocidad -60

de procesamiento. A continuación se -70


0 0.5 1 1.5 2 2.5 3 3.5 4
realiza la comparación entre el algoritmo No. de Iteraciones
x 10
4

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.

Você também pode gostar