Derived Data Streams

This page contains the details of all derived streams. These streams are generated by collecting and processing other streams' data, and thus require that the dependent streams be enabled as well. Because they rely on other streams their sample rates are also dependent on the underlying streams. Additionally, some derived streams require their underlying streams have their default sample rate configured, although this is not strictly enforced. Changing those sample rates from the defaults will cause those derived streams to either emit data at irregular intervals or affect the accuracy of their underlying algorithms.


Sleep Features

This stream processes EEG and movement data for later feeding into Aurora's sleep staging algorithm. It is not particularly useful by itself and is only included here for reference. See the sleep stager data stream for more information on Aurora's sleep staging algorithm.

Id Name Sample Rate Type Dependent Stream Mask Description
16 sf 2 sec/sample* float[19] 0x01000003 Normalized array of features

Configuration Options

Config Id Option Default Value Supported Values
0 Output Buffer Size 19 Not Configurable
1 File Buffer Size 512 bytes >= 512 (limited by available RAM)
2 Sample Rate 2 sec/sample Not Configurable
3 Sync Interval N/A N/A

Required Streams

Id Name Expected Sample Rate
0 signal 1 sec/sample*
1 eeg 128 Hz*
24 accel-mag 125 Hz*

* This data stream requires that all dependended upon streams have their default sample rates configured in order to achieve the expected 2 sec/sample sample rate. Changing the underlying streams' sample rates will lead to unexpected results.



Sleep Stager

This stream takes the data processed by the sleep features stream (collected during a 2 second window) and feeds it into Aurora's sleep staging algorithm. The algorithm employs a shallow feedforward artificial neural network designed in Matlab. The output of this stream is a number between 0 and 4, representing the user's current sleep/mental state.

Id Name Sample Rate Type Dependent Stream Mask Description
17 ss 2 sec/sample uint8 0x01010003 [0,4] Current sleep stage

Sleep Stage Outputs

Value Stage EEG Waveforms Description
0 No Signal N/A As indicated by the signal quality stream.
1 Awake Alpha, Gamma Waking, attentive state. Often indicative of overt body movements.
2 Light Sleep Theta, Beta, reduction in Alpha NREM1, NREM2 or a waking state of moderate relexation.
3 Deep Sleep Delta 3-4 Hz ("Slow" Waves) NREM3, NREM4 or a waking state of heavy relexation.
4 REM Sleep Theta, Gamma Rapid Eye Movements, includes both tonic and phasic REM stages.

Configuration Options

Config Id Option Default Value Supported Values
0 Output Buffer Size 1 >=1 (limited by available RAM)
1 File Buffer Size 128 bytes >= 128 (limited by available RAM)
2 Sample Rate 2 sec/sample Not Configurable
3 Sync Interval N/A N/A

Required Streams

Id Name Expected Sample Rate
0 signal 1 sec/sample*
1 eeg 128 Hz*
16 sf 2 sec/sample*
24 accel-mag 125 Hz*

* This data stream requires that all dependended upon streams have their default sample rates configured in order to achieve the expected 2 sec/sample sample rate. Changing the underlying streams' sample rates will lead to unexpected results.



Sleep Tracker

This stream analyzes the output of the sleep stager over time to smooth out false positives in the sleep stager and to provide a mechanism for responding to changes over time. Many of Aurora's most important functions are tied to this particular stream, including the Smart Alarm and DSL features.

Id Name Sample Rate Type Dependent Stream Mask Description
18 st 30 sec/sample uint8 0x03010003 [0,4] Sleep stage seen the most since the last sample.

Sleep Stage Outputs

Value Stage EEG Waveforms Description
0 No Signal N/A As indicated by the signal quality stream.
1 Awake Alpha, Gamma Waking, attentive state. Often indicative of overt body movements.
2 Light Sleep Theta, Beta, reduction in Alpha NREM1, NREM2 or a waking state of moderate relexation.
3 Deep Sleep Delta 3-4 Hz ("Slow" Waves) NREM3, NREM4 or a waking state of heavy relexation.
4 REM Sleep Theta, Gamma Rapid Eye Movements, includes both tonic and phasic REM stages.

Configuration Options

Config Id Option Default Value Supported Values
0 Output Buffer Size 1 >=1 (limited by available RAM)
1 File Buffer Size 128 bytes >= 128 (limited by available RAM)
2 Sample Rate 30 sec/sample Not Configurable..for now
3 Sync Interval N/A N/A
16 Stim Delay 14400000ms (4hr) 0 = no delay, >=1
17 Stim Interval 300000ms (5min) -1 = no interval, [5000, 1800000]
19 Stim Enable 0 0 = disabled, non-zero = enabled
21 Alarm Window 1800000ms (30min) [5000, 7200000]
23 SA Enable 0 0 = disabled, non-zero = enabled
25 DSL Enable 0 0 = disabled, non-zero = enabled
27 Alarm Time -1 -1 = disabled, [0, 86400000]

Stim Delay

