Estás describiendo un histograma de los anchos de pulso. Tanto el tiempo como el conteo estarían bien dentro de las capacidades de un modesto microcontrolador, ya sea una placa de experimentadores lista para usar, o se construirá en una placa de pruebas. Tomar una interrupción a 10 Hz apenas usaría las capacidades de un chip de $ 5. En 4 horas, un tren de pulso de 10Hz dispararía 144000 veces y si es un 10Hz sólido como una roca, su histo contará solo un contenedor que necesitaría poder acumular ese número tan grande. Eso es más grande que un int de 16 bits (necesitarías 18 bits) pero se maneja fácilmente usando largos ints (32 bits). Calcule la resolución de tiempo (tamaño de la bandeja) y la salida máxima de 1.0 ms que necesita para cuatificar y decida cuántas ubicaciones necesita. Necesitarás 4x esa cantidad de bytes para mantener el histo. Suponiendo que necesita ~ 20 contenedores, todavía está dentro de los recursos de un modesto microcontrolador.
No es una solución estándar si eso es lo que necesita, pero será mucho menos dinero que comprar un instrumento de banco. ¡Mucho más diversión, también! (A menos que necesite los datos de ayer ...)
Supongo que tiene una computadora con un puerto USB a su disposición para programar el chip, así como para recopilar los datos.
Actualización:
Organizaría la señal para interrumpir la MCU cada vez que cambia. Mantendría a uno de los temporizadores funcionando continuamente un temporizador a 1KHz (para resolución de 1 ms). En cada flanco ascendente, su ISR leería y guardaría el temporizador. En cada flanco descendente, volvería a leer el temporizador y le restaría el valor guardado para obtener el ancho del pulso. Asigne ese valor a uno de sus contadores de histograma e incremente el contador.
algo como
%código%
histografiará los anchos de pulso reales en mseg (en oposición a la desviación de 100 ms). Trazar un histo de desviación solo requiere volver a etiquetar el eje t.
Obviamente, elija la resolución del temporizador & Tamaños de contenedores que tienen sentido para su aplicación. Elegí cubos de 1 ms de 0 ms a [tantos como necesite], representando de -100 ms a + ?? de desviación.