From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

PFC con DSP

Hola a todos. Estoy haciendo una proyecto final de carrera en el que utilizo una tarjeta dsp 6713 de TI. Esta tarjeta trae un software de programación pero es algo dificil desde mi punto de vista, por lo que he optado a probar Labview DSP. El caso es que muestreo una señal externa y necesito almacenar bastantes de esas muestras para luego procesarlas. Para ello inicializo un array de N valores. He comprobado que este N no puede ser mayor de 512 ya que el programa deja de funcionar o dá un error. ¿Me puede decir alguien a que se debe y como lo puedo hacer? Se puede utilizar una parte programada en C, para la adquisición de la señal por ejemplo, y el resto en Labview??

Muchas gracias. Saludos.

0 kudos
Mensaje 1 de 3
2.911 Vistas

Hola EL7

 

El trabajo con arrays en un DSP es delicado, ya que la memoria de estos dispositivos es muy limitada, por lo que los tamaños de las unidades de datos tambien lo son. EN concreto LabVIEW DSP tiene un tamaño máximo de array de 1024 para trabajar con sus funciones. Esto lo puedes comprobar en la ayuda de LabVIEW DSP, ya que si vas por ejemplo a la descripción de la FHT o de la FFT,podras ver que como máximo trabaja con este tamaño de vectores.De todas forma, si vas a trabajar con vectores estos enlaces te interesan:

 

http://digital.ni.com/public.nsf/websearch/684D71E7BFD4D56C8625700E00662BF7?OpenDocument

 

http://digital.ni.com/public.nsf/websearch/B689005824326A0D8625700D005F4824?OpenDocument

 

Sobre tu pregunta de si puedes integrar código C en LabVIEW DSP, la respuesta es si, aunque es un proceso enrevesado y solo se recomienda a usuarios experimentados de compiladores DSP. Además, el código importado tiene que cumplir con una serie de requisitos. En este enlace puedes encontrar más información al respecto.

0 kudos
Mensaje 2 de 3
2.888 Vistas

Hola Sendia. Muchas gracias por tu respuesta. Llevo tiempo detrás de esto. La tarjeta que uso tiene 16Mbytes de memoria RAM y por muy mal que se almacenen los datos, dejando espacios inutilizables, creo que tiene espacio suficiente para almacenar las muestra que necesito para conseguir una buena resolución en frecuencia. Otra cosa es que los vectores no se puedan inicializar a más de 1024 valores, lo que supone una limitación importante que desconocía.

Yo inicializo el vector con 512 valores. El elemento de I/O también usa una framesize de 512. Pero según he leido Labview DSP Module utiliza buffering doble con lo que la capacidad real sería 1024. ¿Es esto cierto?

Tras muestrear la señal de entrada y almacenar estos 512 valores hago un transformación en frecuencia. Si represento el espectro en frecuencia obtengo dos espectros conjugados centrados en 256. ¿Cual es la capacidad total del buffer entonces?

Lo de insertar código en C en Labview es según parece la única forma de almacenar más de 1024 muestras de la señal y conseguir así la resolución frecuencial que necesito.

Gracias. Un saludo.

0 kudos
Mensaje 3 de 3
2.883 Vistas