170
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

TESIS COMPLETA SIN ANEXOS - Tecnológico Nacional de

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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τ

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.