Abstract:
Techniques for motion artifact (MA) reduction in impedance plethysmography (IP) and other physiological signals are provided. The techniques limit the amplitude of MA filtered signals by imposing an “ε-tube.” The techniques may include the introduction of a regularization term to ensure that the pattern of a filtered signal is similar to the pattern of the primary component of the original, unfiltered signal by maximizing the regularity of the filtered signal. The techniques may be integrated into a portable monitoring device, such as an armband, to remove MA from various diagnostic signals and to extract primary signal components for producing enhanced device performance.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
       [0001]    This application claims the priority benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 62/142,593, filed Apr. 3, 2015, the disclosure of which is incorporated herein by reference in its entirety. 
     
    
     STATEMENT OF GOVERNMENTAL INTEREST 
       [0002]    This invention was made with government support under a Phase I STTR (W81XWH-08-C-0115) and a Phase II STTR (W81XWH-09-C-0117), awarded by the U.S. Army. The Government has certain rights in the invention. 
     
    
     FIELD OF INVENTION 
       [0003]    The present disclosure generally relates to systems, methods, apparatus, and non-transitory media for filtering signals and, more particularly, to filtering signals by removing blunt noise that is mixed with the signals. 
       BACKGROUND 
       [0004]    For patients suffering from a variety of injuries or disease states such as venous thrombosis, burns, trauma, various types of heart conditions, sepsis, various types of encephalopathy, dehydration, renal failure, dialysis, hypertension, neuromuscular diseases, low-back pain, motor control disorders, etc., signals generated via relevant medical diagnostic equipment may provide valuable insight for medical professionals. 
         [0005]    However, in many medical diagnostic examinations, a diagnostic signal generated by the relevant diagnostic equipment may include noise and/or artifacts. Noise and/or artifacts may be introduced into the diagnostic signal due to a presence of one or more extraneous factors that may influence the diagnostic signal while the test is being performed, such as the patient&#39;s movement during the test, electrical noise, etc. In some cases, the amplitude of the noise may be larger than the amplitude of the diagnostic signal, and the frequency components of the noise may largely overlap with those of the diagnostic signal. As a result, conventional filtering methods may attenuate or distort the diagnostic signal, or fail to model the noise adequately and effectively. In addition, conventional attempts to remove artifacts from diagnostic signals using multi-channel recordings of the diagnostic signal, such as independent component analysis (ICA), may add unwanted complexity, size, and cost to the diagnostic equipment. 
         [0006]    As a result, performing signal filtering with portable diagnostic equipment to remove artifacts while recovering the signal of interest presents several challenges. 
       SUMMARY 
       [0007]    The present application describes techniques to adaptively filter signals having mixed blunt noise, which may be characterized as noise having relatively high amplitudes and low frequencies having a frequency spectrum that overlaps with that of the signal of interest. Filtering may be accomplished implementing an Epsilon-tube (ε-tube) filter. 
         [0008]    The adaptive filter may function to filter signals within a series of successively received sliding-time windows such that signals may be sampled and filtered in real-time or near real-time. The signal may be received in accordance with any suitable type of diagnostic, preventative, or other test. For example, the signals may be received in accordance with testing utilizing electrocardiogram, impedance cardiographs, impedance-based blood volume waveforms, arterial blood pressure waveform, venous blood pressure waveforms, intracranial pressure waveforms, photoplethysmography waveforms, end-tidal carbon dioxide waveforms, light absorption spectral signals, Doppler signals, piezoelectric signals, etc. 
         [0009]    Accordingly, the signal may include one or more primary signal components having relatively constant amplitudes (e.g., less than a 10% change) over short periods of time, such as the time period corresponding to one or more sliding time windows, for example, which is further discussed below. The signal amplitudes may vary slowly over time, but may remain relatively constant within a single sliding time window (e.g., a window of 5 seconds, 10 seconds, etc.). Embodiments include filtering the signal by adapting one or more filter coefficients over time to account for changes in the structure of the signal and/or the introduction of blunt noise that may contaminate the signal at some periods of time (e.g., when a patient is moving) but not others (e.g., when a patient is still). 
         [0010]    Within each of the sliding-time windows, the blunt noise may be estimated using a plurality of movement signals, which may be received from one or more respective accelerometer and/or gyroscope sensors, for example. The signal may be sampled within each of the plurality of successive sliding time windows together with the plurality of movement signals. Upon calculation and application of a set of filter coefficients, the plurality of movement signals may be utilized such that a blunt noise model estimation of the blunt noise is subtracted from the signal to retain the primary component of the signal. The process of calculating sets of filter coefficients may be repeated over several successive sliding time windows, thereby facilitating real-time (or near real-time, with some slight processing delay) signal filtering with a portable device. 
         [0011]    To prevent the calculated set of filter coefficients from filtering out the primary component of the signal (e.g., a respiratory component of an impedance plethysmography signal) separate conditions may be implemented that guide the calculation of the sets of filter coefficients for each of the plurality of successive sliding time windows. 
         [0012]    First, the filtered signal amplitude within a sliding time window may be limited or “clamped” between a threshold value that is based upon the amplitude of the primary signal component. In some embodiments, this threshold value, or margin, may be the same value as the primary component signal amplitude, forming a “tube,” or more specifically an “Epsilon tube,” around the primary component of the signal. In other embodiments, the threshold value may deviate from the primary component signal amplitude. 
         [0013]    Furthermore, embodiments include one or more processors adapting the threshold value as each of the plurality of successive sliding windows are filtered such that the threshold value is adapted to the signal over time. For example, the threshold value may be adjusted when the threshold value was exceeded by the amplitude of the primary component of the signal within a previously received sliding window compared to the sliding time window in which the signal is being currently processed. 
         [0014]    In an embodiment, one or more processors of the portable device may adjust the threshold value, calculate the set of filter coefficients, calculate the prototype signal, and/or filter the signal when the blunt noise is present in the signal. The presence or absence of blunt noise within the signal may be determined, for example, based upon a power level of one or more of the plurality of movement signals exceeding a respective threshold power level. 
         [0015]    In an embodiment, regardless of when the threshold value is adjusted, the threshold value may be adjusted by one or more processors of the portable device to a new threshold value that is proportional to an amount in which the threshold value was exceeded by the amplitude of the primary component in the previous sliding time window. 
         [0016]    Second, to facilitate the extraction of the primary components of the signal, one or more processors of the portable device may calculate a prototype signal that models dominant frequency components of the signal from one or more sliding time windows that chronologically precede the sliding time window in which the signal is being currently processed. Using an example of an impedance plethysmography signal, the dominant frequency component may correspond to, for example, the respiratory frequency component, which advantageously tends to be fairly periodic. The set of filter coefficients may be calculated to satisfy another condition to minimize the error between frequency components of the filtered signal within the sliding time window being currently processed and the frequency components of the prototype signal. 
         [0017]    In an embodiment, the prototype signal may be calculated by one or more processors of the portable device by calculating a minimized error between frequency components of the filtered signal within a sliding window and the calculated prototype signal based upon a Stockwell transform or other suitable frequency transform algorithm (e.g., a Fourier transform, a short time Fourier transform, a Gabor transform, etc.). Moreover, the prototype signal may be calculated via a piecewise linear approximation of the square of the magnitude of the frequency components of the signal after transformation within one or more of the preceding sliding time windows. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0018]    The Figures described below depict various aspects of the system and methods disclosed herein. It should be understood that each figure depicts an aspect of a particular aspect of the disclosed system and methods, and that each of the Figures is intended to accord with a possible aspect thereof. Further, wherever possible, the following description refers to the reference numerals included in the following Figures, in which features depicted in multiple Figures are designated with consistent reference numerals. 
           [0019]    There are shown in the Figures arrangements which are presently discussed, it being understood, however, that the present embodiments are not limited to the precise arrangements and instrumentalities shown, wherein: 
           [0020]      FIG. 1  illustrates a block diagram of an exemplary system  100  in accordance with an exemplary aspect of the present disclosure; 
           [0021]      FIG. 2  illustrates an example method  200  in accordance with an exemplary aspect of the present disclosure; 
           [0022]      FIG. 3  illustrates a sliding processing window over a signal that has been corrupted by noise and a Stockwell transform (ST) of h(t) inside the processing window in accordance with an exemplary aspect of the present disclosure; 
           [0023]      FIG. 4  illustrates diagnostic signals and movement signals in accordance with an exemplary aspect of the present disclosure; 
           [0024]      FIG. 5  illustrates a plot of the amplitudes of vectors r(t) and S h(t-T-1   0,n  in accordance with an exemplary aspect of the present disclosure; 
           [0025]      FIG. 6  illustrates an example of a sample portion of an IP signal and a corresponding computed tube size in accordance with an exemplary aspect of the present disclosure; 
           [0026]      FIG. 7  shows an exemplary comparison between the adaptive ε-tube filter (A-eTF or A-εTF) method and independent component analysis (ICA) method with respect to the correlation measures for individual maneuvers in accordance with an exemplary aspect of the present disclosure; 
           [0027]      FIG. 8  shows an exemplary comparison between the adaptive ε-tube filter (A-eTF or A-εTF) method, the normalized least mean squares (NLMS) method, and the recursive least squares (RLS) method with respect to the correlation measures for individual maneuvers in accordance with an exemplary aspect of the present disclosure; 
           [0028]      FIG. 9  shows an exemplary comparison between the adaptive ε-tube filter (A-eTF or A-εTF) method and independent component analysis (ICA) method with respect to the mean error performance measures for individual maneuvers in accordance with an exemplary aspect of the present disclosure; and 
           [0029]      FIG. 10  shows an exemplary comparison between the adaptive ε-tube filter (A-eTF or A-εTF) method, the normalized least mean squares (NLMS) method, and the recursive least squares (RLS) method with respect to the mean error performance measures for individual maneuvers in accordance with an exemplary aspect of the present disclosure. 
       
    
    
       [0030]    The Figures depict preferred embodiments for purposes of illustration only. Alternative embodiments of the systems and methods illustrated herein may be employed without departing from the principles of the invention described herein. 
       DETAILED DESCRIPTION 
       [0031]    The present application describes various embodiments in the context of techniques using diagnostic systems to generate, measure, receive, sample, analyze, process, and/or filter one or more diagnostic signals. These diagnostic systems may include those used to non-invasively or invasively monitor one or more biological processes for a patient undergoing a test procedure. For example, diagnostic systems may be used to monitor changes in the volume of blood in the venous system of patients. Such techniques may utilize an impedance plethysmography (IP) system as one example, but may also include any suitable type of diagnostic system such as photoplethysmography, electromyography, ultrasound, etc. 
         [0032]    Furthermore, the embodiments described herein are applicable to any suitable type of system having periodic signals with slowly varying amplitudes that may be prone to noise contamination. In various embodiments, this may include medical or non-medical diagnostic systems. For example, the filtering methods described herein may be applied to medical diagnostic systems configured to generate, measure, receive, sample, analyze, process, and/or filter signals associated with electrocardiograms, impedance cardiography, impedance plethysmography, arterial blood pressure waveforms, venous blood pressure waveforms, intracranial pressure waveforms, photoplethysmography waveforms, end-tidal carbon dioxide waveforms, Doppler signals, piezoelectric signals, etc. 
         [0033]    To provide additional examples, the filtering methods described herein may also be applied to non-medical diagnostic systems configured to generate, measure, receive, sample, analyze, process, and/or filter signals associated with exercise equipment, biometric sensors, fitness trackers, wearable electronic devices, and other physiological and/or behavioral measurement devices. 
       Impedance Plethysmography and Respiratory Rate 
       [0034]    The various embodiments explained herein often refer to impedance plethysmography (IP) signals as illustrative examples, but these embodiments are equally applicable to any suitable type of periodic signals that may be adequately sampled and filtered in accordance with the techniques presented herein, e.g., signals indicating physiological conditions of a person or subject, and/or signals indicating behavioral conditions of the same. A brief explanation of impedance plethysmographs is presented below for clarity. 
         [0035]    Conventionally, impedance plethysmographs may be used to determine changes in blood volume and oxygenation within portions of a patient&#39;s limb, which is particularly useful in diagnosing conditions such as venous thrombosis. Impedance plethysmographs typically function by injecting a high-frequency, low amplitude sinusoidal current into a segment of interest using a pair of skin electrodes, or current electrodes. Another pair of electrodes is also used to measure an imposed voltage difference between the current injection points, which is caused by the passage of electrical current through the patient&#39;s tissue. A diagnostic signal, in this case an IP signal, may then be generated based upon a ratio between the measured voltage and the injected current. Because the electrical conductivity of the tissue is mainly influenced by the volume of blood in that region, variations of the measured voltage (and thus variations in the impedance) cause the IP signal to reflect variations caused by the blood&#39;s electrical conductivity in the segment of interest due to changes in blood volume. 
         [0036]    One of the main sources of blood volume variation and tissue movement, in particular in the chest and abdomen area, is respiration. As a result, the respiratory signal and the respiratory rate may be extracted from an IP signal acquired from the thorax and abdomen area when the subject is motionless. However, a patient&#39;s movement is also a large source of blood volume variation. Moreover, the electrodes and/or the skin can slide over the tissue due to the patient&#39;s movements. As a result, a patient&#39;s movement during an administered IP test may result in drastic variations in the measured IP signal resulting in blunt noise. In such a case, “motion artifacts” may occur having amplitudes larger than the amplitude of the respiratory component of the IP signal and a frequency spectrum that overlaps with the range of normal respiratory rates. As a result, it is desirable to use filtering methods to eliminate the MA&#39;s before the signal is used for monitoring respiration. 
         [0037]      FIG. 1  illustrates a block diagram of an exemplary system  100  in accordance with an exemplary aspect of the present disclosure. System  100  may include a data acquisition system  102 , a diagnostic data acquisition unit  150 , n number of electrodes  152 . 1 - 152 . n , and a modeling data acquisition unit  170 . In an embodiment, system  100  may be implemented as a closed loop system. 
         [0038]    Diagnostic data acquisition unit  150  may be implemented as any suitable type of diagnostic device configured to receive signals via electrodes  152 . 1 - 152 . n . Depending on the particular type of test that is performed, diagnostic data acquisition unit  150  may be implemented as one or more types of diagnostic devices. Diagnostic data acquisition unit  150  may be configured to receive signals via electrodes  152 . 1 - 152 . n , to process these signals, and/or to send the signals received via electrodes  152 . 1 - 152 . n  and/or the processed signals to data acquisition system  102 . 
         [0039]    Electrodes  152 . 1 - 152 . n  may be configured as any suitable type of device to measure, monitor, and/or generate electrical signals based upon their location on a test subject and/or the type of test being performed via diagnostic data acquisition unit  150 . For example, if diagnostic data acquisition unit  150  is implemented as an electrobioimpedance amplifier, then electrodes  152 . 1 - 152 . n  may be configured in accordance with a system that is compatible with such a system. To provide another example, if diagnostic data acquisition unit  150  is used to conduct an IP test, some of electrodes  152 . 1 - 152 . n  may be configured as current injecting electrodes while some of electrodes  152 . 1 - 152 . n  may be configured as voltage monitoring electrodes. Thus, electrodes  152 . 1 - 152 . n  may provide diagnostic data acquisition unit  150  with the appropriate signals to generate one or more IP signals and/or to send the IP signals to data acquisition system  102 . 
         [0040]    Electrodes  152 . 1 - 152 . n  may be placed in any suitable location to provide signals in accordance with the type of application and/or the test being conducted. For example, if an electrocardiography (ECG) measurement is performed, one or more of electrodes  152 . 1 - 152 . n  may be placed on a suitable portion of a patient&#39;s chest. To provide another example, if an IP test is performed, one or more of electrodes  152 . 1 - 152 . n  may be placed on a suitable portion of the patient commensurate with an IP test, such as between the patient&#39;s third and tenth ribs, a traditional trans-thoracic electrode placement, etc. 
         [0041]    Modeling data acquisition unit  170  may be configured to measure, generate, receive, and/or monitor one or more data signals associated with the source of noise introduced into the diagnostic signal measured by diagnostic data acquisition unit  150 . In some specific examples, that diagnostic signal contains physiological data and/or behavioral data on a patient or other subject. Modeling data acquisition unit  170  may be implemented as any number and/or type of sensors based upon the source of the noise introduced into the diagnostic signal that is to be modeled. 
         [0042]    In an embodiment, the noise may include, for example, blunt noise. In embodiments in which the blunt noise takes the form of MAs, modeling data acquisition unit  170  may be implemented as one or more sensors configured to monitor the patient&#39;s movement. Some examples of these types of sensors may include accelerometers, gyroscopes, pressure sensors, piezoelectric sensors, etc. To provide an illustrative example, modeling data acquisition unit  170  may be implemented as a three-axis accelerometer configured to measure acceleration in the x, y, and z-axes. Modeling data acquisition unit  170  may be worn by and/or attached to a patient such that these accelerometer signals represent one or more movement signals indicative of the patient&#39;s movement in each of the x, y, and z-axes. Modeling data acquisition unit  170  may be configured to transmit the acceleration signals and/or one or more movement signals to data acquisition system  102 . 
         [0043]    Data acquisition system  102  may include a central processing unit (CPU)  104 , a graphics processing unit (GPU)  106 , a display  108 , a communication unit  110 , a user interface  112 , and a memory  114 . In various embodiments, data acquisition system  102  may be implemented as any suitable computing device, which may include a portable or stationary computing device such as a smartphone, a mobile device, a tablet computer, a laptop computer, a dedicated diagnostic system, a personal computer, a wearable computing device, etc. 
         [0044]    In some embodiments, data acquisition system  102  may be implemented as a single device, for example, as shown in  FIG. 1 . Such implementations may be particularly useful when a portable and/or mobile device is desirable. In other embodiments, data acquisition system  102  may be implemented as a device that may perform functions of two or more devices, such as a device that may perform functions of one or more of data acquisition system  102 , diagnostic data acquisition unit  150 , and/or modeling data acquisition unit  170 , for example. Such implementations may be particularly useful when it is desirable to modify an existing off-the-shelf system to perform the embodiments as described herein, for example, by performing a software and/or firmware upgrade, by adding specialized hardware cards or modules, etc. 
         [0045]    Display  108  may be implemented as any suitable type of display and may facilitate user interaction in conjunction with user interface  112 , such as a mobile device display, a smartphone display, a capacitive touch screen display, a resistive touch screen display, etc. In various aspects, display  108  may be configured to work in conjunction with CPU  104  and/or GPU  106  to display one or more diagnostic signals received and processed by communication unit  110  and/or filtered by CPU  104  executing instructions in one or more modules stored in memory  114 . 
         [0046]    Communication unit  110  may be configured to process, send signals to, and/or receive signals from diagnostic data acquisition unit  150  and/or modeling data acquisition unit  170 . Communication unit  110  may be configured to communicate with diagnostic data acquisition unit  150  and/or modeling data acquisition unit  170  in accordance with any suitable type and/or number of wired and/or wireless communication protocols. 
         [0047]    User interface  112  may be configured to receive user-input and to facilitate user interaction with data acquisition system  102 . For example, user-interface  112  may be implemented as a “soft” keyboard that is displayed on display  108 , an external hardware keyboard communicating via a wired or a wireless connection (e.g., a Bluetooth keyboard), an external mouse, or any other suitable user-input device. 
         [0048]    User-interface  112  may include a microphone configured to receive user input in the form of voice input, such as voice commands, for example. In some aspects, voice commands received via user interface  112  may be converted to text, for example, via CPU  104 . In this way, user interface device  112  may allow a user to enter text in lieu of typing. User interface  112  may facilitate a user adjusting, modifying, changing, etc., one or more options or settings of data acquisition system  102  depending on a particular implementation. For example, a user may utilize user interface  112  to change display settings, to change one or more design parameters used in the signal filtering process as further discussed below, etc. 
         [0049]    CPU  104  and/or GPU  106  may be configured to communicate with memory  114  to store to and read data from memory  114 . In accordance with various embodiments, memory  114  may be a computer-readable non-transitory storage device that may be implemented as any suitable combination of volatile (e.g., a random access memory (RAM), and/or non-volatile memory (e.g., battery-backed RAM, FLASH, etc.). Memory  114  may be configured to store instructions executable on CPU  104  and/or GPU  106 . These instructions may include machine-readable instructions that, when executed by CPU  104  and/or GPU  106 , cause CPU  104  and/or GPU  106  to perform various acts. 
         [0050]    Data acquisition module  115 , filter coefficient calculation module  117 , regularization module  119 , and filtering module  121  are portions of memory  114  configured to store instructions executable by CPU  104  and/or GPU  106 . In accordance with various embodiments, any of data acquisition module  115 , filter coefficient calculation module  117 , regularization module  119 , and/or filtering module  121  may operate as a separately executable software application, a plugin that extends the functionality of another software application such as a web browser, an application programming interface (API) invokable by a software application, etc. The instructions included within any of any of data acquisition module  115 , filter coefficient calculation module  117 , regularization module  119 , and/or filtering module  121  may be compiled and executable on CPU  104  and/or GPU  106  directly, or not compiled and interpreted by the CPU  104  and/or GPU  106  on a runtime basis. 
         [0051]    Data acquisition module  115  may include instructions that, when executed by CPU  104  and/or GPU  106 , causes CPU  104  and/or GPU  106  to receive, sample, store, and/or process data received from diagnostic data acquisition unit  150  and/or modeling data acquisition unit  170  via communication unit  110 . In various embodiments, this data may include, for example, sampled data representative of signals received from diagnostic data acquisition unit  150  over one or more sliding time windows, data representative of signals received from modeling data acquisition unit  170  over one or more sliding time windows, etc. 
         [0052]    Filter coefficient calculation module  117  may include instructions that, when executed by CPU  104  and/or GPU  106 , causes CPU  104  and/or GPU  106  to retrieve data stored by data acquisition module  115  and to utilize this data to calculate a set of filter coefficients with respect to one or more sliding time windows, which may be successively received via communication unit  110 , for example, via diagnostic data acquisition unit  150  and/or modeling data acquisition unit  170 . 
         [0053]    In various embodiments, filter coefficient calculation module  117  may include instructions to facilitate the modeling of blunt noise using the sampled data measured by modeling data acquisition unit  170 , which may be indicative of the source of the blunt noise. In embodiments in which the blunt noise is caused by a patient&#39;s movement, modeling module  117  may include instructions to construct models using one or more movement signals, which may include one or more accelerometer signal values. The techniques represented by the instructions to construct models are further discussed in detail below. 
         [0054]    As will be discussed in further detail, filter coefficient calculation module  117  may include instructions to facilitate the calculation of a set of filter coefficients using an optimized objective function and/or the satisfaction of one or more constraints such that any suitable number of conditions are satisfied. One such condition may be satisfied when the diagnostic signal amplitude within a sliding time window is limited by a threshold value. 
         [0055]    That is, the filtered signal amplitude within a sliding time window may be limited, or “clamped” between a threshold value that is based upon the primary signal component amplitude within the same sliding time window. In some embodiments, this threshold value, or margin, may be the same value as the primary component signal amplitude, forming a “tube,” or more specifically “ε-tube,” around the signal. In other embodiments, the threshold value may deviate from the primary component signal amplitude. 
         [0056]    To filter a signal contaminated with blunt noise, the original contaminated signal may be filtered according to one or more sets of filter coefficients such that the blunt noise model is subtracted from the original signal to produce a filtered signal. Thus, to avoid distortion of the filtered signal, an ε-tube value or other suitable threshold value may be used to constrain the calculated filter coefficients to those solutions that provide filtered signal amplitudes having amplitudes less than the amplitude of the primary component of the original contaminated signal for a respective sliding time window in which a sampled signal is being processed. In this way, filter coefficient calculation module  117  includes instructions to facilitate the calculation of sets of filter coefficient solutions by CPU  104  and/or GPU  106  that produce filtered signals having amplitudes that are “clamped” by the ε-tube or other threshold value. Because several sets of filter coefficients may satisfy this constraint, additional calculations, which are further discussed below, may be used to find the filter coefficient solution. 
         [0057]    Furthermore, embodiments include filter coefficient calculation module  117  facilitating CPU  104  and/or GPU  106  adapting or adjusting ε-tube or other threshold value as each of the plurality of successive sliding windows are filtered such that the ε-tube or other threshold value is adapted to the signal as the signal is sampled over several sliding time windows. For example, the threshold value may be adjusted when the threshold value was exceeded by the amplitude of the filtered signal. 
         [0058]    In an embodiment, filter coefficient calculation module  117  may facilitate CPU  104  and/or GPU  106  adjusting the ε-tube or other threshold value and/or calculating the set of filter coefficients when the blunt noise is present in the signal. The presence or absence of blunt noise within the signal may be determined, for example, based upon a power level of one or more of the plurality of movement signals exceeding a respective threshold power level, which may be determined, for example, via instructions stored in data acquisition module  115  being executed by CPU  104  and/or GPU  106 . 
         [0059]    In an embodiment, regardless of when the ε-tube or other threshold value is adjusted, the ε-tube or other threshold value may be adjusted by CPU  104  and/or GPU  106  to a new threshold value that is proportional to an amount in which the ε-tube or other threshold value was exceeded by the amplitude of the primary signal component in a sliding time window that chronologically preceded the sliding time window in which a sampled signal is being currently processed. 
         [0060]    Regularization module  119  may include instructions that, when executed by CPU  104  and/or GPU  106 , causes CPU  104  and/or GPU  106  to select a set of filter coefficients that satisfy the ε-tube constraint as well as one or more additional conditions. For example, CPU  104  and/or GPU  106  may select a set of filter coefficients that satisfy the ε-tube constraint and minimize an objective function. 
         [0061]    Further continuing this example, to minimize the objective function, the instructions stored in regularization module  119  may facilitate CPU  104  and/or GPU  106  calculating a prototype signal that models dominant frequency components of the signal from a second sliding time window that chronologically precedes the first sliding time window. The prototype signal may be calculated, for example, via a piecewise linear approximation of the square of the magnitude of the frequency components of the signal within the second sliding time window. 
         [0062]    In an embodiment, instructions stored in regularization module  119  may facilitate CPU  104  and/or GPU  106  to select a set of filter coefficients that minimize the error between frequency components of the filtered signal within the sliding time window and the frequency components of the calculated prototype signal. The prototype may be calculated, for example, through the use of a Stockwell transform or any suitable type of frequency transform algorithm (e.g., a Fourier transform, a short time Fourier transform, a Gabor transform, etc.), to calculate the relevant frequency components. 
         [0063]    In an embodiment, regularization module  119  may facilitate CPU  104  and/or GPU  106  to calculate the prototype signal when the blunt noise is not present in the signal. Again, the presence or absence of blunt noise within the signal may be determined, for example, based upon a power level of one or more of the plurality of movement signals exceeding a respective threshold power level. 
         [0064]    Filtering module  121  may include instructions that, when executed by CPU  104  and/or GPU  106 , causes CPU  104  and/or GPU  106  to store and/or process data used in conjunction with the overall filtering process implemented by data acquisition system  102  in accordance with the embodiments as described herein. For example, filtering module  121  may store, as part of its instructions, data such as defined filter design variables, sliding time window scales, processing windows and/or sliding time windows, design constraints, one or more filter parameters, user selections, filter coefficients, ε-tube values, threshold values, and/or predetermined constants used by data acquisition system  102  to filter diagnostic signals. 
         [0065]    To provide another example, filtering module  121  may include instructions that, when executed by CPU  104  and/or GPU  106 , causes CPU  104  and/or GPU  106  to apply the filter coefficient solutions to the diagnostic signals to facilitate real-time (or near real-time due to slight processing delays) diagnostic signal filtering. 
         [0066]    In various embodiments, one or more of data acquisition module  115 , filter coefficient calculation module  117 , regularization module  119 , and/or filtering module  121  may include instructions that cause CPU  104  and/or GPU  106  to work in conjunction with user interface  112 , for example, to receive data used in conjunction with the overall filtering process. In this way, a user may originally program the instructions stored in one or more of data acquisition module  115 , filter coefficient calculation module  117 , regularization module  119 , and/or filtering module  121 , for example, and later overwrite these instructions to update the data. 
         [0067]    In other embodiments, one or more of data acquisition module  115 , filter coefficient calculation module  117 , regularization module  119 , and/or filtering module  121  may include instructions that cause CPU  104  and/or GPU  106  to work in conjunction with communication unit  110 , for example, to set one or more data values used in the filtering process, such as the £ value, one or more threshold values, and/or prototype signal, based upon characteristics of the measured signal such as signal amplitude, frequency components, etc. 
         [0068]    In an embodiment, filtering module  121  may facilitate CPU  104  and/or GPU  106  filtering the signal only when the blunt noise is present in the signal. Again, the presence or absence of blunt noise within the signal may be determined, for example, based upon a power level of one or more of the plurality of movement signals exceeding a respective threshold power level. 
         [0069]    In various embodiments, the filtered signals received from the patient may assist a physician or other medical personnel in diagnosing and/or treating one or more patient conditions. In accordance with such embodiments, treatments may be administered in any suitable manner. For example, a physician may manually administer and/or treat a patient using the filtered signal information. To provide another example, one or more diagnostic and/or therapeutic devices may be configured to administer treatments to a patient based upon the filtered signal information in accordance with a default and/or preconfigured treatment process, which may include automatic treatments not requiring human intervention. Devices configured to perform treatment processes based upon the filtered signal information are not shown in  FIG. 1  for purposes of brevity. However, embodiments may include, for example, one or more treatment administration apparatuses having a respective treatment control device configured to, upon receiving data indicating a sufficient condition of the patient based upon the filtered signal information, instruct the therapeutic delivery vehicle to administer a therapeutic treatment to the patient, hopefully to fully address the subject&#39;s condition. 
         [0070]      FIG. 2  illustrates an example method  200  in accordance with an exemplary aspect of the present disclosure. In an embodiment, method  200  may be implemented by any suitable computing device, such as data acquisition system  102 , for example, as shown in  FIG. 1 . In an embodiment, method  200  may be performed by one or more processors executing one or more algorithms, applications, programs, and/or routines, such as any suitable portion of CPU  104  and/or GPU  106  executing instructions stored in one or more of data acquisition module  115 , modeling module  117 , regularization module  119 , and/or filtering module  121 , for example, as shown in  FIG. 1 . 
         [0071]    Method  200  may start when one or more processors sample a signal over one or more of a plurality of successive sliding time windows, the signal including a primary signal component having an amplitude that has a relatively constant amplitude (block  202 ). This signal may be sampled, for example, via communication unit  110  of diagnostic data acquisition unit  150 , as shown in  FIG. 1  (block  202 ). In an embodiment, the signal may include a primary signal component and blunt noise. The primary signal component may have a signal amplitude that varies over time but is substantially constant within the processing window. The signal may correspond to any suitable type of signal that may be prone to blunt noise contamination, such as an IP signal, a periodic diagnostic medical signal having a primary component, etc. In the case of an IP signal, this primary component may correspond to the respiratory component of the IP signal. 
         [0072]    Method  200  may include one or more processors receiving a plurality of movement signals over a first sliding time window from among the plurality of successive sliding time windows, the plurality of movement signals being indicative of a blunt noise component that may be included in the signal within the first sliding time window (block  204 ). The movement signals may be received, for example, via communication unit  110  of modeling data acquisition unit  170 , as shown in  FIG. 1  (block  204 ). The movement signals may represent, for example, accelerometer data indicative of a patient&#39;s movement causing the blunt noise to be introduced into the sampled signal (block  202 ). 
         [0073]    Method  200  may include one or more processors calculating a prototype signal that models dominant frequency components of the signal from a second sliding time window that chronologically precedes the first sliding time window (block  206 ). To provide another example, the prototype signal may be calculated via a piecewise linear approximation of the square of the magnitude of the frequency components of the signal within the second sliding time window (block  206 ). Method  200  may include, for example, one or more processors calculating the filter coefficients by calculating an error between frequency components of the filtered signal within the first sliding time window and the prototype signal based upon a Stockwell transform or other suitable frequency transform algorithm (e.g., a Fourier transform, a short time Fourier transform, a Gabor transform, etc.) (block  206 ). 
         [0074]    Method  200  may include one or more processors calculating a set of filter coefficients utilizing the plurality of movement signals within the first sliding time window such that one or more conditions are satisfied, which may include the satisfaction of one or more constraints and/or the optimization of one or more objective functions, for example (block  208 ). A constraint may be satisfied, for example, when the filtered signal amplitude within the first sliding time window is limited between a threshold value based upon the primary signal component amplitude within the same sliding time window (block  208 ). An objective function may be minimized, for example, when the error between frequency components of the filtered signal within the first sliding time window and the frequency components of the prototype signal is minimized (block  208 ). 
         [0075]    Method  200  may include one or more processors filtering the signal within the first sliding time window in accordance with the set of filter coefficients to retain the primary signal component while removing the blunt noise (block  210 ). 
         [0076]    The following pages further explain the adaptive filtering process in accordance with various embodiments of the disclosure. Unless specifically noted, one or more of the following processes, which may include the incorporation of mathematical equations, may be implemented by one or more portions of system  100 , as shown in  FIG. 1 . 
         [0077]    In an embodiment, the adaptive ε-tube filter may operate by sliding a processing window over a signal that has been corrupted by noise, as shown in  FIG. 3 . The bottom part shows a window from t−T to t+T, where t is the time index and 2T is the length of the processing window. The adaptive ε-tube filter may compute the filter coefficients at time t; therefore, the filter has a delay equal to T (typically equal to about half of the period for the diagnostic component of signal, e.g., around 5 seconds for an IP signal.) 
         [0078]    The unfiltered signal value at time t is denoted by g(t) and the vector g(t) is used to signify the portion of the signal inside the processing window. The portion of the signal inside the processing window before t (from t−T to t−1) is denoted by g 1 (t) while the portion after t (from t to t+T) is denoted by g 2 (t). The filter output values y(t) have already been computed for all the signal samples preceding t and treated as constants when computing the filter coefficients at time t. The signal output values y(t) for the samples within the tube (from t−T to t−1) form vector y(t). In one embodiment, the blunt noise in the second half of the window (from t to t+T) may be estimated by: 
         [0000]        z ( t )= w   T ( t ) u ( t ) 
         [0000]    where z(t) is the estimation for blunt noise at time t, w(t) is the vector of filter coefficients at time t and u(t) is the vector of filter inputs at time t (e.g. the movement signals measured via an accelerometer and/or gyroscope sensor, as shown in  FIG. 4 .) In another embodiment, an autoregressive element can be added to the equation above to model the exponential decaying effect that movements can induce into the corrupted signal. Assuming the above equation is utilized, the vector of the estimated blunt noise in the second half of the window, denoted by z(t), can be calculated using: 
         [0000]        z ( t )= U ( t ) w ( t ) 
         [0000]    where U(t) is the matrix which contains the filter input values in the second half of the processing window from (t to t+T), i.e., the i th  row in U(t) is u(t+i−1). After finding the best filter coefficients, w, to estimate the blunt noise in the second half of the processing window, the filter output at t is computed using: 
         [0000]        y ( t )= w   T ( t ) u ( t ) 
         [0000]    and the processing window advances to the next signal sample at t+1 (from t−T+1 to t+T+1). 
         [0079]    The filtered signal inside the processing window, denoted by h(t), can be found by augmenting y(t) with z(t) and subtracting it from g(t) In other words, 
         [0000]    
       
         
           
             
               
                 
                   
                     h 
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                    
                     
                   = 
                   
                     
                       g 
                        
                       
                         ( 
                         t 
                         ) 
                       
                     
                     - 
                     
                       ( 
                       
                         
                           
                             
                               y 
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               z 
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                     
                    
                   
                     
                       ( 
                       
                         
                           
                             
                               
                                 g 
                                 1 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               
                                 g 
                                 2 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                       
                       ) 
                     
                     - 
                     
                       ( 
                       
                         
                           
                             
                               y 
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                         
                           
                             
                               z 
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                     
                    
                   
                     
                       ( 
                       
                         
                           
                             
                               
                                 
                                   g 
                                   1 
                                 
                                  
                                 
                                   ( 
                                   t 
                                   ) 
                                 
                               
                               - 
                               
                                 y 
                                  
                                 
                                   ( 
                                   t 
                                   ) 
                                 
                               
                             
                           
                         
                         
                           
                             
                               
                                 g 
                                 2 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                       
                       ) 
                     
                     - 
                     
                       ( 
                       
                         
                           
                             
                               0 
                               
                                 T 
                                 × 
                                 1 
                               
                             
                           
                         
                         
                           
                             
                               z 
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                         
                       
                       ) 
                     
                   
                 
               
             
             
               
                 
                   = 
                     
                    
                   
                     
                       
                         h 
                         1 
                       
                        
                       
                         ( 
                         t 
                         ) 
                       
                     
                     - 
                     
                       
                         h 
                         2 
                       
                        
                       
                         ( 
                         t 
                         ) 
                       
                     
                   
                 
               
             
           
         
       
       
         
           where 
         
       
       
         
           
             
               
                 
                   h 
                   1 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               = 
               
                 ( 
                 
                   
                     
                       
                         
                           
                             g 
                             1 
                           
                            
                           
                             ( 
                             t 
                             ) 
                           
                         
                         - 
                         
                           y 
                            
                           
                             ( 
                             t 
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           g 
                           2 
                         
                          
                         
                           ( 
                           t 
                           ) 
                         
                       
                     
                   
                 
                 ) 
               
             
             , 
             
               
                 
                   h 
                   2 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               = 
               
                 ( 
                 
                   
                     
                       
                         0 
                         
                           T 
                           × 
                           1 
                         
                       
                     
                   
                   
                     
                       
                         z 
                          
                         
                           ( 
                           t 
                           ) 
                         
                       
                     
                   
                 
                 ) 
               
             
           
         
       
     
         [0080]    The top part of  FIG. 3  shows the Stockwell transform (ST) of h(t) inside the processing window, denoted by S h(t)   p,n , where p is the time index and n is the frequency index for the ST. The frequency decomposition of h(t) at p=0, denoted by S h(t)   0,• , can be found as: 
         [0000]    
       
      
       S 
       h(t) 
       0,• 
       =S 
       h 
       
         1 
       
       (t) 
       0,• 
       −S 
       h 
       
         2 
       
       (t) 
       0,• 
      
     
         [0000]    The second term in the right side of the equation above can be expressed as a linear combination of STs of a shifted delta function, where the weights are the values in vector z(t), i.e., 
         [0000]    
       
         
           
             
               S 
               
                 
                   h 
                   2 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               
                 0 
                 , 
                 . 
               
             
             = 
             
               
                 
                   ∑ 
                   
                     k 
                     = 
                     0 
                   
                   T 
                 
                  
                 
                     
                 
                  
                 
                   
                     
                       z 
                       k 
                     
                      
                     
                       ( 
                       t 
                       ) 
                     
                   
                    
                   
                     S 
                     
                       δ 
                        
                       
                         ( 
                         
                           x 
                           - 
                           k 
                         
                         ) 
                       
                     
                     
                       0 
                       , 
                       . 
                     
                   
                 
               
               = 
               
                 
                   M 
                   δ 
                 
                  
                 
                   z 
                    
                   
                     ( 
                     t 
                     ) 
                   
                 
               
             
           
         
       
     
         [0000]    where M δ  is a matrix whose i th  column is S δ(x-i+1)   0,•  where xε[−T+1, T] is the argument of the delta function. Therefore, 
         [0000]        y ( t )= z   0 ( t )= w   T ( t ) u ( t ). 
         [0081]    The adaptive ε-tube filter may utilize a frequency prototype, denoted by r, that is calculated from previous processing windows to find the filter coefficients. In particular, the adaptive ε-tube filter may minimize the following objective function: 
         [0000]    
       
         
           
             
               
                 
                   Minimize 
                    
                   
                     ( 
                     
                       r 
                       - 
                       
                         S 
                         h 
                         
                           0 
                           , 
                           . 
                         
                       
                     
                     ) 
                   
                 
                 T 
               
                
               
                 ( 
                 
                   
                     r 
                     - 
                     
                       S 
                       h 
                       
                         0 
                         , 
                         . 
                       
                     
                   
                   _ 
                 
                 ) 
               
             
             + 
             
               
                 γ 
                 q 
               
                
               
                 w 
                 T 
               
                
               w 
             
           
         
       
     
         [0000]    where γ is design parameter that controls the balance between the two terms in the objective function and q is a non-negative non-decreasing function that represents the amount of noise in the signal. For example, in the case of the presence of a motion artifact, q can be calculated as the power of the movement signals or the power of the deviations of the noisy signal from the tube within the processing window. The latter case can be expressed as: 
         [0000]    
       
         
           
             
               q 
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               
                 [ 
                 
                   
                     1 
                     
                       2 
                        
                       T 
                     
                   
                    
                   
                     
                       ∑ 
                       
                         i 
                         = 
                         
                           t 
                           - 
                           T 
                           + 
                           1 
                         
                       
                       
                         t 
                         + 
                         T 
                       
                     
                      
                     
                         
                     
                      
                     
                       
                         e 
                          
                         
                           ( 
                           i 
                           ) 
                         
                       
                       2 
                     
                   
                 
                 ] 
               
               
                 1 
                  
                 
                   / 
                 
                  
                 2 
               
             
           
         
       
     
         [0000]    where e(t)=max(g(t)−ε(t),−g(t)−ε(t),0). The process of finding r(t) and ε(t) will be explained later. The second term in the objective function 
         [0000]    
       
         
           
             ( 
             
               
                 γ 
                 q 
               
                
               
                 w 
                 T 
               
                
               w 
             
             ) 
           
         
       
     
         [0000]    prevents the amplitude of the filter coefficients from growing excessively. 
         [0082]    When q is sufficiently small (i.e., the subject is not moving and the movement signals have relatively low power levels), this second term becomes dominant and drives the amplitude of the filter coefficients towards zero. As a result, the adaptive ε-tube filter avoids modeling and manipulating the signal when there is no noise present in the signal. The objective function is convex and has a unique solution that can be found as: 
         [0000]    
       
         
           
             
               
                 
                   w 
                   opt 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               = 
               
                 
                   - 
                   
                     
                       ( 
                       
                         
                           
                             
                               U 
                               T 
                             
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                            
                           
                             C 
                             2 
                           
                            
                           
                             U 
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                         
                         + 
                         
                           
                             γ 
                             
                               q 
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                            
                           I 
                         
                       
                       ) 
                     
                     
                       - 
                       1 
                     
                   
                 
                  
                 
                   
                     U 
                     T 
                   
                    
                   
                     ( 
                     t 
                     ) 
                   
                 
                  
                 
                   Re 
                    
                   
                     [ 
                     
                       
                         C 
                         1 
                       
                        
                       
                         ( 
                         
                           
                             r 
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                           - 
                           
                             S 
                             
                               
                                 h 
                                 1 
                               
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                             
                               0 
                               , 
                               . 
                             
                           
                         
                         ) 
                       
                     
                     ] 
                   
                 
               
             
             , 
           
         
       
     
         [0000]    when q(t)&gt;0 and w opt =0 otherwise. Note that C 1 =M δ   H  and C 2 =M δ   T   M δ    A are constant matrices. Therefore, the update vector can be calculated using: 
         [0000]        w   Δ ( t )= w   opt ( t )− w ( t− 1).
 
         [0000]    Again, in an embodiment, one of the assumptions made by adaptive ε-tube filter is that the amplitude of the diagnostic component of the signal is relatively constant within each processing window. Hence, the filter may ensure that the amplitude of the filtered signal remains within a margin called an ε-tube (or “tube”) and denoted by ε(t). In one embodiment, the tube constraints may be applied to the values in the middle of the processing window, i.e., 
         [0000]      − u   T ( t ) w ( t )+ g ( t )+ε( t )≧0,
 
         [0000]        u   T ( t ) w ( t )− g ( t )+ε( t )≧0.
 
         [0000]    The left-hand side of the above constraint can be expressed in matrix form as 
         [0000]    
       
         
           
             v 
             = 
             
               Aw 
               - 
               b 
             
           
         
       
       
         
           where 
         
       
       
         
           
             
               A 
               = 
               
                 ( 
                 
                   
                     
                       
                         - 
                         
                           
                             u 
                             T 
                           
                            
                           
                             ( 
                             t 
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       
                         
                           u 
                           T 
                         
                          
                         
                           ( 
                           t 
                           ) 
                         
                       
                     
                   
                 
                 ) 
               
             
             , 
             
               b 
               = 
               
                 
                   ( 
                   
                     
                       
                         
                           
                             - 
                             
                               g 
                                
                               
                                 ( 
                                 t 
                                 ) 
                               
                             
                           
                           - 
                           
                             ɛ 
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                         
                       
                     
                     
                       
                         
                           
                             g 
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                           - 
                           
                             ɛ 
                              
                             
                               ( 
                               t 
                               ) 
                             
                           
                         
                       
                     
                   
                   ) 
                 
                 . 
               
             
           
         
       
     
         [0000]    A modified version of Rosen&#39;s gradient projection method can be used to enforce the tube constraints. In an embodiment, it is first assumed that the term w(t−1) satisfies the tube constraints. In accordance with such an embodiment, a matrix N is first formed whose columns are the gradients of the active constrains at w(t−1) (i.e., gradients of the rows of v at w(t−1)) for which: 
         [0000]      ( A   i,• ) T   w   Δ ( t )≦0,  i= 1,2
 
         [0000]    where A i,•  is the i th  row of matrix A. A constraint is said to be “active” if it holds at equality. If no active constraint exists that satisfies the above constraint, then the update vector d would be the same as w Δ (t). Otherwise, the update vector can be found by: 
         [0000]        d =( I−N ( N   T   N ) −1   N   T ) w   Δ ( t ). 
         [0000]    The inverse in the above equation is a scalar one, since the two tube constraints are in parallel (i.e., they are not active at the same time), and hence, the size of N T N is at most 1×1. Vector d defines the direction in which the update should take place. The filter coefficient vector update can be expressed using: 
         [0000]        w ( t )= w ( t− 1)+α d,  
 
         [0000]    where α is the step length. The step length is preferably equal to 1 if a full step does not violate the constraints; otherwise, α should preferably be the largest value such that αd does not violate any constraints. Accordingly, the first step is to find the constraint that would impose a bound on αd by finding index i for which: 
         [0000]      ( A   i,• ) T   d&lt; 0,  i= 1,2 
         [0000]    The step length is the largest value smaller than or equal to 1 such that: 
         [0000]    
       
         
           
             α 
             ≤ 
             
               
                 - 
                 
                   ( 
                   
                     
                       
                         
                           ( 
                           
                             A 
                             
                               i 
                               , 
                               . 
                             
                           
                           ) 
                         
                         T 
                       
                        
                       
                         w 
                          
                         
                           ( 
                           
                             t 
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                     - 
                     
                       b 
                       i 
                     
                   
                   ) 
                 
               
               
                 
                   
                     ( 
                     
                       A 
                       
                         i 
                         , 
                         . 
                       
                     
                     ) 
                   
                   T 
                 
                  
                 d 
               
             
           
         
       
     
         [0000]    The steps that are mentioned above to update the filter coefficient hold only if the tube constraints are satisfied at w(t−1). Therefore, embodiments include the filter coefficients being corrected if the tube constraints are violated using: 
         [0000]        w ( t− 1)← w ( t− 1)+ d   c ,
 
         [0000]    where d c  is the correction vector. To have a correction with minimal disturbance, the correction vector should preferably be perpendicular to the boundary of the constraint that is violated. To do so, first the constraint should be found that is violated by checking v i &lt;0, i=1, 2. Then, the correction vector can be computed using: 
         [0000]        d   c   =−N ( N   T   N ) −1   A   i,•   
         [0000]    where A i,•  is the i th  row of matrix A. The correction step should be performed prior to computing w Δ (t). 
         [0083]    The prototype r represents the frequency spectrum of the diagnostic component of the signal. It is assumed that this spectrum varies over time, but is relatively constant over short periods of time, such as the time period associated with a sliding time window, for example. In one embodiment, the prototype can be computed from a window that spans from t−2T−1 to T−1, as shown in  FIG. 5 , when the signal is clean and does not contain blunt noise. The ST of the signal in the middle of the window (at p=0) is shown with a solid line. The frequency that has the maximum amplitude is denoted by f max . The first frequencies before and after f max  whose amplitudes are smaller than or equal to half of the amplitude of f max  are denoted by f 1  and f 2 , respectively. Note that both r(t) and S h(t-T-1)   0,n  are complex valued vectors, but only their amplitudes are shown in  FIG. 5 . 
         [0084]    We fit two linear models to the two segments in S h(t-T-1)   0,n  from f 1  to f max  and from f max  to f 2 . In an embodiment, this is realized by fitting linear models to the real and imaginary parts of S h(t′)   0,• , Re[S h(t′)   0,• ] and Im[S h(t′)   0,• ] where t′=t−T−1. Let us define: 
         [0000]    
       
         
           
             
               
                 y 
                 
                   r 
                    
                   
                       
                   
                    
                   1 
                 
               
               = 
               
                 ( 
                 
                   
                     
                       
                         
                           Re 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   f 
                                   1 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                   
                     
                       
                         
                           Re 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   
                                     f 
                                     1 
                                   
                                   + 
                                   1 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                   
                     
                       ⋮ 
                     
                   
                   
                     
                       
                         
                           Re 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   f 
                                   max 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                 
                 ) 
               
             
             , 
             
               
                 y 
                 
                   i 
                    
                   
                       
                   
                    
                   1 
                 
               
               = 
               
                 ( 
                 
                   
                     
                       
                         
                           Im 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   f 
                                   1 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                   
                     
                       
                         
                           Im 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   
                                     f 
                                     1 
                                   
                                   + 
                                   1 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                   
                     
                       ⋮ 
                     
                   
                   
                     
                       
                         
                           Im 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   f 
                                   max 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               
                 y 
                 
                   r 
                    
                   
                       
                   
                    
                   2 
                 
               
               = 
               
                 ( 
                 
                   
                     
                       
                         
                           Re 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   f 
                                   max 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                   
                     
                       
                         
                           Re 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   
                                     f 
                                     max 
                                   
                                   + 
                                   1 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                   
                     
                       ⋮ 
                     
                   
                   
                     
                       
                         
                           Re 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   f 
                                   2 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                 
                 ) 
               
             
             , 
             
               
                 y 
                 
                   i 
                    
                   
                       
                   
                    
                   2 
                 
               
               = 
               
                 ( 
                 
                   
                     
                       
                         
                           Im 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   f 
                                   max 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                   
                     
                       
                         
                           Im 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   
                                     f 
                                     max 
                                   
                                   + 
                                   1 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                   
                     
                       ⋮ 
                     
                   
                   
                     
                       
                         
                           Im 
                            
                           
                             [ 
                             
                               S 
                               
                                 h 
                                  
                                 
                                   ( 
                                   
                                     t 
                                     ′ 
                                   
                                   ) 
                                 
                               
                               
                                 0 
                                 , 
                                 
                                   f 
                                   2 
                                 
                               
                             
                             ] 
                           
                         
                         2 
                       
                     
                   
                 
                 ) 
               
             
           
         
       
       
         
           
             
               
                 X 
                 1 
               
               = 
               
                 ( 
                 
                   
                     
                       1 
                     
                     
                       
                         f 
                         1 
                       
                     
                   
                   
                     
                       1 
                     
                     
                       
                         
                           f 
                           1 
                         
                         + 
                         1 
                       
                     
                   
                   
                     
                       ⋮ 
                     
                     
                       ⋮ 
                     
                   
                   
                     
                       1 
                     
                     
                       
                         f 
                         max 
                       
                     
                   
                 
                 ) 
               
             
             , 
             
               
                 X 
                 2 
               
               = 
               
                 ( 
                 
                   
                     
                       1 
                     
                     
                       
                         f 
                         max 
                       
                     
                   
                   
                     
                       1 
                     
                     
                       
                         
                           f 
                           max 
                         
                         + 
                         1 
                       
                     
                   
                   
                     
                       ⋮ 
                     
                     
                       ⋮ 
                     
                   
                   
                     
                       1 
                     
                     
                       
                         f 
                         2 
                       
                     
                   
                 
                 ) 
               
             
           
         
       
     
         [0000]    The least squares estimates for real and imaginary parts of the two aforementioned parts in S h(t-T-1)   0,•  can be computed using: 
         [0000]        ŷ   r1   =X   1 ( X   1   T   X   1 ) −1   X   1   T   y   r1 , 
         [0000]        ŷ   i1   =X   1 ( X   1   T   X   1 ) −1   X   1   T   y   i1 , 
         [0000]        ŷ   r2   =X   2 ( X   2   T   X   2 ) −1   X   2   T   y   r2 , 
         [0000]        ŷ   i2   =X   2 ( X   2   T   X   2 ) −1   X   2   T   y   i2 . 
         [0000]    The estimated real and imaginary parts can be incorporated as follows, 
         [0000]        l   1 =√{square root over (max( ŷ   r1 ,0))}+ j √{square root over (max( ŷ   i1 ,0))},
 
         [0000]        l   2 =√{square root over (max( ŷ   r2 ,0))}+ j √{square root over (max( ŷ   i2 ,0))},
 
         [0085]    where the square root and max are element-wise operators. The prototype can be found as 
         [0000]        r ′( t )=[0 1×(f     1     -1)   l   1 ′ T   μl   2 ′ T 0 1×(N-f     2     ) ] T ,
 
         [0000]    where l 1 ′ is the same as l 1  excluding the last element, l 2 ′ is the same as l 2  excluding the first element and μ is the mean of the last element of l 1  and the first element of l 2 . As a result, |r(t)| 2  is a piecewise linear approximation for |S h(t-T-1)   0,• | 2  from f 1  to f 2 . Finally, the adaptive ε-tube filter adjusts the phase of the prototype to match that of S h(t)   0,•  as follows, 
         [0000]    
       
         
           
             
               
                 r 
                 n 
               
                
               
                 ( 
                 t 
                 ) 
               
             
             = 
             
               | 
               
                 
                   r 
                   n 
                   ′ 
                 
                  
                 
                   ( 
                   t 
                   ) 
                 
               
               | 
               
                 · 
                 
                    
                   
                     - 
                     
                       
                         j 
                          
                         
                             
                         
                          
                         2 
                          
                         π 
                          
                         
                             
                         
                          
                         
                           n 
                            
                           
                             ( 
                             
                               
                                 τ 
                                  
                                 
                                   ( 
                                   n 
                                   ) 
                                 
                               
                               - 
                               1 
                             
                             ) 
                           
                         
                       
                       
                         2 
                          
                         T 
                       
                     
                   
                 
               
             
           
         
       
     
         [0000]    where r n  is the element of vector r that is associated with frequency n and τ(n) is the circular shift associated with frequency n that is calculated from the previous sliding time window as 
         [0000]    
       
         
           
             
               τ 
                
               
                 ( 
                 n 
                 ) 
               
             
             = 
             
               - 
               
                 
                   
                     
                       φ 
                        
                       
                         ( 
                         
                           S 
                           
                             h 
                              
                             
                               ( 
                               
                                 t 
                                 - 
                                 1 
                               
                               ) 
                             
                           
                           
                             0 
                             , 
                             . 
                           
                         
                         ) 
                       
                     
                      
                     2 
                      
                     T 
                   
                   
                     2 
                      
                     π 
                      
                     
                         
                     
                      
                     n 
                   
                 
                 . 
               
             
           
         
       
     
         [0000]    The performance of the filter can be increased by shifting S h(t-T-1)   0,•  such that f max =0 and precompute X 1 (X 1   T X 1 ) −1 X 1   T  and X 2 (X 2   T X 2 ) −1 X 2   T  for different values of f 1  and f 2 , which would eliminate the potentially time-consuming step of computing the inverse. 
         [0086]    In one embodiment, the adaptive ε-tube filter may update the prototype based on S h(t-T-1)   0,•  only when the signal is in a calm state, as defined later. When there is blunt noise present in the signal, embodiments include the adaptive ε-tube filter utilizing the last prototype that was computed based on a window that was in a calm state. In this way, the filter may prevent the noise from entering the prototype, which can otherwise lead to propagation of error. 
         [0087]    The prototype that is described above relies upon the diagnostic signal being periodic with one major frequency component. However, some physiological signals, such as electrocardiogram or piezoelectric signals, for example, may have a pattern that constitutes several frequency components. In one embodiment, the prototype may be modified to reflect the inherent characteristics of the diagnostic signal. In other embodiments, the signal may be low-pass filtered to remove most of the frequencies that are associated with the details of the signal and keep the frequencies that are associated with the main periodic component of the signal. Then, the adaptive ε-tube filter, along with the aforementioned prototype, may be used to estimate the motion artifact. The estimated motion artifact may be subtracted from the original signal to obtain a clean signal with the details. 
         [0088]    In an embodiment, the adaptive ε-tube filter may impose a margin on the amplitude of the filtered signal. The size of the margin, ε(t), may vary gradually over time as the amplitude of the diagnostic component of the signal changes. As a result, the adaptive ε-tube filter may adaptively change the width of the tube, which may advantageously be done when the signal is in a calm state. In one embodiment, the power of the movement signals for a particular processing window may be used to determine whether or not the signal is in a calm state. The signal is said to be in a calm state when the power of the movement signals is smaller than a threshold value, which may be set to any suitable value. 
         [0089]    In one embodiment, the filter decides whether the size of the tube needs to be decreased or increased if the signal is in a calm state. That is, if the portion of the signal inside the tube violates the tube, then the tube size may be increased by some suitable amount, which may be proportional to the tube size or the size of the violation (e.g., 1% of the size of the violation). Otherwise, the adaptive ε-tube filter may decide whether the size of the tube needs to be decreased or not, which may be determined by analyzing a suitably sized window (e.g., a window from t−4T to T). 
         [0090]    In an embodiment, the adaptive ε-tube filter may attempt to maintain a margin between the signal and the tube to avoid the tube from becoming too tight. Therefore, continuing the previous example, if the margin between the amplitude of the filtered signal and the tube in a window from t−4T to T is larger than 0.1ε(t), the tube size is adjusted to create a margin between the filtered signal and the tube with a size equal to 0.1ε(t). Otherwise, the size of the tube does not change. An example of a sample portion of the IP signal and the corresponding tube size that is computed using the process that is explained above are shown in  FIG. 6 . 
         [0091]    In an embodiment, the adaptive ε-tube filter may compute S h     1     (t)   0,•  for each signal sample. Computing ST may be a time consuming process that slows down the adaptive ε-tube filter. However, S h     1     (t)   0,•  can be computed from S h     1     (t-1)   0,•  by taking a few steps to eliminate the need for the ST to be explicitly computed. 
         [0092]    The vector h 1 (t) is obtained by shifting vector h 1 (t−1) backwards (circular shift), replacing the value in front of the window (the value that is supposed to leave the window) with the new signal sample that is entering the window, and subtracting the most recent computed filter output y(t−1) from the corresponding signal value g(t−1). The circular shift can be performed using: 
         [0000]    
       
         
           
             
                
               
                 
                   h 
                   1 
                 
                  
                 
                   ( 
                   
                     t 
                     - 
                     1 
                   
                   ) 
                 
               
             
             = 
             
               
                 I 
                 
                   - 
                   1 
                 
               
                
               
                 S 
                 
                   
                     h 
                     1 
                   
                    
                   
                     ( 
                     
                       t 
                       - 
                       1 
                     
                     ) 
                   
                 
               
                
               E 
             
           
         
       
       
         
           where 
         
       
       
         
           
             
               I 
               
                 - 
                 1 
               
             
             = 
             
               ( 
               
                 
                   
                     
                       0 
                       
                         
                           ( 
                           
                             
                               2 
                                
                               T 
                             
                             - 
                             1 
                           
                           ) 
                         
                         × 
                         1 
                       
                     
                   
                   
                     
                       I 
                       
                         
                           ( 
                           
                             
                               2 
                                
                               T 
                             
                             - 
                             1 
                           
                           ) 
                         
                         × 
                         
                           ( 
                           
                             
                               2 
                                
                               T 
                             
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                   
                 
                 
                   
                     1 
                   
                   
                     
                       0 
                       
                         1 
                         × 
                         
                           ( 
                           
                             
                               2 
                                
                               T 
                             
                             - 
                             1 
                           
                           ) 
                         
                       
                     
                   
                 
               
               ) 
             
           
         
       
     
         [0000]    and E is a diagonal matrix whose n th  diagonal value is 
         [0000]    
       
         
           
             
                
               
                 
                   j 
                    
                   
                       
                   
                    
                   2 
                    
                   π 
                    
                   
                       
                   
                    
                   n 
                 
                 N 
               
             
             . 
           
         
       
     
         [0000]    The rest of the steps can be performed as follows: 
         [0000]        S   h     1     (t) =           1     (t-1)     +[g ( t+T )−( g ( t−T )− y ( t−T ))] S   δ(x-T)   −y ( t− 1) S   δ(x+1) .
 
         [0000]    Likewise, the ST that is used to build the prototype (from t−2T−1 to t−1) can be obtained without explicit computation of the ST as follows: 
         [0000]        S   h(t-T-1) =           (t-T-2) +[( g ( t− 1)− y ( t− 1))− g ( t− 2 T− 2)− y ( t− 2 T− 2))] S   δ(x-T) ,
 
         [0000]      where 
         [0000]    
       
      
               
       (t-T-2) 
       =I 
       −1 
       S 
       h(t-T-2) 
       E.  
      
     
         [0093]    The adaptive ε-tube filter advantageously outperforms conventional methods to remove blunt noise from periodic signals. Two conventional approaches to remove motion artifacts from periodic physiological signals, such as electrocardiogram and photoplethysmography signals, for example, include independent component analysis (ICA) and adaptive filters such as least mean squares (LMS), recursive least squares (RLS), normalized least mean squares (NLMS), etc., which are considered the most effective methods to remove motion artifacts. 
         [0094]    These methods were compared to the adaptive ε-tube filter by applying each one of them to the IP signals that were corrupted by MA. The adaptive ε-tube filter was compared to RLS and NLMS filters using the data that was collected from 13 subjects while the comparison with ICA was done using the data from 7 subjects. Each subject was asked to perform 14 different maneuvers several times, as described in Table 1 below. 
         [0000]    
       
         
               
               
             
               
               
             
           
               
                 TABLE 1 
               
               
                   
               
               
                 Maneuver 
                 Description 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 1 
                 Raising the arm and holding it up. 
               
               
                 2 
                 Dropping the arm after it was held up for 10 seconds. 
               
               
                 3 
                 Raising the arm and dropping it immediately. 
               
               
                 4 
                 Imitating the act of drinking a cup of water. 
               
               
                 5 
                 Twisting the upper body towards right and back. 
               
               
                 6 
                 Twisting the upper body towards left and back. 
               
               
                 7 
                 Standing up. 
               
               
                 8 
                 Sitting down after 10 seconds. 
               
               
                 9 
                 Imitating the act of opening a window. 
               
               
                 10 
                 Raising the arm and dropping it continuously. 
               
               
                 11 
                 Imitating the act of taking food from a plate and 
               
               
                   
                 putting it in the mouth continuously. 
               
               
                 12 
                 Twisting the upper body towards right and left continuously. 
               
               
                 13 
                 While standing, imitating the act of walking (in place). 
               
               
                 14 
                 While standing, imitating the act of running (in place). 
               
               
                   
               
             
          
         
       
     
         [0095]    The subjects&#39; respiration was monitored using an EtCO2 signal that was measured through a nasal cannula and used as the reference signal. Several different performance measures were computed to compare the adaptive ε-tube filter to ICA, RLS, and NLMS. One of these performance measures is the average correlation between the filtered signal and the reference signal (Corr). Moreover, several measures were based on the error of the respiratory rate that was extracted from the filtered signal compared to the one extracted from the reference signal, including the proportion of instances where the error is smaller than 1 breaths per minute (Dev1), proportion of instances where the error is smaller than 3 breaths per minute (Dev3), the mean error (Mean Err), standard deviation of the error (St.D. Err), and maximum error (Max Err). 
         [0096]    The results of the comparisons are shown in Table 2 below, indicating that the adaptive ε-tube filter outperforms the popular existing methods with regards to all the performance measures. Moreover,  FIGS. 7-10  show the comparison between the methods with respect to the correlation and mean error performance measures for individual maneuvers. The results indicate that adaptive ε-tube filter has a better performance according to both measures and for all the maneuvers that have been performed. Moreover, statistical tests indicate that out of 42 comparisons against the adaptive ε-tube filter involving the correlation measure, 41 were statistically significant (α=0.05). Also, out of 42 comparisons against adaptive ε-tube filter involving the mean error measure, 36 were statistically significant (α=0.05). These results suggest that the improvements in the performance that are observed when adaptive ε-tube filter is used are statistically significant. 
         [0000]    
       
         
               
               
               
               
               
               
               
             
           
               
                 TABLE 2 
               
               
                   
               
               
                 Method 
                 Corr 
                 Dev1 
                 Dev3 
                 Mean Err 
                 St. D. Err 
                 Max Err 
               
               
                   
               
             
             
               
                 A ε-TF 
                 0.702 
                 0.706 
                 0.864 
                 1.750 
                 2.644 
                 10.315 
               
               
                 NLMS 
                 0.507 
                 0.534 
                 0.686 
                 4.556 
                 4.940 
                 19.432 
               
               
                 RLS 
                 0.559 
                 0.591 
                 0.732 
                 4.463 
                 5.969 
                 28.012 
               
               
                 A ε-TF 
                 0.743 
                 0.747 
                 0.887 
                 1.669 
                 2.653 
                 10.621 
               
               
                 ICS 
                 0.624 
                 0.634 
                 0.741 
                 4.943 
                 5.344 
                 21.066 
               
               
                   
               
             
          
         
       
     
         [0097]    Throughout this specification, plural instances may implement components, operations, or structures described as a single instance. Although individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations may be performed concurrently, and nothing requires that the operations be performed in the order illustrated. Structures and functionality presented as separate components in example configurations may be implemented as a combined structure or component. Similarly, structures and functionality presented as a single component may be implemented as separate components. These and other variations, modifications, additions, and improvements fall within the scope of the subject matter herein. 
         [0098]    Additionally, certain embodiments are described herein as including logic or a number of routines, subroutines, applications, or instructions. These may constitute either software (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware. In hardware, the routines, etc., are tangible units capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein. 
         [0099]    In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations. 
         [0100]    Accordingly, the term “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain manner or to perform certain operations described herein. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where the hardware modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time. 
         [0101]    Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple of such hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connects the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information). 
         [0102]    The various operations of the example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules. 
         [0103]    Similarly, the methods or routines described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or more processors or processor-implemented hardware modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but also deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations. 
         [0104]    The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but also deployed across a number of machines. In some example embodiments, the one or more processors or processor-implemented modules may be located in a single geographic location (e.g., within a home environment, an office environment, or a server farm). In other example embodiments, the one or more processors or processor-implemented modules may be distributed across a number of geographic locations. 
         [0105]    Unless specifically stated otherwise, discussions herein using words such as “processing,” “computing,” “calculating,” “determining,” “presenting,” “displaying,” or the like may refer to actions or processes of a machine (e.g., a computer) that manipulates or transforms data represented as physical (e.g., electronic, magnetic, or optical) quantities within one or more memories (e.g., volatile memory, non-volatile memory, or a combination thereof), registers, or other machine components that receive, store, transmit, or display information. 
         [0106]    As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment. 
         [0107]    Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. For example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context. 
         [0108]    As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present). 
         [0109]    In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the description. This description, and the claims that follow, should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise. 
         [0110]    This detailed description is to be construed as an example only and does not describe every possible embodiment, as describing every possible embodiment would be impractical, if not impossible. One could implement numerous alternate embodiments, using either current technology or technology developed after the filing date of this application.