Ik ben bezig met een klusje waarbij ik de verschiltijd tussen een events wil bepalen. Ik krijg van twee detectoren een pulsje binnen als er iets gebeurt, het pulsje van de tweede detector komt later dan dat van de eerste. Nu ik wil proberen beide pulsjes aan elkaar te 'koppelen', zodat ik de verschiltijd kan uitrekenen en een grafiekje kan maken van de gemeten verschiltijden.
Een plaatje van de data zoals ik deze in mijn C# programma heb is misschien handiger :-)

Ik heb een pijltje getekend tussen pulsjes die bij elkaar horen, te zien is dat de tijd tussen de pulsjes varieert (hier 3.7, 3.9 en 4.9 seconde).
Nu vind ik het lastig om een goed algoritme te bedenken om uit te vogelen welke pulsjes nu bij elkaar horen. De eerste set pulsjes bij 10:02:10 is makkelijk, maar in het deel van 10:02:20 tot 10:02:30 is het een stuk lastiger.
Mijn eerste gedachte is om de 2e tijdsbalk op te schuiven in de tijd met de gemiddelde tijd tussen pulsjes, het is dan makkelijker te zien welke bij elkaar horen. (voorbeeldje heb ik in Paint gemaakt).

Een lastig punt is dat de pulsjes soms niet helemaal netjes zijn en je een dubbel pulsje op de ene detector hebt en slechts één pulsje op de andere detector. Of andersom : wel een pulsje op de ene detector, maar niets op de andere. Het is dus niet zo dat pulsje nummer X op detector 1 altijd gekoppeld is aan pulsje nummer X op detector 2...
Kan iemand mij een paar goede zoektermen geven? of de naam van een algoritme? Ik weet niet goed waar ik op moet zoeken..
Mijn gedachte is nu zo :
- koppel pulsje X van detector 1 aan pulsje X van detector 2
- in een loopje :
- bepaal de verschiltijd van alle koppeltjes en controleer op gekke dingen (extreme afwijking, dwz < 3s of > 6s).
- bij een afwijking < 3, koppel dan vanaf hier pulsje X van detector 1 aan pulsje X+1 van detector 2 (maak de tijd groter)
- bij een afwijking > 6s, gooi dan pulsje X van detector 1 weg, en koppel pulsje X+1 van detector 1 aan pulsje X van detector 2.
of...
Een andere optie zou zijn om van _alle_ mogelijke koppels de verschiltijden te bepalen en daar alle onrealistische koppeltjes uit te filteren. Je houdt dan een kleine subset van koppels over. Hier zitten vast een paar dubbele tussen (detector in meerdere koppeltjes), die je er dan nog uit moet filteren..
Maar ik mis vast nog iets slims...
Een plaatje van de data zoals ik deze in mijn C# programma heb is misschien handiger :-)

Ik heb een pijltje getekend tussen pulsjes die bij elkaar horen, te zien is dat de tijd tussen de pulsjes varieert (hier 3.7, 3.9 en 4.9 seconde).
Nu vind ik het lastig om een goed algoritme te bedenken om uit te vogelen welke pulsjes nu bij elkaar horen. De eerste set pulsjes bij 10:02:10 is makkelijk, maar in het deel van 10:02:20 tot 10:02:30 is het een stuk lastiger.
Mijn eerste gedachte is om de 2e tijdsbalk op te schuiven in de tijd met de gemiddelde tijd tussen pulsjes, het is dan makkelijker te zien welke bij elkaar horen. (voorbeeldje heb ik in Paint gemaakt).

Een lastig punt is dat de pulsjes soms niet helemaal netjes zijn en je een dubbel pulsje op de ene detector hebt en slechts één pulsje op de andere detector. Of andersom : wel een pulsje op de ene detector, maar niets op de andere. Het is dus niet zo dat pulsje nummer X op detector 1 altijd gekoppeld is aan pulsje nummer X op detector 2...
Kan iemand mij een paar goede zoektermen geven? of de naam van een algoritme? Ik weet niet goed waar ik op moet zoeken..
Mijn gedachte is nu zo :
- koppel pulsje X van detector 1 aan pulsje X van detector 2
- in een loopje :
- bepaal de verschiltijd van alle koppeltjes en controleer op gekke dingen (extreme afwijking, dwz < 3s of > 6s).
- bij een afwijking < 3, koppel dan vanaf hier pulsje X van detector 1 aan pulsje X+1 van detector 2 (maak de tijd groter)
- bij een afwijking > 6s, gooi dan pulsje X van detector 1 weg, en koppel pulsje X+1 van detector 1 aan pulsje X van detector 2.
of...
Een andere optie zou zijn om van _alle_ mogelijke koppels de verschiltijden te bepalen en daar alle onrealistische koppeltjes uit te filteren. Je houdt dan een kleine subset van koppels over. Hier zitten vast een paar dubbele tussen (detector in meerdere koppeltjes), die je er dan nog uit moet filteren..
Maar ik mis vast nog iets slims...
/me heeft eindelijk ook een icoontje.. woef.. boeien..