Discusiones sobre Productos NI

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

¿Cómo podría graficar datos recibidos por un hidrófono?

Muy buenas.

 

Tengo unas cuantas dudas, pero empezaré por situar el contexto de mis dudas.

Debo tratar la información recibida por un hidrófono,es decir, obtener información de la señal recibida y graficar los datos.Antes de nada decir que debo hacerlo mediante un cliente UDP. (He creado un servidor UDP para realizar simulaciones)
 La primera parte está realizada. Consigo extraer el contador de la trama de datos que envía, la frecuencia de muestreo y la ganancia de la señal. Todo esto está contenido en los 2 primeros bytes(byte 0 a 1). El problema es que los datos a tratar para realizar las gráficas están contenidos en los bytes 2 a 1025, pero el datasheet no especifica nada sobre ellos. Tan sólo me indica que envía 2 bytes por muestra, por lo tanto, 512 muestras.

La verdad es que no sé como continuar. Además, más adelante, tendré que ser capaz de reproducir el sonido que envía el hidrófono.

 

Si alguien fuese capaz de orientarme  por dónde continuar, o qué buscar para poder avanzar, sería una grandísima ayuda.

 

Muchas gracias y un saludo.

 

P.D: El modelo de hidrófono es NAXYS Ethernet Hydrophone 02345 . Su datasheet es el siguiente.

 

0 kudos
Mensaje 1 de 10
5.534 Vistas

 

Hola.

 

Prueba a poner dos 2 o 3 secuencias de datos para decodificarlos.

 

Lo normal es que sean I16 como cualquiere tarjeta de sonido pero haba queconfirmarlo.

 

 

EDITADO: Segun el manual, el formato debe ser I16 lsb que es el usado normalmente para .wav.

Puede ver la señal con cooledit o adobe audirion para verificar el formato.

 

 

Saludos.

Alipio.

---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
Mensaje 2 de 10
5.523 Vistas
Gracias por la respuesta. Veremos que puedo hacer con el tema de gráficas en labview y realizar el espectograma de los datos, o las gráficas con márgenes configurables.
0 kudos
Mensaje 3 de 10
5.500 Vistas

Hola.

 

 

despues de ver el manual, te pongo un ejemplo de como puedes decodificar los datos.

Dependiendo de que sean msb o lsb una de las pantallas debe verse correctamente.

 

La string de 1026 puedes convertirla a array de bytes usando la funcion "string to byte array". A partir de ahi mira la vi que te envio como ejemplo.

 

Si tienes dudas en conversiones, graficas o sonido, aqui estamos para ayudar.

 

Saludos.

Alipio.

---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
0 kudos
Mensaje 4 de 10
5.485 Vistas

Muchas gracias por tú última respuesta. Parece que la cosa ya empieza a ir bien encaminada.

Si me surgiera alguna duda más, por supuesto que preguntaré, después de la ayuda recibida en tan poco tiempo.

 

Lo dicho, muchas gracias.

0 kudos
Mensaje 5 de 10
5.443 Vistas

Buenas de nuevo.

Estoy intentando reproducir los datos recibidos a través del audio, pero tengo algunos problemas. El primero de ellos es que si introduzco el bloque de audio dentro de buclel while que controla la recepción de los datos a través de UDP, la recepción de datos se detiene. En cambio, si saco fuera del bucle este bloque, cómo es lógico (al menos para los conocimientos que tengo), nunca llega a salir los datos fuera del bucle, ya que la recepción es contínua, y el bucle while nunca se detiene, por lo tanto, no hay nada que reproducir.

Otro problema sería el hecho de configurar correctamente el bloque de audio, porque para una señal senosoidal es muy simple, pero no tengo claro que para este caso sea igual. Además, le estoy pasando los 1024 bytes que son de datos, pero me parece que la parte a tratar con el bloque de audio no es la totalidad de esos 1024 bytes.

 

De momento nada más. 

 

Saludos.

 

P.D:Adjunto imagen del bloque de audio diseñado

0 kudos
Mensaje 6 de 10
5.427 Vistas

Una opcion es usar una estructura producer/consumer.
La adquisicion de datos va en el lazo producer y la reproduccion de audio en el consumer, usando una cola para pasar datos.
 
El formato de datos a pasar tiene que ser I16 (512 muestras) tal y como te puse en el ejemplo anterior.
 
Te adjunto un ejemplo de como puedes hacerlo.
 
Saliudos.
Alipio.

---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
Mensaje 7 de 10
5.416 Vistas

Buenas de nuevo. Después de bastante tiempo, vuelvo con el mismo proyecto, pero sigo teniendo problemas.

 

He realizado un servidor UDP, y el cliente UDP que es realmente el proyecto que debo sacar adelante. El servidor UDP simplemente lo utilizo para realizar pruebas. Utilizando ambos programas conjuntamente, la reproducción del audio es correcta. ¿Cuál es el problema?. El problema viene a la hora de usar mi cliente UDP con el hidrófono directamente. En este caso, el audio se va cortando continuamente, escuchando simplemente un zumbido cada cierto tiempo(aproximadamente cada segundo).

 

La verdad es que no se que hacer. Me da la sensación que es algún problema de sincronia en la cola(a la hora de poner datos en cola y después vaciarla y reproducir el audio),pero no estoy seguro.

 

Dejo mi VI por si es de utilidad.

 

Muchas gracias y un saludo.

0 kudos
Mensaje 8 de 10
4.628 Vistas

Hola.

 

Yo con UDP,TCP, etc hace tiempo que no trabajo.

Te recomiendo abrir un post nuevo para el protocolo por si alguien te puede ayudar.

 

Saludos.

Alipio.

---------------------------------------------------------
"Qod natura non dat, Salmantica non praestat"
---------------------------------------------------------
Mensaje 9 de 10
4.625 Vistas
De acuerdo, eso haré .

Gracias y un saludo
0 kudos
Mensaje 10 de 10
4.622 Vistas