Gait measurement for disability detection

JP2025540459A5Pending Publication Date: 2026-07-07ORACLE INT CORP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
ORACLE INT CORP
Filing Date
2023-12-08
Publication Date
2026-07-07

AI Technical Summary

Technical Problem

Existing technologies lack effective methods for detecting impairments in human gait, such as intoxication or neurological damage, using mobile devices with motion sensors like accelerometers to generate timely alerts.

Method used

A gait monitoring system that utilizes a three-dimensional vibration fingerprint to characterize gait patterns, compares them to a reference pattern, and generates alerts when impairment thresholds are met, using a mobile device's accelerometer to detect deviations from normal gait.

Benefits of technology

Enables early detection of impairments like intoxication or neurological damage, preventing hazardous activities and initiating emergency responses, by accurately identifying deviations in gait patterns through residual analysis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Systems, methods, and other embodiments associated with impairment detection using vibration fingerprints to characterize gait dynamics are described. An exemplary method includes receiving measurements of an entity's gait from a sensor. The gait measurements are converted into a time series of observations for each frequency bin in a set of frequency bins. A time series of residuals for each range of the set is generated by pointwise subtraction between the time series of observations and a time series of reference for each range of the set. A disability measure is generated based on the time series residuals. The disability measure is compared to a disability threshold. In response to the disability measure satisfying the threshold, the entity is indicated as impaired.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] background Mobile devices such as mobile phones may be equipped with motion sensors such as accelerometers. The accelerometers can be used to detect the motion of the mobile device. Time series data can be sampled from sensor signals such as the output of the accelerometer. Summary of the Invention [Problem to be solved by the invention]

[0002] overview In one embodiment, one or more non-transitory computer-readable media are presented. The non-transitory computer-readable media have stored thereon computer-executable instructions that, when executed by at least a processor of a computer, cause the computer to perform operations or steps of a method. The instructions cause the computer to receive measurements of a human's gait from a sensor. The human's gait is monitored for impairment detection. The instructions cause the computer to convert the measurements of gait into a time series of observations for each frequency bin in a set of frequency bins. The instructions cause the computer to generate a time series of residuals for each range of the set by pointwise subtraction between the time series observations and a time series reference for each range of the set. The instructions cause the computer to generate an impairment measure based on the time series residuals. The instructions cause the computer to compare the impairment measure to an impairment threshold. In response to the impairment measure meeting the threshold, the instructions also cause the computer to generate an alert that the human is impaired.

[0003] In one embodiment, a computer-implemented method is presented. The method includes receiving measurements of gait of an entity from a sensor. The gait of the entity is monitored for impairment detection. The method includes converting the measurements of gait into a time series of observations for each frequency bin in a set of frequency bins. The method includes generating a time series of residuals for each range of the set by pointwise subtraction between the time series of observations and a time series of reference for each range of the set. The method includes generating an impairment measure based on the time series residuals. The method includes comparing the impairment measure to an impairment threshold. And, in response to the impairment measure satisfying the threshold, the method includes generating an alert that the entity is impaired.

[0004] In one embodiment, a computing system is presented. The computing system includes at least one processor, at least one accelerometer coupled to the processor, and one or more non-transitory computer-readable media. The non-transitory computer-readable media have stored thereon instructions that, when executed by at least the processor, cause the computing system to perform operations or steps of a method. The instructions cause the computing system to receive measurements of a human's gait from the accelerometer. The human's gait is monitored for impairment detection. The instructions cause the computing system to convert the measurements of gait into a time series of observations for each frequency bin in a set of frequency bins. The instructions cause the computing system to generate a time series of residuals for each range of the set by pointwise subtraction between the time series observations and a time series reference for each range of the set. The instructions cause the computing system to generate an impairment measure based on the time series residuals. The instructions cause the computing system to compare the impairment measure to an impairment threshold. The instructions also cause the computing system to generate an alert that the human is impaired in response to the impairment measure satisfying the threshold.

[0005] The accompanying drawings, which are incorporated herein and constitute a part of this specification, illustrate various systems, methods, and other embodiments of the present disclosure. It should be understood that the boundaries of elements shown in the figures (e.g., boxes, boxes, or other shapes) represent one embodiment of the boundaries. In some embodiments, one element may be embodied as multiple elements, or the multiple elements may be embodied as one element. In some embodiments, an element shown as an internal component of another element may be embodied as an external component, or vice versa. Additionally, depictions of elements may not be to scale. [Brief explanation of the drawings]

[0006] [Figure 1] FIG. 1 illustrates an embodiment of a gait monitoring system associated with the use of vibration fingerprints for gait characterization and monitoring. [Figure 2] FIG. 1 illustrates an embodiment of a gait monitoring method associated with the use of vibration fingerprints for gait characterization and monitoring. [Figure 3] FIG. 1 is a three-dimensional plot of exemplary measurements of an individual's gait. [Figure 4] 10A-10C show spectrograms of exemplary power spectra and corresponding exemplary time series plots for an example of upper frequency bins from exemplary measurements of gait. [Figure 5] 10 is a bar graph illustrating the difference in fault measure values ​​between exemplary normal and faulty conditions; [Figure 6] FIG. 1 illustrates an embodiment of a gait fingerprinting method associated with the use of vibration fingerprints for gait characterization and monitoring. [Figure 7] FIG. 1 illustrates an embodiment of a gait monitoring method associated with the use of vibration fingerprints for gait characterization and monitoring. [Figure 8]FIG. 1 is a plot illustrating relative noise levels of an exemplary time series sampled from exemplary frequency bins. [Figure 9] FIG. 1 shows time series sampled from the upper frequency bins of a slow walker, a fast walker, and a jogger. [Figure 10] FIG. 1 illustrates one embodiment of a computing system configured with the example systems and / or methods described herein. [Figure 11] FIG. 1 illustrates an example mobile device configured with example systems and / or methods described herein. DETAILED DESCRIPTION OF THE INVENTION

[0007] Detailed Description Described herein are systems, methods, and other embodiments that enable the detection of disorders through gait monitoring. In one embodiment, a gait monitoring system characterizes the gait of an individual, such as a human, by employing a three-dimensional vibration fingerprint. In one embodiment, the gait monitoring system characterizes vibrations associated with the individual's movements and compares them to a vibration fingerprint or vibration profile of unimpaired movements to determine whether the individual has a disorder. Briefly, the vibration pattern of an individual's gait is matched to a reference vibration pattern to detect the occurrence or presence of a movement disorder.

[0008] In one embodiment, the gait monitoring system receives measurements of an individual's gait from a sensor. For example, the sensor may be an accelerometer carried by the individual to detect the individual's movement. The measurements are converted into a set of time series for different frequency bins (or frequency ranges) of repetitive motion. The set of time series is compared to a set of reference time series values ​​for the frequency bins of repetitive motion. The set of reference time series values ​​provides a baseline of the individual's unimpaired gait. The comparison generates a residual value between the observed gait and the baseline criteria. From the residual value, a disability measure may be defined. If the disability measure meets a disability threshold, the gait monitoring system generates an alert that the person is impaired.

[0009] In one embodiment, the detection of a detected impairment based on gait can detect intoxication, as discussed herein, and can be used to prevent the operation of machinery, such as preventing driving while intoxicated, until the impairment has resolved. In one embodiment, the detection of a detected impairment based on gait can detect the onset of neurological damage (such as a stroke), as discussed herein, and can be used to initiate an early "golden" hour emergency care response to avoid long-term decline in brain function or death. In one embodiment, the detection of a detected impairment based on gait can detect the onset of an adverse pharmacological effect, such as a reaction to a toxin in the environment or an adverse reaction to a drug, as discussed herein, and can be used to initiate an emergency care response.

[0010] No act or function described or claimed herein is performed by the human mind, and any interpretation that any act or function can be performed by the human mind is inconsistent with and contrary to this disclosure.

[0011] definition As used herein, the term "gait" refers to the manner or pattern of movement of an individual's body while the individual moves across a surface.

[0012] As used herein, the term "locomotion" is a general term for the movement of an entity between locations by foot, such as walking, jogging, or running. For example, measurements of gait indicate the pattern and pace of an individual's steps.

[0013] As used herein, the term "impaired" or "impairment" refers to a decrease or alteration in an individual's normal motor activity due to pharmacological exposure (such as alcohol or cannabis intoxication and adverse drug reactions or interactions) or neurological emergency (such as stroke or epileptic seizure).

[0014] As used herein, the term "individual" or "being" refers to a mobile human or animal. Thus, an individual or being may be a human or an animal.

[0015] As used herein, the term "time series" refers to a data structure in which a series of data points (e.g., observations or samples) are indexed in chronological order. In one embodiment, the data points in a time series may be indexed by indices such as timestamps and / or observation numbers. As used herein, the terms "time series signal" and "time series" are synonymous.

[0016] As used herein, the term "time series database" refers to a data structure that contains one or more time series that share a common index (such as a series of timestamps, locations, or observation numbers).

[0017] As used herein, the term "residual" refers to the absolute value of the difference between a value (such as a measured, observed, sampled, or resampled value) and an expected reference, forecast, or estimate of the value. Thus, in one embodiment, a residual time series or time series of residuals refers to a time series formed by residual values ​​between the values ​​of a time series and an expected time series of values.

[0018] Exemplary Ambulatory Monitoring System FIG. 1 illustrates one embodiment of a gait monitoring system 100 associated with the use of vibration fingerprinting for gait characterization and monitoring. Gait monitoring system 100 includes components for monitoring the gait of an individual entity, such as a person or animal. The components of gait monitoring system 100 may include a measurement receiver 105, a time series converter 110, a residual generator 115, an impairment measure generator 120, a threshold comparator 125, and an alert generator 130. In one embodiment, each of these components 110, 115, 120, 125, and 130 of gait monitoring system 100 may be implemented as software executed by computer hardware. For example, components 110, 115, 120, 125, and 130 may be implemented as one or more interconnected software modules, routines, or services for performing the functions of the components.

[0019] Measurement receiver 105 is configured to receive gait measurements 140 of the individual from sensor 145. In one embodiment, measurement receiver 105 stores the gait measurements in measurement buffer 147. In one embodiment, sensor 145 is an accelerometer, such as a multi-axis accelerometer. In one embodiment, gait measurements 140 are measurements of acceleration magnitude and direction of sensor 145. In one embodiment, sensor 145 is carried by or otherwise attached to the individual's body to generate measurements of acceleration magnitude and direction as gait measurements 140 while the individual is walking, jogging, or otherwise moving on their feet. Monitoring gait measurements 145 can detect disabilities in the individual.

[0020] The time series converter 110 is configured to convert the gait measurements 140 into a time series of observations 150 for each frequency bin in the frequency set. The residual generator 115 is configured to generate a time series residual 155 for each frequency bin in the set by pointwise subtraction between the time series observations 150 and a time series reference 160 for each range in the set. The time series reference 160 (or gait fingerprint) is a time series for each frequency bin generated for the individual's impairment-free gait. The impairment measure generator 120 is configured to generate an impairment measure 165 based on the time series residual 155. The threshold comparator 125 is configured to compare the impairment measure 165 with an impairment threshold 170. The impairment threshold 170 may be pre-set by a user or administrator of the gait monitoring system 100. The comparison result 175 is provided to the alert generator 130 and indicates whether the impairment measure 165 meets or does not meet the impairment threshold 170. The alert generator 130 is configured to generate an alert 180 that the individual is impaired in response to the impairment measure meeting a threshold value.

[0021] Details regarding the gait monitoring system 100 are presented elsewhere herein. In one embodiment, operation of the gait monitoring system 100 is described with reference to exemplary gait monitoring methods 200 and 700 shown in FIGS. 2 and 7. In one embodiment, generation of a gait fingerprint (or set of time series of criteria 160) by the gait monitoring system 100 is described with reference to an exemplary gait fingerprinting method 600 shown in FIG. 6. In one embodiment, differentiation between unimpaired and impaired locomotion is described with reference to an exemplary disability measure bar graph shown in FIG. 5. In one embodiment, identification of frequency bins most strongly associated with an individual's gait is discussed with reference to an exemplary spectrogram 400 and corresponding time series 405 generated from exemplary measurements of gait shown in FIG. 4. In one embodiment, denoising of component time series is discussed with reference to a plot 800 of undenoised and denoised signals shown in FIG. 8. In one embodiment, phase synchronization and averaging of multiple signals is discussed with reference to a plot 900 of a time series of an individual moving at multiple paces, as shown in FIG. 9.

