Estoy trabajando en un proyecto donde medimos la capacidad de soldadura de los componentes. La señal medida es ruidosa. Necesitamos procesar la señal en tiempo real para que podamos reconocer el cambio que comienza en el momento de 5000 milisegundos.
Mi sistema toma una muestra de valor real cada 10 milisegundos, pero se puede ajustar a un muestreo más lento.
- ¿Cómo puedo detectar esta caída a 5000 milisegundos?
- ¿Qué opinas sobre la relación señal / ruido? ¿Deberíamos enfocarnos y tratar de obtener una mejor señal?
- Existe el problema de que cada medida tiene resultados diferentes y, a veces, la caída es incluso menor que este ejemplo.
Enlace a archivos de datos (no son los mismos que los utilizados para las parcelas, pero muestran el último estado del sistema)
- https://docs.google.com/open?id=0B3wRYK5WB4afV0NEMlZNRHJzVkk
- https://docs.google.com/open?id=0B3wRYK5WB4afZ3lIVzhubl9iV0E
- https://docs.google.com/open?id=0B3wRYK5WB4afUktnMmxfNHJsQmc
- https://docs.google.com/open?id=0B3wRYK5WB4afRmxVYjItQ09PbE0
- https://docs.google.com/open?id=0B3wRYK5WB4afU3RhYUxBQzNzVDQ
Respuestas:
La referencia clásica para este problema es la detección de cambios abruptos: teoría y aplicación por Basseville y Nikiforov. Todo el libro está disponible como descarga en PDF .
Mi recomendación es que lea el Capítulo 2.2 sobre el algoritmo CUSUM (suma acumulativa).
fuente
Normalmente marco este problema como uno de detección de pendientes. Si calcula una regresión lineal sobre una ventana en movimiento, la caída ilustrada será visible como un cambio significativo en el signo de pendiente y / o magnitud. Este enfoque ofrece una serie de factores que requerirán "ajuste": por ejemplo, la frecuencia de muestreo, el tamaño de la ventana, etc., afectarán la robustez (resistencia al ruido) del detector de señal de pendiente. Aquí es donde se pueden aplicar algunos de los comentarios anteriores. Cualquier filtrado o supresión de ruido que pueda aplicarse antes del ajuste de línea mejorará sus resultados.
fuente
He hecho este tipo de cosas calculando una estadística T de la media de la parte izquierda de los datos frente a la parte derecha de los datos. Esto supone que sabes dónde está el punto de transición, que por supuesto no sabes.
Entonces, lo que debe hacer es probar varios cientos de puntos de partición a lo largo del eje de tiempo y encontrar el que tenga la estadística T más significativa.
Puede hacer esto como algo así como una búsqueda binaria. Pruebe 10 puntos de datos, encuentre los dos más grandes, luego intente 10 puntos entre ellos, etc. De esta manera podría obtener un punto de transición bastante preciso. No estoy reclamando precisión. :-)
¡Háganos saber cómo va!
PD: Puede calcular la media y la desviación estándar como sumas en ejecución, lo que reduce la complejidad de calcular esta función de partición para todas las posibilidades de N ^ 2 a N. Haciendo esto, probablemente pueda permitirse calcular la estadística T en cada punto de partición posible.
fuente