WO2006134197A1 - Método para procesar señales fotopletismográficas obtenidas de una persona o animal, y oxímetro que utiliza dicho método - Google Patents
Método para procesar señales fotopletismográficas obtenidas de una persona o animal, y oxímetro que utiliza dicho método Download PDFInfo
- Publication number
- WO2006134197A1 WO2006134197A1 PCT/ES2006/070080 ES2006070080W WO2006134197A1 WO 2006134197 A1 WO2006134197 A1 WO 2006134197A1 ES 2006070080 W ES2006070080 W ES 2006070080W WO 2006134197 A1 WO2006134197 A1 WO 2006134197A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- peak
- parameter
- candidate
- signals
- peaks
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 title claims abstract description 13
- 230000003595 spectral effect Effects 0.000 claims abstract description 15
- 238000004458 analytical method Methods 0.000 claims abstract description 9
- 230000000747 cardiac effect Effects 0.000 claims abstract description 8
- 238000004364 calculation method Methods 0.000 claims abstract description 7
- 230000033001 locomotion Effects 0.000 claims description 19
- 239000008280 blood Substances 0.000 claims description 11
- 210000004369 blood Anatomy 0.000 claims description 11
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 claims description 8
- 229910052760 oxygen Inorganic materials 0.000 claims description 8
- 239000001301 oxygen Substances 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 5
- 230000002123 temporal effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 24
- 230000003068 static effect Effects 0.000 description 19
- 239000011800 void material Substances 0.000 description 12
- 238000005259 measurement Methods 0.000 description 10
- 238000001228 spectrum Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000012360 testing method Methods 0.000 description 6
- 238000001914 filtration Methods 0.000 description 5
- 230000000541 pulsatile effect Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 2
- 238000002106 pulse oximetry Methods 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 230000005855 radiation Effects 0.000 description 2
- 102000001554 Hemoglobins Human genes 0.000 description 1
- 108010054147 Hemoglobins Proteins 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 210000001367 artery Anatomy 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002923 local minimum search Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 210000000056 organ Anatomy 0.000 description 1
- 230000004962 physiological condition Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/145—Measuring characteristics of blood in vivo, e.g. gas concentration or pH-value ; Measuring characteristics of body fluids or tissues, e.g. interstitial fluid or cerebral tissue
- A61B5/1455—Measuring characteristics of blood in vivo, e.g. gas concentration or pH-value ; Measuring characteristics of body fluids or tissues, e.g. interstitial fluid or cerebral tissue using optical sensors, e.g. spectral photometrical oximeters
- A61B5/14551—Measuring characteristics of blood in vivo, e.g. gas concentration or pH-value ; Measuring characteristics of body fluids or tissues, e.g. interstitial fluid or cerebral tissue using optical sensors, e.g. spectral photometrical oximeters for measuring blood gases
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/02—Detecting, measuring or recording for evaluating the cardiovascular system, e.g. pulse, heart rate, blood pressure or blood flow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
Definitions
- the present invention generally concerns, in a first aspect, a method for obtaining physiological parameters in real time from photoplethysmographic signals (PPG) measured by optical sensors, and in particular a method for obtaining the heart rate value at from these photoplethysmographic signals, even in extreme situations such as during the continuous realization of movements during the practice of exercises.
- PPG photoplethysmographic signals
- the invention also concerns, in a second aspect, an oximeter suitable for processing photoplethysmographic signals according to the proposed method.
- Pulse oximetry is based on the measurement of the light radiation at two determined wavelengths after interacting with the arterial blood, the venous blood and the rest of the tissues existing in the measurement zone. Radiation is generally used in the near red and infrared zone and in configuration by reflection or transmission. The variation of the volume of blood in the arteries by pumping the heart allows to obtain a variable light signal related to the heart rhythm and hemoglobin.
- the pulse oximeters existing according to own experience and the data obtained in the literature offer a false heart rate value during the practice of exercise.
- Application US-A-20040171948 concerns a method for processing photoplethysmographic signals in different domains: temporal, spectral and cepstral, and based on the results of the analysis of the signals in one or more of said domains, estimate one or more conditions physiological aspects of a patient, as well as movement artifacts in the temporal domain included in the photoplethysmographic signal.
- the application US-A-20030163032 concerns a method to eliminate motion artifacts of electrical signals representative of attenuated light signals, such as those corresponding to photoplethysmographic signals, by transforming said signals into a spectral domain, the identification of some candidate peaks between the spectral data of said signals, their corresponding filtering, and their analysis based on a series of parameters to finally find out the peak corresponding to the heart rate of the patient whose photoplethysmographic signals are subject to analysis.
- the present invention concerns, in a first aspect, a method for processing photoplethysmographic signals obtained by a pulse oximeter sensor, by means of the application of which it is possible to reliably obtain the heart rate even when the individual performs exercises.
- the present invention concerns an oximeter adapted to process photoplethysmographic signals according to the method proposed by the first aspect of the present invention.
- the proposed method according to the first aspect of the present invention has its application in the processing of photoplethysmographic signals obtained from a person or animal, in order to find out at least the heart rate thereof.
- the proposed method comprises emitting, on an area irrigated by blood capillaries, such as a finger or other organ of said person or animal, two or more light signals to obtain said photoplethysmographic signals in response, by means of detection with at least one photodetector of said light signals, once they have crossed said area.
- Said emitted light signals preferably come from LEDs or lasers of different wavelengths, between 630 and 980 nm, at least one of them being infrared.
- the method is particularly applicable to the processing of photoplethysmographic signals that contain harmonics of different frequencies, some of which have been produced by artefacts representative of the movement of said person or animal, either by movement of arms, legs and / or legs of said person or animal, caused by walking or running, which generate harmonics at frequencies other than cardiac, which varies according to the intensity of the march or race.
- Said movement caused by walking or running is generated, for example, when performing a sports activity that requires measuring heart rates in conditions of continuous and extreme effort, very different from those measured at rest.
- the proposed method comprises performing, according to known technique, the following stages sequentially: a) receive photoplethysmographic electrical signals in a temporal domain, b) transform said temporal signals into signals with a frequency domain, or spectral signals, c) identify a series of candidate peaks to be the peak produced at said domain heart rate, between part or all of said spectral signals, d) obtain a series of parameters from said candidate peaks, and e) determine from at least one of said parameters obtained in d) what is the representative peak of said frequency cardiac, or peak sought.
- the method proposed by the first aspect of the present invention comprises performing said step d) to obtain at least a first and a second parameter by means of calculations carried out in parallel, being:
- said first parameter resulting from a harmonic probability function of said candidate peaks, consisting of a two-to-two comparison thereof, which results in a series of values for the first parameter
- said second parameter resulting from a preponderance function, in energy, of said candidate peaks, consisting of a two-to-two comparison thereof, which results in a series of values for the second parameter.
- the proposed method finally comprises assigning, at said stage e), to said peak determined as representative of said heart rate a confidence coefficient.
- the method further comprises performing said step d) for a third parameter to be obtained based on calculations performed in parallel with those made to obtain said first and second parameters, said third parameter being resulting from an analysis function history of these candidate peaks, consisting of a comparison of at least the peak determined as representative of the heart rate in said stage e), for a previous cycle, which has a high confidence coefficient assigned, with said candidate peaks, to look for the peak of the same frequency or of the frequency closest to that of said peak determined in said previous stage e), and assign a probability coefficient that is the peak sought as a result of devaluing said high confidence coefficient in a certain percentage that is inversely proportional to the proximity of both frequencies.
- the method according to a preferred implementation comprises carrying it out by dividing it into two sub-stages:
- pre-selection stage consisting of analyzing the values obtained for at least said first and second parameters, and preferably also said third parameter, and selecting a single candidate peak for each parameter, depending on of said analysis, and
- said sub-stage e.1) comprises:
- the proposed method comprises carrying out the following actions:
- the method comprises calculating the level of oxygen saturation based on one or more of said photoplethysmographic signals whose frequency is that of said wanted peak determined in stage e).
- an oximeter of the type comprising at least:
- the oximeter proposed according to the second aspect of the present invention is characterized in that said electronic system incorporating it is adapted to process said photoplethysmographic signals to implement the method proposed by the first aspect of the present invention, that is to say it incorporates specific means intended to perform the calculations and / or treatments of the acquired signals, parameter management, etc.
- Fig. 1 is an illustrative flow chart of the main stages of the proposed method according to the first aspect of the present invention for an exemplary embodiment
- Fig. 2 is a graph showing part of the spectral content of a photoplethysmographic signal contaminated with noise signals or motion artifacts, for an exemplary embodiment
- Fig. 3 is a graph relative to a harmonic probability function l (x), whose result is the first parameter mentioned, for an embodiment example,
- Fig. 4 is a graph relative to a preponderance function p (x), the result of which is said second parameter, for an exemplary embodiment
- Fig. 5 is a flow chart of the stages of the proposed method, plus detailed than that of Fig. 1, for an exemplary embodiment. Detailed description of some embodiments
- the method to obtain the heart rate during the performance of exercises is based on obtaining the frequency of the variable part of the photoplethysmographic signal (PPG).
- PPG photoplethysmographic signal
- FFT fast Fourier transform
- the performance of individual movements, such as during the race involves the appearance of periodic signals (artifacts), which in the range of accessible heart rates can be frequencies similar to the frequency of strokes or steps. This makes a measure of the frequency of the PPG signal provide random values of frequencies related to the superposition of the signals due to the heart rate and the movements performed.
- the method comprises generating a spectrum of amplitude of the signal over a range of data measured during the last seconds (time window) and recalculating it frequently, obtaining a diagram known as spectrogram of the measured signal.
- each of the generated spectra is examined to extract the information from the spectral lines present, eliminating noise.
- a novel algorithm associates each line with its fundamental; The set of lines is compared with the pattern provided for the useful signal (low harmonic content) so that it can be distinguished from the others.
- the amplitude information of the pulsatile signal is obtained directly from the value of the selected spectral lines.
- this block executes a fast Fourier transform, providing at its output a signal constituted by the spectral power density spectrum of the signal in a time window T 0 ;
- This type of signal is usually called a "spectrogram.” From this spectrogram, only the M points corresponding to interesting frequencies for the type of application will be considered, including between 30 and 330 beats per minute (ppm), which are represented by Fig. 2.
- This block corresponds to stage b ) mentioned above.
- Peak detection deals with the identification of the spectral "lines" present in the signal provided by the previous block. Due to both the intrinsic presence of electronic noise and electromagnetic interference, as well as the artifacts introduced by the numerical elaboration of the spectrogram itself, it is necessary to identify the so-called here "significant peaks” to separate them from noise.
- This block corresponds to the stage c) mentioned above and, as indicated, is applied to part of the spectral signals, specifically to those represented by said M points.
- the search is "refined", locating for each section, which has been chosen in the previous step, the real maximum in the complete diagram. 4.
- the peaks with value that is to say energy, are discarded below VMAX I KS, where K s is the expected level of noise in the measurement (typically around 2OdB).
- Step 2 manages to reject, as separate peaks, mathematical artifacts that generate two apparent peaks very close in the spectrogram; This is due, for example, to the interaction between the FFT algorithm and the filtering window (square, Hamming, Hanning, etc.) used before said algorithm.
- Step 3 recovers (in part) the resolution in frequency, and step 4 eliminates very low local peaks generated by noise.
- Harmonics in this block the search of lines that probably belong to the same signal is carried out. The algorithm is based on comparing the spectral lines between them, two by two, calculating the quotient where the first frequency is the highest of the pair of peaks under examination. This fraction is used as input in a harmonic probability function l (x), whose shape is stylized in the graph of Figure 3. The output of this function has been called in the previous section, as the first parameter.
- the output of said function indicates the probability for the frequency f A of being a harmonic of the frequency f B.
- This method repeated for each frequency, allows identifying which of the lines identified are the most likely to be fundamental, the harmonic content of them (sum of the values of the frequencies that are likely harmonic), and a reliability index of said evaluation (product of the l (x) of said harmonics).
- this block also analyzes peaks two to two, providing a coefficient that expresses how much each peak is more significant, in energy, than the other.
- This coefficient is called the preponderance of the major peak over the minor peak, and is calculated with a preponderance function that has the appearance shown in Figure 4. The output of this function has been called in the previous section, as the second parameter.
- this block analyzes the history of the value of the chosen peak, in previous moments, as a "valid" peak of the photoplethysmographic signal. If in the previous step a peak had been selected by the final block with a confidence coefficient (see following description) equal to one or very close, and in the new spectrogram a peak was found very close to it, this peak is presented to the next block as a candidate with high probability to be the new "good” peak.
- the probability assigned is the confidence value devalued by a D coefficient (between 10 and 50%). The output of this function has been called in the previous section, as the third parameter.
- this block makes the decision of which is the peak that represents the fundamental harmonic of the photoplethysmographic signal based on the information provided by the previous blocks. He is responsible for carrying out the aforementioned stage e).
- the candidate is determined by harmonics: with all the frequencies that the "Harmonics" block has determined as fundamental, an ordered list is prepared with the decreasing harmonic content. An increasing probability (the higher the lower the harmonic content) is then assigned to said frequencies if the chosen frequency is. The probability is weighted with the amplitude of the fundamental, removing "merits" to very weak signals. The peak with the highest probability is the candidate peak for harmonics.
- a candidate is determined by preponderance: it is the highest peak, with its probability, provided by the "Energy" block.
- the candidate is chosen as a "good” peak, with a confidence coefficient given by the product of the three associated probabilities.
- the peak with the highest probability is chosen. From these data, the heart rate (the horizontal coordinate of the fundamental peak chosen) is calculated, and the amplitude data of the photoplethysmographic signal necessary to calculate the oxygen saturation.
- Fig. 5 a flow chart of the steps of the proposed method is shown, in detail, for another embodiment, which is explained below.
- the exemplary embodiment illustrated in said Fig. 5 is based on a system that acquires analog phototransmittance data with high sampling rate (from 2 to 4 lasers) to allow a simple analog anti-aliasing.
- Said acquisition Ia performs the block indicated as 2 in Fig. 5, and in particular said sampling rate is 1 kHz.
- the sampled data has been previously filtered in block 1.
- another filtering is performed, in this case an analog filtering of 4 or Bessel order (to maintain the information in the form of the pulses a filter with linear phase is used) and a decimation of the data up to 100 Sa / s per channel.
- an analog filtering of 4 or Bessel order to maintain the information in the form of the pulses a filter with linear phase is used
- decimation of the data up to 100 Sa / s per channel.
- the determination of the data of interest which are the heart rate (indicated in Fig. 5 as PPM) and the pulsatile and continuous components of the signal of each laser.
- a confidence factor C is calculated with each strategy, which estimates the significance of the value obtained.
- An FFT is performed on a window of the last 10 seconds of filtered and decimated data (block 4).
- An identification of an NP number of main peaks (from 3 to 7 peaks) is made (block 8)
- An estimation of the pulsatile amplitude in the time domain is made, using the noise estimate as a confidence factor (block 6).
- An estimate of the average value of the signal is made, by means of a low-pass filter at 0.1 Hz and a delay to synchronize the filters (no trust value is needed), by block 7.
- the new PPM value for the current measurement is selected, using an empirical algorithm that chooses the measurement with better confidence as long as you have no confidence less than the previous measurement , in which case the other is maintained.
- the latter also responsible for calculating the oxygen saturation based on the comparison of all the pulsatile values of the lasers with which it has been emitted to obtain the photoplethysmographic signals, using average method and of maximum confidence to choose the correct value.
- a series of instructions of a computer program are included, in the C language of LabWindows / CVr, which is developed in Appendices A and B, and that implements the proposed method according to the first aspect of this invention.
- the group of instructions included in the two appendices A and B constitute the core for calculating the heart rate of the oximeter implemented by the inventors, and proposed by the second aspect of the invention.
- the program receives the data in time in a channel through the function add_fft_points () (called by the main program of the instrument) and accumulates them in a cyclic buffer; As soon as it obtains the necessary points (FFT_POINTS, defined in the cardfft.h file) it emits a signal to the main program that calls the routing compute_fft_hb () that performs the calculation described above.
- APPENDIX B CARDIAC FREQUENCY CALCULATION PROGRAM - CARDFFT.C tinclude ⁇ analysis.h> tinclude ⁇ ansi_c.h> tinclude "cardfft.h"
- double heu_good_max (double vmax, double vnextmax) ⁇ // sqrt () is for the power spectra return only_pos (1-sqrt (heu_goodmax_factor * vmax / vnextmax)); ⁇ void initialize_fft (double samplerate, double p_bpm_min, double p_bpm_max) ⁇ int i;
- timestep l / samplerate; / * from * measure.h
- FFT_DUE_AFTER FFT_POINTS - FFT_OVERLAP
- Chl_data [i] is the first unused data now ...
- points_read + NumPoints - FFT_DUE_AFTER; return FFT_READY; ⁇
- first_n_power_spectrum (double ** x_out, double ** y_out, int * n_min, int * n_max) ⁇ // NOTE: it destroys time_chl! ! !
- double smooth [FFT_POINTS]; // too big, but uf ... int ngroups, i_realmax; double s, realmax; double smoothed_maxs_v [4]; // one more than the interesting int smoothed_maxs_i [4]; int s_max_found 0; double real_maxs_v [3]; int real_maxs_i [3];
- ngroups (int) ((i_bpm_max-i_bpm_min) / heu_groups) -1;
- heu_max_win_threshold p_heu_max_win_threshold
- heu_cutoff p_heu_cutoff
- heu_d.00ness_factor p_heu_d.00ness_factor
Landscapes
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Surgery (AREA)
- Veterinary Medicine (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Heart & Thoracic Surgery (AREA)
- Medical Informatics (AREA)
- Molecular Biology (AREA)
- Pathology (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Cardiology (AREA)
- Physiology (AREA)
- Optics & Photonics (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
Abstract
El método comprende: a) Recibir unas señales eléctricas fotopletismográficas con dominio temporal, b) Transformar dichas señales temporales en señales espectrales, c) Identificar una serie de picos candidatos a pico producido a la frecuencia cardiaca, d) Obtener una serie de parámetros a partir de dichos picos candidatos, y e) Determinar a partir de dichos parámetros cuál es el pico representativo de dicha frecuencia cardiaca, realizándose dicha etapa d) para obtener un primer, un segundo y un tercer parámetros mediante unos cálculos ejecutados en paralelo, siendo: - dicho primer parámetro resultante de una función de probabilidad de armónicos de dichos picos candidatos, - dicho segundo parámetro resultante de una función de preponderancia, en energía, de dichos picos candidatos, y - dicho tercer parámetro resultante de una función de análisis histórico de dichos picos candidatos.
Description
TITULO
MÉTODO PARA PROCESAR SEÑALES FOTOPLETISMOGRÁFICAS OBTENIDAS DE UNA PERSONA O ANIMAL, Y OXÍMETRO QUE UTILIZA DICHO MÉTODO
Sector de Ia técnica
La presente invención concierne en general, en un primer aspecto, a un método para obtener parámetros fisiológicos en tiempo real a partir de unas señales fotopletismográficas (PPG) medidas por sensores ópticos, y en particular a un método para obtener el valor del ritmo cardiaco a partir de esas señales fotopletismográficas, incluso en situaciones extremas como es durante Ia realización continua de movimientos durante Ia práctica de ejercicios.
La invención también concierne, en un segundo aspecto, a un oxímetro apto para procesar señales fotopletismográficas según el método propuesto.
Estado de Ia técnica anterior
Es conocido que una de las mayores dificultades de Ia oximetría de pulso es Ia obtención de valores fiables del ritmo cardiaco y Ia saturación de oxígeno durante Ia realización de movimientos por parte del individuo. La oximetría de pulso se basa en Ia medida de Ia radiación luminosa en dos longitudes de onda determinadas después de interaccionar con Ia sangre arterial, Ia sangre venosa y el resto de tejidos existentes en Ia zona de medida. Se utiliza generalmente radiación en Ia zona del rojo e infrarrojo cercano y en configuración por reflexión o transmisión. La variación del volumen de sangre en las arterias por el bombeo del corazón permite obtener una señal luminosa variable relacionada con el ritmo cardiaco y con Ia hemoglobina. Los oxímetros de pulso existentes según propia experiencia y los datos obtenidos en Ia literatura ofrecen un valor del ritmo cardiaco falso durante Ia práctica de ejercicio. Esto se debe a que el movimiento del individuo o de alguna parte de su cuerpo provoca Ia aparición de artefactos en Ia señal fotopletismográfica medida por el sensor del oxímetro de pulso. La realización continua de movimientos, como es el caso durante Ia práctica de ejercicios, hace que en general no se obtengan valores fiables del ritmo cardiaco
o de la saturación de oxígeno. Esta limitación no permite el uso fiable de los oxímetros de pulso durante el ejercicio, impidiendo Ia medida de estos parámetros que serían de gran utilidad durante Ia práctica deportiva y principalmente durante el entrenamiento. Se conocen diferentes propuestas relativas al procesamiento de señales fotopletismográficas con el fin de averiguar información relativa a una condición fisiológica de un paciente, preferentemente Ia frecuencia cardiaca y Ia saturación de oxígeno.
La solicitud US-A-20040171948 concierne a un método para procesar señales fotopletismográficas en diferentes dominios: temporal, espectral y cepstral, y en base a los resultados de los análisis de las señales en uno o más de dichos dominios, estimar una o más condiciones fisiológicas de un paciente, así como los artefactos de movimiento en el dominio temporal incluidos en Ia señal fotopletismográfica. La solicitud US-A-20030163032 concierne a un método para eliminar artefactos de movimiento de unas señales eléctricas representativas de unas señales de luz atenuada, tales como las correspondientes a unas señales fotopletismográficas, mediante Ia transformación de dichas señales en un dominio espectral, Ia identificación de unos picos candidatos de entre los datos espectrales de dichas señales, su correspondiente filtrado, y su análisis en base a una serie de parámetros para finalmente averiguar el pico correspondiente a Ia frecuencia cardiaca del paciente cuyas señales fotopletismográficas son objeto de análisis.
Aparece necesario ofrecer una alternativa al estado de Ia técnica enfocada a averiguar de una manera fiable y en todo momento Ia frecuencia cardiaca de una persona o animal mediante el análisis de unas señales fotopletismográficas contaminadas con interferencias o artefactos, especialmente los producidos en situaciones de movimiento continuo, o con múltiples estados de transición, como los llevados a cabo durante Ia práctica de ejercicio físico.
Explicación de Ia invención
La presente invención concierne, en un primer aspecto, a un método para procesar señales fotopletismográficas obtenidas por un sensor de un oxímetro de pulso, mediante Ia aplicación del cual es posible obtener de una manera fiable el ritmo cardiaco incluso cuando el individuo realiza ejercicios.
En un segundo aspecto, Ia presente invención concierne a un oxímetro adaptado para procesar señales fotopletismográficas según el método propuesto por el primer aspecto de Ia presente invención. El método propuesto según el primer aspecto de Ia presente invención tiene su aplicación en el procesamiento de señales fotopletismográficas obtenidas de una persona o animal, con el fin de averiguar como mínimo Ia frecuencia cardiaca del mismo.
En particular el método propuesto comprende emitir, sobre una zona irrigada por capilares sanguíneos, como puede ser un dedo u otro órgano de dicha persona o animal, dos o más señales luminosas para obtener en respuesta dichas señales fotopletismográficas, mediante Ia detección con al menos un fotodetector de dichas señales luminosas, una vez han atravesado dicha zona. Dichas señales luminosas emitidas proceden preferentemente de LEDs o láseres de distintas longitudes de onda, comprendidas entre 630 y 980 nm, siendo como mínimo una de ellas infrarroja.
El método es particularmente aplicable al procesamiento de señales fotopletismográficas que contienen armónicos de distintas frecuencias, algunos de los cuales han sido producidos por artefactos representativos del movimiento de dicha persona o animal, ya sea por movimiento de brazos, piernas y/o patas de dicha persona o animal, provocado al andar o correr, que generan unos armónicos a frecuencias distintas a Ia cardiaca, que varía según Ia intensidad de Ia marcha o carrera. Dicho movimiento provocado al andar o correr se genera, por ejemplo, al realizar una actividad deportiva que requiere medir frecuencias cardiacas en condiciones de esfuerzo continuado y extremo, muy diferentes a las medidas en condiciones de reposo.
Con el fin de discernir de entre dichas señales fotopletismográficas contaminadas por los mencionados artefactos producidos por el movimiento, cuál es Ia señal que hace referencia al ritmo cardiaco de Ia persona o animal, el método propuesto comprende realizar, según técnica en sí conocida, las siguientes etapas de manera secuencial: a) recibir unas señales eléctricas fotopletismográficas en un dominio temporal, b) transformar dichas señales temporales en señales con un dominio en frecuencia, o señales espectrales, c) identificar una serie de picos candidatos a ser el pico producido a dicha frecuencia cardiaca, de entre parte o todas dichas señales espectrales, d) obtener una serie de parámetros a partir de dichos picos candidatos, y e) determinar a partir de al menos uno de dichos parámetros obtenidos en d) cuál es el pico representativo de dicha frecuencia cardiaca, o pico buscado. El método propuesto por el primer aspecto de Ia presente invención comprende realizar dicha etapa d) para obtener como mínimo un primer y un segundo parámetros mediante unos cálculos realizados en paralelo, siendo:
- dicho primer parámetro resultante de una función de probabilidad de armónicos de dichos picos candidatos, consistente en una comparación, dos a dos, de los mismos, que ofrece como resultado una serie de valores para el primer parámetro, y
- dicho segundo parámetro resultante de una función de preponderancia, en energía, de dichos picos candidatos, consistente en una comparación, dos a dos, de los mismos, que ofrece como resultado una serie de valores para el segundo parámetro.
El método propuesto comprende por último asignar, en dicha etapa e), a dicho pico determinado como representativo de dicha frecuencia cardiaca un coeficiente de confianza.
Para un ejemplo de realización preferida el método comprende además realizar dicha etapa d) para un tercer parámetro a obtener en base a unos cálculos realizados en paralelo con los realizados para obtener dichos primer y segundo parámetros, siendo dicho tercer parámetro resultante de una función de análisis histórico de dichos picos candidatos, consistente en una
comparación de al menos el pico determinado como representativo de Ia frecuencia cardiaca en dicha etapa e), para un ciclo anterior, el cual tiene asignado un coeficiente de confianza de un valor alto, con dichos picos candidatos, para buscar el pico de Ia misma frecuencia o de Ia frecuencia más próxima a Ia de dicho pico determinado en dicha etapa anterior e), y asignarle un coeficiente de probabilidad de que sea el pico buscado resultado de devaluar dicho coeficiente de confianza alto en un porcentaje determinado que es inversamente proporcional a Ia cercanía de ambas frecuencias.
Por Io que se refiere a dicha etapa e), el método conforme a una implementación preferida comprende llevarla a cabo mediante su división en dos sub-etapas:
- una primera sub-etapa e.1 ), o etapa de preselección, consistente en analizar los valores obtenidos para como mínimo dichos primer y segundo parámetros, y preferentemente también dicho tercer parámetro, y seleccionar un único pico candidato para cada parámetro, en función de dicho análisis, y
- una sub-etapa e.2) o selección final para determinar, de entre cada pico seleccionado por cada parámetro, dicho pico representativo de dicha frecuencia cardiaca, o pico buscado.
Para un ejemplo de realización preferido, dicha sub-etapa e.1) comprende:
- para seleccionar el pico candidato para el primer parámetro:
• ordenar, en función de su contenido armónico, los picos determinados como pertenecientes a frecuencias fundamentales, en base a los valores obtenidos tras dicha comparación de dicha función de probabilidad de armónicos,
• asignarles un coeficiente de probabilidad a cada uno de ellos tanto mayor cuanto menor sea su contenido armónico,
• ponderar dichos coeficientes de probabilidad de cada uno de los picos con Ia amplitud de sus respectivas fundamentales, y • determinar el pico con probabilidad más alta como el pico candidato para el primer parámetro,
- para seleccionar el pico candidato para el segundo parámetro:
• determinar el pico determinado como más preponderante previa asignación de un coeficiente de probabilidad, en base a los valores obtenidos tras dicha comparación de dicha función de preponderancia, como el pico candidato para el segundo parámetro.
- para seleccionar el pico candidato para el tercer parámetro:
• determinar dicho pico de Ia misma frecuencia o de Ia frecuencia más próxima a Ia de dicho pico determinado en dicha etapa anterior e), como el pico candidato para el tercer parámetro.
Y para realizar dicha etapa e.2), el método propuesto comprende llevar a cabo las siguientes acciones:
- si los tres picos candidatos para los tres parámetros son el mismo, seleccionar éste como pico buscado, y asignarle un coeficiente de confianza igual al producto de los tres coeficientes de probabilidades asociados, ó
- si solamente dos de los tres picos candidatos para los tres parámetros son el mismo, seleccionar éste como pico buscado, si Ia suma de los dos coeficientes de probabilidades asociados es mayor que el coeficiente de probabilidad del pico candidato diferente a dichos dos picos coincidentes, ó
- si ninguno de los tres picos candidatos para los tres parámetros son el mismo, seleccionar el pico candidato cuyo coeficiente de probabilidad sea mayor como pico buscado. Una vez determinada Ia frecuencia cardiaca, el método comprende calcular el nivel de saturación de oxígeno en base a una o más de dichas señales fotopletismográficas cuya frecuencia es Ia de dicho pico buscado determinado en Ia etapa e).
La presente invención concierne, en un segundo aspecto, a un oxímetro del tipo que comprende como mínimo:
- dos emisores de señales luminosas de distintas longitudes de onda, adaptados para emitir sobre una zona irrigada por capilares sanguíneos de una persona o animal,
- uno o más fotodetectores adaptados para detectar dichas señales luminosas, una vez han atravesado dicha zona irrigada por capilares sanguíneos, y
- un sistema electrónico apto para como mínimo muestrear, tratar y procesar unas señales eléctricas provinentes de dicho o dichos fotodetectores, o señales fotopletismográficas.
El oxímetro propuesto según el segundo aspecto de Ia presente invención se caracteriza porque el mencionado sistema electrónico que incorpora está adaptado para procesar dichas señales fotopletismográficas para poner en práctica el método propuesto por el primer aspecto de Ia presente invención, es decir que incorpora medios específicos destinados a realizar los cálculos y/o tratamientos de las señales adquiridas, gestión de parámetros, etc.
Breve descripción de los dibujos Las anteriores y otras características se comprenderán mejor a partir de
Ia siguiente descripción detallada de unos ejemplos de realización con referencia a los dibujos adjuntos, en los que:
La Fig. 1 es un diagrama de flujos ilustrativo de las etapas principales del método propuesto según el primer aspecto de Ia presente invención para un ejemplo de realización,
La Fig. 2 es una gráfica que muestra parte del contenido espectral de una señal fotopletismográfica contaminada con señales de ruido o artefactos de movimiento, para un ejemplo de realización,
La Fig. 3 es una gráfica relativa a una función de probabilidad de armónico l(x), cuyo resultado es el mencionado primer parámetro, para un ejemplo de realización,
La Fig. 4 es una gráfica relativa a una función de preponderancia p(x), cuyo resultado es el mencionado segundo parámetro, para un ejemplo de realización, y La Fig. 5 es un diagrama de flujos de las etapas del método propuesto, más detallado que el de Ia Fig. 1 , para un ejemplo de realización.
Descripción detallada de unos ejemplos de realización
El método para obtener el ritmo cardiaco durante Ia realización de ejercicios se basa en Ia obtención de Ia frecuencia de Ia parte variable de Ia señal fotopletismográfica (PPG). En el caso de un individuo en reposo las variaciones periódicas de intensidad del PPG sólo son debidas a las variaciones de absorción de Ia señal por Ia sangre arterial asociadas a Ia variación del volumen sanguíneo por el bombeo cardiaco. Esta medida se realiza, en general, mediante Ia realización de Ia transformada rápida de Fourier (FFT) a Ia señal PPG. La realización de movimientos del individuo, como por ejemplo durante Ia carrera, conlleva Ia aparición de señales (artefactos) periódicas, que en el intervalo de frecuencias cardiacas accesibles pueden ser de frecuencias parecidas a Ia frecuencia de braceo o pasos. Esto hace que una medida de Ia frecuencia de Ia señal PPG proporcione unos valores aleatorios de frecuencias relacionadas con Ia superposición de las señales debidas al ritmo cardiaco y a los movimientos realizados.
Para discriminar entre Ia señal útil (fotopletismográfica) y Ia señal debida a artefactos de movimiento, para Ia concepción del método propuesto según el primer aspecto de Ia presente invención se ha utilizado una estrategia basada en Ia discriminación del contenido armónico de dichas señales. Las señales se pueden, de hecho, considerar periódicas en intervalos de unas decenas de segundos; Ia forma de onda de Ia señal fotopletismográfica es más o menos triangular y Ia de los artefactos de movimiento (según Io observado en medidas reales) resulta de tipo impulsivo o por Io menos con variaciones mucho más rápidas que en Ia primera. Este hecho se refleja en un contenido armónico mucho menor para Ia señal útil que para Ia señal no deseada, cosa que permite en principio separarlas e identificarlas.
Para un ejemplo de realización, el método comprende generar un espectro de amplitud de Ia señal sobre un intervalo de datos medidos durante los últimos segundos (ventana temporal) y recalcularlo frecuentemente, obteniendo un diagrama conocido como espectrograma de Ia señal medida. En paralelo, se examina cada uno de los espectros generados para extraer Ia información de las líneas espectrales presentes, eliminando el ruido. Finalmente,
un algoritmo novedoso asocia cada línea con su fundamental; el conjunto de líneas se compara con el patrón previsto para Ia señal útil (bajo contenido armónico) de forma que ésta se pueda diferenciar de las otras. La información de amplitud de Ia señal pulsátil se obtiene directamente del valor de las líneas espectrales seleccionadas.
En detalle, el algoritmo mencionado se basa sobre el diagrama de flujos mostrado en Ia figura 1 , representativo de las etapas principales del método propuesto según el primer aspecto de Ia presente invención para un ejemplo de realización.
A continuación se explica cada uno de los bloques del diagrama de Ia Fig. 1 , y su relación con las etapas del método propuesto, expuestas arriba:
Flujo de datos: éste es el flujo de datos (valores de Ia función fotopletismográfica en función del tiempo), muestreado a una oportuna velocidad, que entran en Ia unidad de cálculo. En estos datos se selecciona una ventana de N puntos de una duración T0 predeterminados. Este bloque corresponde a Ia etapa a) mencionada arriba.
FFT: este bloque ejecuta una transformada rápida de Fourier, proporcionando a su salida una señal constituida por el espectro de densidad espectral de potencia de Ia señal en una ventana de tiempo T0; este tipo de señal se suele llamar "espectrograma". De este espectrograma se considerarán solo los M puntos que corresponden a frecuencias interesantes para el tipo de aplicación, incluidas entre 30 y 330 latidos por minuto (ppm), los cuales se encuentran representados por Ia Fig. 2. Este bloque corresponde a Ia etapa b) mencionada arriba.
Detección de picos: este bloque se ocupa de Ia identificación de las "líneas" espectrales presentes en Ia señal proporcionada por el bloque anterior. Debido tanto a Ia presencia intrínseca de ruido electrónico y de interferencia electromagnética, como a los artefactos introducidos por Ia elaboración numérica del espectrograma mismo, es necesario identificar los denominados
aquí "picos significativos" para separarlos del ruido. Este bloque corresponde a Ia etapa c) mencionada arriba y tal y como se ha indicado se aplica a parte de las señales espectrales, en concreto a las representadas por los mencionados M puntos.
La mencionada detección de picos se efectúa en cuatro pasos:
1. En el primer paso se identifica el valor más alto presente en el diagrama o espectrograma, Io cual permite obtener una escala general del diagrama; se denominará a este valor VMAX (ver Fig. 2). 2. En el segundo paso se dividen, a Io largo del eje horizontal, los datos del diagrama en secciones, cada una de ellas con P puntos
(típicamente P es un número pequeño entre 3 y 9), y a cada sección se Ie asocia el valor medio de Ia amplitud del espectro en los puntos que Ia componen. Se denominará al diagrama obtenido "diagrama reducido". Sobre este diagrama se actúa con un algoritmo clásico de búsqueda de mínimos locales.
3. En el tercer paso se "afina" Ia búsqueda, localizando para cada sección, que ha resultado elegida en el paso anterior, el máximo real en el diagrama completo. 4. Al final, se descartan los picos con valor, es decir energía, por debajo de VMAX I KS, siendo Ks el nivel esperado de ruido en Ia medida (típicamente alrededor de 2OdB).
El paso 2 consigue rechazar, como picos separados, artefactos matemáticos que generan dos picos aparentes muy cercanos en el espectrograma; esto es debido, por ejemplo, a Ia interacción entre el algoritmo FFT y Ia ventana de filtrado (cuadrada, Hamming, Hanning, etc.) utilizada antes de dicho algoritmo. El paso 3 recupera (en parte) Ia resolución en frecuencia, y el paso 4 elimina picos locales de valor muy bajo generados por el ruido.
Un típico resultado de Ia aplicación de dicho algoritmo se encuentra indicado en Ia gráfica de Ia figura 2, donde los picos con el círculo en línea continua se han seleccionado como "válidos", y aquellos que aparecen en línea discontinua como "ruido".
La salida del bloque "Detección de picos" es una lista ordenada de pares (frecuencia, valor) que identifica los picos. Estos datos se envían, en paralelo, a tres bloques separados, que son los siguientes.
Armónicos: en este bloque se efectúa Ia búsqueda de líneas que probablemente pertenecen a Ia misma señal. El algoritmo se basa en comparar las líneas espectrales entre ellas, dos a dos, calculando el cociente
donde Ia primera frecuencia es Ia mayor de Ia pareja de picos en examen. Esta fracción se usa como entrada en una función de probabilidad de armónico l(x), cuya forma es estilizada en Ia gráfica de Ia figura 3. La salida de esta función se ha dado en llamar en el apartado anterior, como primer parámetro.
La salida de dicha función indica Ia probabilidad para Ia frecuencia fA de ser un armónico de Ia frecuencia fB. Este método, repetido para cada frecuencia, permite identificar cuales de las líneas identificadas son las que tienen más probabilidad de ser fundamentales, el contenido armónico de ellas (suma de los valores de las frecuencias que resultan probables armónicos), y un índice de fiabilidad de dicha evaluación (producto de las l(x) de dichos armónicos).
Energía: este bloque también analiza los picos dos a dos, proporcionando un coeficiente que expresa cuanto cada pico es más significativo, en energía, del otro. Este coeficiente se llama preponderancia del pico mayor sobre el pico menor, y se calcula con una función de preponderancia que tiene el aspecto que se muestra en Ia figura 4. La salida de esta función se ha dado en llamar en el apartado anterior, como segundo parámetro.
Historia: este bloque analiza Ia historia del valor del pico elegido, en instantes anteriores, como pico "valido" de Ia señal fotopletismográfica. Si en el paso anterior un pico había sido seleccionado por el bloque final con un coeficiente de confianza (ver descripción siguiente) igual a uno o muy cercano, y en el nuevo espectrograma se ha encontrado un pico muy cercano a él, este pico viene presentado al bloque siguiente como un candidato con alta probabilidad para ser el nuevo pico "bueno". La probabilidad que se Ie asigna es el valor de confianza
devaluado por un coeficiente D (entre 10 y 50%). La salida de esta función se ha dado en llamar en el apartado anterior, como tercer parámetro.
Heurístico: este bloque toma Ia decisión de cual es el pico que representa el armónico fundamental de Ia señal fotopletismográfica basándose sobre Ia información proporcionada por los bloques anteriores. Es el encargado de llevar a cabo Ia anteriormente mencionada etapa e).
Comprende con una serie de pasos, siendo los siguientes los concernientes a Ia mencionada sub-etapa e.1 ):
• Se determina el candidato por armónicos: con todas las frecuencias que el bloque "Armónicos" ha determinado como fundamentales, se prepara una lista ordenada con el contenido armónico decreciente. Se asigna entonces una probabilidad creciente (tanto más alta cuanto menor sea el contenido armónico) a dichas frecuencias de ser Ia frecuencia elegida. Se pondera Ia probabilidad con Ia amplitud de Ia fundamental, quitando "méritos" a señales muy débiles. El pico con probabilidad más alta es el pico candidato por armónicos.
• Se determina un candidato por preponderancia: es el pico más alto, con su probabilidad, proporcionado por el bloque "Energía".
• Se determina el candidato por historia, proporcionado por el bloque "Historia".
Y siendo los siguientes pasos, o criterios, los concernientes a Ia anteriormente explicada sub-etapa e.2), y llevados a cabo para determinar el pico que representa el armónico fundamental de Ia señal fotopletismográfica (pico "bueno") son los siguientes:
1. Si los tres candidatos coinciden, el candidato es elegido como pico "bueno", con un coeficiente de confianza dado por el producto de las tres probabilidades asociadas.
2. Si dos de ellos coinciden, se elige este dato siempre y cuando Ia suma de las dos probabilidades asociadas sea mayor que Ia tercera;
3. En cualquier otro caso se elige el pico que presenta máxima probabilidad.
A partir de estos datos se calculan Ia frecuencia cardiaca (Ia coordenada horizontal del pico fundamental elegido), y los datos de amplitud de Ia señal fotopletismográficas necesarios para calcular Ia saturación de oxígeno.
Para Ia ejecución del método propuesto mediante el oxímetro propuesto según el segundo aspecto de Ia presente invención, los numerosos coeficientes involucrados se ajustan de una vez por todas después de una serie de medidas, por comparación y calibración con un aparato comercial; especialmente fidedigna es Ia calibración del algoritmo que permite calcular Ia frecuencia cardiaca en cuanto el valor de referencia puede obtenerse de aparatos de ECG que garantizan alta precisión. Más compleja es Ia calibración del dato de saturación de oxígeno.
En Ia Fig. 5 se muestra un diagrama de flujos de las etapas del método propuesto, en detalle, para otro ejemplo de realización, el cual se explica a continuación. El ejemplo de realización ilustrado en dicha Fig. 5 está basado en un sistema que adquiere datos analógicos de fototransmitancia con alta velocidad de muestro (procedente de 2 a 4 láseres) para permitir un anti-aliasing analógico sencillo. Dicha adquisición Ia realiza el bloque indicado como 2 en Ia Fig. 5, y en concreto dicha velocidad de muestreo es de 1 kHz. Los datos muestreados han sido previamente filtrados en el bloque 1.
En el bloque indicado como 3 se realiza otro filtrado, en este caso un filtrado analógico de 4o orden de Bessel (para mantener Ia información de forma de los pulsos se utiliza un filtro con fase lineal) y una decimación de los datos hasta 100 Sa/s por canal. Tras dicho filtrado se utilizan varias estrategias en paralelo para llegar a
Ia determinación de los datos de interés, que son Ia frecuencia cardiaca (indicada en Ia Fig. 5 como PPM) y las componentes pulsátil y continua de Ia señal de cada láser.
Se calcula, además, con cada estrategia un factor de confianza C, que estime Ia significatividad del valor obtenido.
Se efectúa una FFT sobre una ventana de los último 10 segundos de datos filtrados y decimados (bloque 4).
Se realiza una identificación de un numero NP de picos principales (de 3 a 7 picos) (bloque 8)
Se realiza una estimación de los picos con más potencia, utilizando Ia diferencia entre el pico más potente y el segundo como factor de confianza (bloquelO).
Se realiza una estimación de Ia probabilidad de que cada pico sea parte del contenido armónico de Ia misma señal, utilizando el siguiente método (bloque 9), mediante las siguientes etapas: i. calcular para cada pareja de picos f1 , f2 una función de f1/f2 que tenga valor 1 en los enteros y rápidamente decreciente alrededor de ellos ii. comparar el resultado de esta función con un umbral prefijado iii. asignar un factor de confianza basado sobre Ia anterior comparación
Se realiza una estimación de Ia amplitud pulsátil en el dominio del tiempo, utilizando Ia estimación de ruido como factor de confianza (bloque 6).
Se realiza una estimación del valor medio de Ia señal, por medio de un filtrado paso-bajo a 0.1 Hz y un retraso para sincronizar los filtros (no se necesita valor de confianza), mediante el bloque 7.
Con todos los datos anteriores y el valor anterior elegido de PPM con su confianza, se selecciona el nuevo valor de PPM para Ia medida actual, utilizando un algoritmo empírico que elige Ia medida con mejor confianza siempre y cuando no tenga confianza menor que Ia medida anterior, en cual caso se mantiene Ia otra. Ello se realiza mediante el bloque 11 y el 12, este último encargado también de calcular Ia saturación de oxígeno basándose en Ia comparación de todos los valores pulsátiles de los láseres con los cuales se ha emitido para obtener las señales fotopletismográficas, utilizando método de promedio y de máxima confianza para elegir el valor correcto.
Un experto en Ia materia podría introducir cambios y modificaciones en los ejemplos de realización descritos sin salirse del alcance de Ia invención según está definido en las reivindicaciones adjuntas.
Ejemplo de implementación informático del método:
Como ejemplo de implementación del método propuesto se incluyen una serie de instrucciones de un programa informático, en lenguaje C propio de LabWindows/CVr, que se desarrolla en los apéndices A y B, y que implementa el método propuesto según el primer aspecto de Ia presente invención.
El grupo de instrucciones incluidas en los dos apéndices A y B constituyen el núcleo de cálculo de Ia frecuencia cardiaca del oxímetro implementado por los inventores, y propuesto por el segundo aspecto de Ia invención. El programa recibe los datos en el tiempo en un canal por medio de Ia función add_fft_points() (llamado por el programa principal del instrumento) y los acumula en un buffer cíclico; en cuanto consigue los puntos necesarios (FFT_POINTS, definidos en el fichero cardfft.h) emite una señal al programa principal que llama Ia routina compute_fft_hb() que realiza el cálculo descrito anteriormente.
' Nombre registrado por National Instrument, inc.
APÉNDICE A: PROGRAMA DE CÁLCULO DE FRECUENCIA CARDIACA - CARDFFT.H
tifndef _CARDFFT_H tdefine _CARDFFT_H
tdefine FFT_POINTS 2048 tdefine FFT_OVERLAP (1024+512+256)
tdefine FFT_NOTREADY 0 tdefine FFT_READY 1 tdefine FFT_NOTREADY_BUT_DUE 2
/* See the .c file for comments */
// Heuristic "guess" data formats
struct oneguess { int index; double freq; double valué; };
struct guesses { int n; struct oneguess guess [3]; // at most 3 guesses };
void initialize_fft (double samplerate, double bpm_min, double bpm_max) ;
int add_fft_points (double *Chl_data, double *Ch2_data, int NumPoints) ;
void first_n_power_spectrum (double ** x_out_array, double ** y_out_array, int * i_min, int * i_max) ;
void compute_fft_hb (double * hb, double * valué, int * index, double *confiance, struct guesses *report) ;
/* Tunables . */
/* There is a very BIG BUG in the LabWindows/CVI C implementation . Globals
var are cleared when first entering the module.
extern double heu_max_win_threshold; //= 2.5*2.5; extern double heu_cutoff; // = 10.0*10.0; extern double heu_doubliness_factor; // = 12; */
void set_doubliness_cutoff_maxwin (double p_heu_max_win_threshold, double p_heu_cutoff, double p_heu_doubliness_factor) ;
#endif
APÉNDICE B: PROGRAMA DE CÁLCULO DE FRECUENCIA CARDIACA - CARDFFT.C tinclude <analysis.h> tinclude <ansi_c.h> tinclude "cardfft.h"
double time_chl [FFT_POINTS] ; double time_accu_chl [FFT_POINTS] ; static int chl_cursor=0; static int have_good_fft_data=0;
/* FFT parameters and data */ double timespan, timestep, fmax, fstep; double bpm_min, bpm_max; int i_bpm_min, i_bpm_max; double fft_data[FFT_POINTS] ; double x fft data [FFT POINTS];
/* Euristics parameters and base functions */
/* NOTE: the LabWindows/CVI Spectrum() function returns a Power Spectrum and not a plain FFT like the one in PyNum packages. We have to adjust parameters for this. Confiance meaning is changed, too. */
// changing this parameters may be *really* dangerous. Hope you know what you ' re doing
static int heu_volta; /* Which round is this? */ static struct oneguess heu_last_guess; /* Last HB guess */ static double heu_last_conf=0; /* and its confiance */ static double heu_conf_doubleness_threshold = 0.5; /* Is this f double enough? */ static double heu_max_win_threshold = 2.5*2.5; /* If it's THAT bigger, win */ static double heu_cutoff = 10.0*10.0; /* Under this lies noise */ static double heu_doubliness_factor = 12; /* parameters of followin funes */ static int heu_groups = 5; /* maxs so near are really one max */ static double heu_goodmax_factor = 0.1*0.2; /* max dumping parameter */ static int heu_bpm_too_near_min = 2; /* too low, probably noise */ static double heu_oldval_conf_threshold = 0.75; /* conf threshold to check oíd valué */ static double heu_oldval_oldconf_threshold = 0.1;
/* under this, do not even consider oíd data */ static double heu_oldval_conf_dumping = 2; /* loss of confiance: factor */ static double heu_oldval_conf_loss = 0.1; /* like above, valué */ static double heu_oldval_max_rel_delta = 0.3; /* relative difference "suspicious" */ static double heu_oldval_max_abs_delta = 20; /* absolute (bpm) like above */
double only_pos (double x) { return (x>0)? x : 0;}
double heu_near_two (double x) { return only_pos (l-heu_doubliness_factor* (x-2) * (x-2) ) ; }
double heu_good_max (double vmax, double vnextmax) { // sqrt() is for the power spectra return only_pos (1-sqrt (heu_goodmax_factor*vmax/vnextmax) ) ; }
void initialize_fft (double samplerate, double p_bpm_min, double p_bpm_max) { int i;
/* zeroes the accumulators */ for (i=0;i<FFT_POINTS;i++) { time_chl [i]=0; time_accu_chl [i] =0; } chl_cursor=0;
/* Normally: timestep is 0.01 sec; timespan=2048*0.01; delta_f=l/ (0.01*2048) =0.0488 s=2.92 bpm. */
timestep=l/samplerate; /* from *measure.h
*/ timespan=timestep*FFT_POINTS; /* from cardfft.h */ fmax= (1/timestep) /2; fstep= (1/timespan) ;
/* The "interesting" frequency range is the following: bpm_min=30; bpm_max=250; */
/* Normally: 30 bpm = Índex 10
To: 250 bpm = Índex 85 (ejem... more or less) . */
bpm_min=p_bpm_min; bpm_max=p_bpm_max; i_bpm_min= (int) ( (bpm_min/60.0) /fstep) ; i_bpm_max= (int) ( (bpm_max/60.0) /fstep) ;
/* Build the x-axis-data (fixed) */
for (i=0;i<FFT_POINTS;i++) { x_fft_data[i]=(fstep*60) *i; }
have_good_fft_data=0; heu_volta=0; }
tdefine FFT_DUE_AFTER (FFT_POINTS - FFT_OVERLAP)
int add_fft_points (double *Chl_data, double *Ch2_data, int NumPoints) {
// ignore Ch2_data for now...
int i; static int points_read=0;
if (NumPoints + FFT_OVERLAP > FFT_POINTS - 1) { fprintf (stderr, "AYEEEEEE!!!! add_fft_points will fail horribly! ! !\n") ;
} if (Ch2_data) { fprintf (stderr, "HMMMM... I am ignoring other channel data for now! !\n"); }
if (chl_cursor + NumPoints < FFT_POINTS) {
// simply fill it and return with not ready flag memcpy (& (time_accu_chl [chl_cursor] ) , Chl_data, NumPoints*sizeof (double) ) ; chl_cursor += NumPoints; points_read += NumPoints; if (points_read <= FFT_DUE_AFTER) { return FFT_NOTREADY; } else { points_read -= FFT_DUE_AFTER; return FFT_NOTREADY_BUT_DUE;
} }
// Tricky part. // we have to fill time_accu till FFT_POINTS for (i=0; i+chl_cursor<FFT_POINTS; i++) time_accu_chl [chl_cursor+i] =Chl_data [i] ; // there *is* a better way
// Chl_data[i] is the first unused data now...
// ok, now move the data to the "good" vector:
memcpy (time_chl, time_accu_chl, FFT_POINTS*sizeof (double) );
// now prepare the accu vector with the overlap; memcpy (time_accu_chl, & (time_chl [FFT_POINTS-FFT_OVERLAP] ) ,
FFT_OVERLAP*sizeof (double) ) ; chl_cursor=FFT_OVERLAP;
// copy the remaining points for (; i<NumPoints; i++) { time_accu_chl [chl_cursor] =Chl_data [i] ; chl_cursor++; }
points_read += NumPoints - FFT_DUE_AFTER; return FFT_READY; }
/* Perform FFT on time_chl */
void first_n_power_spectrum(double ** x_out, double ** y_out, int * n_min, int *n_max) { // NOTE: it destroys time_chl ! ! !
Spectrum (time_chl, FFT_POINTS) ; memcpy (fft_data, time_chl, i_bpm_max*sizeof (double) );
*x_out=x_fft_data;
*y_out=fft_data; *n_min=i_bpm_min;
*n_max=i_bpm_max; have_good_fft_data=1;
}
void zeroes_two_vect (double *dv, int *iv, int n) { int j ; for (j=0; j<n;j++) { dv[j]=0; Iv[J]=O;
} }
void sort_two_vect_dec (double *dv, int *iv, int n) { // sort decreasing based on dv valúes, iv valúes are copied. int i,j; int ti; double td; for (i=0; Kn-I; i++) { for (j=i+l; j<n; j++) { if (dv[i]<dv[j] ) { // swap td=dv[i] ; ti=iv[i] ; dv[i]=dv[j] ; iv[i]=iv[j];
dv[j]=td; iv[j]=ti;
void sort_two_vect_inc (double *dv, int *iv, int n) {
// sort increasing based on dv valúes, iv valúes are copied. int i,j; int ti; double td;
for (i=0;i<n-l;i++) { for (j=i+l; j<n; j++) { if (dv[i]>dv[j]) { // swap td=dv[i] ; ti=iv[i] ; dv[i]=dv[j]; iv[i]=iv[j]; dv[j]=td; iv[j]=ti;
// FiIl my_guesses with the at most three máxima /* The FFT data is in the two arrays xdata and ydata.
Note!: it uses the global variables i_bpm_min, i_bpm_max to limit the search in the interesting zone!
*/
void compute_rel_max (double *xdata, double *ydata, struct guesses * out_guesses) {
int i,j,k,g; int m_found=0;
int i_absmax=0; double absmax=0;
double smooth[FFT_POINTS] ; // too big, but uf...
int ngroups, i_realmax; double s, realmax; double smoothed_maxs_v[4] ; // one more than the interesting int smoothed_maxs_i [4] ; int s_max_found=0; double real_maxs_v[3] ; int real_maxs_i [3] ;
// pass 1: find the absolute máximum
for (i=i_bpm_min; i<i_bpm_max; i++) { if (ydata [i] >absmax) { i_absmax=i; absmax=ydata [i] ; }
}
// Ok. Now found groups that have a relative significative máximum // build the smoothed and reduced vector
ngroups= (int) ( (i_bpm_max-i_bpm_min) /heu_groups) -1;
for (i=0;i<ngroups;i++) { s=0; for (k=0 ; k<heu_groups ; k++) s += ydata [i_bpm_min + heu_groups *i +
smooth [ i] =s/heu_groups ; }
// Ok. Now we have to find all the relevant relative max of smooth. // Relevant means : 1) greater than absmax/heu_cutoff // 2) at most three.
zeroes_two_vect (smoothed_maxs_v, smoothed_maxs_i, 4);
for (i=l;i<ngroups-l; i++) { if ( (smooth [i-1] <= smooth [i]) &&
(smooth [i] > smooth [i+1]) && (smooth [i] >absmax/heu_cutoff) ) { // we have a relative máximum to add
// s_max_found is kept at much at 3: if it's less than that, // the point is added; else, it's added in last position and // then the sort will ... sort it out smoothed_maxs_v [s_max_found] =smooth [i] ; smoothed maxs i[s max found] =i;
if (s_max_found<3) s_max_found++; sort_two_vect_dec (smoothed_maxs_v, smoothed_maxs_i, 4);
// Now we have to return to original points . For every max found, we // search for the absolute máximum.
out_guesses->n=s_max_found;
for (g=0;g<s_max_found;g++) {
// let start with guessing the first one. i_realmax=i_bpm_min + heu_groups*smoothed_maxs_i [g] ; realmax=ydata [i_realmax] ;
// sean into the group for (j=i_bpm_min + heu_groups*smoothed_maxs_i [g] +1; j<i_bpm_min + heu_groups* (smoothed_maxs_i [g] +1) ; j++) { if (ydata [ j] >realmax) { realmax=ydata [j ] ; i_realmax=j ; } } // we have the real max. Add it to real_max vector real_maxs_i [g]=i_realmax; real_maxs_v [g] =realmax; }
// we have to reorder them sort_two_vect_dec (real_maxs_v, real_maxs_i, s_max_found) ;
// now fill the out_guesses struct for (g=0;g<s_max_found; g++) { out_guesses->guess [g] . index=real_maxs_i [g] ; out_guesses->guess [g] . freq=xdata [real_maxs_i [g] ] ; out_guesses->guess [g] .value=ydata [real_maxs_i [g] ] ; }
// Finally. Protect ourself from the s_max_founds==0 // This happens if there is a peak too small. // Use the absmax in this case.
if (s_max_found==0) { out_guesses->n=l;
out_guesses->guess [0] . index=i_absmax; out_guesses->guess [0] . freq=xdata [i_absmax] ; out_guesses->guess [0] .value=ydata [i_absmax] ; }
// End of the game. In Python it was a 5-line function.
}
/* This function tests if two of the frequencies are one the double of the other.
If this is the case, return the other one.
We need three guesses to perform this test.
Returns a float with the "confiance factor [0,1]" of the test. */
double heu_test_for_doubliness (struct guesses * in_guesses, struct oneguess * out_guess) {
int i; double fl,f2,f3,d21,d31,d32; double freqs [3 ] ; int g_position [3 ] = { 0 , 1 , 2 } ;
if (in_guesses ->n ! = 3) { fprintf (stderr, "Error: heu_test_for_doubliness must be called with 3 guesses\n") ; return 0; }
// Guesses are ordered top-down with valúes. We need it ord'd with // frequencies.
for (i=0;i<3;i++) freqs [i]=in_guesses->guess [i] . freq; sort_two_vect_inc (freqs, g_position, 3) ;
d21=heu_near_two (freqs [1] /freqs [0] ) ; d31=heu_near_two (freqs [2] /freqs [0] ) ; d32=heu_near_two(freqs[2] /freqs [I]);
if ((d21>d31) && (d21>d32)) { // maybe f2 is fl*2... // so, the good guess is f3.
*out_guess = in_guesses->guess [g_position [2] ] ; return only_pos (d21-d31-d32) ;
}
if ((d31>d21) && (d31>d32)) { // maybe f3 is fl*2...
// so, the good guess is f2. *out_guess = in_guesses->guess [g_position [1] ] ; return only_pos (d31-d21-d32) ; }
if ((d32>=d21) && (d32>=d31)) { // maybe f3 is f2*2... // so, the good guess is f1.
*out_guess = in_guesses->guess [g_position [0] ] ; return only_pos (d32-d31-d21) ; }
fprintf (stderr, "Dropping out of heu_doubliness????\n") ; fprintf (stderr, "d21=%g\nd31=%g\nd32=%g\n", d21, d31, d32) ; return 0; }
/* Test if the candidate is good thanks to it's valué.
We need at least two guesses to test this. */
double heu_test_for_max (struct guesses * in_guesses, struct oneguess * out_guess) {
if (in_guesses->n < 2) { fprintf (stderr, "Error: heu_test_for_max must have >= 2 guesses\n") ; return 0;
}
// Guesses are ordered top-down with valúes. *out_guess = in_guesses->guess [0] ; return heu_good_max (in_guesses->guess [0] .valué, in_guesses- >guess [1] .valué) ; }
/* Main heartbeat heuristic function. Compute our best guess and returns the confiance factor. */
double heartbeat_heuristic (struct guesses * in_guesses, struct oneguess * out_guess) {
int n;
struct oneguess maxguess; struct oneguess dblguess; double maxconf, dblconf, outconf;
n= in_guesses->n; // commodity var
// If we have just one peak: return it. if (n==l) { *out_guess = in_guesses->guess [0] ;
// Confiance is high... outconf=1.0;
goto out;
}
// If we have two peaks : simply returns the highest, with it's confiance
if (n==2) { outconf = heu_test_for_max (in_guesses, out_guess) ; goto out; }
// Otherwise, we have three guesses.
dblconf=heu_test_for_doubliness (in_guesses, Sdblguess) ; maxconf=heu_test_for_max (in_guesses, Smaxguess) ;
if ( (dblconf>heu_conf_doubleness_threshold) && (dblconf>maxconf) &&
( (maxguess . value/dblguess .valué) <heu_max_win_threshold) ) { // Probably there is the movement artifact. Use the "doubliness" test. *out_guess = dblguess; outconf=dblconf; goto out; }
// else, our best bet is still the max. *out_guess=maxguess; outconf=maxconf;
// clean up and store last valué out :
// If this is too near low freq or too different from before, no if (out_guess->index <= i_bpm_min + heu_bpm_too_near_min) outconf=0.0;
// Is this data better than the past one?
if ( (heu_last_guess .freq != 0) && // if we have a last guess
(outconf < heu_oldval_conf_threshold) && // and this guess is no-good
(heu_last_conf > heu_oldval_oldconf_threshold) && // and last one was decent
(outconf < heu_last_conf ) && // and last was better, too (fabs (out_guess->freq - heu_last_guess . freq)
< heu_oldval_max_abs_delta) && // and absolute variation is big
(fabs ( (out_guess->freq - heu_last_guess . freq) /heu_last_guess . freq)
< heu_oldval_max_rel_delta) // and relative, too
) {
/* then use oíd valué, reducing confiance */ (*out_guess) = heu_last_guess; outconf=only_pos ( heu_last_conf/heu_oldval_conf_dumping-heu_oldval_conf_loss
);
}
heu_volta++; // keep track of how much guesses we have done heu_last_guess = (*out_guess) ; heu_last_conf=outconf;
return outconf; }
/* This is the only external function. Use the internal arrays FFT data and emits the best guess. It does not use struct to keep main unaware of the internáis . IN-parameters : none OUT-parameters : heartbeat guess, peak valué, index in fft_data vector, and confiance factor. A NULL pointer means don't care . */
void compute_fft_hb (double * hb, double * valué, int * index, double *confiance,
struct guesses *report) {
struct guesses fft_guesses; struct oneguess goodguess={ 0, 0, 0 } ; double conf=0;
if (have_good_fft_data==0) { fprintf (stderr, "compute_fft_hb called without good fftdata\n"); } else { compute_rel_max (x_fft_data, fft_data, &fft_guesses) ; conf=heartbeat_heuristic (&fft_guesses, Sgoodguess) ; }
if (hb) *hb=goodguess .freq; if (valué) *value=goodguess .valué; if (index) *index=goodguess .index; if (confiance) *confiance=conf; if (report) *report=fft_guesses; return; }
// Tunable set-up
void set_doubliness_cutoff_maxwin (double p_heu_max_win_threshold, double p_heu_cutoff, double p_heu_doubliness_factor) {
heu_max_win_threshold = p_heu_max_win_threshold; heu_cutoff = p_heu_cutoff; heu_doubliness_factor = p_heu_doubliness_factor;
}
Claims
1.- Método para procesar señales fotopletismográficas obtenidas de una persona o animal, con el fin de averiguar al menos Ia frecuencia cardiaca del mismo, siendo dicho método del tipo que comprende realizar las siguientes etapas de manera secuencial: a) recibir unas señales eléctricas fotopletismográficas en al menos un dominio temporal, b) transformar dichas señales temporales en señales con al menos un dominio en frecuencia, o señales espectrales, c) identificar una serie de picos candidatos a ser el pico producido a dicha frecuencia cardiaca, de entre al menos parte de dichas señales espectrales, d) obtener una serie de parámetros a partir de dichos picos candidatos, e) determinar a partir de al menos uno de dichos parámetros obtenidos en d) cuál es el pico representativo de dicha frecuencia cardiaca, o pico buscado, estando caracterizado dicho método porque comprende efectuar dicha etapa d) para obtener al menos un primer y un segundo parámetros mediante unos cálculos realizados en paralelo, siendo:
- dicho primer parámetro resultante de una función de probabilidad de armónicos de dichos picos candidatos, consistente en una comparación dos a dos de los mismos, que ofrece como resultado una serie de valores para el primer parámetro, y
- dicho segundo parámetro resultante de una función de preponderancia, en energía, de dichos picos candidatos, consistente en una comparación dos a dos de los mismos, que ofrece como resultado una serie de valores para el segundo parámetro.
2.- Método según Ia reivindicación 1 , caracterizado porque dicha etapa e) comprende asignar a dicho pico determinado como representativo de dicha frecuencia cardiaca un coeficiente de confianza.
3.- Método según Ia reivindicación 1 , caracterizado porque comprende además realizar dicha etapa d) para un tercer parámetro a obtener en base a unos cálculos efectuados en paralelo con los realizados para obtener dichos primer y segundo parámetros, siendo dicho tercer parámetro resultante de una función de análisis histórico de dichos picos candidatos, consistente en una comparación de al menos el pico determinado como representativo de Ia frecuencia cardiaca en dicha etapa e), para un ciclo anterior, el cual tiene asignado un coeficiente de confianza de un valor alto, con dichos picos candidatos, para buscar el pico de Ia misma frecuencia o de Ia frecuencia más próxima a Ia de dicho pico determinado en dicha etapa anterior e), y asignarle un coeficiente de probabilidad de que sea el pico buscado resultado de devaluar dicho coeficiente de confianza alto en un porcentaje determinado que es inversamente proporcional a Ia cercanía de ambas frecuencias.
4.- Método según Ia reivindicación 2 ó 3, caracterizado porque dicha etapa e) comprende una preselección o primera sub-etapa e.1 ) consistente en analizar los valores obtenidos para al menos dichos primer y segundo parámetros y seleccionar un único pico candidato para cada parámetro, en función de dicho análisis y una sub-etapa e.2) o selección final para determinar, de entre cada pico seleccionado por cada parámetro, dicho pico representativo de dicha frecuencia cardiaca, o pico buscado.
5.- Método según Ia reivindicación 4, caracterizado porque dicha sub- etapa e.1 ) se lleva a cabo para dichos primer, segundo y tercer parámetros.
6.- Método según Ia reivindicación 4 ó 5, caracterizado porque dicha sub- etapa e.1) comprende: - para seleccionar el pico candidato para el primer parámetro:
• ordenar, en función de su contenido armónico, los picos determinados como pertenecientes a frecuencias fundamentales, en base a los valores obtenidos tras dicha comparación de dicha función de probabilidad de armónicos, • asignarles un coeficiente de probabilidad a cada uno de dichos picos, tanto mayor cuanto menor sea su contenido armónico,
• ponderar dichos coeficiente de probabilidad de cada uno de los picos con Ia amplitud de sus respectivas fundamentales, y
• determinar el pico con probabilidad más alta como el pico candidato para el primer parámetro,
- para seleccionar el pico candidato para el segundo parámetro:
• determinar el pico determinado como más preponderante previa asignación de un coeficiente de probabilidad, en base a los valores obtenidos tras dicha comparación de dicha función de preponderancia, como el pico candidato para el segundo parámetro.
7.- Método según Ia reivindicación 6 cuando depende de Ia 5, caracterizado porque dicha sub-etapa e.1) comprende además para seleccionar el pico candidato para el tercer parámetro:
• determinar dicho pico de Ia misma frecuencia o de Ia frecuencia más próxima a Ia de dicho pico determinado en dicha etapa anterior e), como el pico candidato para el tercer parámetro.
8.- Método según Ia reivindicación 7, caracterizado porque comprende para realizar dicha etapa e.2) llevar a cabo las siguientes acciones:
- si los tres picos candidatos para los tres parámetros son el mismo, seleccionar dicho único pico como pico buscado, y asignarle un coeficiente de confianza igual al producto de los tres coeficientes de probabilidades asociados, ó
- si solamente dos de los tres picos candidatos para los tres parámetros son el mismo, seleccionar éste como pico buscado si Ia suma de los dos coeficientes de probabilidades asociados es mayor que el coeficiente de probabilidad del pico candidato diferente a dichos dos picos coincidentes, ó
- si ninguno de los tres picos candidatos para los tres parámetros son el mismo, seleccionar el pico candidato cuyo coeficiente de probabilidad sea mayor como pico buscado.
9.- Método según cualquiera de las reivindicaciones anteriores, caracterizado porque comprende calcular el nivel de saturación de oxígeno en base a una o más de dichas señales fotopletismográficas cuya frecuencia es Ia de dicho pico buscado determinado en Ia etapa e).
10.- Método según cualquiera de las reivindicaciones anteriores, caracterizado porque comprende emitir, sobre una zona irrigada por capilares sanguíneos, de dicha persona o animal, al menos dos señales luminosas para obtener en respuesta dichas señales fotopletismográficas recibidas en dicha etapa a), mediante Ia detección con al menos un fotodetector de dichas señales luminosas, una vez han atravesado dicha zona.
11.- Método según Ia reivindicación 10, caracterizado porque dichas señales luminosas emitidas, que son al menos dos, proceden de LEDs o Láseres de distintas longitudes de onda, comprendidas entre 630 y 980 nm, siendo al menos una de ellas infrarroja.
12.- Método según Ia reivindicación 1 , caracterizado porque dichas señales fotopletismográficas recibidas en a) contienen armónicos de distintas frecuencias, algunos de los cuales producidos por artefactos representativos del movimiento de dicha persona o animal.
13.- Método según las reivindicaciones 12, caracterizado porque dichos artefactos son representativos del movimiento de brazos, piernas y/o patas de dicha persona o animal, provocado al andar o correr, generando unos armónicos a otras frecuencias distintas a Ia cardíaca, que varía según Ia intensidad de Ia marcha o carrera.
14.- Oxímetro del tipo que comprende al menos: - dos emisores de señales luminosas de distintas longitudes de onda, adaptados para emitir sobre una zona irrigada por capilares sanguíneos de una persona o animal,
- al menos un fotodetector adaptado para detectar dichas señales luminosas, una vez han atravesado dicha zona irrigada por capilares sanguíneos,
- un sistema electrónico apto para al menos muestrear, tratar y procesar unas señales eléctricas provinentes de dicho fotodetector, que es al menos uno, o señales fotopletismográficas, estando dicho oxímetro caracterizado porque dicho sistema electrónico está adaptado para procesar dichas señales fotopletismográficas según un método de acuerdo a una cualquiera de las reivindicaciones anteriores.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES200501425A ES2276594B1 (es) | 2005-06-13 | 2005-06-13 | Metodo para procesar señales fotopletismograficas obtenidas de una persona o animal, y oximetro que utiliza dicho metodo. |
ESP20001425 | 2005-06-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2006134197A1 true WO2006134197A1 (es) | 2006-12-21 |
Family
ID=37533261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/ES2006/070080 WO2006134197A1 (es) | 2005-06-13 | 2006-06-12 | Método para procesar señales fotopletismográficas obtenidas de una persona o animal, y oxímetro que utiliza dicho método |
Country Status (2)
Country | Link |
---|---|
ES (1) | ES2276594B1 (es) |
WO (1) | WO2006134197A1 (es) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10986817B2 (en) | 2014-09-05 | 2021-04-27 | Intervet Inc. | Method and system for tracking health in animal populations |
US10986816B2 (en) | 2014-03-26 | 2021-04-27 | Scr Engineers Ltd. | Livestock location system |
US11071279B2 (en) | 2014-09-05 | 2021-07-27 | Intervet Inc. | Method and system for tracking health in animal populations |
USD990063S1 (en) | 2020-06-18 | 2023-06-20 | S.C.R. (Engineers) Limited | Animal ear tag |
USD990062S1 (en) | 2020-06-18 | 2023-06-20 | S.C.R. (Engineers) Limited | Animal ear tag |
US11832587B2 (en) | 2020-06-18 | 2023-12-05 | S.C.R. (Engineers) Limited | Animal tag |
US11832584B2 (en) | 2018-04-22 | 2023-12-05 | Vence, Corp. | Livestock management system and method |
US11864529B2 (en) | 2018-10-10 | 2024-01-09 | S.C.R. (Engineers) Limited | Livestock dry off method and device |
US11960957B2 (en) | 2020-11-25 | 2024-04-16 | Identigen Limited | System and method for tracing members of an animal population |
US12099893B2 (en) | 2020-07-01 | 2024-09-24 | S.C.R. (Engineers) Limited | Device assignment system and method |
US12144320B2 (en) | 2019-02-08 | 2024-11-19 | Allflex Australia Pty Ltd | Electronic animal identification tag reader synchronisation |
US12193413B2 (en) | 2019-02-08 | 2025-01-14 | Allflex Australia Pty Ltd | Electronic animal tag reader |
US12213449B2 (en) | 2021-01-24 | 2025-02-04 | S.C.R. (Engineers) Limited | Animal marking control system and method |
US12239098B2 (en) | 2019-02-08 | 2025-03-04 | Allflex Australia Pty Ltd | Determining the location of an animal |
USD1067554S1 (en) | 2021-04-08 | 2025-03-18 | Allflex Australia Pty Limited | Tag applicator for animals |
USD1067544S1 (en) | 2021-04-08 | 2025-03-18 | Allflex Australia Pty Limited | Tag applicator for animals |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009090293A1 (es) * | 2008-01-16 | 2009-07-23 | Consejo Superior De Investigaciones Cientificas | Sonda endoscopica con sensor opto-electronico para uso diagnostico y quirurgico |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001025802A2 (en) * | 1999-10-01 | 2001-04-12 | Ntc Technology Inc. | Method, apparatus and system for removing motion artifacts from measurements of bodily parameters |
US20030225337A1 (en) * | 2002-01-31 | 2003-12-04 | Dolphin Medical, Inc. | Separating motion from cardiac signals using second order derivative of the photo-plethysmogram and fast fourier transforms |
EP1506736A2 (en) * | 2003-08-11 | 2005-02-16 | Samsung Electronics Co., Ltd. | Apparatus and method for detecting blood flow signal free from motion artifact and stress test apparatus using the same |
WO2005020789A2 (en) * | 2003-08-21 | 2005-03-10 | Datex-Ohmeda, Inc. | Cepstral domain pulse oximetry |
WO2005020798A2 (en) * | 2003-08-27 | 2005-03-10 | Datex-Ohmeda, Inc. | Multi-domain motion estimation and plethysmographic recognition using fuzzy neural-nets |
-
2005
- 2005-06-13 ES ES200501425A patent/ES2276594B1/es not_active Expired - Fee Related
-
2006
- 2006-06-12 WO PCT/ES2006/070080 patent/WO2006134197A1/es active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050033129A1 (en) * | 1998-10-15 | 2005-02-10 | Edgar Reuben W. | Method, apparatus and system for removing motion artifacts from measurements of bodily parameters |
WO2001025802A2 (en) * | 1999-10-01 | 2001-04-12 | Ntc Technology Inc. | Method, apparatus and system for removing motion artifacts from measurements of bodily parameters |
US20030225337A1 (en) * | 2002-01-31 | 2003-12-04 | Dolphin Medical, Inc. | Separating motion from cardiac signals using second order derivative of the photo-plethysmogram and fast fourier transforms |
EP1506736A2 (en) * | 2003-08-11 | 2005-02-16 | Samsung Electronics Co., Ltd. | Apparatus and method for detecting blood flow signal free from motion artifact and stress test apparatus using the same |
WO2005020789A2 (en) * | 2003-08-21 | 2005-03-10 | Datex-Ohmeda, Inc. | Cepstral domain pulse oximetry |
WO2005020798A2 (en) * | 2003-08-27 | 2005-03-10 | Datex-Ohmeda, Inc. | Multi-domain motion estimation and plethysmographic recognition using fuzzy neural-nets |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11963515B2 (en) | 2014-03-26 | 2024-04-23 | S.C.R. (Engineers) Limited | Livestock location system |
US10986816B2 (en) | 2014-03-26 | 2021-04-27 | Scr Engineers Ltd. | Livestock location system |
US12213455B2 (en) | 2014-03-26 | 2025-02-04 | S.C.R. (Engineers) Limited | Livestock location system |
US11071279B2 (en) | 2014-09-05 | 2021-07-27 | Intervet Inc. | Method and system for tracking health in animal populations |
US10986817B2 (en) | 2014-09-05 | 2021-04-27 | Intervet Inc. | Method and system for tracking health in animal populations |
US11832584B2 (en) | 2018-04-22 | 2023-12-05 | Vence, Corp. | Livestock management system and method |
US11864529B2 (en) | 2018-10-10 | 2024-01-09 | S.C.R. (Engineers) Limited | Livestock dry off method and device |
US12133507B2 (en) | 2018-10-10 | 2024-11-05 | S.C.R. (Engineers) Limited | Livestock dry off method and device |
US12239098B2 (en) | 2019-02-08 | 2025-03-04 | Allflex Australia Pty Ltd | Determining the location of an animal |
US12144320B2 (en) | 2019-02-08 | 2024-11-19 | Allflex Australia Pty Ltd | Electronic animal identification tag reader synchronisation |
US12193413B2 (en) | 2019-02-08 | 2025-01-14 | Allflex Australia Pty Ltd | Electronic animal tag reader |
US12342790B2 (en) | 2020-06-18 | 2025-07-01 | S.C.R. (Engineers) Limited | Animal tag |
US11832587B2 (en) | 2020-06-18 | 2023-12-05 | S.C.R. (Engineers) Limited | Animal tag |
USD990062S1 (en) | 2020-06-18 | 2023-06-20 | S.C.R. (Engineers) Limited | Animal ear tag |
USD990063S1 (en) | 2020-06-18 | 2023-06-20 | S.C.R. (Engineers) Limited | Animal ear tag |
US12099893B2 (en) | 2020-07-01 | 2024-09-24 | S.C.R. (Engineers) Limited | Device assignment system and method |
US12321808B2 (en) | 2020-11-25 | 2025-06-03 | Identigen Limited | System and method for tracing members of an animal population |
US11960957B2 (en) | 2020-11-25 | 2024-04-16 | Identigen Limited | System and method for tracing members of an animal population |
US12213449B2 (en) | 2021-01-24 | 2025-02-04 | S.C.R. (Engineers) Limited | Animal marking control system and method |
USD1067554S1 (en) | 2021-04-08 | 2025-03-18 | Allflex Australia Pty Limited | Tag applicator for animals |
USD1067544S1 (en) | 2021-04-08 | 2025-03-18 | Allflex Australia Pty Limited | Tag applicator for animals |
Also Published As
Publication number | Publication date |
---|---|
ES2276594B1 (es) | 2008-06-16 |
ES2276594A1 (es) | 2007-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2006134197A1 (es) | Método para procesar señales fotopletismográficas obtenidas de una persona o animal, y oxímetro que utiliza dicho método | |
CN103961080B (zh) | 生物体信息检测装置以及生物体信息检测方法 | |
JP5283700B2 (ja) | 血管特性計測装置及び血管特性計測方法 | |
RU2498768C2 (ru) | Устройство и способ для определения физиологического параметра | |
EA013620B1 (ru) | Мобильный диагностический прибор | |
JP2004248819A (ja) | 血液分析装置 | |
JP5527658B2 (ja) | 散乱吸収体測定方法及び装置 | |
Lapitan et al. | A method and a device prototype for noninvasive measurements of blood perfusion in a tissue | |
ES2662198T3 (es) | Procesamiento de señal para oximetría de pulso | |
WO2014001961A1 (en) | Real-time tumor perfusion imaging during radiation therapy delivery | |
JP5626879B2 (ja) | 濃度定量装置及び濃度定量方法並びにプログラム | |
EP3434182B1 (en) | System for monitoring the blood supply to the transplanted organ | |
Xing et al. | Temporal complexity in photoplethysmography and its influence on blood pressure | |
CN110710982B (zh) | 用于检测血红蛋白浓度的模型的获取方法、血红蛋白浓度的检测方法 | |
JP6197926B2 (ja) | 生体情報検出装置及び生体情報検出方法、生体情報検出プログラム | |
Hu et al. | The effect of skin melanin concentration on wrist reflectance photoplethysmography based on Monte Carlo simulation | |
JP6066451B2 (ja) | 生体情報検出装置及び生体情報検出方法、生体情報検出プログラム | |
Chatterjee et al. | In silico and in vivo investigations using an endocavitary photoplethysmography sensor for tissue viability monitoring | |
Reiser et al. | Simulation framework for reflective PPG signal analysis depending on sensor placement and wavelength | |
JP5733117B2 (ja) | 脳活動状態解析装置、リハビリテーション補助装置、思念制御型駆動装置、思念制御型表示装置、測定ポイント選択方法、測定ポイント選択プログラム | |
JP5626880B2 (ja) | 濃度定量装置及び濃度定量方法並びにプログラム | |
Naguszewski et al. | Determination of oxygen saturation based on distorted photoplethysmography signals by scaling method | |
JP2017108924A (ja) | 生体情報取得装置および生体情報取得方法 | |
JP2017225839A (ja) | 生体情報検出装置及び生体情報検出方法、生体情報検出プログラム | |
US20230371824A1 (en) | Assessing a cardiac condition independently of ppg waveform amplitude analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWW | Wipo information: withdrawn in national office |
Country of ref document: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06764379 Country of ref document: EP Kind code of ref document: A1 |