[0022] Exemplary Ambulatory Monitoring Methods FIG. 2 illustrates one embodiment of a gait monitoring method 200 associated with using vibration fingerprints for gait characterization and monitoring. In summary, in one embodiment, the gait monitoring method 200 receives measurements of a human's gait from a sensor. The human's gait is monitored for impairment detection. The gait monitoring method 200 converts the gait measurements into a time series of observations for each frequency bin in a set of frequency bins. The gait monitoring method 200 then generates a time series of residuals for each range of the set. The time series of residuals are generated by pointwise subtraction between the time series of observations and a time series of references for each range of the set. The gait monitoring method 200 generates a disability measure based on the time series of residuals. The gait monitoring method 200 compares the disability measure to a disability threshold. In response to the disability measure meeting the threshold, the gait monitoring method 200 generates an alert that the human is impaired.

[0023] In one embodiment, gait monitoring method 200 begins at start block 205 in response to the gait monitoring system determining one or more of: (i) an input stream of gait measurements has been detected; (ii) a command to perform gait monitoring method 200 on gait measurements has been received; (iii) a user or administrator of gait monitoring system 100 has initiated gait monitoring method 200; (iv) a scheduled time for gait monitoring method 200 to be performed has arrived; or (v) gait monitoring method 200 should be initiated in response to the occurrence of some other condition. In one embodiment, gait monitoring method 200 is performed by a computer configured to perform the functions of gait monitoring system 100 with computer-executable instructions. In one embodiment, gait monitoring method 200, or the steps of other methods herein, are performed as a streaming workflow that processes gait measurements arriving from sensors. After beginning at start block 205, gait monitoring method 200 continues to process block 210.

[0024] Exemplary Gait Monitoring Method—Receiving Gait Measurement Results At process block 210, the gait monitoring method 200 receives measurements of an entity's gait from a sensor. The entity's gait is monitored for impairment detection. For example, an accelerometer records measurements of an individual's vibration or movement while the individual entity is walking or otherwise moving.

[0025] In one embodiment, the sensor is an accelerometer. For example, the sensor may be an embedded accelerometer integrated with the mobile device. In one embodiment, the accelerometer may be a solid-state accelerometer integrated circuit. In one embodiment, the accelerometer may generate acceleration measurements at a sampling rate of many times per second, for example, one measurement every few milliseconds.

[0026] The accelerometer is placed on or carried by an individual, for example, by carrying a mobile device in a pocket. The individual moves (e.g., walks) with the accelerometer on the individual's body, causing the accelerometer to measure or detect movement of the accelerometer due to the individual's walking. In one embodiment, the walking measurement characterizes or quantifies a periodic pattern of movement performed by the individual as they move. The individual's movement may be performed at various speeds while carrying the accelerometer. For example, accelerometer measurements may be taken while the individual is walking at a slow pace, then again while the individual is walking at a moderately fast pace, and so on, with the individual walking at an increasing pace. In one embodiment, the walking measurement covers a time range or window. For example, a walking measurement may detect movement of the carried accelerometer for two minutes of movement at a time.

[0027] In one embodiment, if the sensor is an accelerometer, the gait measurements are accelerometer measurements detected by the accelerometer. In one embodiment, each accelerometer measurement is a data structure containing acceleration values ​​for multiple axes of motion detected by the accelerometer. For example, the accelerometer may sense acceleration along three orthogonal (e.g., x, y, z) axes or directions and generate a data structure containing the magnitude of acceleration in each direction.

[0028] In one embodiment, gait monitoring method 200 receives gait measurements from an accelerometer (e.g., sensor 145) as a stream of accelerometer measurements. The accelerometer measurements are gait measurements. As accelerometer measurements (measurements of the magnitude of acceleration along each axis of the accelerometer) are generated by the accelerometer, the measurement stream is presented to, accessed by, or otherwise received by gait monitoring system 100.

[0029] As accelerometer measurements are received, they are written to memory (e.g., measurement result buffer 147) along with a timestamp. The timestamp indicates when the accelerometer measurement was taken. This, in one embodiment, creates a time series of accelerometer measurements in memory that measure gait. In one embodiment, the time series records accelerometer measurements at the sampling rate generated by the accelerometer, with one time-stamped data point for each accelerometer measurement. In one embodiment, the time series downsamples the accelerometer measurements by recording one time-stamped data point for every few accelerometer measurements (e.g., one in ten accelerometer measurements).

[0030] In one embodiment, the time series of measurements is of a predetermined length. The predetermined length covers a predetermined time. The predetermined length serves to separate the continuous stream of accelerometer measurements of gait into analyzable segments or windows. The time and / or length of the time series is selected to balance adequate representation of periodic activity in gait and rapidity of detection of specific disorders in gait. In one embodiment, a time series covering a period of approximately 1-3 minutes (e.g., a time series covering 2 minutes (120 seconds) of measurements) provides a sufficient balance. On this time scale, an individual may take tens or hundreds of steps, while the onset of a disorder may only last a few minutes before detection. In one example, a sampling rate of 2000 Hz for the accelerometer and resulting time series of measurements produces a time series of measurements that is 240,000 observations in length. Further analysis of the gait measurements may detect disorders in the measured gait or generate a gait fingerprint of normal gait.

[0031] Thus, in one embodiment, the accelerometer generates a series of measurements of acceleration magnitude along multiple axes associated with human gait. The measurement receiver collects the measurements generated by the accelerometer and writes them to memory (e.g., as a time series of accelerometer measurements). The measurement receiver also provides the series of measurements to the time series converter 210 after the measurements cover a time window (e.g., two minutes). This completes process block 210, and gait monitoring method 200 continues at process block 215. In one embodiment, the functions of process block 210 are performed by gait monitoring system 100 and sensor 145. Once the entity's gait measurements have been received from the sensor, a series of gait measurements covering a time range of gait are collected and available for subsequent analysis. The entity's gait measurements can be used to determine an impairment of the entity, for example, as part of a gait fingerprint or by representing the entity's impaired movement, for example.

[0032] Exemplary Ambulatory Monitoring Method—Conversion to Frequency Bin Time Series At process block 215, the gait monitoring method 200 converts the gait measurements into a time series of observations for each frequency bin in the set of frequency bins. In one embodiment, this conversion changes the broad-spectrum measurements of gait recorded in the time series of measurements into separate time series for specific frequency ranges within the broad spectrum. In one embodiment, this conversion generates a time series for each of the set of frequency bins most associated with movement.

[0033] In one embodiment, the gait measurements are a time series of accelerometer measurements along various axes, as described above. The time series measurements include periodic or oscillatory movements detected by the accelerometer at a variety of different frequencies. Not all periodic and oscillatory activity is associated with an individual's normal, unimpaired gait. Therefore, the gait time series measurements shall be converted into multiple time series of component periodic or oscillatory movements occurring in frequency bins associated with the individual's normal gait.

[0034] At a high level, a double time-domain-frequency-time-domain transform is performed to convert the gait measurements into multiple time series of observations in different frequency bins. A time-domain to frequency-domain transform, such as a fast Fourier transform, is performed on the gait time series measurements to generate a power spectrum (e.g., a power spectral density curve or periodogram) of the measurements. The power spectrum is then subdivided into frequency bins. A time series of frequency bins is then generated by sampling those frequency bins associated with the individual's normal, unimpaired gait, and the sampled frequency bins are then transformed back from the frequency domain to the time domain. In this way, the gait measurements are converted into a time series of observations for each frequency bin in the set of frequency bins associated with normal, unimpaired gait.

[0035] The power spectrum of a gait measurement is defined by a power spectral density function that is the result of a Fourier transform of the gait measurement. In one embodiment, a Fourier transform is performed for each axis of acceleration, and the results are appropriately combined by axial rotation and vector summation to generate a total power spectral density function of the gait measurement for all axes. In one embodiment, the individual accelerometer measurements for each axis are summed, and a Fourier transform of the total accelerometer measurements is performed to generate a total power spectral density function of the gait measurement for all axes. In one embodiment, the power spectral density function for a single axis of the measurement can be a surrogate for the total power spectral density function. In one embodiment, all three axes can also be analyzed separately.

[0036] In one embodiment, as described above, the power spectrum of the gait measurements is subdivided or divided into discrete, continuous frequency bins. The frequency bins are mutually discrete, non-overlapping frequency ranges. The frequency bins are ranges of frequencies that are contiguous within the power spectrum, with no gaps between adjacent bins overall. The frequency bins are frequency ranges that are approximately equal in width and cover similar intervals of the frequency spectrum. The set of all frequency bins then covers the power spectrum. Experience has shown that 100 frequency bins is an appropriate cutoff for analyzing human gait. Therefore, in one embodiment, the power spectrum of the gait measurements is subdivided into 100 discrete, continuous frequency ranges or bins.

[0037] In one embodiment, the set of frequency bins from which gait measurements are converted into a time series is a subset of the frequency bins most associated with an individual's normal gait. In one embodiment, the set of frequency bins most associated with normal gait is a subset of the set of frequency bins with the largest amplitudes in the power spectrum when the individual moves normally without impairment. For example, the top 10 frequency bins in terms of amplitude for normal locomotion are selected. These top frequency bins are identified based on baseline measurements of gait obtained while the individual moves normally. Further details regarding the selection of the set of frequency bins from which the time series is generated are discussed below, for example, under the heading "Identifying Top Frequency Bins."

[0038] For each frequency bin in the set, a time series of observations is generated from the gait measurements. In one embodiment, the frequency bin time series is generated by reporting the frequency bin values ​​at intervals. In one embodiment, an interval of 2 seconds or less (e.g., 1 second intervals) has been determined to be sufficient. Alternatively, values ​​for more than one frequency bin may be reported. For example, if the power spectrum is divided into 100 frequency bins, reporting the value of each frequency bin every second converts the 100 frequency bins into 100 time series, each with a 1 second sampling rate (1 Hertz). Generating one time series for each frequency bin sampled at the intervals results in a set of observations of time series (of frequency bins) sampled at a common rate, or a time series database of observations. When referring to a time series of observations or a time series database of observations, an observation represents an amplitude value sampled from a frequency bin.

[0039] In one embodiment, a time series is generated for each frequency bin for the entire power spectrum, and then a subset of time series corresponding to the upper frequency bins with the largest amplitudes is selected. For example, after all 100 bins covering the power spectrum are converted to time series, a subset of time series generated from the top 10 bins in terms of power amplitude is selected. In either case, a back transformation to the time domain generates a time series of observations from each frequency bin in the set of upper frequency bins.

[0040] Referring briefly to FIG. 3, FIG. 3 shows a three-dimensional plot 300 of exemplary gait measurements 305 of an individual. The gait measurements 305 show frequency changes over time while a person is walking slowly. The exemplary gait measurements 305 are plotted as a three-dimensional surface with respect to a time axis 310, a frequency axis 315, and an amplitude axis 320. In one embodiment, the amplitude of the exemplary gait measurements 305 is the total amplitude along all axes of motion sensed by the sensor (e.g., the vector sum of the amplitudes of accelerations on all axes). Here, as shown along the frequency axis 315, the power spectrum of the exemplary gait measurements 305 covers 0-50 Hz. The exemplary gait measurements 305 are divided into bins (e.g., 100 bins) along the frequency axis 315. Note that low-frequency components 325 are stronger (larger in amplitude) than high-frequency components 330. Thus, if the exemplary gait measurement results 305 are used as a standard or gait fingerprint for normal human locomotion, the top bins selected as most characterizing (most associated with) normal gait will be selected from the bins containing low frequency components 325.

