I'm a sleep researcher and since last december I've been collecting data on mydreaming and awakening in the middle of the night.
Dreaming occurs within a well-known 80-120 minute "cycles", with about 5-6 cycles within a typical night. Each cycle is defined by 4 stages, from light sleep to deep sleep to dreaming. I'm lucky enough that most of the time I wake up after or close to the dreaming sleep stage.
The start of the sleep cycles depends on the choice of bedtime, which in turn is governed by a larger, ~24.5 hour circadian rhythm, which is entrained by the light/dark cycle. The circadian rhythm is exhibited by all cells within a body as well as major organ systems.
What I'm trying to do is better understand the circadian rhythm by analyzing discrete awakening events that I experience over night. On the attached screenshots; Each row represents one day of data. The events are plotted in real time.
Each discrete awakening from a dream is marked in green
Each non-dream awakening is marked in red
Each lucid - conscious dream is marked in cyan.
Each morning "get out of bed" time is marked in Orange
The onset of the first sleep cycle is marked in black.
Each row has 2 rulers:
The purple ruler's ticks are 90 minutes apart - the approximate sleep cycle length
The cyan ruler represents real time starting with 0 midnight, going to noon.
Together, the markers form vertical patterns, with dream awakenings happening at approximately the same times on subsequent days, with the pattern sloping one way or the other.
How can I analyze hundreds of discrete data points like that to see if they do form some kind of a waveform that persists from day to day?
I would be grateful for the keywords related to the transforms or algorithms that can help make more sense of such data, as well as any engineering articles dealing with a similar problem, or any other input.