This is the minimum amount of time (in ms) before REM detection can trigger stimulation events. The time is relative to when stimulations are enabled. This configuration value can be set at any time. Set to 0 to always allow the triggering of REM stimulation events when REM is detected.

Stim Interval

The amount of time (in ms) between triggering the stimulation event again if REM is still the active sleep stage and no other sleep stages have occurred. This configuration value must be set before enabling stimulations. This feature can be disabled by setting the value to -1, meaning stimulations will be triggered any time the sleep stager outputs REM (after any initial delay), even consequetive occurrences.

Stim Enable

Setting this configuration value to 1 enables REM stimulations, locking in the Stim Interval configuration and resetting the relative time offset used by the Stim Delay feature. Setting this value to 0 will prevent any further stimulation events from being emitted. This value must be set before configuring the Alarm Time, otherwise value changes will be ignored.

Alarm Window

This is the amount of time (in ms) before the configured alarm time that the Smart Alarm is able to trigger the alarm event early and the amount of time before the alarm time that DSL light therapy begins. This value must be set before configuring the Alarm Time, otherwise value changes will be ignored.

Smart Alarm Enable

Setting this value to 1 enables the Smart Alarm feature. This allows the Aurora to emit the smart-alarm event early if it discovers an ideal sleep stage*. Exactly how early is determined by the Alarm Window configuration value. The Smart Alarm can only be enabled before configuring the Alarm Time.

DSL Enable

Setting this value to 1 enables the DSL feature. This causes the Aurora to slowly fade in blue light using the LEDs. The Alarm Window controls when the light begins fading in until reaching full brightness at the scheduled alarm time. If using the Smart Alarm feature in tandem, Aurora can trigger the alarm event before the DSL lights have reached full brightness. The DSL feature can only be enabled before configuring the Alarm Time.

Alarm Time

This configuration value is used to set the desired wakeup time. It is specified in milliseconds after midnight. If using the Smart Alarm, the alarm event can be emitted before this time, depending on the Alarm Window value. This is generally the last configuration value set when setting up alarm-based features. A value of -1 disables the alarm entirely.

Required Streams

Id Name Expected Sample Rate
0 signal 1 sec/sample*
1 eeg 128 Hz*
16 sf 2 sec/sample*
17 st 2 sec/sample*
24 accel-mag 125 Hz*

* This data stream requires that all dependended upon streams have their default sample rates configured in order to achieve the expected sample rate. Changing the underlying streams' sample rates will lead to unexpected results.



EEG Frequencies

These streams provide the most common waveform frequencies used in EEG analysis. Values are expressed as power ratios of the corresponding frequency range to the total power spectrum sum. They are calculated by the Sleep Features stream and output to the below separate streams for convenience.

Id Name Sample Rate Type Dependent Stream Mask Description
19 eeg-delta 2 sec/sample float 0x01010003 Delta Total Power Ratio (< 4Hz)
20 eeg-theta 2 sec/sample float 0x01010003 Theta Total Power Ratio (4-7.5Hz)
21 eeg-alpha 2 sec/sample float 0x01010003 Alpha Total Power Ratio (7.5-12.5Hz)
22 eeg-beta 2 sec/sample float 0x01010003 Beta Total Power Ratio (12.5-30Hz)
23 eeg-gamma 2 sec/sample float 0x01010003 Gamma Power Ratio (30-80Hz)

Configuration Options

Config Id Option Default Value Supported Values
0 Output Buffer Size 1 >=1 (limited by available RAM)
1 File Buffer Size 128 bytes >= 128 (limited by available RAM)
2 Sample Rate 2 sec/sample Not Configurable
3 Sync Interval N/A N/A

Required Streams

Id Name Expected Sample Rate
0 signal 1 sec/sample*
1 eeg 128 Hz*
16 sf 2 sec/sample*
24 accel-mag 125 Hz*

* This data stream requires that all dependended upon streams have their default sample rates configured in order to achieve the expected 2 sec/sample sample rate. Changing the underlying streams' sample rates will lead to unexpected results.



Accelerometer Magnitude

This is the magnitude vector (L2-norm) of the accelerometer (x,y,z) stream values, and thus inherits sensitivity settings and units. When considering overall movement, this can be a more useful metric since it combines all 3 axes in a normalized way.

Id Name Sample Rate Type Dependent Stream Mask Description
24 accel-mag 125 Hz uint16 0x00000000* Acceleromter magnitude [0, 56754]**

* Although this is considered a "derived" stream, under the hood it is treated like any of the other accelerometer/gyroscope streams (excluding accel-std-dev). This means it can be enabled without explicitly enabling all three accelerometer axis streams, however it will obviously still cause the sensor to begin detecting accelerometer movement on all 3 axes.


** Actual acceleration (in terms of gravity) can be calculated by dividing the raw value by 16384.

Configuration Options

Config Id Option Default Value Values
0 Output Buffer Size 12 >= 12 (limited by available RAM)
1 File Buffer Size 1024 bytes >= 512 (limited by available RAM)
2 Sample Rate* 125 hz 125, 250, 500, 1000
3 Sync Interval 768ms >= 0