[0041] Referring now to FIG. 4 , FIG. 4 illustrates a spectrogram of an example power spectrum (power spectral density) 400 and a corresponding example time series 405 plot for an example of the top five frequency bins from an example gait measurement 305. The behavior of the example gait measurement 305 is further analyzed in the frequency domain, as shown in FIG. 4 . The peaks in the frequency domain power spectrum 400 correspond to the periodic walking motion of a human walking slowly. The top five frequency bins 405 are the frequency bins with the strongest frequency components (highest peaks) in their respective power spectra out of 100 bins along the frequency axis 315. In one embodiment, the top ten bins are selected based on the height of the peaks in the frequency domain (for simplicity, only the top five bins are shown in FIG. 4 ). In the example power spectrum 400, the frequency bin centered at 2.5 Hz has the highest peak 410, indicating that the 2.5 Hz frequency bin is most associated with slow human walking. In the exemplary power spectrum 400, the frequency bin centered at 4 Hz has the second highest peak 415, indicating that the 4 Hz frequency bin is second most frequently associated with slow human walking. The frequency bins are then sorted in descending order of highest peak in the power spectrum until the top 10 bins are selected. The exemplary time series 405 is a time series of observations sampled from corresponding frequency bins at 1-second intervals over a 160-second period. For example, the exemplary time series of observations 420 was sampled from the 2.5 Hz frequency bin.

[0042] 2 , in one embodiment, the gait monitoring method includes converting the gait measurements into a time series of observations for each frequency bin in the set of frequency bins by transforming the gait measurements into the frequency domain to generate a power spectrum of the measurements, subdividing the power spectrum into frequency bins, and sampling each of the set of frequency bins most associated with normal gait at intervals to generate a time series of observations (bin amplitude values) for each bin in the set of frequency bins. Process block 215 is then completed, and gait monitoring method 200 continues at process block 220. In one embodiment, the functions of process block 215 are performed by time series converter 110. In one embodiment, upon completion of process block 215, a time series database of observations has been generated, including time series amplitudes sampled from the frequency bins most associated with the individual's normal gait. This time series database of observations can be compared to a baseline time series database containing baseline amplitudes of time series sampled from frequency bins when the individual is moving normally to determine whether the measured gait differs substantially from the baseline gait. In one embodiment, the set of time series observations for each bin of the set may be referred to herein as a current gait fingerprint or an observed gait fingerprint.

[0043] Exemplary Gait Monitoring Method—Residual Generation At process block 220, the ambulatory monitoring method 200 generates a time series residual for each bin of the set by pointwise subtraction between the time series observations and the time series reference for each bin of the set. In other words, the ambulatory monitoring method finds the difference between a data point in the time series observations and a data point at a corresponding index in the time series reference, and stores this difference to generate the time series.

[0044] As previously mentioned, a time series residual is a time series composed of residuals (values ​​of the difference between a given value and its predicted value). An observation time series for a frequency bin (as generated by process block 215) contains a series of amplitude values ​​at the frequency bins indexed in time order. A reference time series for this frequency bin contains a series of predicted values ​​at each data point of the amplitude value at that frequency bin. As previously mentioned, the index positions are spaced apart by a certain interval (e.g., 1 second (sampling rate 1 Hz)). Thus, the data points in the observation time series share a common set of index positions with the reference time series. In this way, values ​​in the observation time series correspond to estimated values ​​at the corresponding index positions in the reference time series.

[0045] In one embodiment, the reference time series is a time series of values ​​of an individual's normal, unimpaired movement obtained from one frequency bin. The reference time series for a frequency bin provides a set of expected values ​​for that frequency bin due to movement. In one embodiment, there is a reference time series for more than one frequency bin, for example, there is a reference time series for each of a set of top frequency bins most associated with normal, unimpaired movement by an individual. The set of reference time series for each of the top frequency bins most associated with normal, unimpaired movement of an individual may also be referred to herein as a reference time series database or a reference gait fingerprint.

[0046] In one embodiment, each baseline time series may be generated based on measurements of the individual's gait during training sessions in which the individual moves normally and without impairment. In one embodiment, the baseline time series database may be generated from measurements taken over multiple training sessions. In one embodiment, the individual moves at a different pace during one of the multiple training sessions than during another of the multiple training sessions. In other words, the individual moves at a different pace during each of the multiple training sessions. For example, the pace during each training session may increase in speed. In one embodiment (as discussed in more detail below under the heading "Phase Synchronization"), phase normalization of the baseline time series databases from the multiple training sessions may be used to synchronize the different pace rates, and then each baseline time series may be averaged across the multiple training sessions to generate the baseline time series.

[0047] In one embodiment, the set of time series criteria may be stored at the time of generation and retrieved from storage for use during generation of the residuals in process block 220 (as indicated by input of time series criteria 160 to residual generator 115). The time series criteria may be stored along with an identifier for the individual. In one embodiment, the ambulatory monitoring method 200 looks up the identifier for the individual to access and retrieve the set of time series criteria associated with the individual.

[0048] A pointwise subtraction of time series values ​​and forecasted values ​​of the time series can generate a residual for the time series. In pointwise subtraction, values ​​at corresponding indices of two time series are subtracted to generate a difference or residual value for those indices. Pointwise subtraction processes two time series data point by data point, i.e., index position by index position. At each index position, pointwise subtraction subtracts or finds the difference between the actual value of the data point at the observed time series and the estimated value of the data point at the reference time series. The absolute value of the difference at the index position then generates a residual value at the index position. The residual value resulting from finding the absolute value of the pair of differences between the actual value and the estimated value for each index position is stored in the time series at that index position to generate the residual for the time series.

[0049] In one embodiment, a time series of residuals is generated for multiple frequency bins. In particular, a time series of residuals may be generated for each frequency bin in a set of top frequency bins that are most associated with unimpaired or normal gait. For example, for each of a set of the top 10 frequency bins, a time series of observations and a time series of references may be obtained and used to generate a time series of residuals for each of the top 10 frequency bins. In this manner, a time series of residuals may be generated for each bin in the set of frequency bins.

[0050] In one embodiment, the gait monitoring method includes: accessing a set of reference time series for each frequency bin in the set of frequency bins most associated with normal, unimpaired gait; generating a time series residual for each bin of the set by pointwise subtraction between the observed time series and the reference time series for each bin of the set; accessing a set of observation time series for each frequency bin in the set of frequency bins most associated with normal, unimpaired gait; for each frequency bin in the set, finding the difference between the values ​​of the observed time series for that frequency bin and the reference time series for that frequency bin; and storing the absolute values ​​of these differences as residuals in the residual time series. Process block 220 is then completed, and gait monitoring method 200 continues to process block 225. In one embodiment, the functions of process block 220 are performed by residual generator 115. Upon completion of process block 220, gait monitoring method 200 has generated a time series database of residuals (a set of time series of residuals) between the individual's current gait and a reference gait of unimpaired movement by the individual based on the frequencies most representative of unimpaired movement. Use of the time series database of residuals can generate an impairment measure that indicates how substantially the currently measured gait differs from the reference gait.

[0051] Exemplary Gait Monitoring Method - Generation of Disability Measures At process block 225, the gait monitoring method 200 generates an impairment measure based on the time series residuals. The impairment measure indicates how much the measured gait differs from a reference gait. The impairment measure is a single numerical value that represents the degree to which the time series residuals indicate deviation of the individual's current gait from a reference gait of unimpaired movement.

[0052] In one embodiment, the impairment measure is the cumulative mean absolute error (CMAE) across the set of time series residuals. In one embodiment, the impairment measure is sometimes referred to herein as the human gait dynamics (HGD) CMAE, as it represents the CMAE of an individual's motion resulting from the individual's walking. In one embodiment, to generate the impairment measure, a mean absolute error (MAE) is determined for the time series residuals for each frequency bin, and the resulting MAEs for each frequency bin are summed to generate the CMAE across all frequency bins. In this manner, the impairment measure is generated based on the time series residuals.

[0053] As mentioned above, a residual is a measure of the difference between two values. A residual is also sometimes referred to as an error between two values. The mean absolute error (MAE) of a frequency bin is the average of the absolute values ​​of the residuals in the residuals of the time series of frequency bins. The MAE of a frequency bin quantifies the similarity or equivalence between a measured gait and a reference gait in the range of frequencies covered by the frequency bin. In one embodiment, a gait monitoring method calculates the MAE from the residuals of the time series for each frequency. To calculate the MAE for a time series of residuals, the residual values ​​in the residuals of the time series are summed and then divided by the number of residuals in the time series. In other words, the sum of the residuals in the residuals of the time series is divided by the length of the time series to generate the MAE.

[0054] As described above, after calculating the MAE for each frequency bin, the HGD CMAE (disability measure) is calculated by summing the MAE values. If an individual is not impaired, their gait will only differ slightly from the reference gait, and the residual for each frequency bin will be small. Therefore, the MAE and HGD CMAE will also be small. If an individual is impaired, their gait (step pattern and step frequency) will change. When impaired measurements are compared to the original gait fingerprint, the resulting residual, MAE, and HGD CMAE will be substantially larger.

[0055] Thus, in one embodiment, gait monitoring method 200 generates a disability measure based on the set of time series residuals by calculating the mean absolute error for each of the time series residuals in the set and summing the mean absolute errors for all of the time series residuals in the set to generate a cumulative mean absolute error of the residuals (which is the disability measure). Process block 225 is then completed, and gait monitoring method 200 continues to process block 230. In one embodiment, the functionality of process block 225 is performed by disability measure generator 120. Upon completion of process block 225, a single disability measure characterizes the complex issue of the degree to which an individual's currently measured gait resembles a baseline gait of an individual moving without a disability. Use of this disability measure can determine whether an individual is impaired.

[0056] Exemplary Gait Monitoring Methods - Comparison with Impairment Thresholds At process block 230, the gait monitoring method 200 compares the impairment measure to an impairment threshold. In one embodiment, the gait monitoring method 200 compares to determine whether the impairment measure (CMAE) meets a threshold indicative of mobility impairment (also referred to as an impairment threshold). The impairment threshold provides a value at which the impairment measure transitions from indicating a low likelihood of an individual's impairment to indicating a high likelihood of an individual's impairment.

[0057] In one embodiment, the impairment threshold X distinguishes between impaired and non-impaired classifications. The value of threshold X may be a configurable parameter that may be adjusted by a user or administrator of gait monitoring system 100. In one embodiment, the threshold depends on the length of time covered and the sampling rate of the time series observations, baseline, and residuals. For example, if the length of time covered is 2 minutes (120 seconds) and the sampling rate is 1 sample per second (1 Hz), an impairment measure threshold of 10-14 (e.g., threshold 12) may be sufficient to distinguish between non-impaired and impaired movement. For example, if a person's impairment measure exceeds threshold 12, the person is likely to be impaired. Conversely, if the measure is below threshold 12, the person is unlikely to be impaired.

[0058] In one embodiment, the fault threshold X may be generalized to various time rates and sampling rates. For example, the threshold may be approximately the product of the length of time T covered by the time series residuals (or observations or criteria) and the sampling rate S of the time series residuals (or observations or criteria), divided by 10 (X=T*S / 10).

[0059] In one embodiment, the impairment measure is compared to an impairment threshold X to determine whether threshold X has been met. In one embodiment, the gait monitoring method 200 compares the impairment measure to a threshold to determine whether the impairment measure is less than, equal to, or greater than the impairment threshold. In one embodiment, the impairment measure meets the impairment threshold by being greater than (or greater than or equal to) the threshold. The comparison is then recorded as an indication that the threshold is met (e.g., greater than) or not met (e.g., less than) the threshold. For example, the gait monitoring method may write the result of the comparison to memory for later retrieval and processing.

[0060] Referring now to FIG. 5, FIG. 5 is a bar graph 500 illustrating the difference in disability measure (HGD CMAE) values ​​between exemplary normal and impaired states. Bar graph 500 illustrates disability measure values ​​for two cases: normal gait and impaired gait. Bar graph 500 also illustrates a disability measure non-impaired state value 505 (approximately 8) representing an individual walking in a normal, non-impaired state. Bar graph 500 also illustrates a disability measure non-impaired state value 510 (approximately 28) representing an individual walking in an abnormal, impaired state. The disability measure non-impaired state value 510, representing an individual walking irregularly and unreliably, is more than three times higher than the disability measure non-impaired state value 505, representing an individual walking more regularly and reliably.

