Transformada de Fourier con NXT y LabVIEW

experimentoEste experimento permite demostrar cómo es posible el cálculo en tiempo real de la DFT (Discrete Fourier Transform) en un NXT con el toolkit de National Instruments LabVIEW Add-ons for LEGO MINDSTORMS NXT. Este experimento se mostraba impracticable hace un par de años, pero gracias a las nuevas versiones tanto del firmware del NXT como del toolkit, el procesado ha sido finalmente posible a una velocidad más razonable.

El experimento fue realizado por Claude Bauman, y en él se emplea una máquina de vapor de juguete (su único objetivo es adornar el experimento) y cuya velocidad de giro es medida mediante un sensor de rotación de LEGO 9891. Los datos son registrados por el NXT de LEGO, que calcula la DFT en tiempo real y muestra el espectro de potencia de los 8 primeros armónicos.

 

 
 

Se hace uso de una variante de la DFT denominada RFT, que se muestra especialmente útil en los sistemas empotrados que se caracterizan por estar limitados bien en memoria o capacidad de cálculo. La velocidad de esta variante se debe que en realidad no se calculan los valores trigonométricos, sino que se leen de una tabla en la que se han precalculado previamente, escalado y almacenado como si de un array se tratara. Esto es posible porque en la práctica se emplea únicamente un reducido número de valores de seno y coseno, valores que son los que se almacenan en esa tabla (en este caso 128 valores de la función seno)

 

vi_1
 

El firmware del NXT soporta datos en punto flotante, por lo que es posible el cálculo del espectro de potencia.

 

vi_2
 

El programa muestrea 128 valores, calcula la DFT, calcula el espectro de potencia y muestra los armónicos en un gráfico de barras.

 

espectro_NXT
 

Como el NXT muestra que el mayor de los armónicos es el 6º, esto quiere decir que para la duración de 128 muestras (T = 128*3 = 384 ms), el período de una señal tiene una duración de 384/6 = 64 ms. Sabemos que en el sensor empleado 16 pulsos (= 4 períodos de ciclo) corresponden a una revolución. Por ello tenemos una rotación completa cada 256 ms, que es unas 4 rot/seg. o 240 rot/min.

Información adicional:

Comments are closed.