* Because the accelerometer and gyroscope data is generated from a single sensor, sample rate configuration applies to all accelerometer and gyroscope streams. i.e. setting the accel-mag sample rate to 125Hz will also set the sample rate of the gyro-z stream (and all other accel/gyro streams).



Gyroscope

This is the magnitude vector (L2-norm) of the gyroscope (x,y,z) stream values, and thus inherits sensitivty settings and units. When considering overall rotation, this can be a more useful metric since it combines all 3 axes in a normalized way.

Id Name Sample Rate Type Dependent Stream Mask Description
25 gyro-mag 125 Hz uint16 0x00000000* Gyroscope magnitude [0, 56754]**

* Although this is considered a "derived" stream, under the hood it is treated like any of the other accelerometer/gyroscope streams (excluding accel-std-dev). This means it can be enabled without explicitly enabling all three gyroscope axis streams, however it will obviously still cause the sensor to begin detecting rotational movement on all 3 axes.


** Actual angular velocity (in degrees per second) can be calculated by dividing the raw value by 32768 / 250 or approximately 131.

Configuration Options

Config Id Option Default Value Values
0 Output Buffer Size 12 >= 12 (limited by available RAM)
1 File Buffer Size 1024 bytes >= 512 (limited by available RAM)
2 Sample Rate* 125 hz 125, 250, 500, 1000
3 Sync Interval 768ms >= 0

* Because the accelerometer and gyroscope data is generated from a single sensor, sample rate configuration applies to all accelerometer and gyroscope streams. i.e. setting the gyro-mag sample rate to 125Hz will also set the sample rate of the accel-y stream (and all other accel/gyro streams).



3d Tilt

These streams provide basic 3-dimensional tilt information in the form of pitch and roll values, derived from the 3-axis accelerometer using basic trigonmetry. A low-pass filter is used to remove short-term fluctuations from the values (alpha = 0.3). It's important to note that this technique does suffer from Gimbal Lock.

Id Name Sample Rate Type Dependent Stream Mask Description
26 3d-roll 125 Hz float 0x00000000* Roll angle in degrees [-180, 180]
27 3d-pitch 125 Hz float 0x00000000* Pitch angle in degrees [-90, 90]

* Although this is considered a "derived" stream, under the hood it is treated like any of the other accelerometer/gyroscope streams (excluding accel-std-dev). This means it can be enabled without explicitly enabling all three accelerometer axis streams, however it will obviously still cause the sensor to begin detecting acceleration on all 3 axes.

Configuration Options

Config Id Option Default Value Values
0 Output Buffer Size 12 >= 12 (limited by available RAM)
1 File Buffer Size 1024 bytes >= 512 (limited by available RAM)
2 Sample Rate* 125 hz 125, 250, 500, 1000
3 Sync Interval 768ms >= 0

* Because the accelerometer and gyroscope data is generated from a single sensor, sample rate configuration applies to all accelerometer and gyroscope streams. i.e. setting the 3d-roll sample rate to 125Hz will also set the sample rate of the gyro-mag stream (and all other accel/gyro streams).



Accelerometer Std Dev

This stream provides the standard deviation of the accelerometer magnitude stream. Because it is calculated by the Sleep Features stream, it inherits its dependencies. This could change in the future.

Id Name Sample Rate Type Dependent Stream Mask Description
28 accel-sd 2 sec/sample float 0x01010003 Standard deviation of acceleromter magnitude.

Configuration Options

Config Id Option Default Value Supported Values
0 Output Buffer Size 1 >=1 (limited by available RAM)
1 File Buffer Size 128 bytes >= 128 (limited by available RAM)
2 Sample Rate 2 sec/sample Not Configurable
3 Sync Interval N/A N/A

Required Streams

Id Name Expected Sample Rate
0 signal 1 sec/sample*
1 eeg 128 Hz*
16 sf 2 sec/sample*
24 accel-mag 125 Hz*

* This data stream requires that all dependended upon streams have their default sample rates configured in order to achieve the expected 2 sec/sample sample rate. Changing the underlying streams' sample rates will lead to unexpected results.



EEG Power Sum

These streams provides the power spectrum sum of the EEG signal, used to calculate the power ratios for the EEG Frequencies streams.

Id Name Sample Rate Type Dependent Stream Mask Description
28 eeg-powsum 2 sec/sample float 0x01010003 Power spectrum sum

Configuration Options

Config Id Option Default Value Supported Values
0 Output Buffer Size 1 >=1 (limited by available RAM)
1 File Buffer Size 128 bytes >= 128 (limited by available RAM)
2 Sample Rate 2 sec/sample Not Configurable
3 Sync Interval N/A N/A

Required Streams

Id Name Expected Sample Rate
0 signal 1 sec/sample*
1 eeg 128 Hz*
16 sf 2 sec/sample*
24 accel-mag 125 Hz*

* This data stream requires that all dependended upon streams have their default sample rates configured in order to achieve the expected 2 sec/sample sample rate. Changing the underlying streams' sample rates will lead to unexpected results.



results matching ""

    No results matching ""