[0061] The impairment scale can be used to determine with high confidence when a person may become impaired due to a medical emergency or consciousness-altering intoxication. The certainty that an individual is impaired increases with increasing impairment scale value. An impairment threshold for distinguishing between normal and impaired gait can be empirically derived. In one embodiment, the impairment threshold is derived based on an impairment scale value calculated from a reference gait fingerprint of the entity's normal locomotion (for convenience, the impairment scale value calculated from a reference gait fingerprint of normal locomotion may be referred to herein as the "reference baseline"). For example, an entity's impairment threshold may be set by adding a certain percentage to the entity's reference baseline. For example, the impairment threshold may be set by adding approximately 50% to the entity's reference baseline. Other values ​​for the impairment threshold may also be used. For example, a more restrictive impairment threshold may be set by adding 20% ​​to the reference baseline. Meanwhile, a more lenient impairment threshold may be set by adding 100% to the reference baseline. In this manner, the disturbance threshold may be dynamically configured and adjustable for different entities or reference gait fingerprints.

[0062] In Figure 5, an exemplary impairment threshold 515 has been empirically generated (as described above) from an individual's baseline gait fingerprint. The exemplary impairment threshold 515 has an impairment measure value of 12. The exemplary impairment threshold 515 clearly distinguishes between normal and impaired gait. Comparing the non-impaired status value 505 (approximately 8) to the exemplary impairment threshold 515 of 12 indicates that the impairment measure for normal gait does not rise to the threshold level indicating a high probability of impairment. Comparing the impaired status value 510 (approximately 28) to the exemplary impairment threshold 515 of 12 indicates that the impairment measure for impaired gait far exceeds the threshold level indicating a high probability of impairment, indicating a high certainty of impairment.

[0063] Thus, in one embodiment, gait monitoring method 200 compares the impairment measure to the impairment threshold by reading the impairment threshold and impairment measure (CMAE) value, comparing the impairment measure to the impairment threshold, determining that the impairment measure meets the impairment threshold, e.g., because the value of the impairment measure is greater than or equal to the impairment threshold value (or determining that the impairment measure does not meet the impairment threshold, e.g., because the value of the impairment measure is less than the impairment threshold value), and storing the result of the determination indicating that the threshold is met (or not met). Process block 230 is then complete, and gait monitoring method 200 continues to process block 235. In one embodiment, the functions of process block 230 are performed by threshold comparator 125.

[0064] Exemplary Ambulatory Monitoring Method—Generating Alerts In response to the impairment measure meeting a threshold value, the gait monitoring method 200 generates an alert that the entity is impaired at process block 235. If the impairment measure indicates an impairment for the individual, a message is generated notifying the entity, another individual, or an emergency response system that the individual is impaired. In one embodiment, the alert may be generated by a mobile device equipped with the sensor (e.g., accelerometer) used to monitor the individual's gait.

[0065] As discussed herein, an entity may be impaired due to the occurrence of a medical emergency, such as a stroke or poisoning, or due to intoxication, such as with alcohol, cannabis, or other intoxicants. The impairment affects the entity's movement, and the impaired entity's gait does not match a baseline gait for unimpaired movement by the entity. When the breakdown in the entity's gait progresses to a stage where it differs sufficiently from normal, unimpaired gait that an impairment measure meets an impairment threshold, the entity is likely impaired in its movement.

[0066] In one embodiment, the method generates an alert that an entity or individual is impaired by constructing a message indicating or stating that the entity is impaired. In one embodiment, the message includes a value for an impairment measure (CMAE). In one embodiment, the message includes a value for an impairment threshold. In one embodiment, the message includes an indication or statement that the impairment measure is at or above the impairment threshold as justification or support for the alert that the entity or individual is impaired. In one embodiment, the message includes location information such as GPS coordinates, latitude and longitude, address, or other location information usable for emergency response to care for the individual.

[0067] Note that, in one embodiment, process blocks 210-230 of the gait monitoring method may be repeated in a loop until the impairment threshold is met by the most recent impairment measure. In other words, the individual's gait is monitored until an impairment is detected, at which point an alert is generated. For example, the individual's gait may be monitored at approximately two-minute (120-second) intervals, as described above. In one embodiment, after the completion of each approximately two-minute interval, the impairment measure for that interval is calculated, compared to the impairment threshold, and stored along with the results of the threshold comparison. If the impairment measure meets the impairment threshold, process block 235 is executed, and an alert is generated. In one embodiment, the message may include the previous impairment measure value preceding the current impairment measure value that met the impairment threshold and triggered the generation of the alert.

[0068] In one embodiment, the alert is a message configured to be displayed by a graphical user interface of the mobile device equipped with the sensor. In one embodiment, the alert is configured to cause the mobile device to generate one or more of an auditory output (e.g., a chime, beep, or other sound), a tactile output (e.g., a vibration), or a visual output (e.g., a flashing light or the display of a symbol on the screen of the mobile device) to attract the individual's attention. In one embodiment, the alert displayed by the mobile device may include a user-selectable element (e.g., a graphical user interface button) that initiates an emergency response to provide assistance, such as medical care, to the individual. In one embodiment, generating the alert includes presenting or displaying a message by the mobile device.

[0069] In one embodiment, the alert is a message configured to be transmitted over a network, such as a cellular network, a Wi-Fi network, or other communications infrastructure. The message may be configured to be read by a computing device. For example, the alert may be configured to be processed by a computing device of an alert monitoring system configured to initiate a response to the fault alert. In one embodiment, generating the alert includes sending a message from a mobile device to the alert monitoring system. In one embodiment, the message is sent to initiate an emergency response. The alert monitoring system is configured to initiate an emergency response to the individual. The emergency response to the individual may include initiating communication with the individual, for example, asking if the individual needs help. This question may be via a text message or telephone call to the mobile device. In one embodiment, the emergency response to the individual may include requesting the dispatch of medical assistance personnel and / or equipment to the individual's location.

[0070] In one embodiment, a message may be sent to a device associated with the individual to prevent the individual from operating the device while impaired. In response to receiving the message, the device may decide to cease operation until a message is received indicating that the impairment measure no longer meets the impairment threshold and the individual is no longer impaired. For example, a car associated with the individual may be temporarily disabled upon receiving a message indicating that the individual is impaired, preventing the individual from operating the vehicle while impaired.

[0071] Thus, in one embodiment, in response to the impairment measure meeting a threshold, the ambulatory monitoring method generates an alert that the entity is impaired by composing a message indicating the individual's impairment and one or more of presenting the message to the individual, sending a message to initiate an emergency response, or sending a message to prevent operation of a device. Process block 235 is then complete and ambulatory monitoring method 200 continues to end block 240, where ambulatory monitoring method 200 is complete. In one embodiment, the functions of process block 235 are performed by alert generator 130.

[0072] At the end of gait monitoring method 200, analysis of the individual's gait has determined that the individual is impaired and an alert has been generated to relevant people and / or systems. The individual may be notified of their impairment status by displaying an alert on the mobile device used to monitor the individual's gait. Emergency responders may be notified of a potential medical emergency by receiving an alert from the mobile device. Hazardous equipment may be locked or prevented from being operated by the individual by receiving an alert from the mobile device.

[0073] Other embodiments of the ambulatory monitoring method In one embodiment, the gait measurements may be expanded (expanded) or contracted (compressed) to match a uniform moving pace and phase-aligned with the reference pace before generating the residuals in process block 220. In one embodiment, before generating the time series residuals in process block 220, gait monitoring method 200 further normalizes the gait measurements to a uniform pace by expanding or compressing the gait measurements in a moving window. The lead and lag times of the gait measurements may then be aligned to a uniform pace. Further details regarding normalizing gait measurements to a uniform pace and aligning lead and lag times are discussed below under the heading "Phase Synchronization."

[0074] In one embodiment, baseline measurements of the individual's gait in an unimpaired state are obtained from the individual and used to select the set of frequency bins used in process block 215 and to generate the time series baseline used in process block 220. In one embodiment, prior to receiving the measurements of the human's gait in process block 210, gait monitoring method 200 receives a second (baseline) gait baseline measurement of the human walking in an unimpaired state. Gait monitoring method 200 then identifies a number of frequency ranges in which the baseline measurements exhibit the highest levels of vibration components as a set of frequency bins. Gait monitoring method 200 then converts the second (baseline) gait baseline measurement into a time series baseline for each range in the set. Further details regarding the selection of the set of frequency bins are discussed below under the heading "Identifying Top Frequency Bins."

[0075] In one embodiment, the reference time series for each frequency bin represents a combination of multiple gaits of an individual moving at various paces while unimpaired. Thus, in one embodiment, to generate the reference time series, gait monitoring method 200 receives a reference measurement of a third (fast reference) gait of an individual walking at a fast pace while unimpaired. The fast pace of the third (fast reference) gait is faster than the pace of the second (reference) gait. Gait monitoring method 200 also receives a reference measurement of a fourth (slow reference) gait of an individual walking at a slow pace while unimpaired. The slow pace of the fourth (slow reference) gait is slower than the pace of the second (reference) gait. Gait monitoring method 200 then normalizes the reference measurements of the second (reference), third (fast reference), and fourth (slow reference) gaits to a uniform pace by expanding or compressing the reference measurement of each gait within a moving window. In gait monitoring method 200, the lead and lag times of the baseline measurements of the second (reference) walk, the third (fast reference) walk, and the fourth (slow reference) walk are aligned to a uniform pace. Converting the baseline measurements of the second walk into a time series of baselines for each range of the set (as described above) further includes generating an average of the time series of baselines for each range of the set from the baseline measurements of the second (reference) walk, the third (fast reference) walk, and the fourth (slow reference) walk.

[0076] Alternatively, in one embodiment, the baseline time series for each frequency bin represents a combination of at least two gaits of an entity moving at different paces while unimpaired. Thus, in one embodiment, to generate the baseline time series, gait monitoring method 200 receives baseline measurements of a third gait while the entity is unimpaired, where the pace of movement is different for the second and third gaits. Gait monitoring method 200 then normalizes the baseline measurements of the second and third gaits to a uniform pace by expanding or compressing the baseline measurements of each gait in a moving window. Gait monitoring method 200 then aligns the lead and lag times of the baseline measurements of the second and third gaits to the uniform pace. Gait monitoring method 200 then generates an average of the baseline time series for each range of the set from the baseline measurements of the second and third gaits, thereby converting the baseline measurements of the second gait to a baseline time series for each range of the set.

[0077] Again, additional details regarding normalization to a uniform pace and matching lead and lag times are discussed below under the heading "Phase Synchronization." Additional details regarding combining signals from time series of multiple paces of gait are discussed below under the heading "Combining Synchronized Series."

[0078] In one embodiment, individual time series of observations are denoised by Fourier decomposition and reconstruction of the time series observations from the top few component frequencies in terms of amplitude. In one embodiment, to denoise one or more of the time series observations, gait monitoring method 200 transforms one or more of the time series observations into the frequency domain. Then, gait monitoring method 200 selects several harmonics with the highest amplitudes for one or more of the time series observations. Then, gait monitoring method 200 transforms the selected harmonics into the time domain to reconstruct one or more of the time series observations with reduced noise. Further details regarding signal denoising by Fourier decomposition and reconstruction are discussed below under the heading "Denoising."

[0079] In one embodiment, as described above with reference to process block 225, the impairment measure is the cumulative mean absolute error for the time series of residuals. In one embodiment, to generate an impairment measure based on the time series of residuals, gait monitoring method 200 generates a mean absolute error for the time series of residuals for each range in the set. Then, gait monitoring method 200 sums the mean absolute errors for each of the time series of residuals to generate a cumulative mean absolute error. Here, the impairment measure is the cumulative mean absolute error.

[0080] In one embodiment, as described above with reference to process block 230, the threshold value indicates a value of the impairment measure (e.g., cumulative mean absolute error for time series residuals) that would not normally be reached if the individual were not impaired. Thus, in one embodiment, an individual is considered impaired when the person's measured gait differs sufficiently from the reference gait such that the impairment measure meets the threshold value.

[0081] In one embodiment, the sensor is an accelerometer carried by the individual, as described above with reference to process block 210. In one embodiment, the accelerometer is part of a mobile device. In one embodiment, the computing system is a mobile device that incorporates a processor, an accelerometer, and a non-transitory computer-readable medium in a unit configured to be carried by the individual.

