› Foros › Off-Topic › Miscelánea
_Charles_ escribió:¿Ninguno de vosotros sabe Python o R? Eso parece el tipico problema que necesita un script.
goldaster escribió:Para conseguir que tus datos estén "muestreados" igual, diría que la mejor opción que tienes es la transformada de Fourier.
Teniendo datos discretos, deberías hacerles la transformada discreta de Fourier, y obtendrías los datos "en frecuencia". Con eso, le haces la anti transformada, pero en vez de la discreta, la normal (continua).
Con esto obtendrías el equivalente a tus datos muestreados pero con una función continua, es decir para todos los tiempos posibles, por lo que podrías remuestrear en los tiempos que quieras. Si lo haces con los 2 grupos de datos podrás compararlos sin problemas.
En cuanto a que empiecen o acaben antes... si quieres comparar necesitas datos de los dos grupos, asi que lo que yo haría es desechar los datos de momentos en que solo tienes 1 grupo, y te quedas solo con los que tienes los 2.
Con la transformada de Fourier has de tener en cuenta que variaciones más rápidas de la mitad de la frecuencia de muestreo no aparecerán, asi que si hace algun analisis frecuencial no deberías considerar como válidos datos a más de Fm/2. De hecho, si mirases el espectro de tus datos finales verias que se va repitiendo cada Fm y es simétrico respecto Fm/2.
Espero haberme explicado bien xDD Igualmente esto es un proceso que esta machacadísimo, así que no tendrás problemas para encontrar código de ejemplo en casi cualquier lenguaje.
Saludos!
goldaster escribió:Con lo que te comento también solucionas el tema de muestreo, te lo explico más gráficamente con un ejemplo.
Supongamos que tu señal es una señal cuadrada, tras hacer lo que te comenté, te quedaría algo como esta gráfica:
La linea negra es la señal original, las de colores son los diferentes resultados en función de cuantas muestras hayas usado para la DFT (cuantas más, mejor).
De hecho la mayoría de generadores de señales van asi, si usas un osciloscopio y miras bien de cerca una señal "cuadrada" veras estos rizos, sobretodo en las esquinas que es donde más se nota.
Una vez tienes esto, es como si reconstruyeras la señal original, es decir, tienes una señal continua en el tiempo, por lo que para conseguir los valores vuelves a muestrearlos, solo que ahora muestrear simplemente es mirar un valor en tu PC.
Por lo que si quieres muestrear 2 señales sin desfase, habiendo hecho esto, simplemente muestreas en el mismo momento y ale, ya tienes tus muestras síncronas.
Ahora bien, no deja de ser una aproximación que puede ser muy buena o muy mala según cuantas muestras hayas usado.
Saludos!
Edit: Otra gráfica (gif) que aclara como funciona
gracias por la ayuda, pero creo que no nos estamos entendiendo![]()
no me preocupa reconstruir la señal, y las diferencias entre muestreos las arreglamos más cutremente (interpolando). por hacia donde llevas el post me da la impresión de que eres teleco![]()
goldaster escribió:gracias por la ayuda, pero creo que no nos estamos entendiendo![]()
no me preocupa reconstruir la señal, y las diferencias entre muestreos las arreglamos más cutremente (interpolando). por hacia donde llevas el post me da la impresión de que eres teleco![]()
Jajajaj tanto se me nota? Pues si, basicamente la mitad de telecos es Fourier...
Ok, entiendo que las dos señales son muy parecidas, con siferencias solo por diferentes equipos y tiempos de muestreo, y lo que quieres es saber que offset aplicar para tenerlas lo mejor sincronizadas posible.
Para esto podrías usar la correlacion. Esta función te da la "similitud" entra las dos señales para todas las dieferencias de tiempos entre ellas. Cuanto más, más parecidas, por lo que donde haya un máximo, este punto sera la diferencia de tiempos entre las señales. Como ejemplo, la autocorrelacion (correlacion de una señal con ella misma) tiene el máximo en 0.
Puesto que estan muestreadas con frecuencias diferentes, este calculo deberías hacerlo con la señal reconstruida o con "interpolaciones", ya que el calculo considerara las muestras de las 2 señales espaciadas igual, y si no estan asi el calculo ire acarreando errores a medida que compara muestras más alejadas, y por tanto, con mas diferencia en tiempos.
Otra cosa es que vayas calculando correlaciones cada x muestras para recalcular el offset. En plan, las muestras 0 de las 2 señales tienen una diferencia de 327ms, las muestras 1000 de las 2 señales tienen una diferencia de 653ms, ... y de ahi podrias calcular cuanto se te van desincronizando las señales cada x muestras.
Saludos!