LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

fourier series

Hi, I'm developing an application with LabView and need to calculate 4 truncated fourier series from an array of aquired data. I've made such calculi in Mathcad (see image). The Array is predefined, but it would be sent to the VI once acquired by the instrument i'm using. I need LabView to calculate the four coefficients (A,B,C, adn D). Can anyone help me please?
Is LabView capable of doing this without third party sofware?
 
Thanks.
0 Kudos
Message 1 of 12
(8,387 Views)

Hi Ali84,

I’m not sure about what is the product inside the sum. I want to ask some questions:

1.       Is your array zero or one indexed?

2.       The step (paso) is a constant of 0.314?

3.       Assuming that N=20, then I(N-1) = I(19) = 0.00121 and is always constant?

If you could give more details we can create a program that does this without any third party software.

 

Hola Ali84,

No me queda claro el producto dentro de la sumatorio. Quisiera hacer algunas preguntas:

1.       ¿El arreglo comienza en cero o en uno?

2.       ¿Paso es una constante de 0.314?

3.       Asumiendo que N=20, ¿entonces I(N-1) = I(19) = 0.00121 y es siempre constante?

Si me da mas detalles, podemos crear un programa que realiza esto sin otro programa de terceros.

 

Tania Lozoya | NI Mexico

0 Kudos
Message 2 of 12
(8,341 Views)
Hola. El arreglo comienza en 0, de ahí que en la Serie utilice N-1 para el subíndice de I. El paso (Theta) depende de la resolución que se esté utilizando. Para mi programa es una variable y a partir de ésta se calcula el número de mediciones (número de valores en arreglo I) y el paso.
 
El subíndice (N-1) le indica a Mathcad que la sumatoria involucra todos los valores del arreglo, esto es desde (1-1)=0 hasta (20-1)=19. Estos indican los subíndices del arreglo I.
 
He estado tratando de hacer esto en LabView y sería ideal el no tener que usar otro software adicional. Sin embargo, en las funciones matemáticas de LabView 7.1 no encuentro ninguna función que me permita definir la serie como tal. Si me pudiese ayudar se lo agradecería mucho, pues Mathcad me está dando algo de problemas al comunicarse con LabView.
 
Gracias de antemano.
Alicia Torales
0 Kudos
Message 3 of 12
(8,328 Views)
Olvidé mencionar que los valores de I son mediciones que envío desde un instrumento a la computadora por el puerto serial. En el programa de mathcad cuya imagen envié defino valores aleatorios por simplicidad, pero el cálculo es el mismo.
0 Kudos
Message 4 of 12
(8,332 Views)

Hola Alicia,

Te anexo una imagen del código equivalente para lo que me indicaste. Me quedan algunas dudas:

1.       ¿Cómo se define 0.314? Para este caso lo dejo como una constante.

2.       Si  se está usando I como un arreglo indexado en 0, de N elementos, entonces se debe recorrer desde 0 a N-1 (0 a 19), lo cual se hace con I, ¿por qué en la n que multiplica a 0.314 se realiza desde 1 a N-1 (1 a 20)?

Una sumatoria básicamente es repetir una operación o un conjunto de operaciones. Como se trata de una sumatoria finita, en computación generalmente se utilizan los ciclos “for”. El ciclo “for”, es una estructura que ejecuta un numero finito definido por N, en este caso el ciclo “for” detecta el número de elementos en I, y eso define N implícitamente, si I tiene 20 el ciclo se ejecuta 20 veces. La letra i en el cuadro azul es n, o el número de repeticiones que lleva el ciclo. Cada repetición obtenemos un elemento de I, es decir I(n). Le sumo 1 a i o n, porque en la formula n comienza en 1 y termina en 20. 0.314 lo dejo como constante. Multiplica I(n), n+1 y 0.314, suma el resultado anterior. Para recordar la suma de la repetición anterior uso “shift registers”, comienzo en 0, y cada iteración sumo el resultado de la multiplicación y lo guardo para la siguiente, al final de los 20 ciclos, obtengo la suma de los 20 productos. Al final lo multiplico por 2 y divido entre N.

No obtengo el mismo resultado que en la imagen que envías, quisiera verificar esto para obtener exactamente lo que requieres y verificar que no haya cometido un error al crear el código.

¡Saludos!

Tania Lozoya | National Instruments

Mensaje editado por Tania Lozoya

0 Kudos
Message 5 of 12
(8,279 Views)

Hola. Muchas gracias por el código que tuvo a bien enviarme. Ya lo implementé en LabView, pero como usted dice, me da resultados distintos. Sin embargo, a lo largo de la semana estuve revisando mi código (en el que hago los cálculos en Mathcad) e identifiqué el por qué algunas veces LabView fallaba en obtener los resultados de Mathcad. Era cuestión de sincornización. Según vi, LabView iba demasiado rápido para que Mathcad procesara los datos a tiempo. Ya puse unos retardos en el código y todo funciona mejor.

También vi la posibilidad de usar el Mathscript de LabView, pero como estoy usando la versión 7.1 no cuento con ella. Sin embargo más adelante se puede explorar esa posibilidad.

Seguiré trabajando en el código que me envió para tratar de entender bien el funcionamiento y hacer los cálculos que necesito.

Agradezco mucho su ayuda. Si logro obtener los resultados necesarios modificando el programa se lo haré saber pues así sería mejor par ami proyecto.

Saludos!

Ali.

0 Kudos
Message 6 of 12
(8,236 Views)

Hola Alicia,

Quisiera saber por qué los resultados salieron diferentes en MathCad y en LabVIEW. Lo que podemos hacer para verificar como están funcionando los dos ciclos es mostrar los resultados de cada ciclo que estemos realizando, para compararlos, posiblemente se debe a  que los dos códigos estén haciendo algo diferente y sea cuestión de sintaxis. Tal vez si me explicas con palabras como funciona tu código de forma detallada, puedo encontrar la razón por la que no estén haciendo lo mismo. Tal vez tenga que ver con índices.

¡Saludos!

Tania Lozoya | National Instruments México

0 Kudos
Message 7 of 12
(8,201 Views)

Hola de nuevo. Muchas gracias por su ayuda. Lo que el programa hace es hacer los cálculos de las series de Fourier a partir de un arreglo de datos, en este caso son 16 elementos. Lo que hace el programa es calcular los 4 coeficientes de las series. Hice un segundo programa en Mathcad que quizá esté más claro. Adjunto la imagen de cualquier modo. La sumatoria se hace con los 16 valores del arreglo y envía el total, que es el coeficiente correspondiente.

De cualquier modo, como le comenté modifiqué un poco los programas y ya no me ha dado problemas el VI para enviar a y leer los datos de Mathcad.

Saludos y gracias de nuevo!

0 Kudos
Message 8 of 12
(8,161 Views)

Hola Alicia,

Aquí está el programa que calcula todos los coeficientes. Espero que te sea de ayuda.  ¡Saludos!

Tania Lozoya | National Instruments

 

 

 

Mensaje editado por Tania Lozoya

Download All
0 Kudos
Message 9 of 12
(8,148 Views)

Muchas gracias por su ayuda. En verdad este programa me va a ser de gran utilidad.

Fue muy amable de su parte y de nuevo gracias.

Alicia.

0 Kudos
Message 10 of 12
(8,104 Views)