Discusiones sobre Productos NI

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

Adquisición de datos usando tarjeta de sonido

Saludos cordiales y Gracias por su ayuda.
 
Soy nuevo en el uso de LabVIEW y mi inquietud es la siguiente.
Estoy haciendo un proyecto en el que debo muestrear una señal usando la tarjeta de sonido, he encontardo algunos ejemplos he implementado un VI, pero tengo los siguientes problemas: en la ayuda se indican que el sample rate de la tarjeta de sonido lo puedo setear a 8000, 11025 etc, pero no necesito un muestreo tan alto para mi caso 10 samples por segunto estarían bien, se puede hacer esto y como lo haría?.
Adicionalmente los datos adquiridos los debo guardar en un archivo para luego poder visualizarlos; al momento con un sample rate de 11025, 10 minutos de muestreo me genera archivos de formato binario de casi 1MB y obviamente necesito reducir el tamaño de los archivos pues mis sesiones de muestreo serán de al menos una hora. Como podría solucionar este problema??.
 
Desde ya muchas gracias por su respuesta
 
Franklin
0 kudos
Mensaje 1 de 7
6.673 Vistas


Hola
La posibilidad de usar otras velocidades de digitalizacion depende del hardware y de la version de Labview que uses.

Para reducir los datos, hay una funcion llamada "decimate". Buscala en la ayuda y mira si tienes un ejemplo en
..\examples\analysis\dspxmpl.llb

Si adquieres a 8000 s/s y quieres solo 10, decimas por 800, de manera que te da un punto de cada 800. Ademas
puedes elegir si quieres un maximo o un promedio de los 800, etc

Aunque el hard te permita disminuir la velocidad y tu version de Labview tambien, no te recomiendo muestrear a velocidades
demasiado bajas, pues si no tienes acondicionada la señal de entrada, podrias tener "aliasing"

Asimismo, haz pruebas con los tamaños del buffer de datos, ya que al arrancar otras aplicaciones, se puede
desbordar y dar error.


Saludos
Alipio

---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
0 kudos
Mensaje 2 de 7
6.659 Vistas
Alipio, muchas gracias por tu respuesta, de verdad tu ayuda ha sido de mucha utilidad.

Espero no abusar pero tengo otras preguntas: En base a que debo dimesionar el tamaño del buffer del "Snd Read Waveform VI"? y cual su función exactamente (la del buffer)?, se que debe ser una potencia de 2 y que el valor por defecto es 8192, pero supongo que su valor estará tambien relacionado con el sample rate.

Y también quisiera que los datos adquiridos se visualizen en un gráfico, para lo que estoy usando un waveform graph, sin embargo lo que quisiera saber si es posible hacer que en la escala de tiempo aparezca el tiempo real en el que estoy haciendo la adquisición no un tiempo en segundos que siempre inicia en cero. Es eso posible??.

Desde ya, muchas gracias por tu ayuda y por cierto, estoy usando la versión 7.1 de LabVIEW

ATTE
Franklin
0 kudos
Mensaje 3 de 7
6.643 Vistas
Hola.
El buffer es una memoria temporal que la tarjeta de sonido va llenando y que tu vacias cada vez que lo lees, si lees el mismo tamaño.
Su mision es permitir que el sonido siga siendo adquirido aunque el PC este haciendo otra cosa.
Su tamaño es un compromiso. Es conveniente tener por lo menos 1 s de adquisicion ´Prueba a lanzar  adobe reader o word mientras adquieres, para ver si da error. Tambien puedes  descargar una libreria llamada waveio ( buscala en google, es de un aleman) que tiene vis que usan las dll de windows y permite mucha mas flexibilidad que labview 7.1. En esta puedes definir varios buffers mas pequeños, entre otras cosas.
Yo ya no tengo labview 7.1 instalado, asi que no puedo enviarte ejemplos. El 8.2 ya tiene otras vis para sonido bastante mas potentes.

En cuanto a los graficos, en propiedades del eje x pones absolute time y veras que sale fecha y hora en tiempo real. Busca en examples>general>graph que creo que hay ejemplos de ello.

saludos
Alipio

---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
0 kudos
Mensaje 4 de 7
6.632 Vistas
Saludos y otra vez muchas gracias Alipio por la información.

Te comento que he hecho las pruebas que me sugeriste y con el tamaño del buffer por defecto no ha tenido problemas hasta ahora tras varias horas de muestreo, pero mi problema sigue siendo el asunto del eje horizontal del gráfico, pues al configurar la escala como absolute time se me ubica en la escala en el punto cero las 19:00 y en la fecha aparece 31/12/1903; obviamente para nada esos datos son, ni la fecha ni la hora de mi computador. Si puedes ayudarme con alguna propiedad que me permita configurar eso, te lo agradecería mucho.

Atte.

Franklin
0 kudos
Mensaje 5 de 7
6.552 Vistas
Hola
Te aparece el valor para un contador de tempo en 0.

Tienes que darle al eje x los valores de tiempo para que te los presente.
Te adjunto dos enlace a info de NI sobre la materia. En cada uno de ellos hay una vi de ejemplo que puedes usar para que tu grafico presente la hora del sistema.

http://digital.ni.com/public.nsf/allkb/6F0054EEABAFE4B886256F2700012142

http://digital.ni.com/public.nsf/allkb/0A4899EF6D01B9C5862568B70074F989

saludos
Alipio

---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
0 kudos
Mensaje 6 de 7
6.543 Vistas
Muchas gracias por la información, en realidad es de gran ayuda.

Atte.

Franklin.
0 kudos
Mensaje 7 de 7
6.484 Vistas