[0082] In one embodiment, an alert may be generated that the individual is impaired so that emergency services can respond to the impaired individual, as described above with reference to process block 235. In one embodiment, to generate an alert that a person is impaired, gait monitoring method 200 constructs a message indicating that the person is impaired and transmits the message to initiate an emergency response. In one embodiment, the message may include information regarding the suspected impairment, such as signs of an occurring stroke or signs of intoxication, as well as GPS or other location information for the individual.

[0083] In one embodiment, one or more non-transitory computer-readable media have stored thereon computer-executable instructions (also referred to as program instructions) that, when executed, are configured to cause one or more computers to perform operations, including those of ambulatory monitoring method 200 (or other methods described herein).

[0084] In one embodiment, the computing system comprises one or more computers configured to perform operations, including those of ambulatory monitoring method 200 (or other methods described herein), via computer-executable instructions.

[0085] In one embodiment, the computer program product comprises a computer program that, when executed by at least a processor of a computer, causes the computer to perform operations, including operations of ambulatory monitoring method 200 (or other methods described herein). By way of example, the computer program may include one or more computer-executable instructions that cause the computer to perform these operations.

[0086] In one embodiment, a mobile device comprises, in a unit configured to be carried by an entity, (i) one or more processors, (ii) a sensor, and (iii) one or more non-transitory computer-readable media having computer-executable instructions stored thereon, the mobile device configured by the computer-executable instructions to perform operations, including those of ambulatory monitoring method 200 (or other methods described herein).

[0087] Overview Mobile devices, such as cell phones, now have powerful and accurate built-in accelerometers, or vibration sensors. These accelerometers can be used to detect gait-related movements while an individual (such as a human) is moving. In one embodiment, a gait monitoring system and method enables a predictive analysis of an individual's gait. The predictive analysis of gait allows for the detection of disorders in the individual. In one embodiment, a gait monitoring system learns an individual's "normal," nominal, or expected gait to detect the occurrence of disorder anomalies in the individual's gait.

[0088] As noted above, an individual's impairment may also be due to cognitive issues, such as the early onset of consciousness-altering substances or stroke. In one embodiment, the gait monitoring system and method may be used to (1) detect impairment due to alcohol, cannabis, or other intoxicant abuse, thereby substantially ameliorating reliance on ankle bracelets to prevent impaired operation of machinery, or (2) detect impairment due to the occurrence of an epileptic seizure, stroke, or other emergency health condition, thereby substantially improving emergency response to provide assistance.

