N/A
In general, the ability to analyze and interpret periodic components of biomedical signals can be used to provide insights into both normal and pathophysiologic conditions. However, while advances in computing power and storage can allow remote physiological monitors to collect vast amounts of data, these devices often have small form factors and correspondingly small batteries and relatively little computing power that are inadequate for real-time analysis of the data. While time-frequency analysis is one of the most commonly used techniques in the extraction of signals from biomedical data, conventional time-frequency analysis typically requires more computing resources than are typically available in a remote monitor. Historically, such analysis of physiologic signals has been limited to in-clinic or in-hospital exams. Recently, wearable technologies and home-health monitoring have become well-accepted practices, but despite the increasing prevalence of embedded, autonomous, real-time applications, the computational efficiency of extracting signals representing clinically relevant biomarkers in frequency and time has not advanced to a point to overcome computational and power limitations constraining current wearable physiologic monitors. For example, the computational capabilities of microprocessors used to implement conventional ambulatory monitoring platforms are unable to conduct time-frequency analysis in real-time. Further, power limitations of mobile platforms do not support simultaneous collection and storage of data over long periods of time. As a result, the use of home-health monitoring technologies is constrained to minimal data collection for limited amounts of time.
Accordingly, new systems, methods, and media for efficient real-time embedded processing of physiological signals are needed.
In accordance with some embodiments of the disclosed subject matter, systems, methods, and media for efficient real-time embedded processing of physiological signals are provided that overcome the aforementioned drawbacks. In particular, the present disclosure may utilize a Stockwell transform (sometimes referred to as an S transform) for frequency analysis of time varying signals acquired by a subject. The present disclosure provides a filter system and pre-determined inputs to manage the computational burden of signal processing to achieve real-time processing and analysis, even when utilizing limited computational resources.
In accordance with some embodiments of the disclosed subject matter, a system for monitoring and providing feedback about a physiological condition of a subject is provided, the system comprising: a sensor configured to monitor at least one condition of the subject and generate physiological feedback data; a processor configured to receive the physiological feedback data from the sensor and programmed to: implement a filter bank with a predetermined number of coefficients and taps selected to perform a Stockwell transform on the physiological feedback data and provide a frequency domain data of the physiological feedback data; analyze the frequency domain data using a physiological monitoring criteria; generate a report about the physiological condition of the subject based on the analysis of the frequency domain data using the physiological monitoring criteria; a display configured to display the report about the physiological condition of the subject.
In some embodiments, the Stockwell transform is a discrete time Stockwell transform (DTST).
In some embodiments, the processor comprises a field programmable gate array, and one or more logic blocks of the field programmable gate array are configured to provide filter bank.
In some embodiments, the filter bank performs the Stockwell transform entirely in the time domain.
In accordance with some embodiments of the disclosed subject matter, a method for finding a Stockwell transform of a signal is provided, the method comprising: receiving a plurality of samples of a signal generated by a sensor, wherein the plurality of samples includes at least: i first samples of the signal from sample p−i to sample p−1, where i is an integer greater than one; a sample p of the signal; and i second samples of the signal from sample p+1 to sample p+i; providing each of the plurality of samples to a first filter comprising 2i filter taps, wherein each filter tap of the 2i filter taps of the first filter corresponds to a component of a Stockwell transform windowing function for frequency band f0, the output of each of the 2i filter taps corresponding to a multiplication of the sample and a coefficient based on the windowing function for frequency band f0; providing each of the plurality of samples to a corresponding filter tap of the 2i filter taps of the first filter; generating a first component of a Stockwell transform of sample p for frequency band f0 based on a sum of the outputs of the 2i filter taps of the first filter; providing each of the plurality of samples to a second filter comprising 2i filter taps corresponding to components of a Stockwell transform windowing function for a second frequency band f1; and generating a second component of the Stockwell transform of sample p for frequency band f1 based on a sum of outputs of the 2i filter taps of the second filter.
In some embodiments, providing the sample to a first filter comprising 2i filter taps comprises providing the sample to one or more logic blocks of a field programmable gate array, the one or more logic blocks of the field programmable gate array are configured to provide the 2i filter taps of the first filter.
In some embodiments, the method further comprises receiving, from memory, a plurality of complex coefficients based on the windowing function for frequency band f0, wherein each coefficient corresponds to a product of a windowing function and a Fourier kernel.
In some embodiments, the plurality of complex coefficients comprises a compact representation of the windowing function that includes only a subset of all coefficients needed to fully represent the entirety of the Fourier kernel are stored.
In some embodiments, the plurality of complex coefficients comprises a decimated subset of complex coefficients that provides an approximate representation of a full fidelity Fourier kernel of the Stockwell transform.
In some embodiments, the decimated subset is a truncation of the Fourier kernels of the Stockwell transform.
In some embodiments, the Stockwell transform for sample p and frequency band f0 is characterized by S[p, f0)=Σn=−iix[n]·w[p−n, f0)·e−j2πf
such that the complex coefficients for i is the complex conjugate of the complex coefficient for −i.
In some embodiments, the sensor comprises one or more electrocardiogram (ECG) leads, and wherein the signal is an ECG signal.
In some embodiments, the method further comprises calculating a physiologic feature of the sample p based on the Stockwell transform for sample p.
In some embodiments, the physiologic feature is the Shannon energy of sample p.
In some embodiments, the method further comprises providing the signal to an analog-to-digital converter that is configured to receive the signal and output the sample p at a predetermined sampling frequency.
In accordance with some embodiments of the disclosed subject matter, a system for finding an Stockwell transform of a signal is provided, the system comprising: a sensor; and a monitor comprising: a processor coupled to the sensor, the processor programmed to: receive a plurality of samples of the signal, wherein the plurality of samples includes at least: i first samples of the signal from sample p−i to sample p−1, where i is an integer greater than one; a sample p of the signal; and i second samples of the signal from sample p+1 to sample p+i; provide each of the plurality of samples to a first filter comprising 2i filter taps, wherein each filter tap of the 2i filter taps of the first filter corresponds to a component of a Stockwell transform windowing function for frequency band f0, the output of each of the 2i filter taps corresponding to a multiplication of the sample and a coefficient based on the windowing function for frequency band f0; provide each of the plurality of samples to a corresponding filter tap of the 2i filter taps of the first filter; generate a first component of a Stockwell transform of sample p for frequency band f0 based on a sum of the outputs of the 2i filter taps of the first filter; provide each of the plurality of samples to a second filter comprising 2i filter taps corresponding to components of a Stockwell transform windowing function for a second frequency band f1; and generate a second component of the Stockwell transform of sample p for frequency band f1 based on a sum of outputs of the 2i filter taps of the second filter.
In some embodiments, the Stockwell transform is a discrete time Stockwell transform.
In some embodiments, the processor is further programmed to generate the first component of the Stockwell transform and the second component of the Stockwell transform after receiving sample p+i and prior to receiving sample p+(i+1).
In some embodiments, the system further comprises memory storing a plurality of complex coefficients based on the windowing function for frequency band f0, wherein each coefficient corresponds to a product of a windowing function and a Fourier kernel.
In some embodiments, the processor comprises a field programmable gate array, and one or more logic blocks of the field programmable gate array are configured to provide the 2i filter taps of the first filter.
In some embodiments, the Stockwell transform for sample p has a complexity of O(NM) where N is 2i+1, and M is a number of frequency bands f0 to fm analyzed to perform the Stockwell transform, wherein the system comprises one filter for each frequency band.
In some embodiments, the system further comprises an analog-to-digital converter that is configured to receive the signal and output the sample p at a predetermined sampling frequency.
In some embodiments, the sensor comprises one or more electrocardiogram (ECG) leads, and wherein the signal is an ECG signal.
In some embodiments, the processor is further configured to calculate the Shannon energy of sample p based on the Stockwell transform for sample p.
Various objects, features, and advantages of the disclosed subject matter can be more fully appreciated with reference to the following detailed description of the disclosed subject matter when considered in connection with the following drawings, in which like reference numerals identify like elements.
In accordance with various embodiments, mechanisms (which can, for example, include systems, methods, and media) for efficient real-time embedded processing of physiological signals using S transforms are provided.
The discrete Fourier transform (DFT) is a commonly used frequency analysis approach that is used to analyze the contributions of different frequency components to a signal, which is often implemented using fast Fourier transform (FFT) techniques. However, there are several alternative approaches which have advantages and disadvantages for certain domain problems. For example, the FFT assumes that the signal being analyzed is a discrete, periodic, and infinite signal. To comply with this assumption, finite length signals are typically modeled as a repeated signal. Accordingly, for many applications of the FFT, the entire time domain signal is processed with the FFT at one time to capture as much of the signal as possible. The FFT is, however, less suitable for truly time varying signals.
In the case of time varying signals, a short-time Fourier transform (STFT) is often used as an alternative. The STFT provides an estimate of the frequency content of a signal over a fixed time window, and is computationally bounded by the use of a fixed window size. Accordingly, the selection of window size is a critical factor that determines the accuracy of the frequency analysis. For example, small windows are unable to faithfully represent slowly varying signal, while large windows limit the temporal resolution of the frequency analysis.
The S transform (sometimes referred to as the Stockwell transform) is another alternative that can be used in frequency analysis of time varying signals. The S transform balances the trade-off between the size of the time window being analyzed and frequency resolution. The S transform is often appropriate for generating a temporally local estimate of the frequency content of a signal. The S transform can be implemented as a continuous transform or as discrete transform. For example, the S transform can be implemented as a discrete time S transform (DTST) that can be computed for a given point in time p and a given frequency f:
Note that p in EQ. 1 refers to a discrete time index in the time series of n, while f is a continuous variable. Accordingly, the analysis is not limited to estimating frequency as only discrete values.
Implementation of time-frequency analysis techniques in wearable devices is challenging, as many microprocessors have neither the clock speed or memory store required to complete a frequency analysis using conventional techniques. In some embodiments, the STFT can be used to limit the amount of memory and computational cycles required to perform a real-time time-frequency analysis in a mobile device with limited computing resources. However, the STFT requires defining a fixed window which can inadequately decompose certain signals. In its original form the S transform is computationally challenging, but modifications can be made to make the S transform more suitable for embedded platforms. For example, as described below in connection with
In some embodiments of the disclosed subject matter, the S transform can be implemented such that the worst-case computational complexity of the is O(MN) where N is the window length (in discrete samples) and M is the desired frequency samples. However, due to number of zero-valued taps in the truncated windowing function (i.e., taps that can be omitted because they would contribute nothing to the final value), real-world performance can be expected to markedly exceed a technique that is O(MN) complex. In some embodiments, a filter bank which can be tuned to a specific application (e.g., ECG processing) can be used to implement a computationally efficient S transform.
In some embodiments, processor 312 can be any suitable hardware processor or combination of processors, such as a central processing unit (CPU), a graphics processing unit (GPU), a microcontroller (MCU), a field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), etc. In some embodiments, communications system(s) 318 can include any suitable hardware, firmware, and/or software for communicating information to computing device 202, over communication link 204, over any other suitable communication link or combination of communication links, and/or over any suitable communication network or combination of networks. For example, communications system(s) 318 can include one or more transceivers, one or more communication chips and/or chip sets, etc. In a more particular example, communications system(s) 318 can include hardware, firmware and/or software that can be used to communicate data over a coaxial cable, a fiber optic cable, an Ethernet connection, a USB connection, to establish a Wi-Fi connection, a Bluetooth connection, a cellular connection, etc.
In some embodiments, memory 320 can include any suitable storage device or devices that can be used to store instructions, values, etc., that can be used, for example, by processor 312 to receive signals via analog sensors 314 and/or digital sensors 316, to perform an S transform based on signals received via analog sensors 314 and/or digital sensors 316, to store S transform data in memory 320, and/or transmit S transform data to computing device 202 via communications system(s) 318, etc. Memory 312 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, memory 310 can include RAM, ROM, EEPROM, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, etc. In some embodiments, memory 320 can have encoded thereon a program for controlling operation of processor 312 to perform an S transform based on physiological and/or environmental signals. In some such embodiments, processor 312 can execute at least a portion of the program to execute at least a portion of processes 800, 900, and/or 1000 as described below in connection with
In some embodiments, display 324 of remote monitor 102 can be any suitable device for outputting information, such as a liquid crystal display, a segmented liquid crystal display, a light-emitting diode (LED) display (e.g., an organic LED/OLED display) a speaker, etc. Note that, although not shown in
In some embodiments, computing device 202 can include a processor 302, a display 304, one or more inputs 306, one or more communication system(s) 308, and/or memory 310. In some embodiments, processor 302 can be any suitable hardware processor or combination of processors, such as a CPU, a GPU, MCU, FPGA, ASIC, etc. In some embodiments, display 304 can include any suitable display devices, such as a computer monitor, a touchscreen, a television, etc. In some embodiments, inputs 306 can include any suitable input devices and/or sensors that can be used to receive user input, such as a keyboard, a mouse, a touchscreen, a microphone, etc.
In some embodiments, communications system(s) 308 can include any suitable hardware, firmware, and/or software for communicating with remote monitor 102, for communicating information over communication link 204, and/or for communicating over any other suitable communication links and/or communication networks. For example, communications system(s) 308 can include one or more transceivers, one or more communication chips and/or chip sets, etc. In a more particular example, communications systems 308 can include hardware, firmware and/or software that can be used to establish a coaxial connection, a fiber optic connection, an Ethernet connection, a USB connection, a Wi-Fi connection, a Bluetooth connection, a cellular connection, etc.
In some embodiments, memory 310 can include any suitable storage device or devices that can be used to store instructions, values, etc., that can be used, for example, by processor 302 to present content using display 304, to communicate with one or remote monitors (e.g., remote monitor 102). Memory 310 can include any suitable volatile memory, non-volatile memory, storage, or any suitable combination thereof. For example, memory 310 can include RAM, ROM, EEPROM, one or more flash drives, one or more hard disks, one or more solid state drives, one or more optical drives, etc. In some embodiments, memory 310 can have encoded thereon a computer program for controlling operation of processor 302. In some such embodiments, processor 302 can execute at least a portion of the computer program to receive signals, S transform data, and/or analysis based on S transform data from remote monitor 102, to present information based on the signals, S transform data, and/or analysis based on S transform data, etc. In some embodiments, processor 302 can execute one or more portions of processes 800, 900, and/or 1000 described below in connection with
Although not shown, in some embodiments, communication link 204 can include multiple communication links that form a portion of any suitable communication network or combination of communication networks. For example, communication link 204 can be a combination of one or more links in a Wi-Fi network (which can include one or more wireless routers, one or more switches, etc.), a peer-to-peer network (e.g., a Bluetooth network), a cellular network (e.g., a 3G network, a 4G network, etc., complying with any suitable standard, such as CDMA, GSM, LTE, LTE Advanced, WiMAX, etc.), a wired network, etc.
In this form, w[p−n, f) can represent a windowing function applied to the data during the computation of the S transform. Note that as used herein, f is generally a value in hertz, but this is merely an example and any unit of periodicity can be used. Note that the windowing function is frequency dependent such that, in the case of low frequency components (e.g., frequency components that vary more slowly in time) the DTST has lower time domain resolution and higher frequency resolution. Whereas, in the case of high frequency content the DTST has higher time domain resolution and lower frequency resolution. This can be observed in the analyses of an example synthetic signal shown in
While
As described above, the Fast DST requires both the Fourier transform and inverse Fourier Transform of the signal. In some embodiments, the mechanisms described herein can perform an S transform entirely in the time domain by taking advantage of the convolution theorem, the entire computation can occur in the time domain. In order to ensure that the system is causal, incoming data can be delayed to shift the computation. For example, rather than performing an S transform for a most recently received sample, the S transform can be performed on a sample p received n samples before the most recent sample, and the n samples received before and after sample p can be used in the S transform. Additionally, in some embodiments, the windowing function (e.g., the Gaussian shown in EQ. (3)) can be pre-computed for a given set of frequencies. Further reductions in computational resources used to perform the S transform can be realized, in some embodiments, by truncating the windowing function from the function in EQ. (3) having infinite support, without significantly impacting the computation. In some embodiments, the truncated windowing function and the Fourier kernel values (i.e., e−j2πfn) can be pre-multiplied and stored as complex coefficients. Note that, because the complex windowing function is symmetric, in some embodiments, these complex coefficients can be stored using only ½ of the taps that would otherwise be used if all of the coefficients were calculated. For example, the coefficients for each positive value of n can be calculated by multiplication of the windowing function and the Fourier kernel and stored (e.g., using a register), and that coefficient can be used during calculation of the S transform for both sides of the windowing function (i.e., once for the +n side, and once for the −n side).
that has been pre-computed and stored based on EQ. (2) and (3). For example, coefficient
can be calculated by multiplying the windowing function for sample p+n at the center frequency f0 of the frequency band
and the corresponding Fourier kernel (i.e., e−j2πf
that is based on the windowing function for sample p+(n−1) at frequency f0. This can be repeated for each frequency band from p+n to p−n, including for sample p (for which the complex coefficient is
The output y[p]f
Additionally, as described above in connection with
is the complex conjugate of
Accordingly, as described above in connection with
An example system was implemented for use with ECG detection, with window functions calculated for 10 Hz to 25 Hz in steps of 1 Hz using Matlab 2016a. Note that this is merely an example, and the distance between frequency bands can be adjusted based on the application and frequency range. As described above, in order to reduce the number of filter coefficients, the filter taps were truncated to preserve 97% of the area under the Gaussian. In order to map the techniques described herein onto a microcontroller, the filter coefficients were transformed into fixed point values and stored as a 16-bit constant array. A simulated ECG signal was sampled (e.g., at 360 Hz), and an S-transform was performed for each sample (with a delay of about 100 samples to insure that an adequate amount of the signal was being analyzed). The output of the S transform was used to calculate Shannon energy of each sample from 10 Hz to 25 Hz, and the Shannon energy of each sample was used to detect QRS complexes in the ECG signal, based on techniques described in L. Smital et al., “Towards Real-Time QRS Feature Extraction for Wearable Monitors,” 2016 IEEE EMBC, which is hereby incorporated by reference herein in its entirety). The techniques were implemented in C and loaded onto custom wearable devices containing an MSP430 F5528 using IAR Embedded Workbench, and an ECG simulator was attached to a 12-bit analog-to-digital converter (ADC) coupled to the microprocessor.
As shown in
Alternatively, for example as described below in connection with
In some embodiments, special purpose processor 702 can receive the signal from one or more analog to digital converts (ADC) 708 sampling a signal at a particular sample rate. For example, ADC 708 can sample a signal from ECG leads 104 at a sample rate suitable to capture information in the signal at a resolution that facilitates time frequency analysis of the signal. In a more particular example, ADC 708 can sample the signal from ECG leads 104 at a rate between 250 and 500 hertz (Hz). In another more particular example, ADC 708 can sample the signal from ECG leads 104 at 360 hertz, 400 Hz, etc.
In some embodiments, signal processing components 706 can provide the signal and/or the results of one or more analyses to storage 710 (e.g., non-volatile memory 616, memory 320, etc.). Additionally or alternatively, in some embodiments, signal processing components 706 can provide the signal, the results of one or more analyses to an output 712, and/or information indicative of the signal and/or results of one or more analyses. For example, output 712 can be a communication system (e.g., communication system 318) to transfer the information to another device (e.g., via a Bluetooth or other wireless connection, via a wired connection, etc.). As another example, output 712 can be a user interface (e.g., a display or other visual interface such as an indicator LED, an audio interface such as a speaker, a haptic interface, etc.), that can present information related to the signal (e.g., current pulse rate, a running average pulse rate over a predetermined period of time, etc.) and/or analysis (e.g., a detection of arrhythmia, etc.).
Note that using a special purpose processor to implement subject matter described herein can reduce the amount of power used to perform an analysis, potential extending the amount of data that can be collected and/or analyzed, facilitating complex processing of the data using relatively little power (e.g., compared to a general purpose processor performing the same operations). However, implementing subject matter described herein can limit the flexibility of the device in which it is implemented, for example, because the filter bank is generally configured to operate best at a particular sampling frequency (e.g., 360 Hz, 400 Hz, etc.). This can make it more difficult to adjust analysis performed by the device in real time (e.g., it may require reprogramming the processor, which is generally more difficult than updating or changing software).
At 804, process 800 can compute, for each frequency band fi, 2n+1 window function values to use to determine the S transform for that frequency band. Process 800 can use any suitable technique or combination of techniques to compute the 2n+1 window function values, such as based on EQ. (3) described above in connection with
At 806, process 800 can compute, for each frequency band fi, 2n+1 phase factor values to use to determine the S transform for that frequency band. Process 800 can use any suitable technique or combination of techniques to compute the 2n+1 phase factor values, such as based on EQ. (2) described above in connection with
At 808, process 800 can compute, for each frequency band fi, 2n+1 complex coefficient values to apply to samples from a signal to determine the S transform for that frequency band by multiplying the corresponding window function and phase factor. Alternatively, in some embodiments, process 800 can compute n complex coefficient values, as the complex coefficients may be symmetric around sample p, as described above in connection with
At 810, process 800 can store the compute complex coefficients for use as coefficients in a filter bank implementing the S transform for the selected frequency range. In some embodiments, the coefficients can be stored as fixed point values and stored as a 16-bit constant array for use by a processor being used to implement the filter bank. For example, the coefficients can be used when programming an FPGA to implement a filter bank to execute the S transform in logic blocks, when designing an ASIC to implement a filter bank to execute the S transform in hardware, when programming a general purpose processor to implement a filter bank to execute the S transform in software, etc.
At 904, process 900 can convert the sample p into an S transform representation of the frequency components of the sample p using n samples received before and after sample p as inputs to taps of the filter bank. For example, as described above, the S transform analysis for sample p can be performed upon receiving sample p+n at the filter bank.
At 906, process 900 can output the S transform representation as a vector of values with each value representing the contribution of a particular frequency band fi to the value of sample p. For example, as described above in connection with
At 908, process 900 can process and/or store the S transform representation output at 906. For example, process 900 can associate the S transform representation with sample p in memory (e.g., using an index number of sample p). As another example, process 900 can use the S transform representation in a further analysis using a physiological monitoring criteria. In a more particular example, as described below in connection with
At 1004, process 1000 can sample the ECG signal at a predetermined sampling frequency to create a digital signal at the sampling frequency. In some embodiments, process 1000 can use any suitable technique or combination of techniques to sample the ECG signal. For example, in some embodiments, process 1000 can sample the ECG signal using an ADC operating at the sampling frequency. As another example, process 1000 can sample the ECG signal using multiple ADCs operating at the sampling frequency that each receive a signal from a particular frequency band (e.g., frequency band fi). In some embodiments, the ECG signal can be sampled at any suitable frequency, such as a rate between 250 and 500 Hz. In a more particular example, the ECG signal can be sampled at 360 hertz, 400 Hz, etc.
At 1006, process 1000 can provide a sample p to a filter bank configured to perform an S transform of the sample. In some embodiments, process 1000 can provide sample p to the filter bank from an ADC, and the filter bank can act as a bank of band pass filter to subdivide the signal into frequency components.
At 1008, process 1000 can convert the sample p to an S transform representation of the frequency components of the sample p using the filter bank. In some embodiments, process 1000 can use any suitable number of additional samples received before and after sample p when finding the S transform of sample p. For example, as described above in connection with
At 1010, process 1000 can output the S transform representation as a vector of values with each value representing the contribution of a particular frequency band fi to the value of sample p. For example, as described above in connection with
At 1012, process 1000 can include calculating the Shannon energy of the ECG signal at sample p using any suitable technique or combination of techniques. For example, techniques described in L. Smital et al., “Towards Real-Time QRS Feature Extraction for Wearable Monitors,” 2016 IEEE EMBC can be used to calculate the Shannon energy from the S transform. As another example, techniques described in Z. Zidelmel et al., “QRS detection using S-Transform and Shannon Energy,” Computer methods and programs in biomedicine, vol. 116, pp. 1-9, 2014, which is hereby incorporated by reference herein in its entirety can be used to calculate the Shannon energy from the S transform.
At 1014, process 1000 can detect QRS complexes in the ECG signal based on the Shannon energy at each sample using any suitable technique or combination of techniques. For example, techniques described in L. Smital et al., “Towards Real-Time QRS Feature Extraction for Wearable Monitors,” can be used to detect QRS complexes in the ECG signal based on the Shannon energy for each sample. As another example, techniques described in Z. Zidelmel et al., “QRS detection using S-Transform and Shannon Energy,” Computer methods and programs in biomedicine, vol. 116, pp. 1-9, 2014, which is hereby incorporated by reference herein in its entirety can be used to calculate the Shannon energy from the S transform.
In some embodiments, process 1000 can return to 1002 to continue to receive ECG signals while detecting QRS complexes in the ECG signal based on the Shannon energy of each sample. Note that, because n samples after the sample p being evaluated are used to determine the S transform, the detection of each QRS complex is delayed by at least n/sampling rate seconds. For example, if n is 100 (meaning that information from 201 samples, including sample p, are used when calculating the S transform of sample p) and the sampling rate is 400 Hz, then the S transform cannot be calculated before 100 samples are received after sample p, which corresponds to at least about 0.25 seconds.
At 1016, process 1000 can generate and/or output a report based on the detected QRS complexes. For example, in some embodiments, process 1000 can determine and/or output a pulse rate based on the detected QRS complexes. As another example, process 1000 can detect and/or alert a user to one or more arrhythmia events based on the QRS complexes, etc.
The filter bank used to implement the system that generated the S transforms of
The results shown in
Power measurements taken from the device showed a 1.8 milliamp (mA) or 2.0 mA current draw for a sampling rate of 360 Hz and 400 Hz, respectively. The baseline performance of the device without QRS detection was 1.0 mA. Although this is roughly a doubling of the current draw, it is still sufficiently efficient to capture and analyze data for several days. Device performance can be further tuned by varying truncation of the windowing function and adjustment of the number of frequency bands being analyzed. Additionally, implementation using a special purpose processor (e.g., an FPGA or ASIC) can further reduce power consumption by reducing excess computational resources.
In some embodiments, efficiently implementing an S transform in hardware using the mechanisms described herein can facilitate many real-time applications, which may or may not be implemented in a remote monitor (i.e., more efficiently performing an S transform can be useful in applications without the power and size constraints imposed by a remote monitor form factor). For example, an S transform can be used in the analysis of magnetoencephalography data, which includes distinct temporal correlations in the brain that are not detectable using conventional. As another example, an S transform can be used for analysis of electroencephalogram (EEG) data of the brain, such as to analyze neural activity generally, for seizure detection, etc. Note that the range of frequencies, number of frequency bands, and resolution of frequency bands is generally application specific, and can be based on the expected components of the signal (e.g., based on the physics and/or physiology of how the signal is generated) and/or can be empirically determined.
In some embodiments, any suitable computer readable media can be used for storing instructions for performing the functions and/or processes described herein. For example, in some embodiments, computer readable media can be transitory or non-transitory. For example, non-transitory computer readable media can include media such as magnetic media (such as hard disks, floppy disks, etc.), optical media (such as compact discs, digital video discs, Blu-ray discs, etc.), semiconductor media (such as RAM, Flash memory, electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.), any suitable media that is not fleeting or devoid of any semblance of permanence during transmission, and/or any suitable tangible media. As another example, transitory computer readable media can include signals on networks, in wires, conductors, optical fibers, circuits, any other suitable media that is fleeting and devoid of any semblance of permanence during transmission, and/or any suitable intangible media.
It should be noted that, as used herein, the term mechanism can encompass hardware, software, firmware, or any suitable combination thereof.
It should be understood that the above described steps of the process of
Although the invention has been described and illustrated in the foregoing illustrative embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the invention can be made without departing from the spirit and scope of the invention, which is limited only by the claims that follow. Features of the disclosed embodiments can be combined and rearranged in various ways.
This application is based on, claims the benefit of, and claims priority to U.S. Provisional Application No. 62/531,084, filed Jul. 11, 2017, which is hereby incorporated herein by reference in its entirety for all purposes.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2018/041702 | 7/11/2018 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62531084 | Jul 2017 | US |