SEP SEIT DGIT
CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO
cenidet
DESARROLLO DE ALGORITMOS DE PROCESAMIENTO DIGITAL DE SEÑALES USANDO ESPECTROS DE ALTO ORDEN.
T E S I S QUE PARA OBTENER EL GRADO DE: MAESTRO EN CIENCIAS EN INGENIERÍA ELECTRÓNICA P R E S E N T A : ING. EDWIN B. SULUB COUOH
DIRECTOR DE TESIS DR. MARCO ANTONIO OLIVER SALAZAR.
CUERNAVACA, MORELOS. JUNIO 2005
Abstract.
Regarding the digital signal processing, the spectral analysis, has proved essential to the
development of scientific and technological advances like the radar and the sonar.
Bispectrum is a higher order of the Power Spectral Density (PSD). In addition it preserves
phase information of the signals and its harmonically related frequencies.
The general scheme of this thesis project consists of the development of an analysis tool,
called Spectral Analyzer, to apply the PSD and Bispectrum algorithms to discrete time
series from real systems. The Spectral Analyzer is a Windows application, designed in
order to solve the problem of the difficulty of using these algorithms, facilitating the work
of the end user, in each investigation discipline where Biespectro is applied.
An important point to consider is the large processing time necessary to obtain the PSD and
Bispectrum functions. It’s necessary to determine the hardware and software requirements
to minimize the processing time, justifying or no the use of dedicated processors and
specific software.
In this thesis project a theoretical comparative of characteristics between IBM PC and
digital signal processors platforms appears, covering topics like the processing speed,
architecture, memory usage, available ports, programming type, etc.
In addition, based on the software of the Spectral Analyzer, practical performance
evaluations between an AthlonTM processor of a personal computer versus the
TMS320C6701 of Texas Instruments digital signal processor were made.
Finally, in order to validate the Spectral Analyzer using real signals, tests of faults detection
in an induction motor were made. Some patterns related to electrical faults were identified
by phase current variations analysis.
Resumen.
Dentro del procesamiento digital de señales, el análisis espectral, ha sido esencial para el
desarrollo de avances científicos y tecnológicos como el radar y el sonar. El Biespectro es
una extensión de orden superior de la Densidad Espectral de Potencia (PSD). Además,
preserva la información de fase de las señales y de sus frecuencias armónicamente
relacionadas.
El esquema general de este proyecto de tesis, consiste en el desarrollo de una herramienta
de análisis, llamada Analizador Espectral, para aplicar los algoritmos de PSD y Biespectro
a datos en tiempo discreto provenientes de sistemas reales. El Analizador Espectral es una
aplicación tipo Windows diseñada con el propósito de solucionar el problema de la
dificultad de uso de estos algoritmos, facilitando el trabajo del usuario final, en cada
disciplina de investigación donde se aplica el Biespectro.
Un aspecto importante a considerar, es el alto tiempo de procesamiento necesario para
obtener las funciones de PSD y Biespectro. Es necesario determinar los requisitos de
hardware y software para minimizar el tiempo de procesamiento, justificando ó no, el uso
de procesadores dedicados y de software específico. En este proyecto de tesis se presenta
un comparativo teórico de características entre plataformas IBM PC y procesadores
digitales de señales, cubriendo tópicos como la velocidad de procesamiento, arquitectura,
uso de memoria, puertos disponibles, tipo de programación, etc.
Además, con base en el software del Analizador Espectral, se realizaron evaluaciones
prácticas de desempeño entre un procesador AthlonTM de una computadora personal contra
el procesador digital de señales TMS320C6701 de Texas Instruments.
Finalmente, con objeto de validar el Analizador Espectral con señales reales, se realizaron
pruebas de detección de fallas en un motor de inducción. Se identificaron algunos patrones
relacionados con fallas eléctricas mediante el análisis de las variaciones de la corriente de
fase.
i
CONTENIDO. Lista de figuras…………………………………………………………………………...…iv Lista de tablas……………………………………………………………………………….vi Capítulo 1: Introducción.
1.1 Planteamiento del problema. .................................................................................. 4 1.2 Objetivos................................................................................................................. 5 1.3 Antecedentes........................................................................................................... 6 1.4 Estado del Arte. ...................................................................................................... 6 1.5 Panorama de Investigación y Metodología utilizada.............................................. 8 1.6 Estructuración de la tesis ...................................................................................... 10
Capítulo 2: Marco Teórico.
2.1 Señales en el dominio del tiempo. ........................................................................ 13 2.1.1 Momentos. .................................................................................................... 13 2.1.2 Cumulantes. .................................................................................................. 14 2.1.3 Relación entre Momentos y Cumulantes...................................................... 16 2.1.4 Uso de cumulantes en lugar de momentos. .................................................. 18 2.1.5 Condiciones de simetría de los cumulantes.................................................. 19
2.2 Señales en el Dominio de la frecuencia................................................................ 21 2.2.1 Transformada Discreta de Fourier................................................................ 21 2.2.2 Poliespectros................................................................................................. 21 2.2.3 Densidad Espectral de Potencia.................................................................... 22 2.2.4 Biespectro. .................................................................................................... 22 2.2.5 Métodos de Estimación de los poliespectros................................................ 23
2.3 Métodos de Estimación No – Paramétrica de la Densidad Espectral de Potencia. 23
2.3.1 Periodograma................................................................................................ 24 2.3.2 Periodograma Modificado. ........................................................................... 25 2.3.3 Método de Welch. ........................................................................................ 28
2.4 Métodos de Estimación No – Paramétrica del Biespectro. .................................. 29 2.4.1 Condiciones de Simetría............................................................................... 30 2.4.2 Biperiodograma. ........................................................................................... 31 2.4.3 Biperiodograma Modificado. ....................................................................... 32 2.4.4 Método de Welch. ........................................................................................ 33
2.5 Biespectro Modificado. ........................................................................................ 35
ii
Capítulo 3: Herramienta de Software Analizador Espectral.
3.1 Descripción........................................................................................................... 36 3.2 Especificaciones generales del Analizador Espectral........................................... 37 3.3 Modelo 1: Analizador Espectral implementado en Matlab. ................................ 39
3.3.1 Desarrollo del software................................................................................. 39 3.3.2 Características funcionales. .......................................................................... 41 3.3.3 Requerimientos de instalación...................................................................... 42 3.3.4 Conclusiones para este modelo. ................................................................... 43
3.4 Modelo 2: Analizador Espectral implementado en Visual C++ 6.0 para IBM PC o compatible. ....................................................................................................................... 43
3.4.1 Desarrollo del software................................................................................. 44 3.4.2 Características funcionales. .......................................................................... 46 3.4.3 Requerimientos de instalación...................................................................... 48 3.4.4 Conclusiones para este modelo. ................................................................... 48
3.5 Modelo 3: Analizador Espectral implementado en Visual C++ 6.0 para DSP TMS320C6701. ................................................................................................................ 49
3.5.1 Desarrollo del software................................................................................. 49 3.5.2 Modelo del Protocolo de Comunicaciones................................................... 50 3.5.3 Manejo de Memoria. .................................................................................... 54 3.5.4 Características funcionales. .......................................................................... 56 3.5.5 Requerimientos de instalación...................................................................... 57 3.5.6 Conclusiones para este modelo. ................................................................... 58
3.6 Comparativos entre plataformas, basados en el Analizador Espectral. ................ 58 Capítulo 4: Comparativo de características entre plataformas PC y DSP.
4.1 Hardware especializado........................................................................................ 59 4.2 Paralelismo. .......................................................................................................... 60
4.2.1 Un punto de vista de programación.............................................................. 61 4.2.2 Otras formas de Paralelismo......................................................................... 62
4.3 Arquitectura de memoria ...................................................................................... 63 4.3.1 Organización de la memoria......................................................................... 63 4.3.2 Manejo eficiente de la memoria. .................................................................. 64 4.3.3 Manejo de flujos de Entrada-Salida.............................................................. 65 4.3.4 Lazos de sobrecarga cero............................................................................. 65
4.4 Costo..................................................................................................................... 65 4.5 Otras opciones para sistemas embedded. ............................................................. 65 4.6 Consideraciones en el diseño de un comparativo................................................. 66
iii
Capítulo 5: Resultados de los comparativos realizados.
5.1 Diseño y consideraciones del comparativo. ......................................................... 68 5.2 Comparativo PC, DSP y DSP IDRAM para FFT................................................. 71 5.3 Comparativo PC, DSP y DSP IDRAM para FFT2............................................... 72 5.4 Comparativo PC, DSP y DSP IDRAM para Cumulantes de 2do Orden.............. 74 5.5 Comparativo PC, DSP para Cumulantes de 3do Orden. ...................................... 76 5.6 Comparativo final de aplicación del Analizador Espectral entre PC y DSP. ....... 78 5.7 Conclusiones......................................................................................................... 81
Capítulo 6: Caso de aplicación: Detección de fallas en un motor de inducción trifásico.
6.1 Detección de fallas en un motor de inducción trifásico. ...................................... 82 6.1.1 Descripción de la técnica de monitoreo de fases.......................................... 83 6.1.2 Operación normal del motor trifásico........................................................... 84
6.2 Condición de Referencia ...................................................................................... 86 6.2.1 Condición de Referencia sin carga. .............................................................. 86 6.2.2 Condición de Referencia para carga de 776 N-m......................................... 88
6.3 Fallas Eléctricas.................................................................................................... 90 6.3.1 Desbalance de tensión entre fases. ............................................................... 90
6.4 Falla Mecánica...................................................................................................... 97 6.4.1 Rotor Bloqueado........................................................................................... 97
6.5 Conclusiones......................................................................................................... 99 Capítulo 7: Aportaciones del proyecto y trabajos futuros.
7.1 Aportaciones....................................................................................................... 100 7.2 Trabajos futuros.................................................................................................. 101
Capítulo 8: Conclusiones. Conclusiones....................................................................................................................... 102 Referencias……………………………………………………………..………………... 106 Anexo 1: Características de las plataformas PC y DSP empleadas……………………... 110 Anexo 2: Manual del Analizador Espectral en Matlab………………..……………….... 120 Anexo 3: Manual del Analizador Espectral en Visual C++……………...…………….... 141
iv
Lista de figuras. Figura 1.1 Diagrama a bloques del proyecto.......................................................................... 9 Figura 2.1 Simetría en el dominio del tiempo. ..................................................................... 19 Figura 2.2 Propiedades de simetría de los cumulantes......................................................... 20 Figura 2.3 Funciones de ventana con un índice de tiempo................................................... 27 Figura 2.4 Simetría del Biespectro en el dominio de la frecuencia...................................... 30 Figura 2.5 Simetría óptima del biespectro............................................................................ 31 Figura 2.6 Funciones de ventana con dos índices de tiempo................................................ 34 Figura 2.7 Ventana óptima para el cálculo del Biespectro. .................................................. 34 Figura 2.8 Comparativo Biespectro contra Biespectro modificado. .................................... 35 Figura 3.1 Analizador Espectral implementado en Matlab®. .............................................. 40 Figura 3.2 Manejo de gráficas del Analizador Espectral en Matlab®. ................................ 41 Figura 3.3 Gráficas de Salida en Visual C++ 6.0. ................................................................ 45 Figura 3.4 Gráfica de salida de la PSD en Measurement Studio para Visual C++ 6.0. ....... 46 Figura 3.5 Interfase de Usuario del Analizador en Visual C++ 6.0. .................................... 47 Figura 3.6 Modelo del protocolo de comunicaciones........................................................... 50 Figura 3.7 Diagrama de flujo del protocolo de comunicaciones desde el punto de vista del DSP TMS320C6701. ............................................................................................................ 52 Figura 3.8 Diagrama de flujo del protocolo de comunicaciones desde el punto de vista de la IBM PC................................................................................................................................. 53 Figura 3.9 Mapa de memoria del DSP TMS320C6701........................................................ 55 Figura 3.10 Memoria necesaria para el Analizador Espectral en términos de potencias enteras de 2. .......................................................................................................................... 56 Figura 4.1 Comparativo de ejecución de FFT realizado entre DSP´s y el Pentium III (Berkeley Design Technology Inc. ® 2001). ....................................................................... 62 Figura 4.2 Arquitectura Von Neuman. ................................................................................. 63 Figura 4.3 Arquitectura Harvard. ......................................................................................... 64 Figura 4.4 Comparativo total realizado entre DSP´s y el Pentium III (Berkeley Design Technology Inc. ® 2004)...................................................................................................... 67 Figura 5.1 Interfase del programa en la PC utilizado en el comparativo. ............................ 69 Figura 5.2 Ejemplo de tipos de análisis y obtención del tiempo de procesamiento. ............ 70 Figura 5.3 Evaluación de la latencia de ciclos, mediante iteraciones del proceso. .............. 71 Figura 5.4 Comparativo con el algoritmo de FFT efectuado 1000 veces............................. 72 Figura 5.5 Comparativo con el algoritmo de FFT2 efectuado 10 veces.............................. 73 Figura 5.6 Comparativo con el algoritmo de FFT2 efectuado 100 veces............................ 73 Figura 5.7 Comparativo con el algoritmo de FFT2 efectuado 10,000 veces....................... 74 Figura 5.8 Comparativo con el algoritmo de Cumulantes de 2do Orden C2x efectuado 1 vez......................................................................................................................................... 75 Figura 5.9 Comparativo con el algoritmo de Cumulantes de 2do Orden C2x efectuado 10 veces. .................................................................................................................................... 75 Figura 5.10 Comparativo con el algoritmo de Cumulantes de 2do Orden C2x efectuado 100 veces. ............................................................................................................................. 76 Figura 5.11 Comparativo con el algoritmo de Cumulantes de 3er Orden C3x efectuado 1 sola vez. ............................................................................................................................... 77
v
Figura 5.12 Comparativo con el algoritmo de Cumulantes de 3er Orden C3x efectuado 10 veces. .................................................................................................................................... 77 Figura 5.13 Comparativo con el algoritmo de Cumulantes de 3er Orden C3x efectuado 100 veces. ............................................................................................................................. 78 Figura 5.14 Comparativo del Analizador Espectral calculando la PSD mediante el método directo. .................................................................................................................................. 79 Figura 5.15 Comparativo del Analizador Espectral calculando la PSD mediante el método Indirecto................................................................................................................................ 79 Figura 5.16 Comparativo del Analizador Espectral calculando el Biespectro mediante el método directo. ..................................................................................................................... 80 Figura 5.17 Comparativo del Analizador Espectral calculando el Biespectro mediante el método indirecto. .................................................................................................................. 80 Figura 6.1 Esquema general de las pruebas experimentales. ............................................... 83 Figura 6.2 Corrientes del motor en operación normal.......................................................... 85 Figura 6.3 Densidad espectral de potencia de la operación normal sin carga. .................... 86 Figura 6.4 Biespectro de la operación normal sin carga. ..................................................... 87 Figura 6.5 Condiciones de operación normal cortes de 2D del Biespectro y Biespectro Modificado. .......................................................................................................................... 88 Figura 6.6 PSD para la condición de operación normal para carga de 776 N-m. ................ 88 Figura 6.7 Cortes 2-D Para la condición de operación normal para carga de 776 N-m....... 89 Figura 6.8 Corrientes trifásicas del motor en desbalance de fase......................................... 91 Figura 6.9 PSD para la condición de operación normal para carga de 776 N-m. ................ 92 Figura 6.10 Corte 2-D del biespectro para la condición de desbalance de fase sin carga. ... 94 Figura 6.11 Corte 2-D del biespectro, condición de desbalance de fase para carga de 776 N-m. .......................................................................................................................................... 96 Figura 6.12 Corrientes trifásicas para la condición de rotor bloqueado............................... 98 Figura 6.13 Condición de rotor bloqueado........................................................................... 99
vi
Lista de tablas. Tabla 2-1Cálculo de los momentos y cumulantes de 4to orden en términos de los momentos. ............................................................................................................................ 18 Tabla 3-1 Listado de mensajes enviados al DSP.................................................................. 51 Tabla 3-2 Listado de estados de operación del DSP. ........................................................... 51 Tabla 6-1Características en tiempo y frecuencia de los vectores de datos........................... 84 Tabla 6-2 Parámetros eléctricos del motor en operación normal sin carga.......................... 84
Capítulo 1: Introducción.
1
Capítulo 1
Introducción.
El procesamiento digital de señales es una disciplina que se ocupa del manejo de señales en
forma digital, para analizar, modificar y extraer información de señales del sistema. Su
objetivo es procesar un conjunto finito de datos mediante el uso de algoritmos, remover
interferencias o ruidos de las señales que representan, identificar sistemas, obtener el
espectro de los datos o transformar la señal en una forma más adecuada para su análisis. El
procesamiento digital es actualmente utilizado en muchas áreas sustituyendo los métodos
analógicos, y en aplicaciones nuevas, donde el uso de técnicas analógicas es muy complejo
o prácticamente imposible, proporcionando un desempeño superior, precisión, repetibilidad
y flexibilidad. Las áreas de aplicación incluyen, procesamiento de imágenes, ecualización y
transmisión de audio e imágenes, instrumentación y control, telecomunicaciones,
biomedicina, geofísica, acústica, aplicaciones industriales y militares, etc.
Una de las herramientas fundamentales y de gran utilidad en el procesamiento digital de
señales, es el Análisis Espectral, pues provee una representación alternativa en el dominio
de la frecuencia de la señal original en el dominio del tiempo. Esto puede realizarse
mediante el cálculo de la función de Densidad Espectral de Potencia (Power Spectral
Density, PSD, por sus siglas en inglés), la cual ha permitido la creación de avances
científicos y tecnológicos como la invención del radar y el sonar [1].
Capítulo 1: Introducción.
2
Otra aproximación para el análisis espectral, es el uso de las funciones poliespectrales, éstas
son una extensión de la PSD, que contienen además de la información de amplitud, también
la información de fase del sistema. El poliespectro puede obtenerse trasladando al dominio
de la frecuencia a las estadísticas de alto orden (High Order Statistics, HOS, por sus siglas
en inglés) de una señal. Ejemplos de HOS son los momentos y los cumulantes. Casos
especiales de los espectros de alto orden son el Biespectro (BIS), que por definición es la
transformada de Fourier de dos dimensiones de las estadísticas de tercer orden, y el
Triespectro, el cuál es la transformada de Fourier de tres dimensiones de las estadísticas de
cuarto orden [2]. El Biespectro provee información de la generación de armónicas
producidas por acoplamientos de pares de frecuencias y es más ampliamente usado que el
Triespectro. La razón de utilizar el Biespectro sobre el Triespectro radica en que una
representación gráfica del Triespectro requiere de cuatro dimensiones. Además su
estimación demanda un esfuerzo computacional mucho mayor al del cálculo del Biespectro
en términos de requerimientos de memoria y tiempo de procesamiento [3].
El Biespectro es una herramienta relativamente nueva en el procesamiento de señales y
análisis de secuencias, en campos como la biomedicina, geofísica, telecomunicaciones,
procesamiento de señales de voz, economía, etc. Entre las aplicaciones del Biespectro
destacan, el filtrado natural de ruido Gaussiano [4]; el estudio de interacciones no lineales
entre secuencias usado en detección de periodicidades e identificación de sistemas [5]. Otro
uso común del Biespectro es la detección de acoplamientos de fase [5], utilizado en ciertas
aplicaciones como análisis de datos en oceanografía, física de plasma, flujo de fluidos,
vibraciones mecánicas, electro-encefalogramas (ECG) [1], identificación de sistemas,
filtrado de señales [4], etc.
Las herramientas de procesamiento digital, como los espectros de alto orden, son un tópico
que ha comenzado a ser de interés en el área de monitoreo, debido a sus interesantes
propiedades [6]. Estas herramientas han sido utilizadas para monitorear condiciones de
sistemas relativamente simples, con pocas extensiones de esas técnicas a equipos
complejos. Un ejemplo de este tipo de sistemas es la máquina de inducción, usada en un
gran número de aplicaciones, debido a su robustez y su diseño relativamente sencillo. Las
Capítulo 1: Introducción.
3
maquinas de inducción fallan comúnmente como resultado de envejecimiento, por una
construcción pobre, por mala instalación o por el tipo de trabajo que desempeñan. Una falla
de la maquinaria repercute en daños en la producción de algún bien o servicio, afectando a
los costos de forma directa. La manera optima de prevenir esos daños es monitoreando sus
condiciones de operación; esto permite una detección temprana de la degradación de la
máquina y por lo tanto facilita una respuesta preventiva, permitiendo programar actividades
de mantenimiento, minimizando los tiempo de caída y maximizando la productividad.
Aunque en este campo se han desarrollado técnicas de prevención, tales como el uso de
redes neuronales artificiales para monitoreo, las cuales han demostrado éxito en la
identificación de las fallas en su etapa inicial, sin embargo tienen como un requisito previo
de su operación los datos de fallas a priori. Esto impide la operación práctica de tales
métodos, porque no es usual tener datos completos de las fallas. Otra forma de lograr estas
predicciones es mediante el modelado con técnicas de respuesta al impulso y análisis de
elementos finitos prediciendo el comportamiento de la máquina bajo varias condiciones de
operación. Aunque estas técnicas son muy valiosas, son diseñadas para un tipo de máquina
específico y requieren de un alto grado de precisión en la descripción de las respuestas a
las condiciones de entrada para que su aplicación sea efectiva [6].
La PSD ha sido utilizada históricamente para monitoreo de máquinas de inducción, y
recientemente se ha usado el Biespectro para detección y diagnostico de condiciones de
falla en este tipo de máquinas [7]. La información procesada es una señal que puede
provenir de un sensor de vibración montado en la carcaza del motor, o puede ser una señal
de corriente de fase. El cambio en la salida y la condición de falla pueden ser
correlacionadas permitiendo una identificación de fallas explicita. No se requieren datos a
priori que describan las condiciones de falla. El método es aplicable a máquinas de
inducción de corriente alterna y generalmente es invariable a la carga y la velocidad [6],
[7], [8] y [9].
Un aspecto importante del uso de estas técnicas es la complejidad de las tareas de
procesamiento, por lo que estas funciones se destinaban tradicionalmente a procesadores
Capítulo 1: Introducción.
4
digitales de señales (Digital Signal Processors, DSP’s, por sus siglas en inglés). Los DSP’s
son procesadores especialmente diseñados para presentar un alto desempeño en tareas
repetitivas con operaciones matemáticas complejas. Actualmente, con el incremento en la
capacidad y velocidad de procesamiento de los procesadores de propósito general, el
surgimiento de microcontroladores con características orientadas a tareas DSP, e incluso
DSP´s híbridos, con módulos funcionales que son tradicionalmente asociados a un
microcontrolador, (como el manejo de múltiples puertos SPI, I2C, CAN, manejo de PWM
por hardware, etc.), se hace necesario determinar cuál es el más adecuado para la
realización de una tarea especifica.
1.1 Planteamiento del problema.
De lo expuesto anteriormente se desprende la necesidad de una herramienta de análisis
espectral, que calcule las funciones de PSD y Biespectro, en la plataforma de
procesamiento adecuada y al menor costo posible. Aunque existen paquetes de software
como Matlab®, LabView y LabWindows, que proveen funciones para la transformada de
Fourier o la PSD, comúnmente no cuentan con las funciones de estimación de espectros de
alto orden. Por ejemplo, en Matlab®, es necesario adquirir herramientas de software
adicionales [10]. Además de que el manejo de este tipo de paquetes es complejo, y las
funciones son demasiado generales, esto requiere de tiempo y esfuerzo por parte del usuario
para aplicarlas. Por otro lado, debido a la variedad de aplicaciones del biespectro, se
considera innecesario, que el usuario de cada disciplina de investigación, por ejemplo, un
ingeniero mecánico o un médico, tenga que conocer cómo utilizar las funciones de un
ambiente de programación, para poder obtener provecho de ellas. La dificultad en el
manejo de herramientas de análisis es un factor que limita la efectividad en su aplicación.
Es necesario que la operación de esta herramienta sea amigable, que presente los resultados
de forma práctica, que permita almacenar y manejar los resultados para su uso posterior.
Otro problema a considerar, es el tiempo de procesamiento requerido para obtener las
funciones de PSD y BIS. Se deben determinar los requisitos de hardware y software para
minimizar el tiempo de procesamiento, justificando o no, el uso de procesadores dedicados
Capítulo 1: Introducción.
5
y de software específico. En este punto es importante realizar evaluaciones de desempeño
entre procesadores de uso general y de uso especifico. Como se describió anteriormente, el
creciente desarrollo en los procesadores, DSP’s y microcontroladores obliga a realizar un
análisis antes de escoger la plataforma adecuada para desarrollar un equipo, comprendiendo
tópicos como la velocidad de procesamiento, arquitectura, manejo de memoria, puertos
disponibles, tipo de programación, madurez de las herramientas de desarrollo disponibles
en el mercado, etc. En la industria, se prefieren los procesadores que presenten un
equilibrio en estas características, y que permitan desarrollar un equipo en el menor tiempo
y con la menor cantidad de periféricos externos posible, esto permite recuperar rápidamente
el costo de la inversión inicial.
Por último, se busca validar la aplicación en señales provenientes de sistemas reales e
interpretar los resultados del análisis. Un caso práctico lo encontramos en la detección de
patrones de respuesta al Biespectro relacionados con fallas de naturaleza eléctrica, como el
desbalance de tensión en una de las fases de un sistema eléctrico. Aunque tradicionalmente
el monitoreo de condiciones de falla se ha realizado mediante señales de vibración,
obtenidas con piezoeléctricos montados en la carcaza del motor, una forma práctica y
económica es analizando las variaciones de la corriente de fase.
1.2 Objetivos.
Desarrollar una herramienta de procesamiento digital de señales para aplicaciones en
señales de sistemas reales. De forma específica se tienen los objetivos siguientes:
• Programar y validar los algoritmos de PSD y BIS en un DSP.
• Comparación de tiempos de procesamiento entre una plataforma de computadora
personal IBM o compatible (Personal Computer) o PC y un DSP.
• Aplicación de la herramienta de análisis espectral a señales provenientes de un
motor para detección de fallas.
Capítulo 1: Introducción.
6
1.3 Antecedentes.
En el cenidet se han realizado proyectos de tesis que usan el Biespectro. En el trabajo [17]
se encuentra en forma detallada la teoría relacionada a las estadísticas de alto orden (HOS),
en el dominio del tiempo y de la frecuencia, se implementaron funciones en Matlab® para
obtener el Biespectro y la PSD, y se aplicaron a señales de vibración para detección de
fracturas en vigas en cantiliver.
En [18] se implementó un sistema de software en plataforma PC desarrollado en Borland
C++ V.4.5, para controlar al DSP de Analog Devices ADSP 21020. El sistema es capaz de
procesar señales, para estimar frecuencia, fase y amplitud de señales relacionadas con
sistemas sujetos a vibración tanto en frecuencia constante como en frecuencia variable. En
este mismo trabajo se desarrollaron funciones de despliegue grafico y tabular de la
información procesada para el posterior análisis y diagnóstico de estos sistemas, también se
efectuó una validación experimental de los algoritmos.
1.4 Estado del Arte.
En los últimos 20 años [11] las estadísticas de alto orden (particularmente el Biespectro),
se han utilizado en diversos campos sustituyendo a la PSD y haciendo uso de la
información extra que presenta sobre ésta y sobre la función de autocorrelación. Se han
hecho aplicaciones en física de plasma, flujo de fluidos, vibraciones mecánicas,
biomedicina, procesamiento de datos en sismografía, reconstrucción de imágenes,
estimación de retardos, filtrado adaptativo, etc. [1].
Se ha empleado con éxito para enfrentar el problema de detectar series de datos no
Gaussianos en el dominio del tiempo en presencia de ruido Gaussiano o no Gaussiano
midiendo la relación señal a ruido resultante [4]. En [12] se presenta al Biespectro como
una herramienta útil en la reconstrucción de señales debido a sus propiedades de preservar
la información de magnitud y fase, y de ser menos sensible al ruido Gaussiano. Se
proponen dos enfoques para calcular el biespectro solamente dentro de la región principal
Capítulo 1: Introducción.
7
del biespectro, donde se cumplen estas propiedades, aún para señales de tipo determinístico
en presencia de ruido.
Con respecto al uso del Biespectro para detección de fallas en motores de inducción, en el
trabajo [6] se describe un método de detección del tipo y magnitud de 3 condiciones de
falla de la máquina de inducción, mediante un sensor de vibración. En esta investigación se
considera al motor como un sistema simple en donde un cambio en la entrada alterará la
salida en forma predecible. Mediante una correlación con la condición de falla es posible
una detección explicita de las condiciones de falla. También menciona las técnicas actuales
de monitoreo de motores de inducción (con sus ventajas y desventajas), como el uso de
redes neuronales artificiales, respuesta al impulso y análisis de elemento finito.
En la investigación [7] se aplican dos métodos basados en HOS, el primero, un análisis no
paramétrico de la magnitud de las señales de vibración y segundo, el modelado paramétrico
lineal o no lineal para detección de fallas en motores de inducción.
En [8] se describe un método de análisis espectral de la corriente del motor para
localización y detección de anormalidades mecánicas y eléctricas, que pudieran indicar una
falla en el motor de inducción. Esta técnica se basa en el análisis de la corriente del estator
para determinar las frecuencias relacionadas con las condiciones de falla.
Se ha aplicado la técnica de las corrientes de fase en la detección de anormalidades
eléctricas y mecánicas en motores de inducción [9], mediante el análisis espectral de la
corriente del motor se pueden detectar daños en la flecha del motor en máquinas de
inducción. Este trabajo documenta las principales condiciones de falla en motores de
inducción y las técnicas utilizadas para detección de fallas.
En los últimos años se ha hablado mucho acerca de comparaciones entre plataformas de
procesadores de uso general (General Purpose Processors, GPP’s, por sus siglas en inglés)
y procesadores dedicados como los procesadores digitales de señales (DSP’s), sin embargo
antes de hacer una comparación es necesario entender los avances recientes en el desarrollo
Capítulo 1: Introducción.
8
de sus respectivas arquitecturas, así como las ventajas y desventajas que presentan en el
desarrollo de un aplicación, las cuales pueden ir desde la disponibilidad de herramientas de
desarrollo hasta el costo total del sistema. La documentación de estos aspectos se presenta
en [13] .
Alternativamente al uso de los DSP’s y GPP’s, actualmente han surgido los llamados
Procesadores de Propósito General con capacidades DSP y DSP´s hibridos, los cuales
tienen características de ambas plataformas, en [13] y [14] se puede encontrar un panorama
de estas tecnologías.
El desempeño de un procesador puede medirse de muchas maneras, la forma más común es
midiendo el tiempo en el que desempeña una cierta tarea, también puede hacerse midiendo
el uso de memoria y el consumo de potencia dependiendo de la aplicación, pero
generalmente el factor tiempo es el más utilizado. Existen varias formas de realizar estos
comparativos, en [15] se documentan fundamentalmente tres tipos, la métrica simple, por
aplicación y mediante segmentos de código (kernels).
Actualmente, existen compañías especializadas en desarrollar este tipo de pruebas y
comercializar los resultados, algunos ejemplos son Berkeley Design Technology, Inc.
(BDTI) y EDN Embedded Microprocessor Benchmark Consortium (EEMBC) [16].
1.5 Panorama de Investigación y Metodología utilizada.
El esquema general de este proyecto de tesis, consiste en el desarrollo de una herramienta
de análisis, que a partir de datos en tiempo discreto, provenientes de un sistema real o de
simulaciones, permita aplicar los algoritmos de densidad espectral de potencia y biespectro
En el diagrama de la Figura 1.1 se muestra el proceso de aplicación esta herramienta a
datos en tiempo discreto, para la obtención de los resultados. El uso de la plataforma de
hardware adecuada (líneas punteadas), ya sea un procesador de uso general o un DSP y de
una interfase gráfica de usuario amigable y versátil, permite un desempeño óptimo y facilita
el manejo de los resultados para su interpretación.
Capítulo 1: Introducción.
9
Figura 1.1 Diagrama a bloques del proyecto.
Se realizó una búsqueda bibliográfica de los algoritmos de estadísticas de alto orden en el
dominio del tiempo, específicamente los momentos y cumulantes hasta el orden 3 y sus
correspondientes representaciones en la frecuencia llamadas poliespectros, conocidos como
la densidad espectral de potencia (PSD) y el biespectro (BIS) respectivamente.
Se realizó una investigación acerca de la plataforma de desarrollo óptima para implementar
la herramienta de software para el procesamiento del Biespectro. Por familiaridad con el
ambiente se designó de forma inicial la programación de los algoritmos en Matlab®. La
variedad de funciones involucradas, justifica la necesidad de encapsular dichas funciones
en una Interfase Gráfica de Usuario (Graphics User Interface, GUI, por sus siglas en inglés)
que facilite el análisis de datos y el manejo de los resultados. Esta primera versión del
programa se denominó Analizador Espectral.
Algunos aspectos tales del Analizador Espectral realizado en Matlab® como el tiempo de
respuesta en la obtención del Biespectro, justificaron la necesidad de llevar el código al
lenguaje C compatible con el estándar ANSI. Posteriormente se implementó el Analizador
Espectral en el DSP TMS320C6701 de Texas Instruments.
Análisis PSD y BIS
PC/DSP
Interpretación de Resultados
Datos en Tiempo Discreto
Interfase Gráfica De Usuario.
Capítulo 1: Introducción.
10
Con objeto de validar el Analizador Espectral con señales reales, se realizaron pruebas de
detección de fallas en un motor de inducción de jaula de ardilla de 2 polos, con
alimentación trifásica, donde se identificaron ciertos patrones relacionados con fallas
eléctricas.
Finalmente se realizaron comparaciones de desempeño ó benchmarks para las aplicaciones
de Analizador Espectral basadas en PC y DSP.
1.6 Estructuración de la tesis
En el capítulo 2 se presenta el marco teórico, se introducen los conceptos de estadísticas de
alto orden en el dominio del tiempo, específicamente los momentos y cumulantes hasta el
orden 3 y sus correspondientes representaciones en la frecuencia llamadas poliespectros,
conocidos como la densidad espectral de potencia (PSD) y el biespectro (BIS)
respectivamente. Esto con el fin de familiarizar al lector con los métodos de estimación
existentes, y sentar las bases de los algoritmos utilizados en la programación.
En el capítulo 3 se presentan las justificaciones de desarrollar una herramienta de software
con una interfase gráfica de usuario, así como las especificaciones del Analizador
Espectral. Además, se presentan las tres versiones del Analizador Espectral, el primer
modelo se realizó para su uso en Matlab®, el segundo modelo del Analizador Espectral fue
desarrollado en Visual C++ 6.0 para una IBM PC o compatible y finalmente el tercer
modelo del Analizador Espectral, que se ejecuta en el procesador digital de señales DSP
TMS320C6701 de Texas Instruments. Se mencionan los puntos principales del desarrollo
de software y los requisitos mínimos para su uso y finalmente las conclusiones acerca de
cada modelo. En este capítulo se presenta un protocolo de comunicaciones propietario
entre una computadora personal y el DSP TMS320C6701, el cual puede aplicarse de una
forma general para comunicar dos procesadores mediante banderas y semáforos.
En el capítulo 4 se realiza un comparativo teórico de características entre plataformas de
procesadores PC y DSP. Este capítulo permite justificar los resultados de desempeño
Capítulo 1: Introducción.
11
obtenidos sin necesidad de realizar cálculos complejos de ciclos de máquina y tiempos de
procesamiento.
En el capítulo 5 se documenta el comparativo práctico entre las plataformas PC y DSP. Se
resumen los resultados de las diversas pruebas realizadas. En estas pruebas se emplearon
secciones de código fundamentales para la obtención del Biespectro y la PSD, como son la
Transformada Rápida de Fourier y los espectros de alto orden. También se presentan
resultados de desempeño de los tres modelos del Analizador Espectral.
En el capítulo 6 se documenta la técnica de monitoreo de señales de las corrientes de fase,
que se empleó para la identificación de patrones relacionados con fallas eléctricas en un
motor de inducción trifásico. Se presentan los resultados obtenidos para la PSD y el
Biespectro.
E el capítulo 7 se puntualizan las aportaciones y las recomendaciones para futuros trabajos
relacionados al tema.
Finalmente en el capítulo 8 se establecen las conclusiones del proyecto para cada uno de los
objetivos propuestos.
Adicionalmente se incluyen los siguientes anexos:
• Anexo 1. Características de las plataformas PC y DSP empleadas.
• Anexo 2. Manual del Analizador Espectral V.6.1 implementado en Matlab.
• Anexo 3. Manual del Analizador Espectral V.1.0.1 implementado en Visual C++
6.0 para IBM PC y DSP TMS320C6701.
Capítulo 2: Marco Teórico
12
Capítulo 2
Marco Teórico.
Una caracterización estadística completa de una variable o proceso aleatorio requiere que
sea posible determinar la probabilidad de cualquier evento definido dentro de su espacio
muestra. Sin embargo, no siempre es necesario realizar una caracterización completa, si se
puede conocer el comportamiento promedio del proceso aleatorio.
El empleo de las estadísticas de alto orden (HOS) hace posible caracterizar sistemas o
procesos, en los cuales las estadísticas convencionales no tienen éxito, como en sistemas
sujetos a ruido de tipo Gaussiano o en análisis de fenómenos sociales, como el desempleo o
naturales como las migraciones [19].
En este capítulo se presentan algunos conceptos básicos, sin pretender profundizar en la
teoría de HOS; en [18] se pueden encontrar conceptos de series de datos en el dominio del
tiempo y de probabilidad aplicada a procesos aleatorios discretos; en [2] y [3] se presentan
las definiciones de momentos y cumulantes en términos de la función característica, en [1]
se encuentra una descripción de las estadísticas de alto orden en términos de la función
generadora de momentos y cumulantes. El objetivo principal de esta sección es
fundamentar de forma práctica los conceptos que se emplean en el desarrollo de los
algoritmos de análisis de este proyecto, por tanto se enfoca principalmente a secuencias de
datos en el tiempo discreto a menos que se especifique lo contrario.
Capítulo 2: Marco Teórico
13
2.1 Señales en el dominio del tiempo. Sea la variable aleatoria discreta x(n) una secuencia de datos de un proceso aleatorio. A continuación se definen las estadísticas de alto orden para x(n)
2.1.1 Momentos.
El valor esperado o promedio estadístico denotado [ ].E de la variable discreta x(n) se define
como:
[ ]∑∞
∞−
= )()(][ nxPnxXE (2.1)
Donde P[x(n)] es la función de probabilidad discreta de x(n). Al promedio estadístico de
x(n) se le llama momento de primer orden de x(n) o media estadística x .
Existen momentos de orden superior, los cuales son útiles para determinar otras relaciones
estadísticas, tales como la correlación y la varianza.
Se define el momento k-ésimo de x(n) denotado xkm , , como el valor esperado de knx )( ; es
decir:
[ ]∑∞
∞−
== )()(])([, nxPnxnxEm kkxk (2.2)
Cuando más de una variable aleatoria está involucrada en un proceso, el momento se
calcula sobre todo el conjunto de variables. Por ejemplo: Para dos variables aleatorias x1,
x2, el momento conjunto (donde la suma k1+k2 es el orden del momento) se define:
)]()([ 22
112,1 nxnxEm kk
kk = (2.3)
En un proceso aleatorio estacionario x(n), para n = 0, 1, 2, 3,…N-1. El momento de orden
k de un proceso puede definirse, como el momento conjunto de orden k de las variables
Capítulo 2: Marco Teórico
14
aleatorias discretas )(),...(),(),( 121 −+++ knxnxnxnx τττ , donde 110 ,.., −kτττ son los
desplazamientos de tiempo discreto a partir de n. Esto es:
)](),...(),(),([),..,( 121110, −− +++= kkxk nxnxnxnxEm ττττττ (2.4)
En sistemas estacionarios de tipo ergódico las estadísticas de varias salidas en un instante
fijo de tiempo, son iguales a las obtenidas de una sola realización en distintos instantes de
tiempo. De esta forma las variables aleatorias nxxx ,..., 21 se asocian a desplazamientos en
el tiempo )(),...(),(),( 121 −+++ knxnxnxnx τττ , con n fija en el proceso aleatorio x(n), por
ejemplo: ),...(),( 121 τ+== nxxnxx Si se supone que el proceso es estacionario, el momento
de orden k será función solamente de los k-1 desplazamientos.
Los momentos hasta orden 4 del proceso aleatorio x(n) son:
)]()()()([),,()]()()([),(
)]()([)()]([)(
321321,4
2121,3
1,2
,1
ττττττττττ
ττ
+++=
++=
+=
=
nxnxnxnxEmnxnxnxEm
nxnxEmnxEnm
x
x
x
x
(2.5)
2.1.2 Cumulantes.
Sean las colecciones nxxxX ,..., 21= y nvvvV ,..., 21= , donde X es una colección de n
variables aleatorias. Los cumulantes de orden n de estas variables son definidos como los
coeficientes nvvv ,..., 21 en la expansión por Series de Taylor de la función generadora de
cumulantes [1]:
)'exp(ln)( xjvEvK = . (2.6)
El término cumulante se refiere a momentos acumulados; existe una estrecha relación entre
momentos y cumulantes, tanto es así, que en procesos de media cero los cumulantes y
Capítulo 2: Marco Teórico
15
momentos son iguales, esto se cumple hasta orden 3, y en general se puede definir a los
cumulantes en términos de los momentos.
Los primeros cumulantes hasta orden 4, para la variable aleatoria x1 son:
221
311
21
21
41
414
211
31
313
21
212
11
][3][][4][][12][6][
][][3][2][][][
][
xExExExExExExEc
xExExExEcxExEc
xEc
−−+−=
−+=
−=
=
(2.7)
Se debe diferenciar entre el cumulante de un conjunto de variables aleatorias (vectores) y el
cumulante de una variable de un proceso. El cumulante conjunto de orden k de k variables
aleatorias puede calcularse a partir de los momentos conjuntos. Por ejemplo, para las
variables x1 y x2 el cumulante conjunto de segundo orden es:
][][][ 21212 xExExxEc −= (2.8)
Sea x(n) un proceso aleatorio estacionario, para n = 0, 1, 2, 3,…N-1. El cumulante de
orden k del proceso puede definirse como el cumulante conjunto de orden k de las
variables aleatorias discretas )(),...(),(),( 121 −+++ knxnxnxnx τττ , donde 110 ,.., −kτττ son
los desplazamientos de tiempo discreto a partir de n. Esto es:
)](),...(),(),([),..,( 121110, −− +++= kkxk nxnxnxnxcumc ττττττ (2.9)
A continuación se muestran los cumulantes hasta orden 4 del proceso aleatorio:
)]([)]([)]([2)]([)]()([)]([)]()([
)]([)]()([)]()()([),()]([)]([)]()([)(
)]([)(
21
2112
212121,3
1,2
,1
ττττττ
τττττττττ
+++++−++−
+++++=
+−+=
=
nxEnxEnxEnxEnxnxEnxEnxnxE
nxEnxnxEnxnxnxEcnxEnxEnxnxEc
nxEnc
x
x
x
Capítulo 2: Marco Teórico
16
)]([)]([)]([)]([6)]()([)]([)]([2)]()([)]([)]([2
)],()([)]([)]([2)]()([)]([)]([2)]()([)]([)]([2)],()([)]([)]([2
)]()([)]()([)]()([)]()([)],()([)]()([)]()()([)]([)]()()([)]([)]()()([)]([
)]()()([)]([)]()()()([),,(
321
132231
321213
312321
213312
321213
312321
321321321,4
τττττττττττττττ
ττττττττττττττττττττττττ
τττττττττ
+++−+++++++++++++++++
+++++++++++−+++−+++−+++−+++−+++−
+++−+++=
nxEnxEnxEnxEnxnxEnxEnxEnxnxEnxEnxEnxnxEnxEnxEnxnxEnxEnxE
nxnxEnxEnxEnxnxEnxEnxEnxnxEnxnxEnxnxEnxnxEnxnxEnxnxEnxnxnxEnxEnxnxnxEnxEnxnxnxEnxE
nxnxnxEnxEnxnxnxnxEc x
(2.10)
2.1.3 Relación entre Momentos y Cumulantes.
Los cumulantes son función de los momentos, y es posible obtenerse unos a partir de los
otros. Sea nxxxX ,..., 21= una colección de variables aleatorias y nI X ,...2,1= el
conjunto de índices de los componentes de X. Si XII ⊆ , entonces Ix es el subvector de X
con índices pertenecientes a I [2]. Sea la partición de I en una colección no ordenada de
conjuntos no vacíos, no intersectantes, denotada Ip, tal que todos los subconjuntos Ip formen
el conjunto I. Se denota al momento y al cumulante de Ix como )(Imx y )(Icx
respectivamente. El momento de Ix se define como el valor esperado de los elementos de
los subconjuntos formados, es decir, [ ]Ix xEIm =)( . Las relaciones entre momentos y
cumulantes se pueden resumir en 2 fórmulas.
Los cumulantes se relacionan con los momentos mediante la fórmula momento a cumulante
[2]:
∑ ∏= =
−
=
−−=IIU
q
ppx
qx
pqp
ImqIc1 1
1 )()!1()1()( (2.11)
donde:
∑== IIU p
qp 1 = Sumatoria de todas las particiones de I.
q = Número de subconjuntos del vector X.
p = Índice de los subconjuntos del vector X.
Capítulo 2: Marco Teórico
17
(.)xm = Momento de orden x.
∏=
q
p 1
(.) = Producto de los elementos desde p a q.
Por otro lado, se puede obtener el momento a partir de los cumulantes mediante la
expresión (fórmula cumulante a momento) [2]:
∑ ∏= ==
=IIU
q
ppxx
pqp
IcIm1 1
)()( (2.12)
donde:
∑== IIU p
qp 1 = Sumatoria de todas las particiones de I.
q = Número de subconjuntos del vector X.
p = Índice de los subconjuntos del vector X.
(.)xc = Cumulante de orden x.
∏=
q
p 1
(.) = Producto de los elementos desde p a q.
En la Tabla 2-1 se muestra el uso de las relaciones anteriores para I = 1,2,3,4. El
significado práctico de los momentos de una variable aleatoria depende del orden del
momento. Por ejemplo, el momento de primer orden representa la media del proceso; el
momento de segundo orden es conocido también como la varianza de los datos, mientras
que la raíz cuadrada de la varianza es la desviación estándar. Además, el momento de
tercer orden de la variable aleatoria llamado “skewness”, da una medida de la asimetría
alrededor de la media, es decir que para una distribución simétrica es igual a cero [3].
Por otro lado los cumulantes no cuentan con una interpretación tan práctica, sin embargo,
presentan propiedades estadísticas más robustas que los momentos, por lo que se utilizan
más comunmente para el cálculo de estadísticas de alto orden.
Capítulo 2: Marco Teórico
18
Tabla 2-1Cálculo de los momentos y cumulantes de 4to orden en términos de los momentos. I1 I2 I3 I4 Q
∑ ∏= =
−
=
−−=IIU
q
ppx
qx
pqp
ImqIc1 1
1 )()!1()1()( ∑ ∏= ==
=IIU
q
ppxx
pqp
IcIm1 1
)()(
1 2 3 4 4 -6E[x1] E[x2] E[x3] E[x4] c[x1] c[x2] c[x3] c[x4] 1,2 3 4 3 2E[x1 x2]E[x3]E[x4] c[x1 x2]c[x3]c[x4] 1,3 2 4 3 2E[x1 x3]E[x2]E[x4] c[x1 x3]c[x2]c[x4] 1,4 2 3 3 2E[x1 x4]E[x2]E[x3] c[x1 x4]c[x2]c[x3] 2,3 1 4 3 2E[x2 x3]E[x1]E[x4] c[x2 x3]c[x1]c[x4] 2,4 1 3 3 2E[x2 x4]E[x1]E[x3] c[x2 x4]c[x1]c[x3] 3,4 1 2 3 2E[x3 x4]E[x1]E[x2] c[x3 x4]c[x1]c[x2] 1,2 3,4 2 -E[x1 x2]E[x3 x4] c[x1 x2]c[x3 x4] 1,3 2,4 2 -E[x1 x3]E[x2 x4] c[x1 x3]c[x2 x4] 1,4 2,3 2 -E[x1 x4]E[x2 x3] c[x1 x4]c[x2 x3] 1,2,3 4 2 -E[x1 x2 x3]E[x4] c[x1 x2 x3]c[x4] 1,2,4 3 2 -E[x1 x2 x4]E[x3] c[x1 x2 x4]c[x3] 1,3,4 2 2 -E[x1 x3 x4]E[x2] c[x1 x3 x4]c[x2] 2,3,4 1 2 -E[x2 x3 x4]E[x1] c[x2 x3 x4]c[x1] 1,2,3,4 1 E[x1 x2 x3 x4] c[x1 x2 x3 x4] ∑ Cum[x1 x2 x3 x4] E[x1 x2 x3 x4]
2.1.4 Uso de cumulantes en lugar de momentos.
A continuación se resumen algunas de las propiedades importantes de los cumulantes [2] y
[18]:
Los cumulantes son conmutativos en sus argumentos, es decir, que el cumulante de una
serie de datos es igual al cumulante de las distintas permutaciones de los datos:
),..,(),..,( 101,110, xxxcxxxc kxkkxk −− = (2.13)
Los cumulantes son asociativos en la suma de sus argumentos:
),..,(),..,(),..,( 11,110,110, −−− +=+ kxkkxkkxk xxycxxxcxxyxc (2.14)
Para una constante a, se tiene:
),..,(),..,( 110,110, −− =+ kxkkxk xxxcxxaxc (2.15)
Si un subconjunto de variables aleatorias son independientes de los demás elementos del
conjunto de tamaño k, entonces:
Capítulo 2: Marco Teórico
19
0),..,( 110, =−kxk xxxc (2.16)
2.1.5 Condiciones de simetría de los cumulantes.
Adicionalmente, los cumulantes cuentan con propiedades de simetría que facilitan su
obtención de tal manera que solamente es necesario calcular el cumulante en una región
determinada para conocer todo su comportamiento, a esta región se le llama dominio de
soporte. Esta propiedad permite disminuir la cantidad de operaciones necesarias para
calcular el cumulante. El dominio de soporte del cumulante de tercer orden ),( 21,3 ττxc está
determinado por la región delimitada en la Figura 2.1.
Figura 2.1 Simetría en el dominio del tiempo.
La parte sombreada en el primer cuadrante representa la región principal. Para sistemas
estacionarios, conociendo el cumulante en esta sección (en general en cualquiera de las
regiones I a VI) puede obtenerse el valor completo de la matriz de cumulante de tercer
orden. Esto se justifica debido a que el cumulante de tercer orden está relacionado con los
momentos de tercer orden y éstos últimos tienen las propiedades de simetría siguientes
(análogas a las propiedades de simetría de la autocorrelación):
Dominio de Soporte de Cumulantes de orden 3.
III
III
IV
V
VI1τ
2τ
Capítulo 2: Marco Teórico
20
),( ),( ),( ),(
),(),(
212
112
221
121
1221
ττττττττττττ
ττττ
−−=−−=−−=−−=
=
mmmmmm
↔
),( ),( ),( ),(
),(),(
212,3
112,3
221,3
121,3
12,321,3
τττττττττ
τττττττ
−−=
−−=
−−=
−−=
=
x
x
x
x
xx
cccc
cc
(2.17)
En muchos casos de análisis se consideran vectores de datos causales, es decir que inician
en t = 0; por este motivo, todos los cálculos se efectúan sobre el primer cuadrante. Sin
embargo, considerando las propiedades de simetría, basta con calcular la región I para el
cumulante de tercer orden, para obtener una representación completa del mismo. La Figura
2.2 presenta la sección no redundante del cumulante de una secuencia de datos comparada
con la matriz de cumulantes obtenido de forma completa. El uso de la simetría en cálculo
del cumulante disminuye el tiempo de procesamiento en el cálculo del cumulante.
Figura 2.2 Propiedades de simetría de los cumulantes.
Capítulo 2: Marco Teórico
21
2.2 Señales en el Dominio de la frecuencia.
2.2.1 Transformada Discreta de Fourier.
El espectro de una señal representa las características de su comportamiento en el dominio
de la frecuencia, esto es útil para el análisis de señales y sistemas. Las propiedades
espectrales están contenidas en la transformada de Fourier de la señal. Dada una señal en
tiempo discreto )(nTx , la Transformada Discreta de Fourier DFT; )(kX de )(nTx está
definida por [20]:
.1,...2,1,0 para )()(1
0
2−== ∑
−
=
−NkenTxkX
N
n
Nk
nj π (2.18)
Sin embargo, en señales y procesos aleatorios, una transformación directa de la señal no
siempre es adecuada y en algunos casos podría no existir, por ese motivo se busca obtener
una representación espectral de la potencia de la señal.
2.2.2 Poliespectros.
Una representación espectral de un proceso puede obtenerse a partir de la transformada de
Fourier de funciones en el dominio del tiempo. En el caso de los momentos y cumulantes,
de forma general se prefieren a los cumulantes, por las razones ya expuestas. Sin embargo,
en algunos casos particulares, por ejemplo, en datos con media cero ( 0=x ), el uso de los
momentos simplifica el cálculo de los poliespectros. Los casos particulares de orden 2 y 3
de los poliespectros son abordados en este trabajo. Si el cumulante existe, el Poliespectro de
orden n-1 es definido como la transformada de Fourier de dimensión (n-1) de los
cumulantes de orden n y se denotan como [2]:
∑ ∑ ∑∞
∞−
∞
−∞=
−
=−−
= −
⎥⎦
⎤⎢⎣
⎡−=
1 1
1
1121,121 2exp)...,(.....)...,(
τ τ
τπτττ
n
n
i
iinxnn N
kjckkkC (2.19)
Capítulo 2: Marco Teórico
22
2.2.3 Densidad Espectral de Potencia.
Para n = 2, se observa que la transformada de Fourier del cumulante de orden 2, es igual a
la función de densidad espectral (PSD).
∑∞
∞−=⎥⎦⎤
⎢⎣⎡−=
1
)(2exp)()( ,2τ
τπτNkjckC x (2.20)
En una señal periódica determinística, el espectro de potencia representa la descomposición
armónica de la energía total, concentrada sobre la longitud del período. Esto se representa
mediante la PSD en tiempo discreto. Si la función es determinística y no periódica, la PSD
representa la descomposición de la distribución de la densidad de potencia sobre un rango
continuo de frecuencias [3]. La densidad espectral de potencia es una transformación lineal
y es una función del índice de frecuencia. En términos de ingeniería representa la
distribución de la potencia de la señal en las diferentes frecuencias que la componen.
2.2.4 Biespectro.
Extendiendo la definición de Poliespectros a sistemas de tercer orden, n = 3, se obtiene el
Biespectro, el cual se representa como:
( )∑ ∑∞
∞−
∞
−∞==
⎥⎦⎤
⎢⎣⎡ +−=
1 2
221121,321 2exp),(),(
τ τ
ττπττN
kkjckkC x (2.21)
Debe notarse que la función BIS es una función compleja de dos índices de frecuencia, que
representa los acoplamientos armónicos de pares de frecuencias.La diferencia principal
entre la PSD y el Biespectro consiste en que , mientras la primera representa la distribución
de la potencia de la señal sobre un rango de frecuencias, la última solamente representa la
distribución de potencia sobre los pares de frecuencia donde ocurra una interacción entre
ellos[3].
Capítulo 2: Marco Teórico
23
2.2.5 Métodos de Estimación de los poliespectros.
En la práctica, es necesario estimar el poliespectro a partir de un conjunto finito de datos.
Existen dos enfoques que se usan para el cálculo, al primero se le llama convencional ó “de
Fourier”, mientras que el otro enfoque se basa en modelos ARMA (autoregresivos y de
promedios móviles) también llamado parámetrico [2]. En esta tesis se implementan los
métodos no parámetricos tanto para la obtención de la PSD como del biespectro.
2.3 Métodos de Estimación No – Paramétrica de la Densidad Espectral de Potencia.
La Función de Densidad Espectral de Potencia (PSD) representa la distribución de
potencia de las armónicas de la señal. Es importante mencionar que el espectro obtenido
mediante la PSD no mantiene la información de la fase y no puede detectar acoplamientos
armónicos entre frecuencias. Estas características son limitantes en el análisis de sistemas
no lineales o aquellos en los que se requiera la información de fase. El método no
paramétrico de estimación de la PSD se divide en Directo e Indirecto [2].
Método Directo
La densidad espectral de potencia PSD de )(nTx , puede definirse en términos de su
transformada de Fourier denotada )(kX , como:
[ ])()()( * kXkXEkP = (2.22)
Donde [ ].E es el valor estadístico esperado, o promedio de x, y )(* kX es el complejo
conjugado de )(kX . En señales discretas se debe obtener el valor promedio para reducir los
efectos del tamaño del bloque de muestras.
Capítulo 2: Marco Teórico
24
Metodo Indirecto.
a) Cálculo a partir de Cumulantes.
La PSD se obtiene mediante la transformada de Fourier del cumulante de segundo orden,
conocido como función de covarianza (2.20). A esta expresión se le conoce como la
fórmula de Wiener-Kinchine [2].
∑∞
∞−=⎥⎦⎤
⎢⎣⎡−=
1
)(2exp)()( ,2τ
τπτNkjckPSD x (2.23)
b) Cálculo a partir de Momentos.
En sistemas con media cero los cumulantes y los momentos de orden 2 son idénticos, esto
es fácilmente comprobable en (2.10). De esta forma, es más fácil obtener la PSD mediante
el cálculo del momento de segundo orden de la señal discreta sustrayéndole la media.
Redefiniendo (2.20), tenemos:
∑∞
−∞=⎥⎦⎤
⎢⎣⎡−+=
τ
τπτ )(2exp)]()([)(NkjtxtxEkPSD (2.24)
2.3.1 Periodograma.
A la estimación del espectro de una secuencia finita x(n) de N datos se le denomina
Periodograma, esto es equivalente a obtener el espectro de una señal muestreada,
multiplicada con una ventana rectangular de longitud N. Estrictamente hablando, [1] y [2]
se refieren al cálculo del espectro mediante el método directo (FFT) como Periodograma,
sin embargo, el enfoque manejado en este documento será aplicar este término también al
método indirecto [3].
Capítulo 2: Marco Teórico
25
Para el método Directo el periodograma se define como:
[ ] )()()( * kXkXEkPSD ww= (Método Directo). (2.25)
Donde la transformada de Fourier de la secuencia x(n) modificada mediante la ventana
rectangular se define como:
∑−
=
−=
1
0
2)()()(
N
n
Nknj
w enTwnTxkXπ
(2.26)
Para el método Indirecto el periodograma se define como:
∑−
=⎥⎦⎤
⎢⎣⎡−=
1
0,2 )2(exp)()()(
N
x NkjwckPSD
τ
τπττ (2.27)
Donde el cumulante de segundo orden del proceso x(n) está determinado por (2.8).
2.3.2 Periodograma Modificado.
Al uso de una ventana diferente a la ventana rectangular (w(n) = 1) con el fin de producir
una estimación consistente del espectro de potencia, suavizando el periodograma por
medio de una función de ponderación, se le llama periodograma modificado [1], [2] y [21].
Además de proveer una estimación consistente del espectro, el efecto producido con el uso
de la ventana es reducir la varianza de la PSD y producir una representación espectral
suave, resaltando los verdaderos valores de frecuencia donde la potencia es máxima. Sin
embargo, también tiene efectos indeseables, pues incrementa la desviación del espectro
calculado con respecto del verdadero espectro de potencia, además de reducir la resolución
espectral, debido al efecto suavizante. Para compensar los cambios de magnitud producidos
por el uso de la ventana en el método Directo, se utiliza una constante de normalización U,
que depende de la ventana seleccionada [20] y que se puede calcular mediante:
Capítulo 2: Marco Teórico
26
∑−
=
=1
0
2)(1 M
nnw
MU (2.28)
Entonces, el espectro mediante el periodograma modificado, puede expresarse como:
Para el método Directo:
[ ] )()(1)( * kXkXEU
kPSD ww= , (2.29)
donde:
∑−
=
−=
1
0
2)()()(
N
n
Nknj
w eAnwnxkX
π (2.30)
Para el método Indirecto:
∑−
=⎥⎦⎤
⎢⎣⎡−=
1
0,2 )2(exp)()()(
N
x Nkj
AwckPSD
τ
τπττ (2.31)
El parámetro A determina la anchura de la ventana, y es un entero dependiente del tamaño
de sección N, pues debe ser escogido de tal forma que cuando ∞→N , ∞→A , pero con
la restricción de que 0=∞→∞→
NA . Se recomienda un método empírico [3] para la elección
del parámetro A, es decir, se comienza calculando el espectro de potencia para valores
pequeños de A, posteriormente se va incrementando mientras se observan los efectos en el
espectro. Se observa que a medida que incrementamos el valor de A, el ancho de banda de
la ventana decrece y se obtiene un espectro menos suave y con mejor resolución.
La elección de la ventana adecuada para la estimación de la PSD, es entonces una decisión
importante, y a pesar de que pueden realizarse comparaciones basadas en la varianza, el
derrame espectral, la anchura del lóbulo central o laterales y el valor cuadrático medio de
las ventanas, es necesario hacer pruebas para determinar cuál es más adecuada para el
proceso que se esté analizando.
Capítulo 2: Marco Teórico
27
Las funciones de ventana más comúnmente utilizadas según [19] se muestran en la Figura
2.3 y son:
a) Ventana de Daniel. b) Ventana de Tukey-Hamming.
c) Ventana de Parzen. d) Ventana de Bartlet Priestley.
Figura 2.3 Funciones de ventana con un índice de tiempo.
Ventana de Rectangular o periodograma truncado:
⎩⎨⎧
>≤
=1,01,1
)(nn
nwTP (2.32)
Ventana de Tukey-Hamming:
)cos(46.054.0)( NnnwTHπ+= (2.33)
)(nwTH)(nwD
)(nwP )(nwBP
Capítulo 2: Marco Teórico
28
Ventana de Daniel:
Nn
Nn
nwD π
π )sin()( = (2.34)
Ventana de Parzen:
( ) ( )( )( )
otrosNnN
Nn
Nn
Nn
Nn
nwp ≤≤
≤
⎪⎪
⎩
⎪⎪
⎨
⎧
−
+−
= 2
2
012
661
)(3
32
(2.35)
Ventana de Bartlet Priestley:
( ) )cos()sin(3)( 2 N
n
Nn
Nn
Nn
nwBPπ
π
π
π−
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛= (2.36)
El periodograma puede realizarse sobre p secciones de longitud M cada una, de tal manera
que pMN = , para disminuir el tiempo de cálculo de secuencias de datos de gran longitud.
Si los valores de la PSD de cada sección i = 1,…p están definidas por 2.29 para el método
directo y por 2.31 para el método indirecto, el espectro promedio se determina como:
∑=
∧
=p
ii kPSD
pkPSD
1
)(1)( (2.37)
2.3.3 Método de Welch.
Con el uso de ventanas, los extremos de las secuencias son llevados a cero, esto produce
pérdida de información. Una solución a esto es dividir la secuencia de datos en secciones
que se traslapen. Aunque el traslape introduce información redundante, este efecto
disminuye con el uso de una ventana no rectangular. Si el traslape es del 50% al 75% se
mantienen muchas de las características de los datos, los espectros resultantes se promedian
para obtener el espectro real. Se ha demostrado [1] y [10], que esto reduce la varianza del
espectro, pues para k realizaciones, la varianza del promedio es 1/k veces la varianza de los
espectros individuales.
Capítulo 2: Marco Teórico
29
2.4 Métodos de Estimación No – Paramétrica del Biespectro.
El espectro de tercer orden o Biespectro (BIS) representa la descomposición de potencia de
una señal para pares de frecuencias armónicamente relacionadas. La función Biespectro es
generalmente compleja, esto implica que contiene la información de magnitud y fase. Las
principales ventajas del Biespectro son:
• Preservación de la información de fase.
• Insensibilidad al ruido aditivo Gaussiano.
• Identificación de sistemas de fase no mínima.
• Detección e identificación de sistemas no lineales.
Para el Método Directo.
La función BIS representa la contribución del producto medio de tres componentes de
Fourier, donde una frecuencia es igual a la suma de las otras dos. De esta forma, el
Biespectro se define como:
[ ])()()(),( 21*
2121 kkXkXkXEkkB += (2.38)
De la expresión anterior puede verse que existen tres argumentos de frecuencia
relacionados como 0321 =++ kkk , donde 213 kkk −−= , lo cual indica la interacción
existente entre frecuencias.
Para el Método Indirecto.
a) Cálculo a partir de Cumulantes.
La función BIS es el Poliespectro de segundo orden, es decir, que es el resultado de la
aplicación de la transformada de Fourier de dos dimensiones al cumulante de tercer orden
definido en 2.10.
Capítulo 2: Marco Teórico
30
∑ ∑∞
−∞=
∞
−∞=
+−+=
1 2
])(
2exp[)(),( 221121,321
τ τ
ττπττ
Nkk
jCkkB x (2.39)
b) Cálculo a partir de Momentos.
En sistemas con media cero los cumulantes y los momentos de orden 3 son idénticos, de
esta forma, es más práctico obtener la BIS mediante la aplicación de la transformada de
Fourier de dos dimensiones del momento de tercer orden de la señal discreta, es decir:
( )∑ ∑∞
∞−
∞
−∞==
⎥⎦⎤
⎢⎣⎡ +−++=
1 2
22112121 2exp)]()()([),(
τ τ
ττπττN
kkjtxtxtxEkkB (2.40)
2.4.1 Condiciones de Simetría.
En el dominio de la frecuencia se cumplen las siguientes propiedades:
),(),,( ),(
),( ),(
),( ),(),(
212
121211
22112*
21*
1221
kkkBISkkkBISkkkBIS
kkkBISkkBIS
kkBISkkBISkkBIS
−−=−−=−−=−−=−−=
−−==
(2.41)
Figura 2.4 Simetría del Biespectro en el dominio de la frecuencia.
Dominio de Soporte de la función Biespectral.
Capítulo 2: Marco Teórico
31
Conociendo el Biespectro en la región triangular π≤+≥≥ 21212 ,,0 kkkkk , región 1 en la
Figura 2.4 , es suficiente para una descripción completa del mismo. La Figura 2.5 muestra
la simetría óptima en el cálculo de la función BIS, si el proceso es estacionario solo se
necesita el triangulo interno, de lo contrario debe obtenerse el triangulo externo también, fs
es la frecuencia de muestreo o frecuencia de Nyquist.
Figura 2.5 Simetría óptima del biespectro.
2.4.2 Biperiodograma.
De forma análoga a la que se definió el periodograma para la PSD, se puede definir el
biperiodograma y para la obtención del Biespectro (BIS) mediante el método directo e
indirecto.
Para el método Directo el periodograma se define como:
[ ])()()(),( 21*
2121 kkXkXkXEkkBIS www += (2.42)
Para el método Indirecto el Biperiodograma se define como:
( )∑∑−
=
−
==
⎥⎦
⎤⎢⎣
⎡ +−=
1
0
1
0
22112121,321
1 2
2exp),(),(),(N N
x Nkk
jwckkBISτ τ
ττπττττ (2.43)
Capítulo 2: Marco Teórico
32
2.4.3 Biperiodograma Modificado.
Es posible obtener una estimación consistente del Biespectro mediante el uso de una
función de ventana w(n) (Biperiodograma Modificado). En el método directo se realiza un
procedimiento semejante al del cálculo de la PSD. Para el método indirecto se utiliza una
función de ventana con dos índices de tiempo como argumentos ),( 21 ττw , de esta forma:
Para el Método Directo:
[ ])()()(),( 21*
2121 kkXkXkXEkkB www += (2.44)
Para el Método Indirecto:
( )∑∑−
=
−
==
⎥⎦
⎤⎢⎣
⎡ +−=
1
0
1
0
22112121,321
1 2
2exp),(),(),(N N
xi Nkk
jAA
wckkBISτ τ
ττπ
ττττ (2.45)
Donde el parámetro A es un entero dependiente de N tal que 02
=∞→∞→
NA cuando ∞→A y
∞→N .
Además según [1], la función de ventana debe tener las siguientes propiedades:
• ),(),(),(),( 1212211221 ττττττττττ −−=−−== wwww (Simetría de los cumulantes).
• 0),( 21 =ττw Fuera de la región de soporte de los cumulantes de tercer orden.
• 1)0,0( =w (Condición de normalización).
• 0),( 21 ≥kkW Para todo ),( 21 kk .
Una función que permite satisfacer estas restricciones es:
)()()(),( 122121 ττττττ −= wwww (2.46)
Capítulo 2: Marco Teórico
33
Donde:
kkWw
Nwww
∀≥=
>=−=
,0)(1)0(
,0)()()(
11
11
ττττ
(2.47)
Las relaciones anteriores permiten la construcción de ventanas con dos argumentos en el
tiempo, a partir de las ventanas con un solo argumento en el tiempo de las ecuaciones 2.32
a 2.36. Sin embargo, no todas las ventanas satisfacen el requisito kkW ∀≥ ,0)( , por
ejemplo la ventana de Hanning tiene lóbulos laterales negativos en el dominio de la
frecuencia. Las ventanas definidas anteriormente para el espectro de potencia satisfacen los
requisitos anteriores, en la Figura 2.6 se observan en dos índices de tiempo.
Una ventana óptima para el cálculo del Biespectro [1] es la siguiente (ver la Figura 2.7):
⎪⎩
⎪⎨⎧
>
≤−+=Nn
NnNn
Nn
Nn
nwOPT
0
)))(cos(1()sin(1)(
πππ (2.48)
Se puede realizar el biperiodograma sobre p secciones de longitud M de tal manera que N =
pM y después obtener el Biespectro promedio, para cada sección i donde i = 1,…p, el
Biespectro para 2.44 y 2.45 se obtiene como:
∑=
∧
=p
ii kBIS
pkBIS
1)(1)( (2.49)
2.4.4 Método de Welch.
Las mismas consideraciones mencionadas para el espectro de potencia acerca de el traslape,
pueden aplicarse al cálculo del Biespectro. Welch demostró que traslapes mayores al 50%
no contribuyen a disminuir la varianza, debido a que los segmentos son más independientes
entre sí a medida que el traslape aumenta.
Capítulo 2: Marco Teórico
34
a) Ventana de Daniel. b) Ventana de Tukey-Hamming.
c) Ventana de Parzen. d) Ventana de Bartlet Priestley.
Figura 2.6 Funciones de ventana con dos índices de tiempo.
Figura 2.7 Ventana óptima para el cálculo del Biespectro.
),( mnwD ),( mnwTH
),( mnwP ),( mnwBP
),( mnwOPT
Capítulo 2: Marco Teórico
35
2.5 Biespectro Modificado.
Aunque el Biespectro contiene información de magnitud y fase, generalmente solo se
considera la magnitud. Este enfoque es insuficiente en muchos de los casos, sobre todo
cuando se desea identificar y cuantificar explícitamente acoplamientos de fase. Una
modificación sugerida en [24] incorpora fase y magnitud en una sola medición de magnitud
“dependiente” de la fase. Para el Biespectro, si la magnitud se representa como |BIS| y el
ángulo de fase como BIS∠ , dentro del intervalo ),( ππ− el Biespectro “Modificado” se
define como:
ππ BIS
BISEBIS∠−
=_ (2.50)
La Figura 2.8 muestra el uso del Biespectro y del Biespectro Modificado en una señal de
corriente con frecuencia de 60 Hz. Se observa que la magnitud de los armónicos se
modifica significativamente, lo que permite identificar de manera más explicita la
dependencia de fase.
Comparativo Biespectro vs. Biespectro Modificado
01234567
1 2 3 4 5
Armónicos
Mag
nitu
d en
dB
BISBIS_E
Figura 2.8 Comparativo Biespectro contra Biespectro modificado.
Capítulo 3: Herramienta de Software: Analizador Espectral.
36
Capítulo 3
Herramienta de Software: Analizador Espectral.
3.1 Descripción.
El principal objetivo de este proyecto de tesis es realizar una herramienta de procesamiento,
por ello se deben tomar en cuenta aspectos que otorguen las mayores facilidades al usuario.
Desde el punto de vista del usuario final el uso de funciones específicas y de paquetes
complementarios de software por lo general es complejo, y requiriere de esfuerzo adicional
para familiarizarse con ellos.
Actualmente, el enfoque de desarrollo de sistemas tipo aplicación de Windows está
orientado a producir ahorro de tiempo y esfuerzo al usuario. En el caso de una herramienta
de análisis, evita realizar las tareas por pasos, tales como exportar los datos al ambiente
utilizado, aplicar las funciones correspondientes para realizar el análisis, graficar y
nuevamente exportar los datos. Si se desea hacer un análisis paramétrico se debe repetir
todo el proceso.
A pesar de que paquetes como Matlab® de MathWorks, o LabView de Nacional
Instruments, son relativamente fáciles de utilizar, no se evitan las dificultades antes
mencionadas, sin mencionar que la adquisición y almacenamiento de datos en este tipo de
lenguajes no son funciones comunes al usuario promedio. En el caso concreto de un
analizador con funciones poliespectrales como la PSD y el Biespectro, la naturaleza de los
resultados requiere del manejo de gráficas para facilitar el análisis en la mayoría de los
casos.
Capítulo 3: Herramienta de Software: Analizador Espectral.
37
En cuanto al formato de los datos, se considera el uso de secuencias de datos digitales, ya
sea provenientes de sensores y/o equipos de medición estándares o de otro software o
sistema digital. El enfoque actual de desarrollo de sistemas electrónicos e informáticos es el
de implementar soluciones completas, por lo que el empleo de una Interfase Gráfica de
Usuario (GUI) provee un valor agregado a cualquier desarrollo. El término Herramienta de
Software será utilizado en este documento para definir un conjunto de algoritmos,
programas, procesos y funciones relacionados entre sí para proporcionar una utilidad
previamente definida.
3.2 Especificaciones generales del Analizador Espectral.
De acuerdo a lo mencionado en los capítulos 1 y 2, la funcionalidad del analizador espectral
comprende lo siguiente:
• Estimación de la Densidad Espectral de Potencia (PSD).
• Estimación del biespectro (BIS).
• Empleo de funciones de ventana para reducir el derrame espectral.
• Adquisición de datos y almacenamiento de resultados.
• Operación interactiva.
• Despliegue gráfico de resultados
En forma detallada la Herramienta de Software denominada “Analizador Espectral” posee
las siguientes características de software:
• Procesamiento:
o Implementación de los algoritmos de momentos de segundo y tercer orden.
o Estimación de los cumulantes de segundo y tercer orden.
o Cálculo de la transformada de Fourier de primer y segundo orden.
o Obtención de la correlación de funciones en el dominio de la frecuencia.
o Estimación de funciones de ventanas con uno y dos índices de tiempo.
Capítulo 3: Herramienta de Software: Analizador Espectral.
38
o Implementación del algoritmo de densidad espectral de potencia (PSD).
Método directo.
Método indirecto: mediante momentos o cumulantes de segundo
orden.
o Implementación del algoritmo de biespectro (BIS).
Método directo.
Método indirecto: mediante momentos o cumulantes de tercer orden.
o Selección de la región óptima de los poliespectros de primer y segundo
orden.
o Funciones diversas de operaciones con vectores y matrices.
• Adquisición y almacenamiento de resultados:
o Entrada de datos en formato .DAT o MATHCAD.
o Almacenamiento de resultados en disco, en formato .DAT o MATHCAD.
• Interfase Gráfica de Usuario (GUI):
o Operación interactiva por medio de menús.
o Configuración de parámetros de análisis.
• Presentación gráfica e interactiva de los resultados en 2D y 3D.
o Graficas de PSD, Biespectro y Ventanas.
Las características de hardware más relevantes del analizador son:
• Funcionamiento en una IBM PC o compatible.
• No requiere hardware especializado.*
• Uso de opcional de un DSP.*
Es importante mencionar que dentro de las especificaciones de hardware no se mencionan
las etapas correspondientes a la adquisición de datos, tales como el sensado y el
acondicionamiento de señal, ya que estas dependerán de la aplicación. En el capitulo 10,
Capítulo 3: Herramienta de Software: Analizador Espectral.
39
donde se presenta la aplicación del analizador a un caso práctico, se describe el
procedimiento de adquisición de los datos, el cuál se puede tomar como una referencia para
otras aplicaciones. Las opciones marcadas con (*) dependen del modelo del Analizador
Espectral, como se explicará más adelante dentro de este capítulo. Como resultado de este
proyecto de tesis se obtuvieron tres modelos del Analizador Espectral, cada uno de ellos
con características propias, ventajas y desventajas implícitas en su uso y diseño. A
continuación se presentan los resultados de estos tres modelos.
3.3 Modelo 1: Analizador Espectral implementado en Matlab.
La programación de este modelo del analizador se realizó totalmente en Matlab 6.0, este
paquete de software presenta características que permiten desarrollar aplicaciones
poderosas y flexibles en un corto tiempo.
3.3.1 Desarrollo del software.
En el proceso de desarrollo de esta versión se realizaron funciones de estimación de
momentos, cumulantes, funciones de ventana para uno y dos índices de tiempo, obtención
del períodograma y biperíodograma, implementación de los métodos directo e indirecto
para PSD y el BIS. Estas funciones, se encapsularon en el Analizador Espectral, además se
pueden utilizar independientemente desde la interfase de comandos de Matlab, el código
está disponible en el CD anexo a la documentación.
Se desarrolló una Interfase gráfica de usuario (GUI), con operación interactiva mediante
menús, manejo de graficas y almacenamiento de resultado, cumpliendo las especificaciones
antes mencionadas. La pantalla principal de la aplicación se muestra en la Figura 3.1.
Consta de 2 secciones funcionales, en la primera se encuentran las opciones de
configuración de análisis PSD o BIS, mientras que en la segunda se presentan los valores
de los resultados. Esta GUI cuenta además con un sencillo menú con opciones de manejo
de archivos y despliegue de gráficos según el análisis realizado.
Capítulo 3: Herramienta de Software: Analizador Espectral.
40
Figura 3.1 Analizador Espectral implementado en Matlab®.
Esta versión del analizador fue utilizada en el caso de aplicación. Con objeto de validar el
Analizador Espectral con señales reales, se realizaron pruebas de detección de fallas en un
motor de inducción de jaula de ardilla de 2 polos, con alimentación trifásica, donde se
identificaron ciertos patrones relacionados con fallas eléctricas. Los resultados obtenidos se
documentan en el capítulo 10.
La principal ventaja del analizador en Matlab es que no requiere hardware especializado
para su uso. Otra ventaja importante es la relativa facilidad de uso de este paquete, y que es
común su empleo en escuelas y centros de investigación. De esto último, se deduce que el
código desarrollado es fácilmente modificable para mejoras y adiciones, incluso para
transportarlo a nuevas versiones y como ayuda didáctica para nuevos programadores.
La desventaja principal del Analizador Espectral realizado en Matlab® es el tiempo de
respuesta en la obtención del Biespectro, así como la dependencia de una versión especifica
de Matlab®, aunque se ha probado sobre la versión 6.2, no existe una garantía de ser
compatible con versiones superiores. Otra desventaja es que no existe una versión
ejecutable, sino que se ejecuta desde Matlab, dejando expuesto el código al usuario. Este
modelo tiene una limitante importante ya que su tiempo de ejecución para secuencias de
datos mayores de 256 puntos en el períodograma es considerablemente alto, llegando
incluso a los 40 minutos en el caso de la obtención del cumulante de tercer orden.
Capítulo 3: Herramienta de Software: Analizador Espectral.
41
3.3.2 Características funcionales.
Las características funcionales de este modelo son:
Entrada de Datos y Almacenamiento de Resultados: El Analizador permite la entrada de
datos en formato .DAT. Permite leer vectores y matrices de cálculos de PSD y BIS
realizados anteriormente y almacenar los resultados de los cálculos realizados en formato
.DAT, para su uso posterior.
Operación Interactiva: El Analizador tiene una Interfase Gráfica de Usuario (GUI) que
permite al usuario realizar análisis de PSD y BIS, modificando sus parámetros de obtención
e interactuar con los resultados.
a) Densidad Espectral de Potencia. b) Biespectro
Figura 3.2 Manejo de gráficas del Analizador Espectral en Matlab®.
Configuración de parámetros de análisis: El usuario puede seleccionar diferentes opciones
y parámetros para la obtención de PSD y BIS, tales como el método de cálculo, la función
de ventana espectral utilizada, el tamaño de las secciones del períodograma, entre otros.
Presentación gráfica e interactiva de resultados: Pueden obtenerse gráficas “2D” de
magnitud y fase para la Densidad Espectral de Potencia (PSD), gráficas “3D” (Figura 3.2) y
Capítulo 3: Herramienta de Software: Analizador Espectral.
42
de contorno para el Biespectro (BIS). Además permiten conocer los valores de magnitud,
fase y frecuencia de la gráfica.
Manual de Usuario: Se realizó un manual de usuario (Anexo 2), que contiene la descripción
de opciones y utilidades del Analizador Espectral, que en conjunto con el manejo de los
conceptos descritos en el marco teórico, permitirán al usuario obtener un mayor beneficio
de esta herramienta de software.
3.3.3 Requerimientos de instalación.
Para que el analizador espectral pueda ejecutarse es necesario instalar Matlab® versión
6.0.0.88 Release 12:
Requisitos de hardware mínimos.
• IBM PC Pentium I® 233 MHz o compatible.
• 60 MB de espacio libre en disco duro.
• 32MB de RAM
• Monitor SVGA (800x 600)
• Lector de CD-ROM
Requisitos de Software y Sistemas Operativos.
• Windows 95, Windows 98, Windows 2000, Windows NT 4.0.
• Matlab® version 6.0.0.88 Release 12
Capítulo 3: Herramienta de Software: Analizador Espectral.
43
3.3.4 Conclusiones para este modelo.
Ventajas:
• Tiempo de desarrollo relativamente corto.
• Código disponible, fácil de modificar y adaptar a nuevas necesidades.
• Buen manejo de gráficos y de GUI.
• Bajo costo si se cuenta con la licencia de Matlab®.
Desventajas:
• Desempeño pobre debido a un alto tiempo de ejecución en algunos casos.
• No es posible generar una versión ejecutable del programa.
• Código no transportable a otros lenguajes de programación.
• Dependiente de la versión de Matlab®.
3.4 Modelo 2: Analizador Espectral implementado en Visual C++ 6.0 para IBM PC o compatible.
En cualquier proceso de cómputo, disminuir el tiempo de ejecución es un factor importante,
esto puede hacerse modificando los algoritmos para hacerlos más eficientes, con accesos
más directos a la memoria mediante el uso de punteros, o incluso mediante el uso de
hardware adicional. Sin embargo, en algunos lenguajes de alto nivel estas mejoras no
siempre se pueden implementar, debido al alto nivel de abstracción del hardware. En el
caso de Matlab, además de tener estas limitantes, éste es un lenguaje interpretado, es decir
que sus instrucciones son traducidas a otro lenguaje, C por ejemplo, y después llevadas a
lenguaje de máquina. Por otro lado, el uso de lenguaje ensamblador para la programación
de aplicaciones complejas es impráctico por su extrema dificultad.
Capítulo 3: Herramienta de Software: Analizador Espectral.
44
El lenguaje C es ideal para el desarrollo de aplicaciones de software de alto nivel,
implementación de sistemas operativos y de sistemas embebidos1, solucionando las dos
problemáticas presentadas anteriormente. Se eligió Visual C++ 6.0 de Microsoft debido a
su completa compatibilidad con los sistemas operativos de Windows, al fácil manejo de las
clases de Microsoft Foundation Classes (MFC por sus siglas en inglés), y a que permite el
uso de las librerías y componentes comunes en el mercado, tales como ActiveX, Win32 y
OpenGL entre otras, además de ser compatible con el estándar ANSI para código en C. Es
importante mencionar que existen otros compiladores de C de diversos fabricantes tales
como, Borland, Metrowerks, Keil Software, CodeComposer Studio, etc., en los que estos
algoritmos pueden ser transportados, prácticamente sin ningún cambio, solamente es
necesario adaptar la GUI.
3.4.1 Desarrollo del software.
El Analizador Espectral es un software tipo aplicación de Windows, desarrollado en Visual
C++, como un auxiliar para el estudio y análisis espectral de señales en forma práctica
mediante las estadísticas de alto orden y los poliespectros.
Los algoritmos del programa están desarrollados en ANSI C, para proporcionar
transportabilidad de código a otras plataformas, mientras que el manejo de la GUI está en
Visual C++. Se emplearon recursos de programación avanzada tales como el uso de
punteros para manejo de vectores y matrices, punteros a funciones que permiten reducir el
tamaño de código y aumentar la eficiencia en el uso de sentencias de selección tipo
“switch”, algoritmos de cálculo sobre el mismo vector (IN PLACE) para reducir la cantidad
de memoria utilizada. También se usaron funciones de lectura y escritura de archivos a
disco.
Visual C++ permite el desarrollo de aplicaciones tipo Windows, usando conceptos de
manejo de eventos en lugar de programas de tipo estructurado, esto facilita la programación
1 Es la traducción del término en idioma inglés embedded para un sistema (o parte de un sistema) electrónico con una funcionalidad completa contenido en un encapsulado.
Capítulo 3: Herramienta de Software: Analizador Espectral.
45
de interfases a usuario mucho más complejas. Un aspecto relevante es la aplicación del
concepto de multihilos, el cuál permite a un proceso desarrollarse en segundo plano, sin
monopolizar el uso del CPU, mientras que se ejecutan otras aplicaciones de Windows,
incluso el uso de otras funciones del mismo Analizador.
El desarrollo de las graficas inicialmente se realizó implementado lienzos en cuadros de
dialogo y pintando píxel a píxel de acuerdo a los valores de los resultados (ver Figura 3.3).
Este enfoque fue desechado porque las graficas no alcanzaban un nivel de calidad
aceptable, no permitía una operación interactiva y su programación era compleja.
a) Gráfica de salida de la PSD. b) Gráfica de salida del Biespectro.
Figura 3.3 Gráficas de Salida en Visual C++ 6.0.
Para obtener un mejor manejo de gráficos se utilizó un control ActiveX, del ambiente de
programación Measurement Studio para Visual C++ 6.0 de National Instruments TM [25],
en la Figura 3.4 se muestran las graficas creadas mediante este componente. Existen otros
componentes para manejo de gráficos como el TeeChart de Steema Software [26], sin
embargo se prefirió el primero, ya que provee utilidades para el desarrollo de GUI y
herramientas para sistemas de adquisición e instrumentación virtual.
Capítulo 3: Herramienta de Software: Analizador Espectral.
46
a) Gráfica de salida de la PSD. b) Gráfica de la ventana de Daniel.
Figura 3.4 Gráfica de salida de la PSD en Measurement Studio para Visual C++ 6.0.
El desempeño de este modelo en cuanto al tiempo de ejecución de los algoritmos de PSD y
BIS es muy superior a la versión de Matlab®. La GUI tiene una mejor presentación y
funcionalidad que la del primer modelo. Una ventaja importante es que el programa de
instalación no requiere de ningún otro paquete de software para su funcionamiento. Esta
versión tiene como principales limitaciones el costo de la licencia de los componentes
gráficos. Para el desarrollo de esta tesis se utilizó una versión de evaluación con un tiempo
máximo de uso de 5 minutos por ejecución. Esto impide que se puedan realiza algunas
combinaciones de análisis de Biespectro con secciones del periodograma mayores a 512
puntos mediante el método indirecto.
3.4.2 Características funcionales.
Las características funcionales de este modelo son:
Entrada de Datos y Almacenamiento de Resultados: El Analizador Espectral requiere la
entrada de datos y almacena los resultados en formato .DAT. Permite leer vectores y
matrices de cálculos de PSD y BIS realizados anteriormente y transportarlos a otros
paquetes como Matlab®.
Capítulo 3: Herramienta de Software: Analizador Espectral.
47
Operación Interactiva: La pantalla principal del Analizador Espectral es breve y sencilla,
pues las opciones de operación se encuentran en el menú principal, cuenta con una barra de
progreso, donde se puede ver el estado de avance del proceso, y controles disponibles al
usuario para comenzar o cancelar el análisis (Figura 3.5).
Figura 3.5 Interfase de Usuario del Analizador en Visual C++ 6.0.
Configuración de parámetros de análisis: Los parámetros de cálculo se modifican mediante
una hoja de propiedades accesible mediante el menú, donde el usuario puede seleccionar
diferentes opciones y parámetros para la obtención de PSD y BIS. Además, es posible
almacenar la configuración actual en un archivo *.CFG para su uso en análisis futuros o
como referencia del cálculo actual.
Presentación gráfica e interactiva de resultados: Cuenta con manejo de graficas “2D” y
“3D” para representar PSD, BIS y las funciones de ventana utilizadas. Las gráficas tienen
opciones de acercamiento (zoom), rotación, visualización de la región de interés, cambio de
textura, cursor interactivo que indica magnitud e índices de frecuencia, además de una
utilidad de barras deslizantes y visualizadores que indican magnitud y fase.
Manual de Usuario: Describe el funcionamiento del Analizador Espectral, las opciones de
configuración, el manejo detallado de las gráficas y el procedimiento de instalación, entre
otras cosas. El manual de usuario es aplicable a los modelos de PC y DSP (Anexo 3).
Capítulo 3: Herramienta de Software: Analizador Espectral.
48
3.4.3 Requerimientos de instalación.
Para que el Analizador Espectral pueda utilizarse solamente es necesario ejecutar el
programa de instalación:
Requisitos de hardware mínimos:
• IBM PC Pentium I® 266 MHz o compatible.
• 100 MB de espacio libre en disco duro.
• 32MB de RAM (64 MB recomendado)
• Monitor SVGA (800x 600)
• Lector de CD-ROM
Requisitos de Software y Sistemas Operativos:
• Windows 95, Windows 98, Windows 2000, Windows NT 4.0.
• Runtime de LabView 6.1 o superior.
3.4.4 Conclusiones para este modelo.
Ventajas:
• Desempeño notablemente más eficiente que la versión de Matlab.
• Transportabilidad de código a otras plataformas.
• Presentación más profesional al usuario.
• Fácil uso, por ser una aplicación de tipo Windows.
Desventajas:
• Costo de la licencia del componente ActiveX.
• Mayor tiempo de desarrollo.
• No permite modificación del código.
Capítulo 3: Herramienta de Software: Analizador Espectral.
49
3.5 Modelo 3: Analizador Espectral implementado en Visual C++ 6.0 para DSP TMS320C6701.
Esta opción del Analizador Espectral consiste en la Interfase Gráfica de Usuario (GUI)
desarrollada en Visual C++, para el segundo modelo, pero el procesamiento de los
algoritmos es ejecutado por un procesador dedicado DSP, lo que libera de trabajo
computacional al CPU de la PC. El DSP empleado fue el TMS320C6701 de Texas
Instruments.
3.5.1 Desarrollo del software.
El módulo de evaluación TMS320C6X es una plataforma de propósito general de bajo
costo para el desarrollo, análisis y prueba de algoritmos y aplicaciones de procesadores
digitales de señales (DSP) ‘C6X. Además provee librerías matemáticas de soporte y de
manejo de hardware, totalmente compatibles con lenguaje C, esto permite que pueda
utilizarse la Interfase de Usuario desarrollada en Visual C++.
El DSP se configura para actuar como un coprocesador del CPU de la computadora
personal, realizando las operaciones de obtención de PSD y Biespectro, mientras que la PC
continua siendo la interfase hacia el usuario. También es posible configurar al DSP para
operar en modo autónomo, sin necesidad de una PC externa, esto es útil para procesos en
línea que no requieran interacción con el usuario.
En el desarrollo de este modelo se emplearon las librerías de software provistas por Texas
Instruments para el manejo de hardware y para transmisión de bloques de datos entre la
memoria del DSP y la PC mediante una interfase PCI (HPI host port interface). Se
distribuyó el mapa de memoria disponible en la tarjeta de evaluación TMS320C6701 EVM,
para cumplir con las especificaciones de la aplicación.
Capítulo 3: Herramienta de Software: Analizador Espectral.
50
Se implementó un protocolo de comunicaciones basado en semáforos y banderas, mediante
el cuál es posible saber el estado de los cálculos realizados en el DSP para poder enviarle
nuevos datos y obtener los resultados (Figura 3.6).
3.5.2 Modelo del Protocolo de Comunicaciones.
Utilizando las características de acceso a memoria de la interfase HPI de la tarjeta de
evaluación [27] y [28], se desarrolló un protocolo que consiste en el envío de mensajes
desde la PC al DSP en un esquema anfitrión-terminal. De esta forma es posible conocer el
estado del DSP después de cada mensaje, mediante la lectura de banderas localizadas en
memoria.
Figura 3.6 Modelo del protocolo de comunicaciones.
Los datos de entrada son llevados desde el disco duro a la memoria RAM de la PC,
posteriormente son enviados a la memoria del DSP a través de la interfase HPI para ser
analizados. Finalmente son llevados de vuelta a la RAM de la PC para almacenamiento
opcional en disco.
En las Figura 3.7 y Figura 3.8 se muestran los diagramas de bloques simplificados del
protocolo de comunicaciones, desde el punto de vista del DSP TMS320C6701 y de la PC.
Se incluye pseudo-código que indica los cambios de estado de operación del DSP
(dsp_status) y los mensajes de órdenes desde la PC (dsp_message). La Tabla 3-1 contiene
los mensajes y la Tabla 3-2 los posibles estados del protocolo.
Mensajes
Banderas
Vectores y Matrices
PC de Escritorio TMS320C6701 EVM
Host Port Interface (HPI)
Capítulo 3: Herramienta de Software: Analizador Espectral.
51
Tabla 3-1 Listado de mensajes enviados al DSP.
Mensaje Descripción ID
NO_MESSAGE No especifica una operación definida. 0
CFG_SENT Indica que la configuración se ha enviado. 1
BLOCK_SENT Indica que se ha enviado un bloque de datos. 2
START Señaliza un nuevo ciclo de operaciones. 3
NEXT Indica que existen bloques de datos pendientes por enviar. 4
NONE_BLOCK Indica que se ha terminado la transmisión de bloques. 5
DATA_RECEIVED Indica que el Host ha recibido los resultados. 6
PROGRAM_ABORT Marca que el programa ha terminado. 7
Tabla 3-2 Listado de estados de operación del DSP. Estados Descripción ID
NO_STATE Estado inactivo del protocolo 0
WAITING_CFG El DSP se encuentra esperando recibir la configuración. 1
WAITING_BLOCK El DSP se encuentra esperando recibir un bloque de datos. 2
RDY_TO_START Indica que el DSP esta listo para un ciclo de operación. 3
BLOCK_FINISHED Indica que el DSP ha realizado el análisis de un bloque de datos. 4
HOS_RDY Indica que el DSP ha terminado el análisis completo. 5
Capítulo 3: Herramienta de Software: Analizador Espectral.
52
Figura 3.7 Diagrama de flujo del protocolo de comunicaciones desde el punto de vista del DSP TMS320C6701.
Realizar cálculos
¿Recepción de bloque?
¿Iniciar cálculos de bloque?
¿Programa Activo?
Inicialización y primeros cálculos.
Análisis final.
¿Resultados Transferidos?
Salir
dsp_status = WAITING_CFG;
¿Algún bloque?
while(dsp_message != CFG_SENT);
while(dsp_message != PROGRAM_ABORT); SI
NO
NO
SI
NO
NO
¿Configuración recibida?
SI
NO SI
SI
while(dsp_message != START);
while (dsp_message != NONE_BLOCK)
while(dsp_message != BLOCK_SENT);
while(dsp_message != DATA_RECEIVED);
dsp_status = RDY_TO_START;
dsp_status = WAITING_BLOCK;
dsp_status = BLOCK_FINISHED;
dsp_status = HOS_RDY;
dsp_message = NEXT; dsp_message = NONE_BLOCK;
Capítulo 3: Herramienta de Software: Analizador Espectral.
53
Figura 3.8 Diagrama de flujo del protocolo de comunicaciones desde el punto de vista de la IBM PC.
¿DSP esperando bloque?
¿Ciclo de bloque DSP listo?
Inicializaciones (configuración desde la GUI)
¿Períodograma completado?
while (dsp_status != RDY_TO_START);
SI
NO
SI
NO
NO
¿DSP esperando configuración?
SI while(dsp_status != WAITING_BLOCK);
while (dsp_status != WAITING_CFG);
dsp_message = BLOCK_SENT;
dsp_message = START;
dsp_message = CFG_SENT;
Enviar parámetros de configuración
Enviar datos al DSP
Obtener datos desde disco.
SI
¿Bloque Analizado?
NOSI
¿Análisis finalizado?
Obtención de resultados del DSP
Actualizaciones de la GUI
SI
NO
Fin del hilo de ejecución
Inicio del hilo de ejecución
dsp_message = NEXT;
dsp_message = NONE_BLOCK;
NO
while(dsp_status != BLOCK_FINISHED);
while (dsp_status != HOS_RDY);
dsp_message = DATA_RECEIVED;
Capítulo 3: Herramienta de Software: Analizador Espectral.
54
3.5.3 Manejo de Memoria.
La parte fundamental de este protocolo es el manejo de la memoria del DSP, por ellos es
necesario conocer la dirección exacta de sus variables, para permitirle a la PC usarlas como
si pertenecieran a su mapa de memoria. El Code Composer Studio provee una utilidad
denominada Visual LinkerTM, que presenta en forma gráfica el mapa de memoria del DSP.
Además, permite crear zonas de memoria dentro del espacio de memoria disponible,
teniendo control de su dirección y su tamaño.
En la Figura 3.9 se muestra el mapa de memoria del DSP TMS320C6701, en el se destacan
tres regiones de memoria fundamentales. La región denominada IPRAM (64Kbytes)
corresponde a la memoria interna de programa y muestra la ubicación en memoria de las
funciones y librerías incluidas en el programa. La región de IDRAM (64Kbytes),
corresponde a la memoria interna de datos y contiene el área de la pila de memoria del
programa (stack). Por último, la región de usuario, creada en el espacio de memoria externa
de datos, para esta aplicación se le denomino HOS, donde se ubican las variables y arreglos
de memoria utilizados en el programa principal.
Cuando se programan sistemas basados en procesadores dedicados se debe ser cuidadoso
en el manejo de los recursos del procesador y del sistema, especialmente de la memoria; el
DSP TMS320C6X tiene 64 Kbytes de RAM de datos interna y la tarjeta de evaluación
EVM ‘C6X proporciona un banco de 64K x 32 bits de SBSRAM a 133 MHz, y dos bancos
de 4M x 32 bits de SDRAM a 100 MHz accesibles mediante una interfase EMIF (en el
anexo 1 se detallan las características de la tarjeta de evaluación) [29]. En el caso específico
de la aplicación del Analizador esto constituye una fuerte limitación para el tamaño del
períodograma que se puede calcular pues el manejo de matrices y vectores ocupa la mayor
parte de la memoria disponible.
Capítulo 3: Herramienta de Software: Analizador Espectral.
55
Figura 3.9 Mapa de memoria del DSP TMS320C6701.
Areas de memoria reservadas, utilizadas por los periféricos o no disponibles.
0x000000h
0x00040000h
0x80000000h
0x80010000h
0x02400000h
0x2000000h
Memoria Iinterna de programa 64 KB
USUARIO
IPRAM
Memoria Interna de Datos64 KB
Memoria Externa de DatosBanco 0 4 MB
0x80400000h
IDRAM
Capítulo 3: Herramienta de Software: Analizador Espectral.
56
La Figura 3.10 muestra la demanda de memoria de acuerdo al tamaño del períodograma en
potencias enteras de 2. De esto se nota que el manejo de memoria externa es indispensable,
aún con el costo en tiempo de acceso y de desarrollo de programa.
Figura 3.10 Memoria necesaria para el Analizador Espectral en términos de potencias enteras de 2.
De acuerdo a esta gráfica, se observa que una FFT2, de 512 datos complejos de punto
flotante, requiere 2,097,152 bytes; esto es 2 MBytes, aproximadamente la mitad de la
memoria máxima disponible. Para 1024 puntos esta cantidad se cuadriplica, por lo que es
prácticamente imposible implementarlo en la tarjeta de evaluación, a diferencia del
programa implementado solo para la PC.
3.5.4 Características funcionales.
La funcionalidad de este modelo es en esencia la misma que la del modelo desarrollado
únicamente para PC, ya que el uso del DSP es para procesamiento de datos y no es
configurado por el usuario. El manual de usuario es aplicable a los modelos de PC y DSP
(Anexo 3).
Este modelo es más eficiente que el implementado en Matlab®, sin embargo, el tiempo de
ejecución no es mejor que el del modelo de Visual C++. Esto se justificará más adelante al
Capítulo 3: Herramienta de Software: Analizador Espectral.
57
analizar los resultados de los comparativos entre plataformas. En términos prácticos puede
mencionarse que para esta aplicación en particular el uso de un DSP no es óptimo.
Otro factor a considerar es el tiempo empleado para la transferencia de datos desde la PC a
la memoria externa del DSP. Como se explicó en la sección anterior, el tamaño de memoria
disponible es una limitación importante, pues solamente se pueden manejar períodogramas
de 512 puntos como máximo.
Finalmente, aunque existen librerías proporcionadas por Texas Instruments, que permiten
cargar un código ejecutable a la memoria de programa del DSP desde una aplicación
independiente (por ejemplo un programa en C o Visual C++), éstas no funcionan
correctamente. Actualmente no se encuentran disponibles actualizaciones de librerías para
este modelo de DSP, la única opción posible es cargar y ejecutar el programa desde
CodeComposer Studio antes de iniciar la aplicación del Analizador.
El manual de usuario es el mismo del modelo 2, debido a que el modo de procesamiento y
comunicaciones entre procesadores es transparente al usuario.
3.5.5 Requerimientos de instalación.
Para que el Analizador Espectral pueda utilizarse es necesario ejecutar el programa de
instalación, y cargar el programa en la memoria del DSP:
Requisitos de hardware mínimos.
• IBM PC Pentium I® 233 MHz o compatible.
• 60 MB de espacio libre en disco duro.
• 64MB de RAM
• Monitor SVGA (800x 600)
• Lector de CD-ROM
• Tarjeta TMS320C6701 EVM de Texas Instruments.
Capítulo 3: Herramienta de Software: Analizador Espectral.
58
Sistemas Operativos y requisitos de Software.
• Windows 95, Windows 98, Windows 2000, Windows NT 4.0.
• Code Composer StudioTM V2 para el TMS320C6000
• Runtime de LabView 6.1 o superior.
3.5.6 Conclusiones para este modelo.
Ventajas:
• Desempeño notablemente más eficiente que la versión de Matlab.
• Posee las mismas características externas del modelo en Visual C++.
• Libera tiempo de procesamiento en el CPU externo.
Desventajas:
• Tiene las mismas limitaciones del modelo de PC.
• Tiempo de ejecución no es mejor que el del modelo anterior.
• Tamaño de las secciones de análisis limitado por las características de memoria.
• Errores en las librerías del fabricante.
3.6 Comparativos entre plataformas, basados en el Analizador Espectral.
Finalmente se realizaron comparaciones de desempeño o benchmarks para las aplicaciones
de Analizador Espectral basadas en PC y DSP. Aunque, no es el fin último de esta tesis el
establecer una comparación directa entre las versiones del analizador, puesto que cada una
está desarrollada de forma diferente, y todas son completamente funcionales. Sin embargo,
es útil para sentar las bases para una comparación entre plataformas de procesamiento.
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
59
Capítulo 4
Comparativo de características entre plataformas
PC Y DSP.
En los últimos años se ha hablado mucho acerca de comparaciones entre plataformas de
procesadores de uso general (General Purpose Processors, GPP’s, por sus siglas en inglés)
y procesadores dedicados como los procesadores digitales de señales (DSP’s). Sin
embargo, antes de hacer una comparación es necesario entender los avances recientes en el
desarrollo de sus respectivas arquitecturas, así como las ventajas y desventajas que
presentan en el desarrollo de un aplicación, las cuales pueden ir desde la disponibilidad de
herramientas de desarrollo hasta el costo total del sistema.
4.1 Hardware especializado.
Los procesadores Digitales de Señales (DSP’s) son los principales componentes de
equipos médicos, comunicaciones, entretenimiento e industriales, su hardware e
instrucciones especializados lo hacen eficiente al ejecutar los cálculos matemáticos del
procesamiento digital de señales.
Los DSP tienen hardware e instrucciones especializados para multiplicaciones, múltiples
conexiones del bus a memoria para obtener los operandos a multiplicar en un solo ciclo de
instrucción (operaciones MAC), mientras que los procesadores de propósito general no son
tan eficientes en la ejecución de esos algoritmos [13], pues realizan las multiplicaciones por
medio de series de corrimientos y sumas. La multiplicación acumulativa es útil en los
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
60
algoritmos DSP que involucran el cálculo de productos de vectores, tales como filtros
digitales, correlación, y FFT [16].
4.2 Paralelismo.
El paralelismo es la habilidad de desempeñar varias instrucciones al mismo tiempo. Junto
con el valor de la frecuencia del reloj, determina la velocidad de operación del procesador.
Una diferencia clave entre ambas plataformas (GPP’s y DSP’s) es la forma en que envían y
ejecutan varias instrucciones por ciclo de reloj. En la arquitectura clásica los DSP’s envían
una sola instrucción por ciclo, empaquetando en ella varias operaciones, mientras que los
GPP’s como el Pentium y el PowerPC de Motorola envían varias instrucciones por ciclo de
reloj [30].
Los DSP’s se diseñaron para aplicaciones sensibles al costo y de bajo consumo de potencia.
Su arquitectura está orientada a envíos únicos y es más económica y simple de implementar
que las arquitecturas que envían más de una instrucción por ciclo. El empaquetamiento de
operaciones tiene como desventajas que el conjunto de instrucciones tenga restricciones, ya
que el código de operación (Opcode) es de 16 a 24 bits dependiendo del procesador, y solo
puede ser utilizado con ciertos registros y condiciones dependientes de la arquitectura, lo
que dificulta el crear compiladores de alto nivel eficientes. Además, aumenta la dificultad
de programación en lenguaje ensamblador.
En cuanto a los GPP’s, estos incluyen una sola operación por instrucción y envían múltiples
instrucciones en un ciclo de reloj, proveyendo de este modo el paralelismo. La principal
ventaja de este punto de vista es la velocidad de ejecución, pues los ciclos de búsqueda,
decodificación y ejecución son más simples. Esto permite una mayor frecuencia de reloj y
niveles mayores de paralelismo, código sin tantas restricciones, más portátil y que permite
herramientas de desarrollo más eficientes. La desventaja de este enfoque es que requiere
mayor uso de memoria, costo, tamaño del procesador y consumo de potencia.
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
61
Considerando el desempeño como lo más importante, han surgido DSP’s con arquitecturas
de envíos múltiples, lo que ha permitido el desarrollo de compiladores más eficientes. La
diferencia entre un DSP de envíos múltiples y un GPP es la forma en que realizan los
envíos. Los DSP utilizan una arquitectura llamada VLIW (very long instrucción word) en la
que aumentando el tamaño de la palabra de instrucción hasta 256 bits, se envían múltiples
instrucciones, que se ejecutan en paralelo aumentando el desempeño. En VLIW el
programador de lenguaje ensamblador o el compilador determinan que instrucciones se
ejecutan en paralelo, DSP’s como el StarCore SC140 de Agere Systems y Motorola,
Carmel de Infineon, TigerShark de Analog Devices y el TMS320 de Texas Instruments
utilizan este enfoque.
La arquitectura de múltiples envíos de los GPP’s se denomina Superescalar, las
instrucciones que deben ejecutarse en paralelo son determinadas por hardware especial
dentro del procesador, basado en los recursos disponibles, dependencias de datos,
instrucciones ejecutadas, y otros aspectos. Esto permite mayor compatibilidad de código, y
el desarrollo de compiladores más eficientes. El único DSP disponible con arquitectura
superescalar es el LSI40xx de LSI Logic Inc.
4.2.1 Un punto de vista de programación.
Desde el punto de vista del programador las arquitecturas VLIW son difíciles de programar
en ensamblador porque se deben considerar las múltiples unidades de procesamiento y
organizarlas adecuadamente, esto implica conocer detalladamente la arquitectura del DSP y
que el comportamiento total del sistema esté previamente definido, pues cada nueva adición
significa una nueva revisión de estas asignaciones. Además, casi en la totalidad de los casos
el código no es binariamente compatible, es decir que no es portátil de una plataforma a
otra. Sumado a esto, los compiladores de alto nivel no son 100% eficientes, aunque
actualmente esto está cambiando. La ventaja de este enfoque es la predictibilidad de tiempo
de ejecución; este aspecto es absolutamente deseable en procesamiento digital de señales.
En cambio, la arquitectura Superescalar permite el uso de compiladores altamente
eficientes, código compatible y portátil, sin embargo, es difícil predecir el tiempo de
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
62
ejecución y medir el desempeño de una aplicación en tiempo real, además es difícil
optimizar el software en cuanto a la utilización de recursos [30].
4.2.2 Otras formas de Paralelismo.
Existe otro tipo de paralelismo llamado de Instrucción Simple para Datos Múltiples
(SIMD). Esto consiste en aplicar una misma operación a múltiples conjuntos
independientes de datos, un procesador SIMD puede tratar a los datos en un registro largo
(64 bits) como múltiples datos más pequeños (16 bits), en los cuales desempeña la misma
operación y genera múltiples resultados independientes, esto es útil para operaciones y
algoritmos vectoriales. Este enfoque ha permitido que procesadores como el Pentium III de
Intel y el PowerPC de Motorola sean competitivos a los DSP’s en tareas de procesamiento
digital, como se muestra en la gráfica de tiempos de ejecución de una operación de
Transformada Rápida de Fourier (FFT) de la Figura 4.1 [30].
Figura 4.1 Comparativo de ejecución de FFT realizado entre DSP´s y el Pentium III (Berkeley Design
Technology Inc. ® 2001).
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
63
4.3 Arquitectura de memoria
4.3.1 Organización de la memoria.
La organización del subsistema de memoria tiene un gran impacto en el desempeño, pues
para poder realizar la ejecución de instrucciones en un solo ciclo de reloj se requiere que el
acceso a memoria de los operandos sea eficiente.
Los GPP’s usan la arquitectura llamada Von Neumann (Figura 4.2), que consiste en un
simple banco de memoria al cuál el procesador tiene acceso mediante un conjunto de líneas
de direcciones y datos. Los datos y las instrucciones del programa se encuentran
almacenados en esta memoria, en el caso más simplificado el procesador hace un único
acceso a memoria durante un ciclo de instrucción. En la arquitectura Superescalar se hacen
múltiples accesos a esta memoria durante un solo ciclo de instrucción utilizando memorias
internas (on-chip). Otra forma de lograr el acceso múltiple es utilizando memorias
multipuerto, las cuales tiene líneas de direcciones y datos diferentes que permiten que se
realicen múltiples accesos en paralelo.
Figura 4.2 Arquitectura Von Neuman.
Procesador Central
Bus de Direcciones Bus de Datos
Memoria de Programa y Datos.
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
64
Los DSP’s utilizan una estructura de memoria diferente donde el procesador es conectado
con dos bancos de memoria independientes a través de dos buses, este tipo de arquitectura
se conoce como Harvard. En la arquitectura Harvard original (Figura 4.3), un banco
mantiene los datos y el otro las instrucciones del programa; este concepto se puede extender
ligeramente para permitir que un banco mantenga las instrucciones y datos y el otro
solamente datos, o una banco para instrucciones del programa y dos para datos, lo que se
conoce como Harvard Modificado.
Figura 4.3 Arquitectura Harvard.
4.3.2 Manejo eficiente de la memoria.
Otra característica importante de los DSP es la habilidad de completar múltiples accesos a
memoria en un solo ciclo de instrucción, lo que permite al procesador buscar una
instrucción mientras que simultáneamente busca los operandos y guarda el resultado de una
instrucción previa en la memoria. Para soportar estas características algunos DSP tienen
múltiples circuitos manejadores de buses, memorias multipuerto, y en algunos casos bancos
independientes de memoria. Además, soportan modos de direccionamiento optimizados
para el uso de buffers circulares, FFT’s y otras operaciones.
Procesador Central
Bus de Direcciones 1
Bus de Datos 1
Bus de Direcciones 2
Bus de Datos 2
Memoria de Programa
Memoria de datos
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
65
4.3.3 Manejo de flujos de Entrada-Salida.
Con la finalidad de proveer un sistema de entrada-salida de alto desempeño y bajo costo,
los procesadores DSP incorporan una o más interfaces serie y paralelo especializadas, y
mecanismos de manejo de flujos de I/O tales como el acceso directo a memoria DMA y un
manejo de interrupciones de baja carga, para permitir que las transferencias de datos
procedan con muy poca o ninguna intervención de las unidades computacionales del
procesador.
4.3.4 Lazos de sobrecarga cero.
Los algoritmos DSP, generalmente emplean la mayor parte de su tiempo de procesamiento
en secciones de código que ejecutan repetidamente, es decir en lazos. Por este motivo
muchos procesadores DSP tienen instrucciones especiales para manejo de lazos eficiente.
Es posible implementar un ciclo for-next sin que se requiera ningún ciclo de reloj para
actualizar y probar el contador de lazo.
4.4 Costo.
El mejor procesador para una aplicación es el que cumpla con los requerimientos a un
menor costo. No se debe considerar solamente el costo del procesador sino también el de la
circuitería asociada, memoria, herramientas de diseño y disponibilidad. Los costos varían
dependiendo de la funcionalidad del procesador, de su tiempo de salida en el mercado y por
la cantidad del pedido.
4.5 Otras opciones para sistemas embedded.
Alternativamente al uso de los DSP’s y GPP’s, actualmente han surgido los llamados
Procesadores de Propósito General con capacidades DSP [15], los cuales tienen
características de ambas plataformas, tales como altas velocidades de reloj, ejecución
Superescalar, predicción de saltos de programa, bajo costo, más fáciles de usar que un DSP
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
66
y un desempeño razonable; ejemplos de estos son el SH-DSP de Hitachi, el ARM9E de
Infineon TriCore. Adicionalmente algunos DSP´s actuales cuentan con características de
microcontroladores tales como puertos SCI, SPI, I2C, buses automotrices como LIN y
CAN (ejemplo DSP56F8001 de Motorola). Otras alternativas para sistemas embedded son
el uso de ASIC’s y FPGA’s.
4.6 Consideraciones en el diseño de un comparativo.
El desempeño de un procesador puede medirse de muchas maneras, la forma más común es
midiendo el tiempo en el que desempeña una cierta tarea. También puede hacerse midiendo
el uso de memoria y el consumo de potencia dependiendo de la aplicación, pero
generalmente el factor tiempo es el más utilizado. Existen varias formas de realizar estos
comparativos; la métrica simple, por aplicación y mediante núcleos (kernels) [13].
La medición de métrica simple consiste en la cantidad de millones de instrucciones por
segundo (MIPS); este enfoque es engañoso ya que en las arquitecturas VLIW, se envía una
sola instrucción de varias operaciones en un ciclo de reloj y en Superescalar se envían
múltiples instrucciones de una sola operación. Similarmente, la medición mediante
millones de operaciones por segundo (MOPS) tiene el mismo inconveniente ya que la
complejidad de cada operación varía en cada procesador y para realizar una tarea requieren
de cantidades de operaciones diferentes. Una métrica más es mediante la cantidad de
multiplicaciones acumulativas por segundo (MACS). Sin embargo un DSP no solamente
realiza operaciones MACS e incluso puede realizarlas en paralelo con otras tareas por lo
que no es un indicador confiable del desempeño de un DSP, además de que no reflejan la
cantidad de memoria que requiere el DSP ni el consumo de potencia.
Otra forma de medir el desempeño de un procesador es mediante una aplicación en un
sistema completo tal como un Módem V.90. Sin embargo esta aproximación no es
confiable pues en realidad no se determina el desempeño del DSP sino en conjunto con
otros componentes y podría variar hasta por la habilidad del diseñador y/o programador,
incluso del desempeño de los otros componentes.
Capítulo 4: Comparativo de características entre plataformas PC Y DSP.
67
Finalmente, existe una forma más confiable de medir el desempeño de un procesador, esto
es mediante el uso de secciones de código computacionalmente intenso (kernels) como la
FFT o algoritmos de Filtros de respuesta Finita al Impulso (FIR) [16]. Generalmente se
realiza el programa en ensamblador de forma optimizada, lo que además permite predecir y
hasta simular el tiempo de ejecución del procesador. Adicionalmente, se mide el consumo
de potencia y el uso de memoria del procesador, finalmente se realiza un acumulativo de la
puntuación para determinar el desempeño total. Existen compañías especializadas en
desarrollar este tipo de pruebas y comercializar los resultados, algunos ejemplos son
Berkeley Design Technology, Inc. (BDTI) y EDN Embedded Microprocessor Benchmark
Consortium (EEMBC).
Figura 4.4 Comparativo total realizado entre DSP´s y el Pentium III (Berkeley Design Technology Inc.
® 2004).
La Figura 4.4 muestra un comparativo total realizado por BDTI [21], de algunos DSP’s de
punto flotante contra el Pentium III. En la gráfica se puede apreciar, que no necesariamente
el procesador de mayor frecuencia de operación es el que obtuvo mejor puntuación, por
ejemplo el DSP TigerShark de Analog Devices a 600 Mhz obtuvo mayor puntuación que el
Pentium III a 1.4 Ghz. Generalmente los comparativos incluyen varios aspectos, entre ellos
el consumo de potencia, el área del encapsulado, el costo, operaciones por ciclo de reloj, los
resultados de ejecución de un algoritmo, el tiempo de desarrollo de software y la
disponibilidad de herramientas de desarrollo.
Capítulo 5: Resultados de los Comparativos Realizados.
68
Capítulo 5
Resultados de los Comparativos Realizados.
5.1 Diseño y consideraciones del comparativo.
Se realizó un comparativo2 entre plataformas PC y DSP, utilizando un procesador Athlon
de AMD @ 750 MHz, el cuál era el modelo disponible (no muy reciente pero de buen
desempeño) y el DSP TMS320C6701 de Texas Instruments @ 100 MHz. En el Anexo 1 se
detallan las características de ambas plataformas. Se debe tomar en cuenta que debido a su
arquitectura, la predictibilidad de tiempo de ejecución de algoritmos en procesadores de
propósito general (GPP’s) es impráctica, y el sistema operativo en el caso de las PC’s es
quien maneja los recursos disponibles. En cuanto al DSP TMS320C6701 se debe tener un
conocimiento profundo de la arquitectura y realizar el programa en ensamblador para poder
conocer el desempeño real del dispositivo. Para efectos de este proyecto de tesis estas
consideraciones no son aplicables, ya que el programa fue realizado en C y trasladado a
ensamblador por las utilidades de conversión y optimización de CodeComposer StudioTM.
Otro punto al respecto es el hecho de no contar con las herramientas de software y
hardware necesarias para la operación autónoma del DSP TMS320C6701. Sin embargo
mediante el enfoque de comparación de secciones de código o kernels es posible realizar un
comparativo sencillo del tiempo de ejecución en ambas plataformas. Independientemente
de los resultados mostrados no es posible hacer una afirmación sobre que plataforma es
mejor sobre la otra, ya que esto depende enteramente de la aplicación, el desempeño
deseado, el costo de desarrollo y el costo del producto final. 2 También se utiliza el término benchmark, tomado del idioma inglés y ampliamente utilizado en el ámbito computacional para comparativos y evaluaciones de desempeño de sistemas.
Capítulo 5: Resultados de los Comparativos Realizados.
69
El software empleado para realizar estos comparativos se realizó en Visual C++ 6.0, se
incluyeron las librerías de manejo de hardware de Texas Instruments, mientras que el
código ejecutado en el DSP se realizó en CodeComposer Studio V.2.0, empleando Visual
LinkerTM para la ubicación de las variables en memoria interna y externa del
TMS320C6701.
El comparativo tiene las siguientes consideraciones de operación:
• La operación del TMS320C6701 es mediante la interfase PCI como co-procesador y
no en modo autónomo.
• Exceptuando el sistema operativo y su manejo de interrupciones, no se ejecuta
ningún otro programa además del software del comparativo.
• El proceso de la PC y del DSP (por la naturaleza del modo de operación) son
manejados mediante una Interfase Gráfica de Usuario (GUI) (Figura 5.1).
Figura 5.1 Interfase del programa en la PC utilizado en el comparativo.
• No existe intercambio de datos entre la PC y el DSP en la ejecución del algoritmo,
los datos son locales a la plataforma en las siguientes formas:
o PC: utiliza su propia memoria RAM externa.
Capítulo 5: Resultados de los Comparativos Realizados.
70
o DSP: se tienen dos modalidades, una emplea la memoria IDRAM (Memoria
RAM Interna de datos) esto implica restricciones en la longitud del
períodograma, y la otra utiliza la memoria externa.
Los criterios de evaluación de este comparativo son:
• El análisis de desempeño consistió en la ejecución de 4 secciones de código
(kernels) de la aplicación del Analizador Espectral, FFT, FFT2 , Cumulantes de
2do orden (C2x) y Cumulantes de 3er orden (C3x) con el fin de variar el esfuerzo
computacional realizado (Figura 5.2).
• El tiempo de cálculo (Figura 5.2) se mide con un temporizador con resolución de 10
milisegundos, el cuál inicia junto con el proceso y no con el manejo de la GUI,
actualizaciones de parámetros o inicializaciones de memoria.
• En las gráficas de resultados el tiempo está expresado en segundos teniendo como
máximo 300 segundos, después de este tiempo se considera que la operación no es
aplicable para un comparativo.
Figura 5.2 Ejemplo de tipos de análisis y obtención del tiempo de procesamiento.
• En todas las gráficas mientras más pequeño sea el tiempo de procesamiento, el
desempeño es mejor.
Capítulo 5: Resultados de los Comparativos Realizados.
71
• No se aplican todos los benchmarks al DSP utilizando la RAM interna del DSP
(IDRAM3) como memoria de datos. En el caso de matrices el tamaño máximo es de
64x64 elementos.
• Se utilizan repeticiones de los algoritmos (Figura 5.3) para evaluar la latencia de los
lazos y la eficiencia en la repetición de una tarea. En este proceso no se realiza la
obtención de nuevos datos.
Figura 5.3 Evaluación de la latencia de ciclos, mediante iteraciones del proceso.
• Se realizaron pruebas de la aplicación completa del Analizador Espectral, en las
cuales intervienen factores adicionales como la transferencia de datos de entrada y
resultados entre la memoria del DSP y la memoria de la PC.
5.2 Comparativo PC, DSP y DSP IDRAM para FFT.
Tradicionalmente, el algoritmo de la FFT es el más comúnmente utilizado para
benchmarks. En las pruebas realizadas en este proyecto el código está programado en ANSI
C y está optimizado para potencias de 2. Requiere de un vector de datos complejos con
precisión de punto flotante IEEE 754 y los resultados se colocan en el mismo vector de
entrada. La gráfica de la Figura 5.4 muestra los resultados.
3 Internal data random - access memory, IDRAM, por sus siglas en ingles.
Capítulo 5: Resultados de los Comparativos Realizados.
72
Se observa claramente que en el programa diseñado para la PC el tiempo de ejecución va en
relación directa con la longitud de la FFT, esto se debe a que el manejo de recursos en este
tipo de sistemas es prácticamente lineal.
Figura 5.4 Comparativo con el algoritmo de FFT efectuado 1000 veces.
El mismo algoritmo en la memoria externa del DSP se va haciendo más eficiente a medida
que el tamaño de los datos aumenta. Esto se explica porque los accesos a memoria se
optimizan para bloques grandes y las unidades funcionales pueden trabajar mejor cuando el
cauce de datos está lleno. El algoritmo con los datos en memoria interna presenta un
comportamiento constante ya que no se hacen transferencias a memoria externa. En general
se observa que la FFT no es tan intensiva computacionalmente hablando, ya que con 1000
iteraciones los tiempos de respuesta se mantienen relativamente cortos.
5.3 Comparativo PC, DSP y DSP IDRAM para FFT2.
La doble Transformada de Fourier (FFT2) es un algoritmo mas intenso, ya que involucra la
transpuesta compleja de la transformada de Fourier de las columnas de una matriz, a la que
se le ha aplicado la transpuesta compleja de la transformada de Fourier de las columnas,
Capítulo 5: Resultados de los Comparativos Realizados.
73
dando como resultado una nueva matriz de datos complejos de punto flotante. Una primera
aproximación se muestra en la Figura 5.5. Ejecutando 10 veces este algoritmo produce
resultados coherentes con las pruebas con la FFT, aunque para datos cortos no se aprecia
una diferencia notable.
Figura 5.5 Comparativo con el algoritmo de FFT2 efectuado 10 veces.
Figura 5.6 Comparativo con el algoritmo de FFT2 efectuado 100 veces.
Capítulo 5: Resultados de los Comparativos Realizados.
74
Figura 5.7 Comparativo con el algoritmo de FFT2 efectuado 10,000 veces.
Sin embargo, al realizar un mayor número de iteraciones, el DSP proporciona un mejor
desempeño que la PC como se muestra en las gráficas para 100 y 10,000 repeticiones
(Figura 5.6 y Figura 5.7). Las gráficas también confirman que para datos cortos el
desempeño no es óptimo en los DSP’s.
5.4 Comparativo PC, DSP y DSP IDRAM para Cumulantes de 2do Orden
El cálculo de Cumulantes de 2do orden (ec. 2.10), involucra 2 lazos de ejecución anidados
y corrimientos circulares en vectores. La primera gráfica en la Figura 5.8, muestra que para
una ejecución de esta función el tiempo de procesamiento del DSP es aproximadamente 2.3
veces mayor que el de la PC.
Capítulo 5: Resultados de los Comparativos Realizados.
75
Figura 5.8 Comparativo con el algoritmo de Cumulantes de 2do Orden C2x efectuado 1 vez.
Figura 5.9 Comparativo con el algoritmo de Cumulantes de 2do Orden C2x efectuado 10 veces.
Capítulo 5: Resultados de los Comparativos Realizados.
76
Al ejecutar el algoritmo 10 veces, la diferencia es de aproximadamente el doble a favor de
la PC (Figura 5.9), y para 100 repeticiones la PC es más lenta hasta 3.8 veces
aproximadamente (Figura 5.10) para vectores de datos mayores a 256 elementos. Se
realizaron pruebas para 1000, 10,000 y 100,000 iteraciones y las tendencias de los
resultados fue hacia un mejor desempeño del DSP con el aumento de las iteraciones.
Figura 5.10 Comparativo con el algoritmo de Cumulantes de 2do Orden C2x efectuado 100 veces.
5.5 Comparativo PC, DSP para Cumulantes de 3do Orden.
Este algoritmo es el más intensivo en cuanto uso del CPU; desempeña tres ciclos anidados
con corrimientos circulares sobre una matriz de datos. En la primera gráfica (Figura 5.11),
para una sola ejecución la PC resulta con un mejor desempeño para todos los tamaños de
matrices, sin embargo esta ventaja se va acortando a medida que el proceso se repite
(Figura 5.12). Para 100 repeticiones el desempeño con el DSP es por mucho mayor al de
usar solamente la PC (Figura 5.13).
Capítulo 5: Resultados de los Comparativos Realizados.
77
Figura 5.11 Comparativo con el algoritmo de Cumulantes de 3er Orden C3x efectuado 1 sola vez.
Figura 5.12 Comparativo con el algoritmo de Cumulantes de 3er Orden C3x efectuado 10 veces.
Capítulo 5: Resultados de los Comparativos Realizados.
78
Figura 5.13 Comparativo con el algoritmo de Cumulantes de 3er Orden C3x efectuado 100 veces.
5.6 Comparativo final de aplicación del Analizador Espectral entre PC y DSP.
Con el fin de complementar los comparativos realizados se desarrollaron pruebas con la
aplicación completa del Analizador Espectral. Con un vector de 1000 datos se hizo una
variación de tamaños del periodograma, tanto para la Densidad Espectral de Potencia
(PSD) como para el Biespectro (BIS), en los métodos directo e indirecto.
Para la PSD por el método directo, en la Figura 5.14 se observa que, al igual que en el caso
de la FFT, a medida que la cantidad de datos utilizados aumenta, el DSP mejora su
desempeño. Esta similitud es un resultado lógico debido a que el método directo está
basado en la obtención de la FFT de los datos de entrada.
En el caso de la PSD por el método indirecto, el cual involucra el cálculo de cumulantes de
segundo orden, se puede ver que en el caso del DSP existe cierto compromiso entre la
cantidad de datos y el número de repeticiones del proceso, pues el tamaño del
periodograma y la cantidad de repeticiones del proceso son inversamente proporcionales.
Capítulo 5: Resultados de los Comparativos Realizados.
79
Mientras que en la aplicación de la PC el resultado es proporcional al tamaño del
períodograma (Figura 5.15).
Figura 5.14 Comparativo del Analizador Espectral calculando la PSD mediante el método directo.
Figura 5.15 Comparativo del Analizador Espectral calculando la PSD mediante el método Indirecto.
Capítulo 5: Resultados de los Comparativos Realizados.
80
Figura 5.16 Comparativo del Analizador Espectral calculando el Biespectro mediante el método
directo.
Figura 5.17 Comparativo del Analizador Espectral calculando el Biespectro mediante el método
indirecto.
Para el Biespectro obtenido por ambos métodos el comportamiento es semejante, involucra
la cantidad de datos manejados y el número de repeticiones del proceso. En general el
manejo de datos desde la PC para cada nueva sección puede ser un factor que provoque el
Capítulo 5: Resultados de los Comparativos Realizados.
81
vaciado del cauce de instrucciones, y por esto el DSP sea más lento. Hay que tomar en
cuenta que la PC tiene memoria caché donde almacena las instrucciones a ejecutar y que el
manejo de memoria se encuentra optimizado por hardware de acceso directo (DMA). La
Figura 5.16 y la Figura 5.17 muestran los resultados para el Biespectro.
5.7 Conclusiones.
Para la gran mayoría de las aplicaciones, donde se utilizan algoritmos lineales, y las
transferencias de datos de y hacia memoria externa sean frecuentes, un sistema basado en
una computadora tipo Pentium III con características aceptables, es más eficiente.
De acuerdo a los fundamentos teóricos de los DSP y las pruebas realizadas se puede
concluir que en cierto tipo de procesos de cálculo intenso, repetitivo y sin contar el efecto
de la transferencia de datos, como en el caso de los filtros digitales, el DSP tiene un mejor
desempeño.
Para la aplicación del Analizador Espectral, el programa para PC presentó un desempeño
más alto. La diferencia con algunos de los resultados de los comparativos presentados y el
programa completo radica principalmente en factores como las transferencias desde la
memoria de la PC a la memoria externa del DSP, el poleo de banderas, que la ejecución de
algoritmos no repetitivos provoca un vaciado del cauce de instrucciones, etc.
Como se mencionó en el capitulo 4, actualmente los procesadores de propósito general
están siendo diseñados para resolver más eficientemente tareas de procesamiento digital sin
perder su funcionalidad y versatilidad.
En términos prácticos, la elección de la plataforma de procesamiento adecuada para un
sistema dependerá específicamente de la aplicación. Algunos criterios útiles para la
elección son: el tipo de aplicación, la cantidad de memoria necesaria, el tipo de interfase
final al usuario y finalmente el costo.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
82
Capítulo 6
Caso de Aplicación: Detección de Fallas en un
Motor de Inducción Trifásico.
6.1 Detección de fallas en un motor de inducción trifásico.
La mayoría de la literatura acerca del uso del Biespectro como un medio para la detección
de fallas en motores de inducción, tiene como base el análisis de señales de vibración del
estator [7, 8, 9]. Por otro lado, las investigaciones que reportan el uso de la corriente del
estator para la detección de fallas en este tipo de motores se enfocan en fallas mecánicas
[32], tales como giro excéntrico, curvatura de la flecha, ruptura de barras del rotor, ó
vibraciones anormales por falta de lubricación en los acoplamientos mecánicos, entre otras.
Con el objeto de validar la utilidad de los algoritmos de espectros de alto orden (HOS) en
detección de fallas, se implementó el esquema de experimentación que muestra la Figura
6.1. En las pruebas realizadas en el presente trabajo se pretende encontrar una relación entre
las variaciones de la corriente del estator en cada una de las fases con la ocurrencia de fallas
de naturaleza eléctrica, como son las fallas de alimentación asimétrica. Adicionalmente se
realiza el análisis de la falla mecánica de rotor bloqueado.
Las pruebas se realizaron en el laboratorio de Electrónica de Potencia del Centro Nacional
de Investigación y Desarrollo Tecnológico (cenidet), con el apoyo del M.C. Jesús Aguayo.
Se tomaron mediciones de corriente en el estator bajo diferentes condiciones de carga, tanto
para la condición de referencia, como para las condiciones de falla.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
83
Figura 6.1 Esquema general de las pruebas experimentales.
6.1.1 Descripción de la técnica de monitoreo de fases.
El motor empleado en las pruebas es un motor de inducción de 2 polos, del tipo jaula de
ardilla, con alimentación trifásica de 48 VAC a 60 Hz, con velocidad nominal de 1800 rpm,
en conexión Y. La variación de la condición de carga es controlada, mediante un generador
de DC acoplado al rotor.
La adquisición de datos se realizó mediante un osciloscopio digital Tektronix TDS-784.
Para todas las pruebas de naturaleza eléctrica realizadas se consideró la falla en la fase 3, y
las mediciones se realizaron en todas las fases. Debido a la congruencia de los resultados,
sin perdida de generalidad solo se mostrarán las mediciones obtenidos para la fase 2.
Se coloca una punta de corriente a cada una de las fases, cuidando que se encuentre
correctamente calibrada. Se ajustan los parámetros para la adquisición de datos por medio
del osciloscopio. Se toman mediciones de corriente bajo diferentes condiciones de carga
tanto para la condición de referencia como para las condiciones de falla y se almacenan en
forma digital en un disco magnético de 3½” para computadora personal IBM o compatible.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
84
Las características para las mediciones efectuadas en el dominio del tiempo y en el dominio
de la frecuencia se presentan en la Tabla 6-1.
Tabla 6-1Características en tiempo y frecuencia de los vectores de datos.
Formato: Mathcad.
Número de puntos: 5000 en 10 divisiones.
Resolución en tiempo: 100 ms /división.
Tiempo total de muestreo: 1 segundo.
Escala: 5 A/división.
Trigger X: 30 %.
Trigger Y: Variable.
Frecuencia de muestreo: 5000 Hz.
Resolución en frecuencia: 1Hz.
6.1.2 Operación normal del motor trifásico.
Para efectos de las pruebas realizadas se utiliza una tensión de alimentación menor a la
máxima nominal, a fin de evitar posibles daños a los equipos al provocar las diferentes
condiciones de falla. Para todas las pruebas realizadas se considera la condición de carga
máxima una carga de 776 N-m. en la Tabla 6-2 se muestran los valores de los parámetros
eléctricos del motor en operación normal sin carga y a plena carga.
Tabla 6-2 Parámetros eléctricos del motor en operación normal sin carga.
Sin Carga. Carga de 76 N-m.
Fase 1 Fase 2 Fase 3 Fase 1 Fase 2 Fase 3
Voltaje de fase (V rms) 25.9 26.1 26.0 25.9 26.1 26.0
Corriente de fase (A rms) 5.31 5.29 5.40 6.93 6.98 6.95
La Figura 6.2 muestra las corrientes de fases en operación normal, para las condiciones sin
carga y con carga de 776 N-m.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
85
a ) Sin carga.
b) Con carga de 776 N-m.
Figura 6.2 Corrientes del motor en operación normal.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
86
6.2 Condición de Referencia
6.2.1 Condición de Referencia sin carga.
Para la condición de operación normal la función de Densidad Espectral de Potencia (PSD)
de la corriente (Figura 6.3), muestra que la potencia se encuentra concentrada en 60 Hz, y
que los armónicos y otras posibles frecuencias en el espectro son de magnitud
despreciable.
Figura 6.3 Densidad espectral de potencia de la operación normal sin carga.
Entre los resultados generales obtenidos se encuentra el hecho de que la Densidad Espectral
de Potencia (PSD) no provee información suficiente para la detección de fallas en los casos
experimentales que se consideraron, por tal motivo no se presentarán todas las gráficas de
PSD, aún cuando para propósitos de validación fueron obtenidas.
Por otro lado, el Biespectro (BIS) de esta señal, mostrado en la Figura 6.4, nos indica un
pico de magnitud dominante en el cruce de frecuencias (60,60), que se refiere a un
acoplamiento de la frecuencia fundamental con sí misma; en los armónicos de la
fundamental las magnitudes son insignificantes.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
87
Figura 6.4 Biespectro de la operación normal sin carga.
Para sintetizar, se presentarán las gráficas de forma que simulen un corte del Biespectro en
2-D, y con magnitud normalizada, esto hará más simple el análisis y enfatizará los
resultados obtenidos. La Figura 6.5 muestra estos cortes para el Biespectro y el Biespectro
modificado de la condición de referencia.
a) Operación normal sin carga (Biespectro)
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
88
b) Operación normal sin carga (Biespectro Modificado).
Figura 6.5 Condiciones de operación normal cortes de 2D del Biespectro y Biespectro Modificado.
6.2.2 Condición de Referencia para carga de 776 N-m.
A diferencia de la prueba anterior, se tiene la condición de carga máxima acoplada al
motor.
Figura 6.6 PSD para la condición de operación normal para carga de 776 N-m.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
89
La Figura 6.6 muestra la PSD para esta condición de referencia. Del mismo modo, que para
la condición sin carga, la frecuencia fundamental se encuentra en 60 Hz, solamente
aumenta la magnitud, debido a la mayor cantidad de corriente demandada por el motor.
a) Biespectro en operación normal, con carga de 776 N-m.
b) Biespectro Modificado, operación normal, con carga de 776 N-m.
Figura 6.7 Cortes 2-D Para la condición de operación normal para carga de 776 N-m.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
90
En las graficas de la Figura 6.7 se muestran los resultados del Biespectro y el Biespectro
modificado para la condición de carga completa. Para el biespectro, se observa que
independientemente de la condición de carga, la potencia se concentra en (60,60). Usando
el Biespectro modificado (BIS_E), los armónicos 4° y 5° tienen magnitudes del 6.6% y del
17 % respectivamente. Es importante recordar del capitulo 2, que esto significa que por
causa de la dependencia de fase, las magnitudes relativas en estos valores de frecuencia
aumentaron.
6.3 Fallas Eléctricas.
6.3.1 Desbalance de tensión entre fases.
El desbalance de las tensiones de alimentación de un motor puede producir fuertes
desequilibrios en corriente que conducen a una elevación de temperatura de los devanados
con daños del aislamiento. Un desbalance en la tensión del 1% puede producir diferencias
del 6 a 10% en la corriente [33].
Cuando las tensiones aplicadas a un motor no son iguales, se produce un desequilibrio de
corrientes en el estator. Un pequeño porcentaje de desequilibrio de la tensión provoca un
gran desequilibrio de corrientes. Consecuentemente, la elevación de temperatura del motor
funcionando con una carga dada y con un desequilibrio de tensiones, será mayor que en el
caso que esté funcionando con las mismas condiciones de carga pero con tensiones
equilibradas. El efecto de tensiones desequilibradas en un motor polifásico de inducción es
equivalente a introducir una tensión de secuencia negativa que tiene sentido contrario de
rotación, que produce un flujo en el entrehierro, que tiende a producir altas corrientes.
Para la condición de desbalance eléctrico, se conectan dos fases directamente a la fuente de
alimentación, mientras que la tercera se conecta a través de un arreglo de contactos para
introducir una resistencia de 15 Ω a 80 W mediante un interruptor, simulando la falla de
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
91
desbalance de la tensión de alimentación trifásica. La Figura 6.8 muestra las corrientes de
fases para esta situación, para las condiciones sin carga y con carga de 776 N-m.
a) Corrientes trifásicas del motor en desbalance de fase sin carga.
b) Corrientes trifásicas del motor en desbalance de fase con carga de 776 N-m.
Figura 6.8 Corrientes trifásicas del motor en desbalance de fase.
La Figura 6.9 muestra la PSD de esta condición de falla, para los casos sin carga y con
carga de 776 N-m. Se observa que la PSD no es capaz de detectar el desbalance de fase, y
es muy similar a la de condición de operación normal.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
92
a) Densidad de Potencia Espectral en desbalance de tensión (sin carga).
b) Densidad de Potencia Espectral en desbalance de tensión (carga de776 N-m).
Figura 6.9 PSD para la condición de operación normal para carga de 776 N-m.
Aplicando el biespectro y el biespectro modificado a esta condición de falla se obtuvieron
los siguientes resultados:
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
93
6.3.1.1 Condición sin carga.
Para el caso sin carga, los resultados se observan cordilleras de acoplamientos de 60 Hz
(Figura 6.10), además el pico de la fundamental con una baja frecuencia tal como (60,1) se
hace muy significativo. No existe una diferencia significativa entre los resultados del BIS y
el BIS_E, esto se debe a que los acoplamientos de frecuencia no son significativos.
Para esta condición de falla no se identificaron patrones típicos de falla que pudieran ser
determinantes, aunque no se reporta, también se realizaron pruebas a cargas bajas, sin que
se apreciaran diferencias notables con respecto a las graficas de la Figura 6.10.
a) Fase 2 Desbalance de tensión sin carga (BIS).
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
94
b) Fase 2 Desbalance de tensión sin carga (BIS_E).
Figura 6.10 Corte 2-D del biespectro para la condición de desbalance de fase sin carga.
6.3.1.2 Condición con carga de 776 N-m.
Las pruebas anteriores también se realizaron a plena carga, en esta condición el empleo del
BIS_E produce mejores resultados en cuanto a la magnitud relativa de las 2°, 3° y 4°
armónicas, mientras que en el BIS apenas alcanzan el 5%. Para el BIS_E por ejemplo la
segunda armónica tiene un valor de 32% y 42% en las fases que no reciben directamente el
desbalance. Se observa la presencia de las cordilleras alrededor de 60 Hz (Figura 6.11).
En las figuras 6.11 c) y d)
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
95
a) Fase 2 Desbalance de tensión, carga de 776 N-m. (BIS).
b)Fase 2 Desbalance de tensión, carga de 776 N-m. (BIS_E).
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
96
c) Vista superior, acercamiento que muestra las componentes principales.
d) Vista superior, acercamiento en el par de frecuencias (60,60).
Figura 6.11 Corte 2-D del biespectro, condición de desbalance de fase para carga de 776 N-m.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
97
6.4 Falla Mecánica.
6.4.1 Rotor Bloqueado.
Un deterioro térmico importante del aislamiento de los devanados de un motor es causado
normalmente por corrientes altas en los devanados como consecuencia del bloqueo del
rotor. Excesivos arranques o cambios de sentido de rotación (frenado contracorriente)
también puede producir este tipo de fallas.
Para la condición de rotor bloqueado se selecciona un valor de voltaje del generador de d.c.
para el que la carga sea suficientemente grande, y se varia el valor de voltaje de
alimentación desde 0 v a.c. hasta el punto donde la corriente alcance su valor de operación
nominal (Figura 6.12), mientras que el rotor permanece inmóvil. La PSD de esta condición
(no se muestra) es similar a la de operación normal, a pesar de la falla, la forma de onda de
la corriente sigue comportándose igual que en la condición de referencia.
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
98
Figura 6.12 Corrientes trifásicas para la condición de rotor bloqueado.
El análisis de señales de la condición de bloqueo de rotor, es uno de los más inciertos bajo
este esquema de análisis, la única diferencia apreciable con respecto a la condición normal,
es el surgimiento del acoplo del par de frecuencias (60,1) y de una ligera cordillera de 60
Hz con el eje de frecuencias f2 hasta 60 Hz (Figura 6.13). Esto es a causa de la similitud las
formas de onda de la corriente en operación normal y la condición de falla de rotor
bloqueado.
a) Fase 2 rotor bloqueado (BIS).
Capítulo 6: Caso de Aplicación: Detección de fallas en un motor de Inducción Trifásico.
99
b) Fase 2 rotor bloqueado (BIS_E).
Figura 6.13 Condición de rotor bloqueado.
6.5 Conclusiones.
La PSD no provee información suficiente para identificar los patrones de fallas electricas
mediante la técnica de monitoreo de las corrientes de fase en motores trifásicos.
El uso del Biespectro en análisis de las corrientes de fase provee una técnica no intrusiva
para la detección de fallas en motores de inducción.
El biespectro provee información del comportamiento en frecuencia de la corriente en
condiciones de falla, que permite identificar claramente la condición de desbalance de
tensión de alimentación en un motor trifásico.
El Biespectro Modificado, permite identificar con mayor facilidad los acoplamientos de
frecuencias que solamente con el uso del biespectro.
Capítulo 7: Aportaciones del proyecto y trabajos futuros.
100
Capítulo 7
Aportaciones del proyecto y trabajos futuros.
7.1 Aportaciones.
Se desarrolló una herramienta de análisis basada en la funciones de PSD y Biespectro, útil
en diferentes aplicaciones tanto en identificación de sistemas, como en detección de fallas.
Se realizaron 3 modelos de esta herramienta, todas con la misma funcionalidad, pero con
características propias. La primera se desarrolló en Matlab®, con fines más didácticos,
contiene funciones abiertas para su modificación y estudio. Las otras dos son aplicaciones
en Visual C++, instalables para su ejecución en una computadora personal IBM compatible
y en un DSP, respectivamente.
Se desarrollaron funciones de procesamiento de espectros de alto orden, manejo de
matrices reales y complejas, y funciones de ventanas en el dominio del tiempo. El código
está desarrollado en ANSI C, es 100 % compatible con cualquier compilador y se puede
utilizar en otras aplicaciones, incluyendo C para microprocesadores.
Se realizaron manuales de usuario de las aplicaciones, para facilitar su uso por otros
investigadores. En éstos se detallan los requisitos de instalación y el manejo de sus
características principales.
Se deja un precedente de su aplicación a señales de sistemas reales, complementando la
reciente línea de investigación en cenidet acerca de los espectros de alto orden.
Capítulo 7: Aportaciones del proyecto y trabajos futuros.
101
En el caso de aplicación para detección de fallas en motores de inducción, se identificó al
menos un patrón de condición de falla eléctrica mediante la técnica de monitoreo de fases.
7.2 Trabajos futuros.
Implementación del Analizador Espectral “en línea”, adquiriendo los datos mediante el
códec de audio de la tarjeta DSP TMS320 C6701, o por medio de hardware
específicamente diseñado para adquisición de datos.
Adaptación de las características de manejo de gráficos del Analizador Espectral con otros
componentes de software como el TeeChart de Steema Software, o algún componente de
uso gratuito.
Impresión de las gráficas del biespectro y PSD para su análisis, desde la interfase del
Analizador Espectral.
Realización de una versión mínima del Analizador Espectral para MS DOS, sin manejo de
gráficas, con capacidad de exportar los resultados a Matlab®.
Uso de sensores de vibración en conjunto con el Analizador Espectral, para el monitoreo de
condiciones de fallas mecánicas en motores de inducción.
Capítulo 8: Conclusiones.
102
Capítulo 8
Conclusiones.
A continuación se presentan las conclusiones correspondientes a los 3 puntos principales
del objetivo de esta Tesis, como se establece en el capítulo 1. De forma general los
objetivos fueron cumplidos con el desarrollo del Analizador Espectral, a partir de las
pruebas y comparativos realizados mediante esta herramienta. De forma particular:
En la práctica, de la programación y validación de los algoritmos de PSD y BIS se
concluye lo siguiente:
o El software existente para análisis espectral es escaso, complejo y muy
limitado en opciones de manejo. Esto justifica el desarrollo de una
herramienta de software específica, que implemente los principales
algoritmos de análisis espectral como la PSD y el Biespectro.
o Una Herramienta de Software con una interfase de usuario amigable provee
grandes ventajas, permite que los esfuerzos de los investigadores se
concentren en el proceso en sí y no en cómo utilizar el software.
o El esquema de funcionamiento planteado al inicio de este proyecto se
materializó con el desarrollo del Analizador Espectral. Los tres modelos
realizados cumplen con adquisición de archivos, procesamiento mediante
funciones HOS, cuentan con una interfase de usuario, permiten el manejo de
gráficas y pueden almacenar los resultados en disco para su uso posterior.
Capítulo 8: Conclusiones.
103
o El tiempo invertido en el desarrollo de una aplicación en un lenguaje de alto
nivel compilado como C/C++, se justifica sobre el uso de lenguajes o
paquetes interpretados como Matlab® ó Java. Los resultados de tiempo de
ejecución son un buen parámetro de desempeño inversión-beneficio.
o El uso de componentes de software como ActiveX, OpenGL, utilidades y
librerías para manejo de gráficos, es una mejor opción que desarrollarlas
cuando se deben obtener resultados en un tiempo relativamente corto.
Los comparativos realizados entre plataformas PC y DSP proporcionan las
siguientes conclusiones:
o La diferencia de desempeño entre plataformas de procesamiento PC y DSP
es cada vez menor. Los procesadores de propósito general ahora realizan
mejor las tareas DSP que en el pasado, gracias a que sus arquitecturas
implementan características de los procesadores dedicados, como el
paralelismo y el uso de hardware especializado.
o Por otro lado los DSP´s han evolucionado ganándole terreno a los
microcontroladores, esto se ha logrado incluyendo módulos de
comunicaciones, convertidores ADC y DAC, entre otros, haciendo la
interconexión con el mundo analógico sea más eficiente.
o En los comparativos realizados se observa que los DSP’s son efectivos en la
realización de tareas computacionalmente intensas y repetitivas, lo que
mejora bajo ciertas consideraciones como el flujo de datos por hardware
hacia su memoria. Por ejemplo, podemos citar un ecualizador en línea, que
utilice un DSP con un codec de audio.
Capítulo 8: Conclusiones.
104
o En el comparativo de la aplicación final de Analizador Espectral, el modelo
para PC presenta un mejor rendimiento que el que utiliza al DSP para
realizar el procesamiento. Esto se explica por el hecho de que el cauce de
instrucciones del DSP no se utiliza en forma óptima. Además, las
transferencias de bloques de memoria entre dispositivos consumen tiempo
adicional a la ejecución del cálculo.
o Una ventaja del uso del DSP es la posibilidad de implementar el proceso “en
línea”. Se debe ser cuidadoso para ello, pues como se mencionó, existen
limitantes importantes del manejo de memoria.
o Una opción de implementación del esquema en línea puede hacerse
considerando 3 secciones de memoria independientes, una para de entrada
de datos, una sección de procesamiento y una sección de salida.
En el caso de aplicación a sistemas reales se obtuvieron las siguientes conclusiones:
o En el caso de detección de fallas con el Biespectro en motores de inducción
mediante análisis de las corrientes de fases, la PSD no provee información
suficiente para la identificación de sistemas, es necesario el uso de los
espectros de alto orden, como el biespectro.
o Usando el Biespectro Modificado, que refleja en la magnitud las
dependencias de la fase, es posible identificar ciertos patrones relacionados
con fallas eléctricas, como el desbalance de tensión de alimentación.
o En el caso de falla mecánica, no se pudo determinar un patrón característico
mediante el BIS. Se podrían obtener mejores resultados adquiriendo los
datos con sensores piezo-eléctricos situados en la carcaza del motor.
Capítulo 8: Conclusiones.
105
Finalmente, este proyecto demuestra que el incluir conocimientos de diferentes disciplinas
permite el desarrollo de herramientas más útiles y versátiles. En este caso la sinergia de las
estadísticas de alto orden, con el manejo de sistemas digitales y lenguajes de programación
produjo como resultado el Analizador Espectral.
106
Referencias
[1]. J. M. MENDEL “Tutorial on Higher-Order Statistics (Spectra) in Signal
Processing and System Theory: Theoretical Results and some Applications”
(EN: Proceedings of the IEEE, Vol. 79, (3), March 1991) pp 278-281,296-298.
[2]. NIKIAS C. [and] Raghuveer M. “Bispectrum Estimation: A Digital Signal
Processing Framework” (EN: Proceedings of the IEEE, Vol. 75, (7), July 1987)
pp. 869-873,883-884.
[3]. MARCO OLIVER SALAZAR, “Parametric Estimation of High Order Spectra
using cumulants”. (PHD Thesis; England, University of Sheffield, 1990) pp. 1-8.
[4]. HINICH. M. [and] Wilson G., “Detection of Non Gaussian Signals in Non-
Gaussian Noise using the Bispectrum” (EN: IEEE Transactions on Acoustics,
Speech, and signal processing, Vol. 38, (7), July 1990) pp.1126.
[5]. POWERS E. [and] Miksad R.W. “Polyspectral measurement and analysis of
nonlinear wave interactions” (EN: Proceedings on Systems on Nonliner Wave
Interactions in Fluids, Dec. 1987) pp. 9 y10.
[6]. NEIL A. [and] Penman J. “Induction Machine condition monitoring whit Higher
Order Spectra” (EN: IEEE Transactions On Industrial Electronics, Vol. 47, No. 5,
Oct. 2000).
[7]. CHOW T. W. [and] Hong-Zhou. Tan. “HOS-Based Nonparametric and
Parametric Methodologies for Machines Fault Detection” (EN: IEEE
Transactions on Industrial Electronics, Vol. 47, (5) October 2000) pp.1051, 1052.
[8]. MOHAMED H.[;] Vieira M., [and] Theys C. “Induction Motors’ Faults
Detection and Localization Using Stator Current Advanced Signal Processing
107
Techniques” (EN: IEEE Transactions On Power Electronics, Vol. 14, No. 1, Jan.
1999).
[9]. H. MOHAMED, “A review of induction motors signature analysis as a medium
for faults detection” (EN: IEEE Transactions on Industrial Electronics, Vol. 47,
(5), October 2000) pp.984-988.
[10]. MATHWORKS Inc. [The]. “Signal Processing Toolbox User’s Guide” (Version
5, 1988 – 2000 Copyright ©). www.Mathworks.com.
[11]. www.ant.uni-bremen.de/HOSHOME/faqs/index.html
[12]. GOPAL SUNDARAMOORTHY, Raghuveer M.R. “Bispectral reconstruction
of signals in Noise: Amplitude Reconstruction Issues” (EN: IEEE Transactions
on Acoustics, Speech, and Signal Processing, Vol.38, No, 7, July 1990) pp1297,
1304.
[13]. BERKELEY DESIGN TECHNOLOGY INC., “Separating Reality from Hype
in Processor’s DSP Performance” (EN: Embedded Systems Conference March
2002). www.bdti.com.
[14]. BIER J., “Alternatives to DSP. What and Why?” (EN: Berkeley Design
Technology Inc. ® Conference, Cambridge, UK, May, 2003). www.bdti.com.
[15]. BERKELEY DESIGN TECHNOLOGY INC., “Processors whit DSP
capabilities: Which is the best?” (EN: Embedded Systems Conference, March,
2002). www.bdti.com.
[16]. BERKELEY DESIGN TECHNOLOGY INC., “Evaluating DSP Processors
Performance” (White Paper, 1997- 2000). www.bdti.com.
108
[17]. RODRIGUEZ NAVARRO, JULIO. “Procesamiento digital de señales de
vibración con fines de diagnostico”, Tesis de Maestría en Ingeniería Mecatrónica,
cenidet, México, 2002.
[18]. TELLEZ ANGUIANO, Adriana “Desarrollo de algoritmos basados en DSP
para el procesamiento de señales de vibración”, Tesis de Maestría en Ingeniería
Electrónica, cenidet, México, 1998.
[19]. T. Subba Rao “An Introduction to Bispectral Analysis and Bilinear Time
Series Models” Ed. Springer-Verlag, New York Berlín Heidelberg Tokyo. Cap. 1.
[20]. ALAN. V. OPPENHEIM “Tratamiento de Señales en Tiempo Discreto”
(Madrid, España,2ª. Ed.; Prentice Hall).
[21]. IFEACHOR C., “Digital Signal Processing. A practical Approach”. (Ed.
Addison Wesley, 1993) pp. 577, 578.
[22]. SWAMI A., Mendel J. [y] Nikias C. L. “Higher Order Spectral Analysis
Toolbox, For Use with Matlab ®” (1984 – 1988 Copyright ©).
[23]. ERDEM A. Tanju, “A nonredundant set for the bispectrum of 2-D signals”
(EN: IEEE Transactions, 1993) pp. IV-188-IV-191.
[24]. ARTHUR N. [and] Penman J. “Induction Machine Condition monitoring with
Higher Order Spectra” (EN: IEEE Transactions on Industrial Electronics, Vol. 47,
(5), October 2000) pp 1031-1037.
[25]. NATIONAL INSTRUMENTS, “Measurement Studio Evaluation Guide”
(Austin Texas, August 2001, Part Number 350836A-01).
109
[26]. Página principal de Steema Software. www.steema.com. [Consulta Septiembre
2004]
[27]. TEXAS INSTRUMENTS, “TSM320C6201/6701 Evaluation Module User´s
Guide” (Revisión F, Agosto 2002).
[28]. TEXAS INSTRUMENTS, “TSM320C6201/6701 Evaluation Module Technical
Reference” (Diciembre 1998).
[29]. TEXAS INSTRUMENTS, “TSM320C6201/6701 Peripherals Reference
Guide” (Revisión D, Febrero 2001).
[30]. EYRE J., “The Digital Signal Proccessing Derby” (EN: IEEE Spectrum, June,
2001) pp. 62-68.
[31]. BERKELEY DESIGN TECHNOLOGY INC., “BDTIMark2000 Scores for
Packaged Processors” (Updated: May 2004). www.bdti.com.
[32]. SCHOEN R. R., Habetler T. G., Kamran F. [and] Barthel R. G., “Motor Bearing
Damage Detection Using Stator Current Monitoring” pp. 110 -116.
[33]. V. CECCONI, A. Dell'Aquila, S. Nuccio, G. Ricco Galluzzo, L. Salvatore, C.
Tassoni “Motori asincroni per azionamenti: caratterizzazione,
standardizzazione e diagnostica” - L'Enegia Elettrica - N. 10 - 1989.
Anexo 1. Características de las plataformas utilizadas.
110
Anexo 1
Características de las plataformas PC y DSP
empleadas.
En este anexo se presentan brevemente las características de los equipos utilizados en el
desarrollo de este tema de tesis, a fin de que se pueda lograr una mayor comprensión de los
resultados presentados en los comparativos.
A1.1 DSP TMS320C6701 de Texas Instruments.
El módulo de evaluación TMS320C6X (Figura A 1.1), es una plataforma de propósito
general de bajo costo, para el desarrollo, análisis y prueba de algoritmos y aplicaciones de
procesadores digitales de señales (DSP) ‘C6X, interactuando con módulos periféricos de
memoria, comunicaciones y adquisición de datos, como se muestra en el diagrama a
bloques en la Figura A 1.2. Cuenta con software de interfase para programación de
aplicaciones (API por sus siglas en inglés) para el manejo del hardware. La información del
TMS320C6X EVM y del DSP 6701 fue tomada en su totalidad de [1], [2] y [3].
Anexo 1. Características de las plataformas utilizadas.
111
Figura A 1.1Módulo de evaluación EVM TMS320C6X.
A1.1.1 Características del modulo de evaluación.
Figura A 1.2 Diagrama a bloques del EVM TMS320C6X.
Anexo 1. Características de las plataformas utilizadas.
112
El módulo de evaluación TMS320C6X EVM tiene las siguientes características:
• DSP de punto flotante ‘C6701 compatible en código al DSP de punto fijo ‘C6201
• Selección de cuatro frecuencias de reloj.
• Interfase PCI con capacidad maestro / esclavo
• 1 banco de 64Kx32 bits de memoria RAM estática 133 MHz (SBSRAM1).
• 2 Bancos de 1M x 32 bits de RAM dinámica sincrónica a 100 MHz (SDRAM2).
• Acceso a toda la memoria del DSP desde el bus PCI a través de la interfase al
puerto host.
• Emulación mediante un puerto JTAG3 a través de la interfase PCI o del emulador
externo XDS510.
• Códec de audio estéreo de 16 bits con tasas de muestreo desde 5.5 hasta 48 kHz
• Reguladores conmutados de voltaje en la tarjeta para corriente directa de 1.8 / 2.5
VDC y 3.3 VDC
• Regulador lineal de voltaje en la tarjeta para 5 VDC analógicos
• Operación interna PCI Plug & Play
• Operación externa de escritorio (requiere fuente de alimentación externa y emulador
XDS510 o XDS510WS, los cuales no se incluyen el paquete EVM ‘C6X)
• Conectores de expansión de memoria y periféricos DSP para conexión de una
tarjeta hija.
• Controles e indicadores de usuario:
o Emulación JTAG (interna o externa)
o Selección de oscilación del reloj DSP (OSC A ó OSC B)
1 Synchronous burst static random – access memory SBSRAM por sus siglas en inglés. 2 Synchronous dynamic random – access memory SBSRAM por sus siglas en inglés. 3 Joint Test Action Group (JTAG) desarrolló el estándar IEEE 1149-1-1990 “IEEE Standard Test Access Port and Boundary-Scan Architecture”
OSC A OSC B
x1 x4 x1 x4
‘C6201 33.25 MHz 133 MHz 50 MHz 200 MHz
‘C6701 25 MHz 100 MHz 33.25 MHz 133 MHz
Anexo 1. Características de las plataformas utilizadas.
113
o Modo del reloj (oscilador x 1 ó x 4)
o Selección de modo de carga del programa (boot)
Ninguno
Modo de carga HPI
Modo de carga por ROM (requiere tarjeta hija adicional)
o Dirección de byte tipo big-endian o little-endian
o Tres interruptores definibles por el usuario tipo DIP SWITCH
o Reset manual
o Indicador LED de encendido
o Dos LED indicadores definibles por el usuario
A1.1.2 Características del CPU.
El DSP TMS320C6701 (Figura A 1.3), es un DSP de punto flotante que emplea
arquitectura VLIW de alto desempeño de 256 bits llamada VelociTI4 que permite
instrucciones de ancho variable, lo que le da mayor versatilidad y desempeño.
El DSP TMS320C6701 tiene las siguientes características:
• CPU
o Arquitectura VelociTI.
o 8 unidades funcionales independientes: 2 multiplicadores y 4 unidades
aritméticas lógicas (ALU’s) de punto fijo/flotante, y 2 ALU’s de punto fijo.
o 2 operaciones MAC por ciclo para un total de 200 millones de MAC’s por
segundo (MMACS) @ 100 MHz.
o Alto desempeño de operaciones de punto flotante, hasta 1GFLOP por
segundo a 167 MHz.
o 32 registros de 32 bits y 8 unidades funcionales independientes, para
producir hasta 8 instrucciones de 32 bits por ciclo (tiempo de ciclo de
5.98ns).
4 VelociTI es la versión propietaria de Very Long Instruction Word desarrollada por Texas Instruments, para empaquetamiento de instrucciones, ver capitulo 4 para información de esta tecnología
Anexo 1. Características de las plataformas utilizadas.
114
• Memoria
o Arquitectura de memoria Harvard Modificada.
o 64 KBytes de Memoria de Programa con bus de 256 bits, configurable por el
usuario como cache o espacio de programa mapeado a memoria.
o 64 Kbytes de Memoria de Datos dividida en dos bloques de 32 Kbytes de
RAM, con direcciones de 32 bits
o Capacidad de formatos Big–endian o Little–endian.
Figura A 1.3 Núcleo TMS320C6701, interfases externas y periféricos.
• Aritmética de punto flotante.
o Soporte de datos de 8/16/32-bits
o Aritmética de 40 bits opcional, agrega precisión extra para vocoders y otras
aplicaciones computacionalmente intensivas.
o Soporte de hardware para precisión simple (32-bit) y doble precisión (64-bit)
operaciones de punto flotante IEEE.
o Multiplicación de enteros de 32 bits por 32 bits con resultados de 32 o 64
bits.
Anexo 1. Características de las plataformas utilizadas.
115
• Periféricos.
o Interfase de memoria externa a memorias sincrónicas como lo son la
SBSRAM y la SDRAM
o Interfase de memoria externa a memorias asíncronas como lo son la SRAM
y la EPROM
o 4 canales de acceso directo a memoria (DMA)
o Interfase al puerto host (HPI) con un canal DMA dedicado permitiendo
acceso a todo el espacio de memoria del procesador
o 2 puertos serie multicanal con buffers para interconexión directa a
dispositivos de telecomunicaciones, audio u otros dispositivos seriales
o Dos temporizadores de propósito general
o Opciones de PLL para multiplicar por 4 ó para multiplicar por 1 (por
omisión)
• Herramientas de Desarrollo de Software.
o CodeComposer Studio Ambiente de Desarrollo Integrado (IDE): incluye un
editor generador de código de C/C++/Ensamblador, y herramientas para
depuración del programa.
Anexo 1. Características de las plataformas utilizadas.
116
A1.2 Características del Sistema de Procesador de Propósito General Utilizado.
Figura A 1.4 Plataforma PC.
El procesador de propósito general utilizado en este proyecto es el de una computadora
personal PC IBM compatible (Figura A 1.4), a continuación se presenta un resumen de sus
características y en el cd anexo se encuentra un reporte del sistema completo, obtenido con
el programa Everest1.51.191 de Lavalys Inc.:
Software : • Sistema operativo: Microsoft Windows XP Professional 5.1.2600. • Service Pack : No instalado. • Internet Explorer: 6.0.2600.0000 (IE 6.0 - Windows XP) • DirectX : 4.08.01.0810 (DirectX 8.1)
Placa base :
• Tipo de procesador: AMD Athlon-PECM, 750 MHz (7.5 x 100) • Chipset de la Placa
Base: SiS 730S
• Memoria del Sistema: 240 MB (SDRAM) • Tipo de BIOS: AMI (04/15/02)
Anexo 1. Características de las plataformas utilizadas.
117
Propiedades del CPU : • Tipo de procesador AMD Athlon-PECM, 750 MHz (7.5 x 100) • Alias de la CPU Thunderbird • Escalonamiento de la
CPU A4/A5/A6/A7
• Juego de instrucciones x86, MMX, 3DNow! • Código de caché L1 64 KB • Datos de caché L1 64 KB • Caché L2 256 KB (On-Die, Full-Speed)
Monitor :
• Tarjeta gráfica: SiS 300/305/630/540/730 (16 MB ) • Acelerador 3D: SiS 300 Integrated • Monitor: LG StudioWorks 563A/563N [15" CRT] (11435300)
Multimedia :
• Tarjeta de sonido: SiS 7018 Audio Accelerator Almacenamiento :
• Controlador IDE: Controladora SiS PCI IDE • Disquetera de 3 ½: Unidad de disquete • Disco duro: ST340016A (40 GB , 7200 RPM, Ultra-ATA/100) • Lector óptico: HL-DT-ST CD-RW GCE-8523B (52x/24x/52x CD-RW) • Lector óptico: SAMSUNG CD-ROM SC-152L (52x CD-ROM)
Dispositivos de entrada :
• Teclado Teclado estándar de 101/102 teclas o Microsoft Natural PS/2 Keyboard
• Ratón Mouse PS/2 de Microsoft Red :
• Tarjeta de Red 100/10M Ethernet PCI Adapter (192.168.1.13) • Modem HSP56 MR
Dispositivos :
• Controlador USB1 SiS 7001 PCI-USB Open Host Controller • Controlador USB1 SiS 7001 PCI-USB Open Host Controller
Anexo 1. Características de las plataformas utilizadas.
118
A1.2.1 Características del Procesador AMD AthlonTM.
El AMD Athlon es un microprocesador paralelo, de arquitectura Superescalar, con envío de
nueve instrucciones por ciclo de reloj; optimizado para trabajar a altas frecuencias. Tiene
128 KB de memoria caché de nivel L1 de doble puerto (64 KB de instrucciones y 64 KB de
datos), una tabla de predicción de saltos de 2 vías, múltiples decodificadores de
instrucciones X86 en paralelo, múltiples organizadores de ejecución de instrucciones para
punto fijo y punto flotante [4] y [5]. En la Figura A 1.5 se muestra un diagrama de bloques
simplificado del AMD Athlon.
Figura A 1.5 Diagrama a bloques de un AMD Athlon.
• Arquitectura X86 de Séptima Generación con decodificadores X86 que convierten
las instrucciones en macro-operaciones de longitud fija llamadas MacroOPs.
• Unidad de Control de Instrucciones de hasta 3 MacroOPs por cada ciclo de reloj.
• 2 Unidades Organizadores de Ejecución.
Unidades Funcionales y de
ejecución.
Unidades de funciones MMX
y 3DNow!
Unidad de Interfase de
BUS.
64 KB de Caché de Datos de 2 vías y 32 entradas
64 KB de Caché de Instrucciones de 2 vías y 24 entradas
Pre-decodificador
de Caché
Tabla de predicción de saltos.
Decodificador de instrucciones X86 de 3 vías Control de Ciclo Fetch
Unidad de Control de instrucciones
Unidades de Control de
Almacenamiento
Unidad organizadora de carga y almacenamiento
Controlador de Caché de
Nivel 2
L2 SRAM Interfase del Sistema
Anexo 1. Características de las plataformas utilizadas.
119
o 1 unidad para el manejo de números enteros y cálculo de direcciones de las
MacroOPs.
o 1 unidad para organización de tareas de multimedia MMX, 3DNow! y
MacroOPs X87.
• 3 Cauces de Ejecución (pipelines).
• Tabla de predicción dinámica de saltos de 2048, para mantener la información
usada para predecir la dirección de los saltos condicionales.
• Soporte para Tecnología Enhanced 3DNow!TM.
o Conjunto de 21 instrucciones 3DNow! tipo SIMD.
o 19 nuevas instrucciones para cálculos matemáticos enteros para codificación
de video y flujo de datos.
o 5 nuevas instrucciones DSP para software de modem’s, DSL, sonido Dolby
Digital surround, y aplicaciones MP3.
• Arquitectura de memoria caché de alto desempeño con 2 niveles de caché internos
al CPU.
o 2 bloques de 64Kbytes de caché de nivel 1 (L1), para datos e instrucciones.
o 512 KBytes de caché (L2), de 72 bits de ancho, exclusivo para datos.
o Soporte de hasta 8 MBytes de caché de nivel 3 (L3) en la tarjeta madre.
Anexo 2: Manual de Analizador en Matlab.
120
Anexo 2
Manual del Analizador Espectral V.6.1 en
Matlab®.
Anexo 2: Manual de Analizador en Matlab.
121
Introducción.
Acerca de este manual.
En el capítulo 2, dentro del marco teórico, se presentan los métodos no paramétricos para el
cálculo de la Densidad Espectral de Potencia (PSD) y el Biespectro (BIS), basados en
Estadísticas de Alto Orden y en la Transformada de Fourier. En este apéndice se presenta
una herramienta de software denominada Analizador Espectral, desarrollada en Matlab®
versión 6.0. En esta herramienta están implementados los métodos y algoritmos del marco
teórico, y mediante una interfase grafica de usuario (GUI) permite el análisis de datos y el
manejo de los resultados. La finalidad del Analizador Espectral es proporcionar una
herramienta didáctica y de experimentación para análisis de señales.
Como usar este manual.
Este manual de usuario provee la siguiente información:
• Información del Software: Contiene las explicaciones necesarias para operar la
interfase del Analizador Espectral.
• Información de la instalación: la instalación del Analizador se encuentra en este
manual.
Convenciones usadas en este manual.
En este documento se usan las siguientes convenciones:
• Los controles de usuario tales como, menús, botones, cuadros de dialogo, opciones
de selección y listas dentro de la interfase del Analizador se escribirán en negritas.
Ejemplo:
o Archivo: Este menú permite manipulación de archivos en formato .DAT.
Contiene los submenús de Abrir, Guardar y Salir.
Anexo 2: Manual de Analizador en Matlab.
122
• Los nombres de paquetes de software, y de dispositivos físicos se presentarán en
negritas y cursivas. Ejemplo:
o Esta herramienta de software fue desarrollada en Matlab® version 6.0, e
implementa los métodos y algoritmos estudiados en el marco teórico del
capítulo 2.
• Los comandos que el usuario teclee en el Analizador Espectral o cualquier otro
paquete de software, los nombres de archivos, las rutas de directorios y en general
toda información a introducir dentro de cualquier pantalla, se escribiran en cursivas.
Ejemplos:
o Para acceder al Analizador, basta con copiar los archivos spectral_C.m y
spectral_C.fig en la carpeta C:\MATLAB6p5\work\,
o Después de la entrada de datos (en este ejemplo vector suns.dat),
• Los mensajes y leyendas en pantalla se mostrarán entre comillas y en “cursivas”.
Ejemplo:
o sección de Salidas se muestra el mensaje “Analizando Datos” (Figura A
2.10).
Anexo 2: Manual de Analizador en Matlab.
123
A2.1 Descripción.
El Analizador Espectral es una herramienta de software, desarrollada en Matlab® versión
6.0, como un auxiliar para el estudio y análisis espectral de señales en forma práctica.
Cuenta con una interfase gráfica de usuario interactiva (GUI), para la configuración de
parámetros del cálculo de la Densidad Espectral de Potencia (PSD) y el Biespectro (BIS),
muestra los resultados en forma gráfica y permite conocer los valores de las salidas, en
puntos de frecuencia especificados por el usuario. A continuación se muestran brevemente
las principales características de esta herramienta, que en lo sucesivo se llamará solamente
Analizador. La versión presentada es la versión 6.1, de acuerdo a un control interno de
mejoras y adiciones al software.
A2.2 Interfase Gráfica de Usuario.
El Analizador se muestra en la Figura A 2.1, a primera vista se distinguen tres secciones
principales en el Analizador; el menú principal, permite diferentes opciones para manejo
de archivos y gráficas; la sección de configuración, con los parámetros necesarios para el
procesamiento; y la sección de salidas, donde se presentan los resultados del proceso y los
controles disponibles al usuario dependiendo del tipo de análisis realizado.
Figura A 2.1Analizador Espectral.
Anexo 2: Manual de Analizador en Matlab.
124
A continuación se da una breve descripción de cada sección del Analizador:
Menú Principal: Contiene los elementos básicos para la selección de opciones de manejo de
archivos, gráficas y la ayuda de la aplicación. De forma particular:
• Archivo: Este menú permite manipulación de archivos en formato .DAT. Contiene
los submenús de Abrir, Guardar y Salir.
• Graficar: Selecciona el tipo de gráfica deseada.
• Ayuda: Proporciona información acerca del software.
Configuración: Esta sección cuenta con los siguientes controles para personalizar el
análisis espectral. Los cuadros de solo lectura se actualizan al variar los demás parámetros.
Las opciones disponibles son:
• Tipo de Análisis. • Método. • Frecuencia de Muestreo.
• Ventana • Graficar. • Normalizar Entrada.
• Tamaño de la FFT. • Nuevo Dato. • Ancho de ventana.
• Normalizar.
Salidas: Esta sección presenta al usuario los resultados del proceso. En esta sección
también se encuentran los controles de desplazamiento de frecuencia en las graficas de PSD
y Biespectro.
• Número de Secciónes. • Número de Ceros Agregados.
• Resolución Espectral. • Período.
• Frecuencia. • Posición.
• Barras deslizantes.
Anexo 2: Manual de Analizador en Matlab.
125
A2.3 Uso del Analizador Espectral.
Con objeto de presentar simultáneamente el funcionamiento y las principales características
del Analizador Espectral no se describirá estrictamente por secciones, sino que se
desarrollará un sencillo ejemplo de análisis de datos de la periodicidad de las manchas
solares, tanto para la PSD, como para el Biespectro.
Para acceder al Analizador, basta con copiar los archivos spectral_C.m y spectral_C.fig en
la carpeta C:\MATLAB6p5\work\, inicializar Matlab® y teclear en la línea de comandos
>>spectral_C, como se muestra en la Figura A 2.2, esto producirá la pantalla de la Figura A
2.3, que es la presentación por defecto, se debe notar que las casillas de salida están vacías
y que los botones de Analizar y Graficar se encuentran deshabilitados, puesto que no se
han introducido datos aún.
Figura A 2.2 Inicialización del Analizador Espectral desde Matlab ®.
Anexo 2: Manual de Analizador en Matlab.
126
Figura A 2.3 Pantalla inicial del Analizador Espectral.
Para introducir los datos se debe ir al Menú Principal, elegir Archivo, Abrir, este submenú
maneja los archivos de secuencias de entrada de forma inteligente, ya que acepta solamente
los vectores de datos necesarios para el análisis a desempeñar. En la Figura A 2.4 se
muestra para un análisis de PSD. También es posible usar como entradas vectores ó
matrices de resultados de PSD y BIS previamente calculados para su manejo por medio del
Analizador.
a) Submenú Abrir b) Submenú Abrir, Entrada
c) Submenú …, Entrada, Entrada (x) ( para PSD) d) Submenú …, Entrada, Entrada (y) ( para CSD) Figura A 2.4 Submenú Archivo, Abrir, Entrada.
Anexo 2: Manual de Analizador en Matlab.
127
La Figura A 2.5 muestra una ventana auxiliar para entrada de datos, titulada “Archivo de
Datos de Entrada X”, para un vector de entrada x. Cuando el análisis involucra más de un
vector de entrada como en el caso de la Densidad Espectral de Potencia Cruzada ó CSD, un
caso particular de la PSD donde se correlacionan dos vectores de entrada, estos se nombran
como x e y respectivamente. El formato del archivo de entrada debe ser compatible con el
formato .DAT5.
Figura A 2.5 Ventana para entrada de datos.
Inmediatamente después de la entrada de datos del archivo suns.dat, se habilita el botón de
Analizar y Graficar (Figura A 2.6). En este punto ya es posible graficar la señal de
entrada. Sin embargo, antes de realizar el análisis se debe configurar al Analizador.
En la sección de Configuración se tienen los siguientes parámetros de control disponibles
al usuario, las configuraciones son válidas para PSD y Biespectro, a menos que se
especifique otra cosa:
5 El formato .DAT consiste en un archivo de números en precisión de punto flotante, separados por comas para los elementos de la filas y por el carácter enter para las columnas.
Anexo 2: Manual de Analizador en Matlab.
128
Figura A 2.6 Ventana que indica que se puede realizar el análisis seleccionado.
Tipo de Análisis: Selecciona entre PSD y Biespectro, dependiendo de la opción escogida
cambiarán las funciones de Ventana disponibles y la sección de salida se modificará
también.
Frecuencia de Muestreo: Este parámetro se encuentra por defecto a 1 para frecuencia
normalizada, si es cambiado por el usuario esto se reflejará en las gráficas de salida y el
letrero “Norm” en la sección de salida cambiara a “Hz”. Para el caso de ejemplo se
considerará un muestreo de 1 año (frecuencia de muestreo = 1).
Tamaño de la FFT: En este cuadro el usuario debe seleccionar la longitud del
periodograma ó biperiodograma (por defecto a 16) y pulsar “Enter”. Dependiendo de la
frecuencia de muestreo se actualizarán algunas características del proceso en la sección de
Salida, tales como el Número de secciones, el número de Ceros agregados y la Resolución
espectral, para este caso con un tamaño de FFT de 256 puntos, se tienen dos secciónes de
datos muestreados a 1 año. La resolución espectral es 0.00390 1/(años* unidad) (Figura A
2.7).
Anexo 2: Manual de Analizador en Matlab.
129
Figura A 2.7 Pantalla que muestra la resolución que será utilizada en el análisis.
Método: Presenta los métodos disponibles de obtención de la PSD o BIS (Figura A 2.8),
para ambos análisis se tienen:
• Directo (Transformada de Fourier).
• Directo con secciones traslapantes al 50% (Método de Welch).
• Indirecto, a través de los cumulantes.
• Indirecto con secciones traslapantes al 50% (Método de Welch).
• Cruzado Directo (Cross-PSD y Cross-Biespectro).
a) Menú de Métodos del análisis PSD b) Menú de Métodos del análisis BIS Figura A 2.8 Menú de Métodos.
Anexo 2: Manual de Analizador en Matlab.
130
Ventana: Dependiendo del análisis seleccionado, permite elegir la función de Ventana
(Figura A 2.9), independientemente del método de estimación, las opciones se muestran en
la Tabla A 2-1.
Tabla A 2-1 Funciones de Ventana disponibles.
PSD BIS Rectangular. Rectangular. Daniel. Daniel. Parsen. Parsen. Tukey-Hamming. Tukey-Hamming. Bartlet-Priestley. Bartlet-Priestley. Blackman. Óptima. Hamming. Hanning. Bartlet. Kaiser.
Ancho: Determina el ancho de la ventana seleccionada (eq. 2.30), no realiza ninguna
acción para la ventana rectangular y la ventana óptima.
a) Funciones de ventana para el análisis PSD. b) Funciones de ventana para el análisis BIS.
Figura A 2.9 Ventanas disponibles.
Normalizar Entrada: Esta opción debe seleccionarse antes de realizar el análisis para
normalizar la secuencia de entrada, no tiene efecto una vez que los datos se han procesado.
Es útil para disminuir la magnitud de salida sin modificar el comportamiento cuando
estamos manejando señales de magnitudes muy grandes.
Anexo 2: Manual de Analizador en Matlab.
131
BIS Modificado: Solo para el Biespectro, se selecciona antes del análisis, para enfatizar la
dependencia explícita de la fase, (Ver el Marco Teórico eq 2.50).
Analizar: Este botón inicia el proceso de análisis con los parámetros seleccionados, en la
sección de Salidas se muestra el mensaje “Analizando Datos” (Figura A 2.10). Al finalizar
el proceso cambiará a “Salidas de la PSD” o “Salidas del BIS”.
Figura A 2.10 Analizando datos.
La sección de Salidas presenta al usuario información del proceso, su apariencia cambia
dependiendo de los parámetros seleccionados en la sección de Configuración. La Figura A
2.11 muestra los resultados de la PSD y el BIS del vector suns.dat. La sección de salida se
compone de ventanas informativas y controles de usuario. Los primeros se detallan a
continuación:
Número de Secciones: Dependiendo del número de secciones seleccionado indica el
tamaño del vector de datos procesado.
Resolución: Indica la resolución espectral alcanzada de acuerdo a los parámetros
seleccionados.
Ceros: Indica el número de ceros agregados al vector original para completar el número de
secciones de acuerdo al tamaño de la FFT.
Anexo 2: Manual de Analizador en Matlab.
132
a) Resultados del análisis PSD. b) Resultados del análisis BIS. Figura A 2.11 Salidas de la PSD y BIS de los datos de las manchas solares (suns.dat).
Magnitud y Fase: Al finalizar el cómputo del análisis presenta los valores de magnitud y
fase (excepto en la PSD) calculados. En este ejemplo, los valores de PSD y BIS confirman
la periodicidad de 11 años para la actividad de las manchas solares (Figura A 2.11).
Período, Frecuencia y Posición: Estos valores están estrechamente relacionados, los dos
primeros dependen de la resolución, y el último es el valor de la posición del dato en la
matriz ó vector de resultados, considerando desde 0 a N-1. Al finalizar el análisis, estas
ventanas contendrán los valores del punto con máxima magnitud (Figura A 2.11).
Figura A 2.12 Selección de gráficos.
Anexo 2: Manual de Analizador en Matlab.
133
Graficar: Dependiendo de las opciones seleccionadas en el Menú Principal, produce las
gráficas correspondientes, las opciones de PSD y BIS son mutuamente excluyentes (Figura
A 2.12). Las graficas de salida se muestran en la Figura A 2.13.
a) Densidad Espectral de Potencia. b) Biespectro o Biespectro Modificado
c) Contorno del Biespectro o Biespectro Modificado. d) Fase del Biespectro.
Figura A 2.13 Gráficas de salida del Analizador.
Además, es posible graficar la señal de entrada y la ventana utilizada ya sea en 2D o en 3D,
dependiendo del tipo de análisis desarrollado Figura A 2.14.
Anexo 2: Manual de Analizador en Matlab.
134
a) Señal de Entrada b) Ventana Utilizada (en dos índices de tiempo).
Figura A 2.14 Otras gráficas del Analizador.
Freq1 y Freq2: Son dos barras de desplazamiento (Figura A 2.15) que permiten explorar la
matriz del resultado, ya sea por posición o por valor de frecuencia, presentando de manera
visible al usuario los valores de magnitud, fase, frecuencia, período y posición discreta de
cada punto.
Figura A 2.15 Control del usuario mediante barras deslizantes.
Normalizar: Esta opción normaliza los resultados del proceso, no tiene efecto antes del
análisis. Sin embargo, dependiendo de su estado de selección, presenta los resultados en
porcentaje, con el símbolo “%” (Figura A 2.16), ó en magnitud real. Esta condición
también se refleja al graficar (Figura A 2.17). Esta opción es muy interesante ya que
permite visualizar la magnitud relativa de las componentes de salida
Anexo 2: Manual de Analizador en Matlab.
135
Figura A 2.16 Normalización interactiva de los resultados.
Figura A 2.17 Gráfica de salida normalizada para el BIS de suns.dat.
Dato Nuevo: Este opción tiene como función mostrar en la sección de salida los valores del
punto seleccionado mediante el puntero en la gráfica (únicamente para graficas 2D). Al
pulsar con el puntero en una gráfica 2D aparece una marca de color azul, indicando el
punto a conocer, después se oprime el botón Dato Nuevo y en la sección de salida se
actualizan los valores magnitud, fase, período, frecuencia y posición (Figura A 2.18). Esto
permite utilizar al máximo las características de acercamiento de gráficas de Matlab,
proporcionando el valor del punto exacto seleccionado (Figura A 2.19).
Anexo 2: Manual de Analizador en Matlab.
136
Figura A 2.18 Actualización de los valores de salida mediante el botón de control Nuevo Dato.
Figura A 2.19 Selección de un punto de la gráfica de salida tipo contorno para el BIS de suns.dat.
Guardar: Almacena en formato .DAT el vector o matriz de resultados, para una análisis
posterior mediante Matlab ® (Figura A 2.20). Es recomendable que el nombre del archivo
sea descriptivo, ya que para que el Analizador acepte entradas de datos de una forma
general, no puede reconocer la frecuencia de muestreo de los datos. Una buena práctica es
añadir este dato en el nombre del archivo e introducir este dato en el campo Frecuencia de
Anexo 2: Manual de Analizador en Matlab.
137
muestreo cuando se requiera volver a analizar los datos. Por ejemplo en datos muestreados
a 1 Khz de una señal senoidal pudiera manejarse seno_1000.dat , psd_seno_1000.dat o
bis_seno_1000.dat según se requiera. Al seleccionar la opción guardar, se abre una ventana
diferente dependiendo del tipo de análisis que se ha desempeñado (Figura A 2.21).
a) Opción guardar el módulo de la PSD. b) Opción guardar el módulo del BIS.
Figura A 2.20 Ventanas de la opción guardar del Analizador.
a) Guardar módulo PSD. a) Guardar módulo BIS.
Figura A 2.21 Ventanas auxiliares de la opción guardar del Analizador.
Ayuda: Proporciona información acerca de la autoría del software con un dialogo de
Acerca de… (Figura A 2.22).
Anexo 2: Manual de Analizador en Matlab.
138
Figura A 2.22 Descripción de la autoría del software.
Salir: Esta opción cierra el Analizador y el ambiente Matlab®.
Aunque esta herramienta esta desarrollada en Matlab® versión 6.0, se ha probado y
modificado sin problemas en versiones posteriores como Matlab® version 6.15 Release 13.
Anexo 2: Manual de Analizador en Matlab.
139
A2.4 Referencia de funciones del Analizador en Matlab.
agrega_ceros Agrega ceros a los vectores del arreglo dato, para el calculo de
la FFT.
bis_enhanced Calcula el Biespectro modificado.
bis_sec Calcula el Biespectro mediante Fourier y funcniones de
ventana.
csdf_sec Calcula la CSD de dos vectores de datos.
cum_1 calcula el cumulante de orden 1 de un vector
cum_2 Calcula el cumulante de orden 2 de dos vectores.
cum_3 Calcula el cumulante de un arreglo de 3 vectores de cualquier
longitud
cumulante2 Calcula el cumulante de orden 2 de un vector.
Cumulante3 Calcula el cumulante de orden 3 de un vector.
daniel_window Calcula la ventana Daniel de un punto de una secuencia.
fase_nueva Convierte una matriz de fase de radianes a grados
fft_window Calcula la fft de los datos multiplicados por una función de
ventana.
mediacero Esta función lleva la media de un vector a cero.
momento Calcula el promedio estadístico de un vector.
momento_k Calcula el momento de k orden de un vector.
momento_kvi Calcula el momento de k orden de k vectores de igual
longitud.
momento3_sec Calcula del momento de 3er orden de un vector.
optimum_window Calcula la ventana optima de un punto de una secuencia.
parzen_window Calcula la ventana Parzen de un punto de una secuencia.
posicion_maximo Calcula el valor maximo de una matriz (vector) y su posición.
priestley_window Calcula la ventana Bartlett-Priestley de un punto de una
Anexo 2: Manual de Analizador en Matlab.
140
secuencia.
psdm_seccion Calcula la PSD mediante momentos de media cero y
funciones de ventana.
redondea Redondea un vector complejo de orden k.
tukey_window Calcula la ventana Tukey-Hamming de un punto de una
secuencia.
win_daniel2d calcula la ventana Daniel 2D.
win_optimum2d Calcula la ventana Optima 2D.
win_parzen2d Calcula la ventana Parzen 2D.
win_priestley2d Calcula la ventana Tukey-Hamming 2D.
win_tukey2d Calcula la ventana Tukey-Hamming 2D.
win_daniel3d calcula la ventana Daniel 3D.
win_optimum3d Calcula la ventana Optima 3D.
win_parzen3d Calcula la ventana Parzen 3D.
win_priestley3d Calcula la ventana Tukey-Hamming 3D.
win_tukey3d Calcula la ventana Tukey-Hamming 3D.
En el CD nexo se encuentra el listado completo de funciones en formato HTML, además
del código fuente de la aplicación del Analizador en Matlab.
Anexo 3: Manual de Analizador en Visual C++.
141
Anexo 3
Manual del Analizador Espectral V.1.0.1 en Visual
C++ para IBM PC y DSP TMS320C6701.
Anexo 3: Manual de Analizador en Visual C++.
142
Introducción.
Acerca de este manual.
En el capítulo 2, dentro del marco teórico, se presentan los métodos no paramétricos para el
cálculo de la Densidad Espectral de Potencia (PSD) y el Biespectro (BIS), basados en
Estadísticas de Alto Orden y en la Transformada de Fourier. En este apéndice se presenta
una herramienta de software denominada Analizador Espectral, desarrollada en Visual
C++ versión 6.0. En esta herramienta están implementados los métodos y algoritmos del
marco teórico, y mediante una interfase grafica de usuario (GUI) permite el análisis de
datos y el manejo de los resultados. La finalidad del Analizador Espectral es proporcionar
una herramienta didáctica y de experimentación para análisis de señales.
Como usar este manual.
Este manual de usuario provee la siguiente información:
• Información del Software: Contiene las explicaciones necesarias para operar la
interfase del Analizador Espectral para los modelos PC IBM o compatible y DSP
TMS320C6701 EVM.
• Información de la instalación:
o La instalación del Analizador se encuentra en este manual y es compatible
para los modelos PC IBM o compatible y DSP TMS320C6701 EVM.
o La información acerca de la instalación del hardware se encuentra en forma
completa en los manuales del fabricante.
Anexo 3: Manual de Analizador en Visual C++.
143
Convenciones usadas en este manual.
En este documento se usan las siguientes convenciones:
• Los controles de usuario tales como, menús, botones, cuadros de dialogo, opciones
de selección y listas dentro de la interfase del Analizador se escribirán en negritas.
Ejemplo:
o El menú de Configuración se encuentra dividido en tres secciones
dependiendo del parámetro a modificar, estas son: HOS, Secciones y
Ventana.
• Los nombres de paquetes de software, y de dispositivos físicos se presentarán en
negritas y cursivas. Ejemplo:
o Esta herramienta de software fue desarrollada en Visual C++ 6.0, e
implementa los métodos y algoritmos estudiados en el marco teórico del
capítulo 2.
• Los comandos que el usuario teclee en el Analizador Espectral o cualquier otro
paquete de software, los nombres de archivos, las rutas de directorios y en general
toda información a introducir dentro de cualquier pantalla, se escribiran en cursivas.
Ejemplos:
o En el CD-ROM de instalación en el directorio E:\Analizador V.
1.0.1\disk1\Setup.exe se encuentra el programa ejecutable,
o Después de la entrada de datos (en este ejemplo vector suns.dat),
• Los mensajes y leyendas en pantalla se mostrarán entre comillas y en “cursivas”.
Ejemplo:
o se muestra el mensaje “Calculando espectros de Alto Orden”. Al finalizar el
análisis cambiará a “esperando datos de entrada” (Figura A 3.12).
Anexo 3: Manual de Analizador en Visual C++.
144
A3.1 Descripción.
En este anexo se presenta el manual de instalación y operación del Analizador Espectral.
El manual de usuario corresponde a los modelos basados en IBM PC y en DSP, debido a
que la interfase de usuario es completamente idéntica. Particularmente se mostrará la
versión 1.0.1 de esta herramienta, que tiene la misma funcionalidad de la versión
desarrollada en Matlab®, con un mejor desempeño en el tiempo de ejecución, por tratarse
de algoritmos desarrollados en un lenguaje compilado como C, mucho más robusto, rápido
y eficiente.
Esta herramienta de software fue desarrollada en Visual C++ 6.0, e implementa los
métodos y algoritmos estudiados en el marco teórico del capítulo 2. Cuenta con una
interfase gráfica de usuario interactiva (GUI), para la configuración de parámetros del
cálculo de la Densidad Espectral de Potencia (PSD) y el Biespectro (BIS). Muestra los
resultados en forma gráfica y permite conocer los valores de las salidas, en puntos de
frecuencia especificados por el usuario. A continuación se mostrará brevemente las
principales características de esta herramienta, que en lo sucesivo se llamará solamente
Analizador.
A3.2 Instalación del software.
El Analizador en Visual C++ para PC6 y DSP es una aplicación tipo Windows, y cuenta
con un programa de instalación ejecutable desde el Explorador de Windows. En el CD-
ROM de instalación en el directorio E:\Analizador V. 1.0.1\disk1\Setup.exe se encuentra el
programa ejecutable, el proceso de instalación se muestra de la Figura A 3.1 a la Figura A
3.5:
La primera pantalla corresponde a la presentación del Analizador Espectral (Figura A 3.1):
6 En este documento se usará el término PC para referirnos a la plataforma de computadoras personales tipo IBM ó compatibles.
Anexo 3: Manual de Analizador en Visual C++.
145
Figura A 3.1 Pantalla Inicial de instalación del Analizador Espectral.
Después de la pantalla inicial, presione Next para iniciar la instalación:
Figura A 3.2 Pantalla Inicial de instalación del Analizador Espectral.
A continuación se muestra el contrato de licencia de instalación, presione yes para aceptar
los términos:
Anexo 3: Manual de Analizador en Visual C++.
146
Figura A 3.3 Términos de licencia del Analizador Espectral.
Personalice su información para la instalación, digite un número de serie y presione Next:
Figura A 3.4 Personalizando la instalación del Analizador Espectral.
En las pantallas siguientes (no se muestran), acepte las opciones por omisión, finalmente, el
Analizador quedará instalado en su sistema en el directorio: C:\Archivos de
programa\AERSI AC\Analizador.exe.
Anexo 3: Manual de Analizador en Visual C++.
147
Figura A 3.5 Pantalla final de instalación del Analizador Espectral.
Además, se debe instalar el RunTime de LabView incluido en el CD de instalación, para
poder completar el proceso. Simplemente acepte todas las opciones por omisión hasta
llegar a la pantalla de la Figura A 3.6.
Figura A 3.6 Pantalla final de instalación del Run-Time de LabView.
Anexo 3: Manual de Analizador en Visual C++.
148
A3.3 Interfase Gráfica de Usuario.
El Analizador se muestra en la Figura A 3.7, la pantalla principal es breve y sencilla, las
opciones de operación se encuentran en el menú principal, que consiste de las opciones
Archivo, Graficar y Configuración, Ayuda y de una barra de progreso, donde se puede
ver el estado de avance del proceso, además se cuenta con controles disponibles al usuario
para comenzar o cancelar el análisis.
Figura A 3.7 Analizador Espectral para PC y DSP.
A continuación se da una breve descripción de cada sección del Analizador:
Menú Principal: contiene los elementos básicos para la selección de opciones de manejo de
archivos, gráficas y la ayuda de la aplicación. De forma particular:
• Archivo: Este menú permite manipulación de archivos en formato .DAT. Contiene
los submenús de Abrir, Guardar y Salir.
• Graficar: Selecciona el tipo de gráfica deseada.
• Configurar: Cuenta con opciones disponibles al usuario para seleccionar, tipo y
método de análisis, la ventana en tiempo, la frecuencia de muestreo, etc.
• Ayuda: Proporciona información acerca del software.
Anexo 3: Manual de Analizador en Visual C++.
149
A3.4 Uso del Analizador Espectral.
Con objeto de presentar simultáneamente el funcionamiento y las principales características
del Analizador Espectral no lo se describirá estrictamente por secciones, sino que se
desarrollará un sencillo ejemplo de análisis de datos de la periodicidad de las manchas
solares, tanto para la PSD, como para el Biespectro. Para acceder al Analizador, basta con
pulsar 2 veces sobre el icono de acceso directo del Analizador, previamente se debe haber
ejecutado la instalación como se describe en la sección anterior.
Abrir: Este submenú acepta archivos de secuencias de entrada en formato .DAT. También
es posible usar como entradas vectores ó matrices de resultados de PSD y BIS previamente
calculados para su manejo por medio del Analizador. La Figura A 3.8 muestra una ventana
auxiliar para entrada de datos.
Figura A 3.8 Menú Archivo, submenú de Abrir datos de entrada.
Inmediatamente después de la entrada de datos (en este ejemplo vector suns.dat), se debe
realizar la configuración de parámetros de cálculo, en el submenú configuración o por
medio de un archivo de configuración, las configuraciones son válidas para PSD y
Biespectro, a menos que se especifique otra cosa:
Anexo 3: Manual de Analizador en Visual C++.
150
El menú de Configuración se encuentra dividido en tres secciones dependiendo del
parámetro a modificar, estas son: HOS, Secciones y Ventana.
HOS: Permite configurar el tipo de Análisis entre PSD y BIS o ambos, y el Método
paramétrico de obtención (Figura A 3.9). Los métodos disponibles para ambos análisis son:
• Directo (Transformada de Fourier).
• Indirecto, a través de los cumulantes.
En el caso del Biespectro, se tiene la opción de seleccionar BIS Modificado antes del
análisis, para enfatizar la dependencia explícita de la fase, (Ver el Marco Teórico eq 2.50).
Figura A 3.9 Ventana que indica que se puede realizar el análisis seleccionado.
Secciones: Permite al usuario especificar la Longitud del archivo, el Tamaño de la FFT y
la Frecuencia de muestreo, actualizando dinámicamente los valores de Resolución en
frecuencia y de Ceros agregados a la secuencia original. Para este caso con un tamaño de
FFT de 256, se tienen dos secciones de datos muestreados a 1 año. La resolución espectral
es 0.00390 1/(años* unidad). Por razones de compatibilidad con el programa se
considerará una frecuencia de muestreo de 1000 Hz, por lo que todos los resultados en
Anexo 3: Manual de Analizador en Visual C++.
151
frecuencia se deberán dividir por 1000. Por ejemplo la resolución, que se muestra en la
pantalla de la Figura A 3.10 es 3.91, que es igual a 0.0039 x 1000.
Figura A 3.10 Pantalla que muestra la resolución que será utilizada en el análisis.
Ventana: Dependiendo del análisis seleccionado, permite elegir la función y el Ancho de
ventana (Figura A 3.11), independientemente del método de estimación, las opciones se
muestran en la Tabla A 3-1.
Figura A 3.11 Ventanas disponibles en el Analizador.
Anexo 3: Manual de Analizador en Visual C++.
152
Tabla A 3-1 Funciones de ventana del Analizador.
Funciones de Ventana
Rectangular. Parsen. Tukey-Hamming.
Daniel. Óptima. Bartlet-Priestley.
Calcular: Este botón inicia el proceso de análisis, en la pantalla principal en la parte
superior de la barra de progreso se muestra el mensaje “Calculando espectros de Alto
Orden”. Al finalizar el análisis cambiará a “esperando datos de entrada” (Figura A 3.12).
Figura A 3.12 Analizando datos.
Graficar: Dependiendo del análisis, permite desplegar las gráficas correspondientes de
PSD, BIS y de función de ventana. En la figura Las graficas de salida se muestran en la
Figura A 3.13.
Figura A 3.13 Selección de gráficos.
Anexo 3: Manual de Analizador en Visual C++.
153
Al finalizar el cómputo del análisis presenta los valores de Magnitud y Frecuencia. En
este ejemplo, el valor de la máxima magnitud de la PSD en la Figura A 3.14 está en 89.93
Hz, es decir (1/89.93)*1000 = 11.119, que confirma la periodicidad de 11 años para la
actividad de las manchas solares.
Figura A 3.14 Salidas de la PSD de los datos de las manchas solares (suns.dat).
La Figura A 3.15 muestra la gráfica de magnitud del Biespectro para los datos de las
manchas solares. Posicionando el cursor sobre la gráfica del biespectro, se puede conocer
los valores de frecuencias y magnitud en forma interactiva. Como una funcionalidad
adicional se tienen Controles de Usuario, que consisten de barras deslizantes para
seleccionar cualquier punto de frecuencia de la matriz del Biespectro.
Otras opciones de manejo de gráficos disponibles son la Región de interés que permite
seleccionar el rango a graficar en los 3 ejes X, Y y Z como se muestra en la Figura A 3.16.
Las gráficas pueden rotarse y desplazarse interactivamente mediante el cursor. Además,
colocando el cursor sobre la gráfica y manteniendo presionada la tecla ALT se activa la
opción de acercamiento o alejamiento de la gráfica desde el punto de vista del observador
al mover hacia atrás y hacia delante el cursor respectivamente. Algunos dispositivos de
cursor cuentan con una rueda móvil adicional, que permite hacer esta operación sin
presionar la tecla ALT.
Anexo 3: Manual de Analizador en Visual C++.
154
Figura A 3.15 Gráfica de líneas del Biespectro de los datos suns.dat.
Figura A 3.16 Utilidad de Región de interés en una gráfica del Biespectro.
También se puede seleccionar el Tipo de Gráfica, entre gráfica de líneas, superficie y de
contorno como se ve en la Figura A 3.17.
Anexo 3: Manual de Analizador en Visual C++.
155
Figura A 3.17 Gráfica de contorno del Biespectro.
Otras graficas que presenta el Analizador son las de funciones de ventana en 2D o en 3D,
dependiendo del tipo de análisis desarrollado (Figura A 3.18).
a) Función de ventana en dos índices de tiempo. b) Función de ventana en dos índices de tiempo.
Figura A 3.18 Otras gráficas del Analizador.
Guardar: Almacena en formato .DAT el vector de PSD o la matriz de magnitud del
Biespectro, para exportarlo a otros ambientes como Matlab®, o para un análisis posterior
(Figura A 3.19). La Figura A 3.20 muestra el archivo PSD_Suns.DAT.
Anexo 3: Manual de Analizador en Visual C++.
156
Figura A 3.19 Ventanas de la opción Guardar configuración del Analizador.
Figura A 3.20 Ventanas de la opción Guardar configuración del Analizador.
El Analizador permite almacenar las opciones de configuración (Figura A 3.21), a un
archivo tipo *.cfg, mediante el comando Guardar>>Configuración.
Anexo 3: Manual de Analizador en Visual C++.
157
Figura A 3.21 Ventanas de la opción Guardar configuración del Analizador.
La Figura A 3.22 y la Figura A 3.23 muestran las opciones de Abrir>>Biespectro y
Abrir>>Configuración, que permiten almacenar los datos almacenados.
Figura A 3.22 Abrir Biespectro del Analizador.
Anexo 3: Manual de Analizador en Visual C++.
158
Figura A 3.23 Abrir configuración del Analizador.
Ayuda: Proporciona información acerca de la autoría del software con un dialogo de
Acerca de… (Figura A 3.24).
Figura A 3.24 Descripción de la autoría del software.
Cancelar: Esta opción detiene el análisis actual.
Para salir del Analizador basta con cerrar la aplicación.
Anexo 3: Manual de Analizador en Visual C++.
159
A3.5 Referencia de funciones del Analizador en ANSI C.
Absoluto: Obtiene el valor absoluto de un número.
Ang_Matriz: Angulo de Fase (rango [-pi,pi ]) de matrices o vectores
complejos.
Angulo: Obtiene el Angulo de Fase (rango [-pi,pi ]) de un número
complejo
Bartlet: Calcula la ventana de Bartlet de un punto.
BisNuevo: Llena una matriz cuadrada con la region no redundante del
Biespectro
BisRegion: Filtra la region no redundante del Biespectro
BIS_Vector: Calcula el Biespectro de un vector de datos complejos
Bitrev_cplx: Ordena la entrada o la salida para el calculo de la FFT.
BitRev_Index: Calcula el vector de indices para la función bitrev_cplx.
Conj: Calcula la conjugada de un número complejo.
Conj_Matriz: Calcula la conjugada de una matriz de complejos.
Cumulante_Orden_2: Calcula el vector cumulante de 2do orden de un vector.
Cumulante_Orden_2_C: Calcula el vector cumulante de 2do orden de un vector
complejo.
Cumulante_Orden_3: Calcula el vector cumulante de 3er orden de un vector.
Cumulante_Orden_3_C: Calcula el vector cumulante de 3er orden de un vector
complejo.
Cumulante_XY: Calcula el vector cumulante de 2do orden XY de un vector.
Cumulante_XYZ: Calcula el vector cumulante de 3er orden XYZ de un vector.
Daniel: Calcula la ventana de Daniel de un punto.
Div: Realiza la división de un complejo entre un real
Div_Matriz_C: Realiza la división de una matriz de complejos entre un real.
Gen_Twidd: Genera los factores twiddle para la FFT del DSP.
Anexo 3: Manual de Analizador en Visual C++.
160
Magnitud: Obtiene la magnitud de un número complejo.
Mag_Matriz: Obtiene la magnitud de matrices o vectores complejos.
MagMod_Matriz: Obtiene la magnitud modificada de matrices o vectores
complejos.
Maximo: Obtiene el valor maximo de una matriz o vector real
Media: Calcula el promedio estadistico de un vector.
Medianero: Resta la media del vector de entrada.
Modificar: Obtiene la magnitud modificada de un número complejo.
Momento_Orden_2: Calcula el vector momento de 2do orden de un vector.
Momento_Orden_3: Calcula el vector momento de 3er orden de un vector.
Momento_XY: Calcula el vector momento XY de 2do orden de un vector.
Momento_XYZ: Calcula el vector momento de 3er orden XYZ de un vector.
Mult: Realiza la multiplicaciòn de números complejos
Mult_Vector: Realiza la multiplicación de vectores reales.
Mult_Vector_C: Realiza la multiplicación de vectores complejos.
FFT_radix2: Calcula la FFT del vector complejo x.
FFT_seccion: Calcula la FFT de un vector de datos reales.
FFT_seccion_C: Calcula la FFT de un vector de datos complejos.
FFT2: Calcula la FFT de 2 dimensiones de un matriz de datos
complejos.
Init_Matriz: Asignar valores iniciales a matrices o vectores reales.
Init_Matriz_C: Asignar valores iniciales a matrices o vectores complejos.
Open_dat_read: Abre un archivo *.dat para lectura.
Open_dat_write: Abre un archivo *.dat para escritura.
Optima: Calcula la ventana Optima de un punto.
Parzen: Calcula la ventana de Parzen de un punto.
PSD_Vector: Calcula la PSD de un vector de datos complejos.
Rectangular: Calcula la ventana Rectangular de un punto.
Anexo 3: Manual de Analizador en Visual C++.
161
Real_Complejo: Crea una matriz con columnas duplicadas con ceros real[n] --
>real2[2*n]= r(0),i(0),r(1),i(1).
Suma: Realiza la suma de números complejos.
Suma_Matriz: Realiza la suma de Matrices o Vectores reales.
Suma_Matriz_C: Realiza la suma de Matrices o Vectores complejos.
Transpuesta: Obtiene la Transpuesta no conjugada de matrices o vectores
reales.
Transpuesta_C: Obtiene la Transpuesta no conjugada de matrices o vectores
complejos.
Tukey-Hanning: Calcula la ventana de Tukey-Hanning de un punto.
Ventana2d: Funcion general para producir Ventanas 2D.
Ventana3d: Funcion general para producir Ventanas 3D.
Win_Matriz: Realiza la multiplicación de matrices reales con la ventana
seleccionada mediante simetría.
Win_Matriz_C: Realiza la multiplicación de matrices complejas con la
ventana seleccionada mediante simetría.
Win_Vector: Realiza la multiplicación de vectores reales con la ventana
seleccionada.
Win_VectorC: Realiza la multiplicación de vectores complejos con la
ventana seleccionada.
En el CD nexo se encuentra el listado completo de funciones en formato HTML, además
del código fuente de la aplicación del Analizador en C para PC y PC-DSP.