[0089] The gait monitoring systems and methods described herein offer a novel approach to characterizing, quantifying, and classifying human gait kinematics. In one embodiment, the gait monitoring method characterizes a multivariate motion frequency-domain signature of gait by autonomously extracting and ranking the most salient (i.e., most informative about or most strongly associated with an individual's gait) vibration time-series signals from a database of gait measurements. These signals are then used to determine the individual's nominal gait. The set of reference signals representing a person's nominal gait is sometimes referred to herein as the individual's "gait fingerprint." The gait fingerprint can then be compared to subsequent measurements to determine whether the individual is impaired based on a novel disability measure.

[0090] In some embodiments, accelerometer measurements may be used to characterize a person's nominal gait. Accelerometer measurements may also be used to distinguish a person's nominal gait from impaired or otherwise altered gait. In one embodiment, a gait monitoring method rapidly identifies specific narrow frequencies that most closely reflect the energy components associated with an individual's gait (e.g., reflecting step pattern and / or step frequency). In one embodiment, to determine gait, an accelerometer is placed on, carried by, or otherwise transported by an individual, and vibration measurements are recorded. Some narrow frequencies that are components of the vibration measurements are very strongly associated with a person's gait (referred to as "prominent" frequencies), while other narrow frequencies are merely random noise.

[0091] In one embodiment, a frequency-to-time-to-frequency double transformation is performed to facilitate identification of relevant frequencies. The double transformation includes a first transformation from the original accelerometer measurements in the time domain to fine frequencies in the frequency domain, for example, by performing a fast Fourier transform of the original accelerometer measurements. The double transformation also includes a second transformation from the resulting fine frequencies to a collection of individual time series in the time domain, for example, by aggregating the fine frequencies into bins or ranges and then generating new time series of bins. In one embodiment, the individual time series are denoised from the subset of signals by Fourier decomposition and reconstruction. The most prominent frequency bins are then determined for selection of the time series signals that constitute the gait profile or gait fingerprint. In one embodiment, the gait fingerprint is generated by measuring, transforming, denoising, phase-locking, and integrating multiple paces of gait. In one embodiment, the gait fingerprint includes time series signals of varying amplitude values ​​in multiple bins that cover the frequency spectrum, and may be referred to herein as a "three-dimensional (3D) gait dynamics fingerprint."

[0092] Once the gait fingerprint is established, it can be used to determine whether an individual has a disability. This can be accomplished by obtaining a second set of gait measurements for the individual and preprocessing them in a manner similar to that described above for generating the gait fingerprint. In this manner, the new measurements are frequency binned, denoised, reconstructed, and phase normalized. However, because the most prominent frequencies were previously determined in generating the gait fingerprint, the same most prominent frequency bins selected for inclusion in the gait fingerprint are used for monitoring any new measurements of gait.

[0093] Thus, in one embodiment, the frequencies selected for inclusion in the gait fingerprint are then monitored and compared with the original measurements by pointwise subtraction to generate a set of residuals. For example, if 10 frequency bins are selected for inclusion in the gait fingerprint, the two sets of time series (the gait fingerprint and the current gait measurements) are then compared by pointwise subtraction between the time series of corresponding frequency bins to generate 10 sets of residuals. A mean absolute error (MAE) is then calculated for each frequency. The MAE values ​​are then summed, and the difference between the two signatures is extracted as a disability measure. The disability measure may be referred to herein as the human gait dynamics cumulative MAE (HGD CMAE). If the HGD CMAE exceeds a threshold, it indicates that the current gait is outside the normal range of gait, thereby distinguishing between a person's nominal gait and a disability state. In one embodiment, the threshold is 12. In one embodiment, the threshold can be set to other values ​​by a user or administrator of the gait monitoring system 100. If the threshold is met (eg, is greater than or equal to the threshold), an alert may be generated indicating a fault.

[0094] 6 illustrates one embodiment of a gait fingerprinting method 600 associated with using vibration fingerprints for gait characterization and monitoring. In one embodiment, gait fingerprinting method 600 begins at start block 605 in response to gait monitoring system determining that (i) a training or setup session has begun, (ii) an instruction to generate a gait fingerprint has been received, (iii) a user or administrator of gait monitoring system 100 has initiated gait fingerprinting method 600, (iv) the time for gait fingerprinting method 600 has arrived, or (v) gait fingerprinting method 600 should be initiated in response to the occurrence of some other condition. In one embodiment, gait fingerprinting method 600 is executed by a computer configured to perform the functions of gait monitoring system 100 with computer-executable instructions. After beginning at start block 605, gait fingerprinting method 600 continues to process block 610.

[0095] At process block 610, gait fingerprinting method 600 obtains a first set of gait measurements of an individual performing a slow walk using an internal accelerometer of a phone (or other mobile device) carried by the individual (e.g., as shown and described above with reference to process block 210). At process block 615, the measurements are subdivided into 100 frequency bins (e.g., as described above with reference to process block 215). The 100 frequency bins cover the range of frequencies produced by the individual's walking. At process block 620, the bins are tracked over time (e.g., as described with reference to reporting the bin values ​​in process block 215) to generate 100 frequency time series bins. At process block 625, gait fingerprinting method 600 performs a Fourier transform of each of the 100 frequency-specific time series bins. In process block 630, the gait fingerprinting method 600 identifies the top 10 time series X based on the height of the maximum power spectral density peak in each power spectral density curve resulting from the Fourier transform (e.g., as described with respect to selecting the top frequency bins in process block 215 and below under the heading "Identifying the Top Frequency Bins" and with respect to reporting values ​​at an interval in process block 215). 10 Identify and extract.

[0096] Process blocks 635 to 655 extract the top 10 time series signals X 10 At process block 635, a counter i is initialized. At decision block 640, the gait fingerprinting method 600 selects the top 10 time series signals X by determining if the value of counter i is less than 10. 10 If so, gait fingerprinting method 600 proceeds to process block 645. In process block 645, gait fingerprinting method 600 performs a noise reduction on the i-th time series signal X iIn process block 650, for example, the original time series signal X i is denoised and reconstructed into the original time series signal X i By overwriting the time series signal X i is replaced with the denoised and reconstructed one. At process block 655, counter i is incremented and processing returns to decision block 640 to determine if any other time signals remain to be denoised in further iterations of the denoising loop. By determining if counter i has reached the value of 10, the top 10 time series signals X 10 If the gait fingerprinting method 600 determines that everything has been denoised, the denoising loop ends and processing proceeds to process block 660 .

[0097] At process block 660, the gait fingerprinting method 600 uses an internal accelerometer of a phone carried by the individual to obtain a second set of gait measurements of the individual performing a fast walk (i.e., a walk faster than the first slow walk). At process block 665, the gait fingerprinting method 600 uses an internal accelerometer of a phone carried by the individual to obtain a third set of gait measurements of the individual performing a brisk walk or light jog (i.e., a walk faster than the second fast walk) (as with the first slow walk measurement, these additional baseline measurements may also be performed for progressively faster walks, e.g., as described above with reference to process block 210).

[0098] Process blocks 670-684 are repeated for both the second set of gait measurements and the third set of gait measurements. In process block 670, the second and third sets of gait measurements are subdivided into 100 frequency bins, similar to process block 615. In process block 672, gait fingerprinting method 600 subdivides the top 10 frequency bins X, ...10 A time series of observations may be extracted for the second and third sets of gait measurements, for example, as described in process block 215 with respect to reporting values ​​at intervals.

[0099] Process blocks 674-684 constitute a noise removal and phase normalization (synchronization) loop. At process block 674, a counter j is initialized. At decision block 676, the gait fingerprinting method 600 determines whether the value of counter j is less than 10, thereby determining the top 10 predetermined frequency bins X 10 , j, j , ... j At process block 680, the reconstructed time series signal Y j Dynamic phase synchronization (DPS) is applied to the top 10 time series X 10 Use a uniform pace or cadence to time series signal Y j In one embodiment, the phase of the time series signal Y j The phase of the signal Y j Selectively expand or compress the data points in the top 10 time series X 10 (In one embodiment, phase synchronization may be performed as described below under the heading "Phase Synchronization").

[0100] In process block 682, for example, the original time series signal Y jis denoised, reconstructed and phase-synchronized to the original time series signal Y j By overwriting the time series signal Y j is replaced with the denoised, reconstructed and phase locked version. At process block 684, counter j is incremented and processing returns to decision block 676 to determine whether other time series signals remain to be denoised and phase locked in further iterations of the denoising and phase locked loop. By determining whether counter j has reached the value of 10, the sampled time series signal Y j If the gait fingerprinting method 600 determines that everything is denoised and phase locked, the denoising and phase locked loop is finished and processing proceeds to process block 686 .

[0101] At process block 686, the corresponding denoised and phase-locked frequencies of all three sets of measurements are averaged; that is, the values ​​of each time series data point are averaged (e.g., as described below under the heading "Combining Synchronized Series"). These averaged time series signals are the component time series signals of the individual's reference gait fingerprint. At process block 688, the gait fingerprinting method 600 generates a reference 3D gait fingerprint GS 3D For example, gait fingerprinting method 600 may combine the averaged time series signals of the first, second, and third gait measurements as component time series in a reference time series database. Gait fingerprinting method 600 may also write the time series database to memory or storage for later reading and comparison with the raw measurements of the individual's gait. Upon storing the gait fingerprint, gait fingerprinting method 600 completes at end block 690.

[0102] In one embodiment, once an individual's gait fingerprint has been established, it can be used to determine the individual's disability status based on changes in the individual's gait. To analyze the individual's gait while the individual is carrying a mobile device such as a phone, the gait monitoring system and method may then process the real-time output of the accelerometer using processing steps similar to those used to establish the gait fingerprint. For example, divide into 100 frequency bins, take the same frequency bins identified during the calibration test on the individual, for all upper frequency bins, use the most recent 120 seconds of data to generate time series corresponding to the upper frequency bins, perform phase normalization (e.g., DPS as introduced herein), shrink or expand portions of the waveform to align with the pace or cadence of the walking fingerprint stored for that subject, for all upper frequency bins, subtract the new frequency time series for the upper bin from the reference time series for the upper bin stored as the individual's walking fingerprint to generate a residual time series for each upper frequency bin, calculate the mean absolute error (MAE) over all residual time series, and calculate the individual's cumulative MAE (CMAE) as a disability measure for the individual's current state (if the most recent 2-minute time window is used, a new CMAE disability measure is generated every 2 minutes).

[0103] 7 illustrates one embodiment of a gait monitoring method 700 associated with the use of vibration fingerprints for gait characterization and monitoring. In one embodiment, gait monitoring method 700 begins at start block 705 in response to the occurrence of a condition such as those described above with respect to gait monitoring method 200. In one embodiment, gait monitoring method 700 is performed by a computer configured to perform the functions of gait monitoring system 100 with computer-executable instructions. After beginning at start block 705, gait monitoring method 700 continues to process block 710.

[0104] At process block 710, the ambulatory monitoring method 700 acquires gait measurements with the phone's accelerometer over a two minute period (e.g., as shown and described above with reference to process block 210). At process block 715, the gait measurements are subdivided into 100 frequency bins (e.g., as described above with reference to process block 215). At process block 720, the bins are tracked over time (as described with reference to reporting the bin values ​​in process block 215) to generate 100 frequency time series bins. At process block 725, a Fourier transform is performed on each of the 100 frequency-specific time series bins. At process block 730, the ambulatory monitoring method 700 generates a set of time series observations, e.g., UUT 10 The ten predetermined upper frequencies X are selected (at process block 630) by selecting sampled time series from the ten upper frequencies such that 10 Ten time series observations corresponding to UUT 10 At process block 735, the gait monitoring method 700 extracts the reference 3D gait fingerprint GS by, for example, retrieving it from storage or memory (e.g., as shown in inputting the time series of reference 160 and described in process block 220). 3D (a set of time series criteria) is initialized.

[0105] Process blocks 740-765 constitute a noise rejection and phase normalization (synchronization) loop. In process block 740, a counter i is initialized. In decision block 745, the ambulatory monitoring method 700 calculates the time series of ten observations UUT by determining if the value of counter i is less than 10. 10 If so, the ambulatory monitoring method 700 proceeds to process block 750. In process block 750, the ambulatory monitoring method 700 performs a noise reduction and phase normalization on the i-th time series signal UUT (e.g., as described below under the heading "Noise Reduction"). iIn process block 755, the dynamic phase synchronization (DPS) is performed on the reconstructed time series signal UUT. i to find the top 10 time series X (e.g., as described below under the heading "Phase Synchronization"). 10 Use a uniform pace and time series signal to the UUT i In process block 760, the phase of the original time series signal UUT is normalized (synchronized). i The noise is removed, reconstructed, and phase-synchronized to the original time series signal UUT. i By overwriting the time series signal UUT i is replaced by the denoised, reconstructed and phase-locked one.

[0106] At process block 765, counter i is incremented and processing returns to decision block 745 where another time series signal is selected for noise removal and phase synchronization at the UUT. 10 By determining whether the value of counter j has reached 10, the time series signal UUT i If gait monitoring method 700 determines that all are noise-filtered and phase-locked, the noise-filtering and phase-locked loop ends and processing proceeds to process block 770. At process block 770, gait monitoring method 700 performs a 3D gait fingerprint surface UUT scan. 3D (i.e., generate a current gait fingerprint or time series database of observations for current measurements of the individual's gait).

[0107] Process blocks 772-780 comprise a residual and MAE generation loop. In process block 772, a counter j is initialized. In decision block 774, the gait monitoring method 700 determines whether all time series observations in the current gait fingerprint have been compared against corresponding time series references in the reference gait fingerprint by determining whether the value of counter j is less than 10. If so, the gait monitoring method 700 proceeds to process block 776. In process block 776, the gait monitoring method 700 calculates the reference signal (time series reference) GS j and observed signal (time series observation results) UUT j Residual R between j For example, the residuals may be generated as described with reference to process block 220. At process block 778, the ambulatory monitoring method 700 calculates the residuals R j By performing a mean absolute error calculation on the time series standard GS j and time series observation results UUT j Mean absolute error (MAE) between j Search for Mean Absolute Error (MAE) j may be generated, for example, as described in process block 225. Mean Absolute Error MAE j is stored and then processed to generate a cumulative mean absolute error as an impairment measure. In process block 780, the counter j is incremented and processing returns to decision block 774 to determine the time series of observations UUT j For each, it is determined whether a residual and MAE are generated. j If the gait monitoring method 700 determines that a residual and MAE have been generated for each, the residual and MAE generation loop ends and processing proceeds to process block 782.

[0108] At process block 782, the ambulatory monitoring method 700 calculates 10 mean absolute errors (MAE) (e.g., as shown and described with reference to process block 225). jare summed to compute a cumulative mean absolute error (CMAE). The CMAE may be used as a disability measure. At decision block 784, the gait monitoring method 700 compares the CMAE (disability measure) to a disability threshold (e.g., as described in process 230). In this example, the disability threshold is 12. If the CMAE is less than or equal to 12, the disability threshold is not met (as described in process blocks 230-235), and the gait monitoring method 700 proceeds to end block 786. If the CMAE is greater than 12, the disability threshold is met (as described in process blocks 230-235), and the gait monitoring method 700 proceeds to process block 788. At process block 788, the gait monitoring method 700 indicates that the individual's gait is abnormal (e.g., by generating and displaying or sending an alert, as described in process block 235). If the individual's gait is indicated to be abnormal, the gait monitoring method 700 proceeds to end block 786. In one embodiment, once end block 786 is reached, the gait monitoring method returns to start block 705 to repeat again for an additional two minutes of gait measurements.

[0109] Identifying the upper frequency bins In one embodiment, gait monitoring method 200 further includes an automated framework for identifying the upper frequency bins that best characterize an individual's normal gait. For example, prior to gait monitoring method 200, a setup or training process is performed to generate a set of time series of metrics for the upper frequency bins that are most associated with the individual's normal gait. At a high level, the gait monitoring method receives baseline measurements of the individual's normal gait while moving without an impairment, identifies a set of upper frequency bins where the baseline measurements are characterized by the most frequent vibration components, and converts the normal gait baseline measurements into a time series of metrics for each frequency bin of the set.

[0110] In one embodiment, baseline measurements of gait are obtained from the individual while the individual is uninjured and used to select the set of frequency bins used in process block 215 and to generate the baseline time series used in process block 220. In one embodiment, the baseline measurements are obtained before receiving the individual's gait measurements in process block 210. In one embodiment, the set of frequency bins is selected before converting the gait measurements into a time series of observations in process block 215. In one embodiment, the baseline time series is generated before generating the time series residuals in process block 220.

[0111] Baseline measurements of normal gait are obtained in a manner similar to that described above with reference to process block 210 receiving measurements of the individual's gait from a sensor, and the baseline measurements are designated as representing normal locomotion by the individual. In one embodiment, the baseline measurements are, by definition, designated as representing normal locomotion by the individual because they are obtained during a setup or training process, during which the individual is presumed to be unimpaired.

[0112] Once baseline measurements of normal gait have been obtained, the next step is to identify the optimal or most prominent baseline frequency bins for monitoring (i.e., the top frequency bins that best characterize the individual's normal gait). To achieve valid frequency identification, the behavior of the time series for each bin is further investigated in the frequency domain. The time series generated for each bin covering the power spectrum of the gait measurements are individually transformed back into the frequency domain to generate individual power spectra for each time series. These bins are then ranked by the strongest frequency components of the bin's associated individual power spectrum, i.e., by the maximum amplitude in the individual power spectrum. In the spectrogram, several top signals have the strongest frequency components (highest peaks). The top few frequency bins are selected based on the height of the peaks in the frequency domain. These peaks correspond to the individual's walking frequencies.

[0113] For example, each of the 100 bins containing the new time series is transformed back into the frequency domain, ranked by maximum periodic amplitude, and the 10 bins with the largest amplitudes are selected. In one embodiment, empirical evidence has shown that selecting the top 10 of the 100 bins can adequately identify locomotor complexity. A disability measure is then generated (e.g., as described herein with reference to process block 225) using the residual between the baseline time series from these 10 bins and the observed time series from these 10 bins.

[0114] Noise Reduction There are complications that can distort the impairment measure (HGD CMAE) values ​​between measurements. One complication that can arise when comparing measurements is that the time series sampled from the frequency bins may be noisy, obscuring the underlying patterns. The noise can be reduced by signal reconstruction.

[0115] In one embodiment, to reduce noise, a technique called Fourier decomposition is used to decompose each time series into frequency bins, removing all but the top few harmonics (also called component frequencies), and then reconstructing the remaining top few harmonics to generate a denoised signal. The decomposition is performed in the frequency domain by performing a fast Fourier transform (FFT) on the time series signal. The top N harmonics in the power spectral density of the signal are then selected. To select the top N harmonics, the frequencies corresponding to the N highest peaks in the power spectral density curve are identified. Experiments have shown that N=3 is suitable for signal denoising through reconstruction. After selecting the top N (e.g., N=3) harmonic modes to retain, an inverse FFT (iFFT) is employed to reconstruct the original time series, removing some high-frequency noise components.

[0116] In one embodiment, this reconstruction denoising technique removes some of the high-frequency noise in the binned frequency time series. In one embodiment, this reconstruction denoising technique advantageously does not introduce signal bias into the time series. Conventional smoothing techniques tend to push both peaks and troughs closer to the mean, introducing some bias into both high and low spots of the curve. In one embodiment, this Fourier decomposition and iFFT reconstruction process ensures minimal signal bias is introduced and minimizes the residual function when the reference gait fingerprint is differentiated (i.e., pointwise subtracted) from the subsequent measured gait fingerprint. This results in a much sharper separation in the residuals for comparing normal and impaired gait. In one embodiment, the Fourier decomposition and iFFT reconstruction process reduces the instability of the impairment measure (HGD CMAE) values ​​between measurements, increasing confidence in impairment determination.

[0117] FIG. 8 is a plot 800 illustrating the relative noise level of an exemplary time series sampled from an exemplary frequency bin of 6.5 Hz. An original, unremoved, signal 805 and a denoised signal 810 are plotted against a time axis 815 and an amplitude axis 820. The unremoved signal 805 illustrates an exemplary time series resulting in a noisy signal before reconstruction. To reduce the noise content of the original, unremoved signal 805, the signal reconstruction process described above is applied. An FFT is performed on the unremoved signal 805. The top three harmonics are then extracted from the power spectral density of the unremoved signal 805. After extracting the top three harmonics (relative to the top harmonic modes to be retained), an inverse FFT (referred to as iFFT) is employed to reconstruct the original time series without some high-frequency noise components, generating a denoised signal 810. The denoised signal 810 illustrates the noise reduction achieved by the signal reconstruction process for denoising compared to the unremoved signal 805.

[0118] phase synchronization An additional complication that can skew the disability measure (HGD CMAE) values ​​between measurements is the result of people's tendency to walk at different paces. Measurements taken from people walking at different speeds will result in a time series that is out of phase due to periodic behavior that speeds up and slows down within frequency bins. The phase of the time series can be corrected using a technique called dynamic phase synchronization (DPS), which normalizes the phase between a person's walking paces. This provides a uniform pace or cadence of movement in the time series.

[0119] In one embodiment, the gait measurements may be expanded (expanded) or contracted (compressed) to match the uniform pace of movement and be phase-aligned with the reference pace prior to using them to generate the time series residual in process block 220. The uniform pace of movement may be the pace or tempo of movement that is common to the reference time series. As a repetitive, cyclical, or periodic movement, the gait has a phase that indicates the portion of the periodicity of the movement being completed. In one embodiment, the uniform pace has a uniform period and frequency. For example, the uniform pace is one walking cycle per second (two steps left and right) or a period of one second. Other constant periods and frequencies for the uniform pace may be configured by a user or administrator of the gait monitoring system 1000. In one embodiment, as the gait measurements move along the time dimension due to alignment to a uniform pace, the phase of the gait measurements is aligned with the phase of the uniform pace, for example, by adjusting the lead and lag times of the gait measurements.

[0120] When walking speed is uncertain or fluctuating, the phase of the time series observations and the time series reference (in the reference gait fingerprint) can become synchronized or desynchronized. Desynchronized time series generate larger residuals, resulting in increased false alarms. A dynamic phase synchronization (DPS) method may be implemented upstream of the residual calculation to correct these phase shifts in real time. In one embodiment, DPS compresses and expands the time series data points in a moving window, continuously normalizing the phase by a transformation factor and sequentially optimizing the associated lead or lag time between signals of interest. After DPS is completed for all moving time windows (the entire length of the time series observations), an adjusted time series observation has been generated from the previous variably phase-shifted time series. The adjusted time series observations are now synchronized with the time series reference (reference signal) throughout the time domain.

[0121] Once the time series measurements for different paces of walking have been denoised and reconstructed, phase normalization (e.g., DPS) of the individual time series minimizes the variability of the time series. Figure 9 shows time series sampled from the upper frequency bin (6 Hz) for a slow walker, a fast walker, and a jogger in three subplots: unsynchronized time series subplot 900 before phase normalization, synchronized time series subplot 930 after phase normalization, and synchronized time series average subplot 960 showing the average of the phase-normalized signal. Each subplot displays the time series signal plotted against a time axis 970 and an amplitude axis 975.

[0122] The unsynchronized time series subplot 900 displays the time series signals for three distinct paces (slow walking 905, fast walking 910, and jogging 915) after denoising and reconstruction for a frequency bin of 6 Hz. Slow walking 905 is the slowest pace. Fast walking 910 is the initial increase in walking speed. Jogging 915 shows a further increase in pace to a light jog. The signals for slow walking 905, fast walking 910, and jogging 915 are out of phase to different degrees. The phase misalignment is particularly evident when comparing the peaks and troughs of the slow walking 905 and fast walking 905 signals. The synchronized time series subplot 930 shows the signals after phase normalization has been applied. The peaks and troughs of the slow walking 905, fast walking 910, and jogging 915 signals are more closely aligned.

[0123] In one embodiment, synchronizing the phase of the time series signals further improves the stability of the impairment measure (HGD CMAE) values ​​between measurements, increasing the certainty in determining impairment.

[0124] Synchronized Series Merging In one embodiment, the reference time series for each frequency bin represents a combination of multiple gaits of an individual moving at various paces while unimpaired. For example, reference measurements may be taken of an individual walking slowly, walking at a moderate pace, walking quickly, jogging, or running. Thus, in one embodiment, multiple reference gait measurements of an individual are taken while the individual is unimpaired. The multiple reference gait measurements are expanded (expanded) or contracted (compressed) to have a uniform pace or cadence. The multiple reference gait measurements are then synchronized or aligned in phase, for example, by adjusting gait lead and lag times. The multiple reference gait measurements are then averaged to generate the reference time series. This averaging combines the reference measurements of the individual's various paces into a single gait fingerprint.

[0125] Referring again to FIG. 9 , the time series signals for slow walking 905, fast walking 910, and jogging 915 are synchronized to a reference pace or cadence (e.g., using DPS) and then averaged to generate an average time series signal 920. The average time series signal 920 is a denoised reference time series signal for a frequency bin centered at 6 Hz. The synchronized time series average subplot 960 shows the average time series signal 920 for the slow walking 905, fast walking 910, and jogging 915 signals after phase normalization is complete. The average time series signal 920 is much more representative of the time series behavior in the 6 Hz frequency bin than any measurement result. The average time series signal 920 will ultimately be used as one of the signals for the gait fingerprint.

[0126] In one embodiment, the denoising, phase-locking, and averaging steps are applied to time series from all of the individual's top frequency bins (e.g., the top 10 frequency bins). The denoised, locked, and averaged time series for the top frequency bins collectively define the individual's baseline gait fingerprint. In one embodiment, each individual's baseline gait fingerprint is stored in a library (a data structure such as a database of gait fingerprints).

[0127] In one embodiment, when walking measurements are obtained for multiple paces (e.g., slow walking, fast walking, and jogging), the top frequency is determined based on the measurement for the slowest pace. For example, after the top frequency is determined for slow walking, the binning and sorting is repeated for the remaining sets of measurements. However, slow walking has the longest period and the most measurements per walking cycle, and therefore is more indicative of walking dynamics than the other measurements. Therefore, in one embodiment, there is no need to search for an optimal frequency for fast walking; instead, the optimal frequency found during slow walking is used for all three paces.

[0128] Unique Advantages In one embodiment, the systems, methods, and other embodiments for gait monitoring described herein enable accurate detection of the onset of cognitive impairment in a walking entity. In one embodiment, the systems, methods, and other embodiments for gait monitoring described herein enable detection of human health abnormalities in an individual with very low false positives and false negatives based on measurements of deviations in the individual's gait from an expected normal gait. In one embodiment, detection of impairment can be achieved with as little as two minutes of monitoring.

[0129] The onset of cognitive impairment may be indicative of an individual's intoxication with alcohol, cannabis, or other mind-altering substances. In one embodiment, in response to the highly accurate detection of impairment provided by the systems, methods, and other embodiments for ambulatory monitoring described herein, an individual may be prevented from operating dangerous machinery. The onset of cognitive impairment may also be indicative of the onset of a serious health problem, such as a stroke or seizure. In one embodiment, in response to the rapid and accurate detection of impairment provided by the systems, methods, and other embodiments for ambulatory monitoring described herein, emergency care may be dispatched early and promptly.

[0130] Software Module Embodiments Generally, software instructions are designed to be executed by one or more suitably programmed processors accessing memory. These software instructions may include, for example, computer-executable code and source code that can be compiled into computer-executable code. These software instructions may also include instructions written in interpreted programming languages, such as scripting languages.

[0131] Such instructions may be organized as program modules, each of which performs a particular task, process, function, or operation, and the entire set of modules may be controlled or coordinated in their operation by an operating system (OS) or other form of organizational platform.

[0132] In one embodiment, one or more of the components described herein may be configured as program modules and stored on a non-transitory computer-readable medium, the program modules comprising stored instructions that, when executed by at least a processor, cause a computing device to perform corresponding functions as described herein.

[0133] In one embodiment, one or more of the components described herein may communicate with each other via electronic messages or signals. These electronic messages or signals may be configured as function or procedure calls, such as application programming interface (API) calls, to access features or data of the components. In one embodiment, these electronic messages or signals are transmitted between hosts in a format compatible with Transmission Control Protocol / Internet Protocol (TCP / IP) or other computer networking protocols. In one embodiment, a component can (i) generate or configure electronic messages or signals to issue commands or requests to another component, (ii) send messages or signals to other components, and (iii) analyze the content of received electronic messages or signals to identify commands or requests that the component can execute. In response to identifying a command, such a component will automatically execute the command or request.

[0134] Computing Device Embodiments 10 illustrates an example computing system 1000 comprising an example computing device 1005 configured and / or programmed as a special-purpose computing device with one or more of the example systems and methods described herein and / or equivalents. The example computing device 1005 may be a computer comprising at least one hardware processor 1010, memory 1015, and input / output ports 1020 operatively connected by a bus 1025. In one example, the computing device 1005 may comprise gait monitoring logic 1030 configured to facilitate monitoring of an individual's gait to detect impairments in the individual, similar to the logic, systems, and methods shown and described with reference to FIGS. 1-9.

[0135] In different examples, logic 1030 may be implemented as hardware, a non-transitory computer-readable medium 1037 having instructions stored thereon, firmware, and / or a combination thereof. While logic 1030 is shown as a hardware component attached to bus 1025, it should be understood that in other embodiments logic 1030 may be implemented in processor 1010, stored in memory 1015, or stored on disk 1035.

[0136] In one embodiment, logic 1030 or a computer is a means (e.g., structure (hardware, non-transitory computer-readable medium, firmware)) for performing the described operations. In some embodiments, the computing device may be a server operating in a cloud computing system, a server configured as a Software as a Service (SaaS) architecture, a smartphone, a laptop, a tablet computing device, etc.

[0137] The means may be implemented, for example, as an ASIC programmed to monitor the individual's gait and detect impairments in the individual, or as stored computer-executable instructions that are temporarily stored in memory 1015 and then presented to computing device 1005 as data 1040 to be executed by processor 1010.

[0138] The logic 1030 may also provide means for execution (eg, hardware, a non-transitory computer-readable medium storing executable instructions, firmware).

[0139] Generally describing an exemplary configuration of computing device 1005, processor 1010 may be a wide variety of processors, including dual microprocessors and other multi-processor architectures. Memory 1015 may include volatile memory and / or non-volatile memory. Non-volatile memory may include, for example, ROM, PROM, etc. Volatile memory may include, for example, RAM, SRAM, DRAM, etc.

[0140] The storage disk 1035 may be operatively connected to the computing device 1005, for example, via an input / output (I / O) interface (e.g., card, device) 1045 and input / output port 1020 controlled by at least an input / output (I / O) controller 1047. The disk 1035 may be, for example, a magnetic disk drive, a solid-state disk drive, a floppy disk drive, a tape drive, a Zip drive, a flash memory card, a memory stick, etc. Further, the disk 1035 may be a CD-ROM drive, a CD-R drive, a CD-RW drive, a DVD ROM, etc. The memory 1015 may store, for example, processes 1050 and / or data 1040. The disk 1035 and / or memory 1015 may store an operating system that controls and allocates resources of the computing device 1005.

[0141] Computing device 1005 may interact with, control, and / or be controlled by input / output (I / O) devices via input / output (I / O) controller 1047, I / O interface 1045, and input / output ports 1020. Input / output ports 1020 may include, for example, serial ports, parallel ports, network ports, and USB ports. The input / output devices may include, for example, one or more displays 1070, a printer 1072 (such as an inkjet, laser, or 3D printer), audio output devices 1074 (such as speakers or headphones), text input devices 1080 (such as a keyboard), cursor control devices 1082 for pointing and selection input (such as a mouse, trackball, touch screen, joystick, pointing stick, electronic stylus, electronic pen tablet, etc.), audio input devices 1084 (such as a microphone or external audio player), video input devices 1086 (such as video and still cameras or external video players), image scanner 1088, video cards (not shown), disks 1035, network devices 1055, etc. In one embodiment, the computing device 1005 may be connected to, interact with, and receive input from one or more sensors that convert physical phenomena into electronic signals, such as an accelerometer 1090, through an input / output (I / O) controller 1047, an I / O interface 1045, and input / output ports 1020. In one embodiment, the accelerometer is a solid-state multi-axis accelerometer that may be carried by an individual. In one embodiment, the accelerometer 1090 is fixed to the housing of the computing device 1005. In one embodiment, the accelerometer 1090 may be remote from the computing device 1005 or may be connected to the computing device 1005 by a wired or wireless network. In one embodiment, the computer 1005 is configured with logic to collect measurements from sensors, such as the accelerometer 1090, and store them as observations in a time series data structure, such as a time series database.

[0142] The computing device 1005 can operate in a networked environment and thus can be connected to a network device 1055 via the I / O interface 1045 and / or the I / O port 1020. Through the network device 1055, the computing device 1005 can interact with a network 1060. Through the network, the computer 1005 can be logically connected to a remote computer 1065. Networks with which the computer 1005 can interact include, but are not limited to, a LAN, a WAN, and other networks.

[0143] Mobile Device Embodiments Referring now to FIG. 11 , this figure illustrates an exemplary mobile device 1100 configured and / or programmed with one or more of the exemplary systems and methods described herein and / or equivalents. In one example, the mobile device 1100 may include ambulatory monitoring logic 1105 configured to facilitate data provider-independent change processing in a mobile client application, similar to the logic, systems, and methods shown and described with reference to FIGS. 1-10 . The mobile device 1100 may include a cellular antenna 1110. In an exemplary embodiment, the mobile device 1100 may implement signal processing and / or control circuitry generally identified at 1120 in FIG. 11 . In some embodiments, the mobile device 1100 includes a microphone 1130, an audio output 1140 such as a speaker and / or audio output jack, a display 1150, and / or input devices 1160 such as a keypad, graphical keypad / keyboard, touchscreen, pointing device, voice activation, and / or other input device. In one embodiment, mobile device 1100 includes a sensor such as an accelerometer 1165 for detecting vibration or movement of the mobile device. Signal processing and / or control circuitry 1120 and / or other circuitry (not shown) in mobile device 1100 may process data, perform coding and / or encryption, perform calculations, format data, and / or perform other cell phone, tablet, or mobile device functions.

[0144] The mobile device 1100 can communicate with mass data storage 1170, which stores data non-volatilely, such as magnetic, optical, and / or semiconductor storage devices including, for example, HDDs, DVDs, and / or SSDs. The mobile phone 1100 can be connected to memory 1180, such as RAM, ROM, low-latency non-volatile memory such as flash memory, and / or other suitable electronic data storage. The mobile device 1100 can also support WLAN connectivity via a WLAN network interface 1190. The mobile device 1100 can also include a WLAN antenna 1195. In one embodiment, the mobile device 1100 can communicate with a cloud storage system, which stores data non-volatilely, over the WLAN. In one embodiment, the exemplary system and method can be implemented using a WLAN network interface 1190, although other configurations are possible.

[0145] Definitions and Other Embodiments In another embodiment, the described methods and / or their respective equivalents may be implemented by computer-executable instructions. Thus, in one embodiment, a non-transitory computer-readable / storage medium is configured with stored computer-executable instructions of an algorithm / executable application that, when executed by a machine, causes the machine (and / or associated components) to perform the method. Exemplary machines include, but are not limited to, processors, computers, servers operating in a cloud computing system, servers configured as a Software as a Service (SaaS) architecture, smartphones, etc. In one embodiment, a computing device is implemented with one or more executable algorithms configured to perform any of the disclosed methods.

[0146] In one or more embodiments, the disclosed methods or respective equivalents are performed by computer hardware configured to perform the methods, or by computer instructions embodied in modules stored on a non-transitory computer-readable medium and configured as executable algorithms that, when executed by at least a processor of a computing device, are configured to perform the methods.

[0147] For ease of explanation, the methods illustrated in the figures are illustrated and described as a series of algorithmic blocks, but it should be understood that the order of the blocks is not limited to the order. Some blocks may occur in a different order than illustrated and described and / or concurrently with other blocks. Furthermore, not all illustrated blocks may be used in implementing an example method. Blocks may be combined or separated into multiple operations / components. Furthermore, additional and / or alternative methods may employ additional operations not illustrated in the blocks.

[0148] The following includes definitions of selected terms employed herein. These definitions include various examples and / or forms of components that fall within the scope of the terms and that may be used for implementation. These examples are not intended to be limiting. Both singular and plural forms of terms may be included in the definitions.

[0149] References to "one embodiment," "an embodiment," "one example," "an example," etc. indicate that while the embodiment or example so described may include a particular feature, structure, attribute, property, element, or limitation, not all embodiments or examples necessarily include that particular feature, structure, attribute, property, element, or limitation. Furthermore, repeated use of the phrase "in one embodiment" does not necessarily refer to the same embodiment, although it may.

[0150] As used herein, a "data structure" is an organization of data stored in a computing system, in a memory, storage device, or other computerized system. A data structure may be, for example, any one of a data field, a data file, a data array, a data record, a database, a data table, a graph, a tree, a linked list, etc. A data structure may be formed by and contain many other data structures (e.g., a database containing many data records). According to other embodiments, other examples of data structures are possible as well.

[0151] As used herein, "computer-readable medium" or "computer storage medium" refers to a non-transitory medium that stores instructions and / or data that, when executed, are configured to perform one or more of the disclosed functions. In some embodiments, data may function as instructions. Computer-readable medium may be in forms including, but not limited to, non-volatile media and volatile media. Non-volatile media may include, for example, optical disks, magnetic disks, and the like. Volatile media may include, for example, semiconductor memory, dynamic memory, and the like. Common forms of computer-readable media include, but are not limited to, floppy disks, flexible disks, hard disks, magnetic tape, other magnetic media, application-specific integrated circuits (ASICs), programmable logic devices, compact disks (CDs), other optical media, random access memory (RAM), read-only memory (ROM), memory chips or cards, memory sticks, solid-state storage devices (SSDs), flash drives, and other media on which a computer, processor, or other electronic device may function. Various media may store instructions for an algorithm that, when selected for implementation in one embodiment, is configured to perform one or more of the functions of this disclosure and / or claims.

[0152] As used herein, "logic" refers to components implemented by computer or electrical hardware, non-transitory media having executable application or program module instructions stored thereon, and / or combinations thereof, for performing any of the functions or operations disclosed herein and / or for performing functions or operations from other logic, methods, and / or systems disclosed herein. Equivalent logic may include firmware, a microprocessor programmed with an algorithm, discrete logic (e.g., ASIC), at least one circuit, analog circuit, digital circuit, programmed logic device, memory device containing algorithmic instructions, etc., any of which may be configured to perform one or more of the disclosed functions. In one embodiment, logic may comprise one or more gates, combinations of gates, or other circuit components configured to perform one or more of the disclosed functions. Where multiple logics are described, it is contemplated that these multiple logics may be incorporated into a single logic. Similarly, where a single logic is described, it is contemplated that the single logic may be distributed among multiple logics. In one embodiment, one or more of these logics are corresponding structures associated with performing the functions of this disclosure and / or claims. The choice of the type of logic to implement may be based on desired system requirements or specifications. For example, if increased speed is a consideration, hardware may be selected to implement the function. If reduced cost is a consideration, stored instructions / executable applications may be selected to implement the function.

[0153] An "operable connection," i.e., a connection through which entities are "operably connected," is a connection through which signals, physical communications, and / or logical communications may be sent and / or received. An operable connection may include a physical interface, an electrical interface, and / or a data interface. An operable connection may include different combinations of interfaces and / or connections sufficient to enable operable control. For example, two entities may be operably connected to communicate signals to each other directly or through one or more intermediate entities (e.g., a processor, an operating system, logic, a non-transitory computer-readable medium). Logical and / or physical communication channels may be used to form an operable connection.

[0154] As used herein, a "user" includes, but is not limited to, one or more people, one or more computers or other devices, or a combination thereof.

[0155] Although the disclosed embodiments have been shown and described in considerable detail, it is not intended that the appended claims be limited or in any way restricted to such details. It is to be understood that, for purposes of describing various aspects of the subject matter, not every conceivable combination of elements or methodologies can be described. Accordingly, the present disclosure is not limited to the specific details or examples shown and described. Therefore, the present disclosure is intended to embrace all such changes, modifications, and variations that fall within the scope of the appended claims.

[0156] To the extent the term "includes" or "including" is used in the detailed description or claims, it is intended to be as inclusive as the term "comprising" would be interpreted when used as a transitional term in a claim.

[0157] To the extent the term "or" is used in the detailed description or claims (e.g., A or B), it is intended to mean "A, B, or both." If applicants intend to indicate "only A or B, but not both," the phrase "only A or B but not both" would be used. Thus, the use of the term "or" herein is inclusive, not exclusive.

Claims

1. A method by which a computer performs an action. This includes receiving measurement results of the walking of an object from a sensor. The walking of the entity is monitored for the detection of an obstacle. The aforementioned method, For each frequency bin in the set of frequency bins, the measurement results of the walk are converted into time-series observation results. The residuals of the time series for each range of the set are generated by performing point-by-point subtraction between the observed results of the time series and the reference for the time series for each range of the set. Based on the residuals of the aforementioned time series, a disability scale is generated, Comparing the aforementioned disability scale with the aforementioned disability threshold, In response to the failure metric meeting the threshold, an alert is generated indicating that the entity is experiencing a failure. The methods by which computers perform actions, including, in addition to the above.

2. Before generating the residuals of the aforementioned time series, By expanding or compressing the measurement results of the walk in the moving window, the measurement results of the walk are normalized to a uniform pace. To align the lead time and lag time of the measurement results of the aforementioned walking with the aforementioned uniform pace, A method performed by a computer according to claim 1, further comprising:

3. Before receiving the measurement result of the walking of the aforementioned entity, Receiving the second reference measurement result of the walking of the entity while the entity is walking without injury, Identifying several frequency ranges in which the aforementioned reference measurement results show the highest level of vibration components as a set of frequency bins, For each range of the set, the reference measurement results of the second walk are converted into the reference time series, A method performed by a computer according to claim 1, further comprising:

4. The process further includes receiving a third gait reference measurement result in which the entity is in an unimpaired state, The pace of movement differs between the second and third steps. The aforementioned method, By expanding or compressing the reference measurement results for the second and third walks in the moving window, the reference measurement results for the second and third walks are normalized to a uniform pace. To align the lead time and lag time of the reference measurement results for the second and third walks with the uniform pace, From the reference measurement results of the second and third walks, an average of the time-series references for each range of the set is generated, and for each range of the set, the reference measurement results of the second walk are converted into the time-series references. A method performed by a computer according to claim 3, further comprising:

5. Converting one or more of the aforementioned time series observation results into the frequency domain, Selecting several harmonics with the maximum amplitude from one or more of the aforementioned time series observation results, Convert the selected harmonics into the time domain and reconstruct one or more of the time-series observation results with reduced noise; The method performed by a computer according to claim 1, further comprising denoising one or more of the time series observation results.

6. Generating the disability scale based on the residuals of the aforementioned time series is, For each range of the set, generate the mean absolute error of the residuals of the time series, The mean absolute error of each time series is summed up to generate the cumulative mean absolute error, It further includes, The method performed by a computer according to claim 1, wherein the impairment scale is the cumulative mean absolute error.

7. The method performed by the computer according to claim 1, wherein the sensor is an accelerometer carried by the entity.

8. The computer-operated method according to claim 1, wherein the entity is considered to have a disability if the measured gait of the entity differs sufficiently from a reference gait to such an extent that the disability scale satisfies the threshold.

9. The generation of an alert indicating that the aforementioned entity is malfunctioning is performed at least by the processor, To constitute a message indicating that the aforementioned entity is malfunctioning, Sending the aforementioned message to initiate an emergency response, The method performed by a computer according to claim 1, further comprising an instruction to cause the computing system to perform the following.

10. One or more non-temporary computer-readable media storing computer-executable instructions, wherein the computer-executable instructions are configured such that when the computer-executable instructions are executed, one or more computers perform an operation including the operation described in any of claims 1 to 9.

11. A computing system comprising one or more computers, configured to perform operations including the operations described in any one of claims 1 to 9 by computer executable instructions.

12. A computer program that, when executed by at least one processor of a computer, causes the processor to perform an operation including the operation described in any one of claims 1 to 9.

13. A mobile device comprising one or more processors, a sensor, and one or more non-temporary computer-readable media storing computer-executable instructions, wherein the computer-executable instructions are configured to perform an operation including the operation described in any one of claims 1 to 9.

14. A non-temporary computer-readable medium in which computer-executable instructions are stored, wherein the computer-executable instructions are executed by at least the processor of a computer. The computer is instructed to receive the measurement results of human walking from the sensor. The gait of the person is monitored for the detection of an impairment. The aforementioned computer executable instructions are: For each frequency bin in the set of frequency bins, the measurement results of the walk are converted into time-series observation results. The residuals of the time series for each range of the set are generated by performing point-by-point subtraction between the observed results of the time series and the reference for the time series for each range of the set. Based on the residuals of the aforementioned time series, a disability scale is generated, Comparing the aforementioned disability scale with the aforementioned disability threshold, In response to the disability scale meeting the threshold, an alert is generated indicating that the person is disabled. A non-temporary computer-readable medium that causes the computer to perform the aforementioned actions.

15. A computing system, At least one processor, An accelerometer connected to the aforementioned processor, A non-temporary computer-readable medium in which instructions are stored, Equipped with, When the aforementioned instruction is executed by at least the processor, The computing system is instructed to receive the measurement results of human walking from the accelerometer. The gait of the person is monitored for the detection of an impairment. The aforementioned instruction is, For each frequency bin in the set of frequency bins, the measurement results of the walk are converted into time-series observation results. The residuals of the time series for each range of the set are generated by performing point-by-point subtraction between the observed results of the time series and the reference for the time series for each range of the set. Based on the residuals of the aforementioned time series, a disability scale is generated, Comparing the aforementioned disability scale with the aforementioned disability threshold, In response to the disability scale meeting the threshold, an alert is generated indicating that the person is disabled. A computing system that causes the computing system to perform the aforementioned computing system further.