fig1 is a flow diagram of a sleep control method according to an embodiment of the invention . on fig1 , a user &# 39 ; s sleep cycles are monitored ( 102 ). by monitoring the sleep cycles , a sleep cycle count is updated ( 104 ). typically , completion of a rem sleep stage is regarded as completion of a sleep cycle , although any other stage of sleep could also be used for this purpose . a decision algorithm 106 is used to determine whether or not to wake the user . decision algorithm 106 includes the sleep cycle count obtained by monitoring the user &# 39 ; s sleep cycles as an input . decision algorithm 106 can also include optional inputs 114 . if a decision is made not to awaken the user responsive to a particular input or set of inputs , then monitoring continues ( 102 ). optionally , the ambient environment of the sleeping user can be altered ( 112 ). if a decision is made to awaken a user responsive to a particular input or set of inputs , then optionally an indication of whether or not sufficient rest has been obtained ( 108 ) and / or a schedule of events ( 110 ) can be provided to the user . rest indication 108 can be provided based on a comparison of monitored sleep cycle data recorded during the previous night with nominal sleep cycle data . preferably , such nominal sleep cycle data is obtained by consistently recording sleep cycle data for the user , and combining the recorded data with user feedback indicating daily fatigue level , daily energy level and / or performance . such user feedback can be stored once input , so that reentry of user feedback is not required . rest indication 108 can be of particular value to users who are pilots , drivers , doctors , or who work in other professions making stringent demands on alertness . the method of fig1 can include optional ambient modification 112 , which can be used to modify a user &# 39 ; s sleep cycles in accordance with a user &# 39 ; s desires . effective methods for ambient modification 112 include , but are not limited to , altering a temperature ( of a room and / or of an electric blanket ), altering a light level , and altering a sound level . typically , a user would experiment with a particular ambient modification ( e . g ., ambient temperature during various sleep stages ), and correlate the ambient modification with feedback information such as consistency and quality of recorded sleep cycles and / or energy level and performance during the following day . in this manner , a user can determine , in a personalized manner , what ambient modification ( if any ) is most suitable . discussion of provision of a schedule 110 to the user will be discussed below in connection with example 2 . one mode of operation of the method of fig1 is to awaken the user after a certain number of sleep cycles have been completed . various modifications and elaborations of this mode of operation can be provided by making use of optional inputs 114 on fig1 and by appropriately modifying decision algorithm 106 . fig2 is a flow diagram showing various exemplary optional inputs 114 to decision algorithm 106 of fig1 . for example , a nominal awakening time 212 can be provided to decision algorithm 106 and the user can be awakened either at the nominal awakening time or at the completion of a set number of sleep cycles , whichever occurs earlier . user preferences 208 , such as desired number of sleep cycles , and preferred phase of a sleep cycle to be awakened in can be included as optional inputs to decision algorithm 106 . preferences 208 can include parameters and / or rule - based information for resolving possibly conflicting directives . for example , the desired number of sleep cycles can conflict with the nominal awakening time , and this conflict can be resolved in various ways which the user can select via preferences 208 . ways of resolving this conflict include giving priority to the nominal awakening time ( as in the above example ), giving priority to the desired number of sleep cycles , or allowing completion of the desired number of sleep cycles if an estimated sleep cycle completion time is “ close ” to the nominal awakening time ( i . e ., later than the nominal awakening time by no more than a user - selectable time margin ). user historical data 206 can be included as an optional input 114 to decision algorithm 106 . such historical data can include past information on nightly sleep cycles , for review by the user and / or for use in providing estimates in decision algorithm 106 . for example , historical data 206 can be used to refine assumed sleep cycle phase durations to provide more accurate and personalized data for the user . user future travel information 210 and event priority data 204 will be discussed in connection with examples 1 and 2 below respectively . fig3 shows a block diagram of a system according to an embodiment of the invention . a sleep cycle monitor 302 provides sleep cycle input to a processor 304 . processor 304 is connected to an alarm 306 , and may also be connected to an optional ambient modifier 308 . monitor 302 monitors signals from the user &# 39 ; s body . the monitored signals are signals related to sleep cycles ( e . g ., electrical brain waves , body movement , heart rate , body temperature and / or breathing rate ). suitable physiological signals to use in such monitoring are known in the art , as are methods for analyzing such signals to provide information on a user &# 39 ; s sleep state and to derive a sleep cycle count . monitored signals are typically picked up via electrodes or sensors in contact with or near the user &# 39 ; s body . electrodes can be active or passive , and are widely available in the art . preferably , the number of electrodes or sensors is no more than what is required to provide suitable sleep cycle information . preferably , monitor 302 is non - invasive , such that the electrodes and / or sensors used to pick up signals are easy to position and remove . examples of suitable electrodes and / or sensors include : a headband with electrodes placed inside the headband , electrodes attached to the face or forehead , sleeves placed over the fingers , wrist bands with electrodes under the band , sensors in the sheets or mattress ( e . g ., as in u . s . pat . nos . 6 , 485 , 441 and 6 , 468 , 234 ), strain gauges across the user &# 39 ; s chest , motion sensors , or any combination thereof . furthermore , any method can be used to transmit signals from the electrodes or sensors of monitor 302 to monitor 302 ( or to processor 304 ), including wired transmission and wireless transmission . processor 304 on fig3 implements decision algorithm 106 of fig1 . such implementation can be in hardware and / or in software . preferably , decision algorithm 106 is implemented as software running on a general - purpose personal computer , since such implementation provides the convenient user interface of the computer and allows easy selection , modification and / or updating of the decision algorithm by input to ( or modification of ) the software . alarm 306 on fig3 can be any device suitable for waking up a user . such devices include , but are not limited to , audible alarms and / or visible lights . furthermore , alarm 306 can be a progressive alarm which gradually provides a more intense stimulus and / or changes the kind of stimulus ( e . g ., from a music broadcast to a buzzer ) to a user until the user awakes . optional ambient modifier 308 on fig3 can include devices for altering an ambient temperature ( of a room and / or of an electric blanket ), altering an ambient light level , and / or altering an ambient sound level . fig4 shows an operation diagram of an exemplary processor 304 in the embodiment of fig3 . on fig4 , processor 304 receives and interprets ( 402 ) monitor signals . the sleep cycle count is updated responsive to interpreted monitor signals . furthermore , monitor signals for the current night are recorded in storage 410 . storage 410 preferably also includes historical data from earlier nights . in the example of fig4 , it is assumed the desired decision algorithm ( i . e ., 106 on fig1 ) is to awaken the user after completion of a desired number of personal sleep cycles , or at a nominal awakening time , whichever is earlier . blocks 404 and 406 on fig4 show implementation of this logic for triggering alarm activation ( 408 ). a user interface 412 is provided to enable a user to provide input to the system and to receive output from the system . more detailed and specific modes of operation of embodiments of the invention are discussed in connection with the following two examples . the user is assumed to be an athlete that has used a system according to an embodiment of the invention for sufficient time to collect useful historical data and who will be competing in an event in a foreign time zone . for the purposes of this example , the athlete is living and training in california for an event in england , and desires to slowly adjust to the new time zone before he travels overseas . one week before departing to england , the athlete , who ordinarily gets up at 8 : 00 am , sets his system up for 8 : 00 am london time . the system calculates the time difference to be 8 hours . the system will not attempt to make the full 8 hour adjustment over 7 days , but only a more reasonable three hours adjustment . otherwise the athlete would be going to bed in daylight hours during the week prior to the event . this would not be practical . over the next 7 days the system turns on a light at a low level a half hour earlier on each successive morning and slowly ramps up to full intensity over the subsequent half hour after the light is turned on . the following table represents this schedule : day m t w t f s s set 8 am 7 : 30 7 6 : 30 6 5 : 30 5 am thus , in this example , a system according to the present invention is used to adjust a user &# 39 ; s circadian rhythms prior to travel to a different time zone . such adjustment is based on future travel plans 210 provided as an optional input 114 to the method of fig1 . for purposes of this example , we assume the athlete of example 1 has an event scheduled for noon the next day and that the athlete has several preparations ( priority events ) that must be considered to properly prepare for and enhance the day &# 39 ; s performance . furthermore , the athlete desires to not be awakened on the day of the event during a critical sleep cycle , before the completion of his optimum personal sleep cycle , or in such a way that does not encourage optimum performance . first , the athlete desires to be awakened with sufficient time to : 1 ) eat breakfast ; 2 ) use the bathroom and shower ; 3 ) stretch ; 4 ) meditate ; 5 ) watch a motivational tape ; 6 ) call home and talk to parents ; 7 ) drive to the event ; 8 ) meet with coach for a final pep talk ; and , 9 ) engage in final warm up and mental prep for the event . the athlete notices that not all of the above activities are absolutely necessary and that it would be acceptable to forgo or reduce some pre event activities in exchange for obtaining a optimum personal sleep cycle . the athlete enters event data into the system as code sequence 1 based on the following information . breakfast will take 15 minutes total to order and eat . breakfast is not an absolute priority . it would be possible to eat high - energy foods in the car on the way to the event . so the breakfast entry is assigned the code of 01 - 000 - 015 . the first number represents the first of the sequence of pre - event priorities . the second and third numbers in the sequence represent absolute and optional time allotments in minutes , respectively . the second number is the absolute time in minutes that must be allowed for the respective activity and the athlete must be awakened , regardless of the quality of sleep , with at least this amount of time to perform this function . if the second number is 0 , the activity is optional , and can be omitted entirely if necessary . the third number is an optional time allotment in minutes . since breakfast is not an absolute priority because the alternative of eating in the car on the way to the event exists , an optional time requirement of 15 minutes is established . if the personal sleep cycles are complete with sufficient time for the optional time , the athlete will be awakened with a budget of 15 minutes to eat ; otherwise the athlete will be eating in the car . the athlete &# 39 ; s typical bathroom routine takes about 30 minutes , but only 15 minutes would be absolutely necessary . therefore , this is assigned a code of 02 - 015 - 030 . the athlete &# 39 ; s initial stretching routine typically takes 15 minutes . the athlete knows that initial stretching is preferable , but in this case not absolutely necessary , so priority is given to sleep . therefore , this is assigned a code of 03 - 000 - 015 . meditating is not an absolute priority and is assigned 04 - 000 - 030 . watching a motivational tape is not an absolute priority and is assigned 05 - 000 - 030 . calling the parents can be done from the car on the way to the event . it is assigned 06 - 000 - 005 . driving to the event is an absolute priority and is assigned 07 - 015 - 015 . meeting with coach for a final pep talk is not an absolute priority and is assigned 08 - 000 - 010 . final warm up and prep is an absolute priority and is assigned 09 - 015 - 015 . at any time prior to the event , the athlete enters the following data into the system . the athlete also knows from previous use of the system which sleep cycle stages is optimum to be awakened during and which are not . in this example the athlete performs best after three complete sleep cycles , and then only after being awakened during phase 2 sleep . furthermore , the athlete is a heavy sleeper , and can take as much as 15 minutes to wake up after the alarm begins to sound . this information , as well as other information , is included in “ other data ” as follows : the athlete knows from previous use of the system that his sleep cycles are most consistent when his “ undercover ” temperature ( temperature as taken immediately under the covers ) is 60 degrees . the athlete &# 39 ; s hero is martin luther king and he is greatly inspired by king &# 39 ; s “ i have a dream speech ”. excerpts of king &# 39 ; s speech were previously recorded into the alarm unit and the alarm unit is set for gradual and repetitive alarm . the system allows the speech excerpts to start playing quietly , then repeat while gradually getting louder until the maximum audio limit is reached , or the alarm is turned off . “ x ” is followed by numbers 1 , 2 , 3 , 4 and / or 5 , representing stages of sleep during which awakening is not preferred . in this example , x1345 indicates that awakening is to be inhibited during stages 1 , 3 , 4 , and 5 of sleep . “ y ” is followed by numbers 1 , 2 , 3 , 4 and / or 5 , representing stages of sleep during which awakening is preferred . in this example , y 2 indicates that awakening is preferred during stage 2 sleep . “ 3 ” represents the number of rem stages ( i . e ., sleep cycles ) desired . “ 15 ” represents the amount of time in minutes that it might take to awaken the athlete , based on previous use of the system . the night prior to the event the athlete places a headband , finger slips , or nose bridge on , or a combination thereof , depending on what signals have been determined as necessary in prior use of the system , verifies the alarm settings , and goes to sleep . the system adds up the total time for the priority data and the 15 minutes allocated for the alarm and stores the alarm data and event time . the absolute priority time totals 60 minutes ( 45 minutes for events plus 15 minutes for the alarm ) or one hour , and the optional time totals 180 minutes ( 165 minutes for events plus 15 minutes for the alarm ), or 3 hours . the system subtracts each from 12 : 00 pm and stores 11 : 00 am as the absolute latest wakeup time , and 9 : 00 am as the most convenient wakeup time . the system defaults to awakening the athlete at any time that the optimum number of sleep cycles have occurred , which may be before 9 : 00 am in this example . the system monitors the athlete &# 39 ; s sleep and records the sleep cycles while continuously referencing the convenient and latest wake up times and the actual time . the system knows other details of the athletes typical sleep patterns from analyzing the historical data . during the night , the athlete is awakened by the sound of a siren during a deep sleep stage , and subsequently has a hard time going back to sleep because of worries associated with the event . this disruption in the sleep cycle and subsequent difficulty in falling back asleep has delayed completion of the athlete &# 39 ; s third rem stage . therefore adjustment must be made to the alarm time . at 9 : 00 am the system notes that third rem stage has not been completed . it further notes that the athlete is in a phase 3 sleep stage , only 2 stages away from the third rem stage . according to the user historical data 206 , each rem stage gets longer as the night progresses . the system uses an average based on similar sleep scenarios to estimate that the last rem stage will start in 15 minutes and last for 90 minutes . the system further estimates , based on user historical data 206 , that it will then take an additional 15 minutes to get into a stage 2 sleep cycle , which is the preferred stage for awakening . the system calculates a delay of 120 minutes , thus delaying the alarm time to 11 : 00 am . the system checks to see if this is later than the latest alarm time and discovers that it coincides . the system continues to monitor the athlete , since the estimate indicates that the desired number of sleep cycles can be completed before the latest possible awakening time . the system notes that the athlete is getting through stages three and four much faster than usual and that the athlete enters the third rem stage in only 5 minutes instead of the previously estimated 15 minutes . the system begins to monitor the third rem stage . during the third rem stage the system notes that the temperature under the blanket has fallen to under 60 degrees and therefore sends a signal to the electric blanket control to increase the temperature until 60 degrees is reached . by doing so the third rem stage is not interrupted and further turns out to be shorter than the average and totals only 40 minutes . the historical data confirms that this is long enough to be considered part of a full optimum personal sleep cycle . the system then monitors the athlete going through the fourth stage 1 sleep phase in 5 minutes and as the athlete enters the fourth stage 2 sleep phase the awakening condition is met , and at 9 : 50 am king &# 39 ; s speech begins to play . the athlete wakes up 15 minutes later and the system display reads : in this example , 50 minutes had to be subtracted from the total optional event time . since seven of the nine scheduled events have optional time allocations , reducing six of these optional time allocations by 7 minutes and one by 8 minutes will distribute the schedule reduction equally among the optional activities . in this example , the phone call is eliminated from the schedule , since it was only allotted 5 optional minutes . also , two additional minutes are taken away from other activities since eliminating the phone call only frees up 5 minutes . this rescheduling is preferably done automatically by processor 304 . of course , this is only one example of how absolute and optional time requirements for event priority data 204 can be used to automatically provide a schedule 110 to a user . it will be clear to one skilled in the art that the above embodiments may be altered in many ways without departing from the scope of the invention . for instance , the analysis of monitored signals and comparison with historical data could be performed remotely . furthermore the system could be a small package with onboard processing , memory and data acquisition . the storage could also be performed onboard or off - line . yet another variation is that the monitoring could be performed continuously or at discrete time intervals which have sufficient time resolution for monitoring / counting of sleep cycles .
a system is provided including : a monitor for monitoring a user &# 39 ; s sleep cycles ; a processor which counts the sleep cycles to provide a sleep cycle count and which selects an awakening time according to a decision algorithm including the sleep cycle count as an input ; and an alarm for awakening the user at the awakening time . use of the sleep cycle count as an input to the decision algorithm advantageously enables a user to more fully control and optimize his or her personal sleeping behavior .