Heart Sound Segmentation in Noisy Environments

0 downloads 0 Views 756KB Size Report
Keywords: Phonocardiogram, Cycle Frequency, Periodicity. 1 Introduction. Since heart auscultation is a low cost and non-invasive diagnosis method, it becomes ...
Heart Sound Segmentation in Noisy Environments C. Castro Hoyos, S. Murillo-Rendón, and C.G. Castellanos-Dominguez Signal Processing and Recognition Group, Universidad Nacional de Colombia, Manizales {ccastroh,smurillor,cgcastellanosd}@unal.edu.co

Abstract. This paper presents a methodological framework for the phonocardiographic signal segmentation in telemedicine environments. Framework includes a two-stage noise analysis (high frequency components detection and temporal and spectral periodicity signatures) and heart cycle duration estimation from cyclic frequency spectrograms. Signal boundaries are calculated based on time duration of systolic and diastolic phases. The results are assessed by electrocardiographic based segmentation using the R-peak of heartbeats as signature for delimitation of PCG heart sounds. Approach is tested over a heart sound database with 232 20−second recordings. Results show a detection probability of 87% and a false detection probability of 13%. Keywords: Phonocardiogram, Cycle Frequency, Periodicity.

1 Introduction Since heart auscultation is a low cost and non-invasive diagnosis method, it becomes a basic diagnostic instrument for cardiac related phenomena. In this regard, heart sounds recorded by auscultation or phonocardiography (PCG) are the primary tool for the correct mechanical functional assessment of the heart mechanism. In automatic heart sound analysis, the heart mechanics are assessed by the detection and identification of other sounds within the cardiac cycle that do not correspond to the natural opening and closing of the heart muscle valves. However, this identification requires high medical expertise and its recognition can be affected by the inherent limitations of the human hear for low frequency sounds [1]. Thus, segmenting of the heart sounds is an important task to be carried out. Natural heart sounds are formed by the sounds called S1 and S2, which are originated by the opening and closing valves of the heart muscle, respectively. Between each sound, there is a silence period called systolic and diastolic phase, thereby, systolic interval is conformed by the S1 sound and the systolic phase and diastolic interval by the S2 sound and diastolic phase. Mechanic heart malfunction usually leads to the occurrence of more sounds between S1 and S2, that is, during systolic or diastolic phases. This whole compound of fundamental components forms the heart sound signal over periods called cardiac cycles, and is the basic unit for heart sound analysis. To the present day, several efforts on developing robust tools have been reported in the segmentation analysis and fundamental sound localization; most of them take advantage of the external measures extracted from cardiac activity (namely, electrocardiogram (EKG) and heart rate variability (HRV)). In [2], for instance, segmentation is carried out using the energy plots and noise detection through a comparative procedure J.M. Ferrández Vicente et al. (Eds.): IWINAC 2013, Part I, LNCS 7930, pp. 254–263, 2013. c Springer-Verlag Berlin Heidelberg 2013 

Heart Sound Segmentation in Noisy Environments

255

over the fixed length segments with respect to the complete signal energy. However, the timing parameters involved for the heart sound location do not take into consideration HRV and requires the average heart rate previous to segmentation procedure, information that might not be available. In [3], a methodology for detecting noisy PCG signals is proposed that takes into account temporal, spectral and time-frequency periodicity signatures. Yet, the analysis strongly depends on the correct estimation of the heart sound duration estimated from a time sliding window and its singular value decomposition; this methodology can be time-consuming and might not lead to good estimates for short duration signals. To cope with this issue, a dynamic clustering algorithm that does not use EKG information and deals with HRV by means of instantaneous cyclic frequency is reported in [4], however, this procedure requires the PCG signal segment to be decomposed into Gaussian modulated atoms, for which parameters are heuristically fixed and therefore leading to a time-consuming task. Present study proposes a methodological framework for the heart sound segmentation using high frequency noise detection stages [3] and time-frequency dependent information [5] to assess the quality of the PCG signal. The two-stage noise analysis avoids recordings with strong presence of noise that are further to be segmented, thereby timing location thresholds are used as a basis for heart sound beginning identification. Accurate heart sound boundaries are then set by means to time-dependent heart cycle duration through cycle frequency estimation, as proposed in [4]. The segmentation results are then presented in terms of true and false detection probability, which are assessed employing as ground truth the EKG based segmentation.

2 Materials and Methods 2.1 Estimation of Heart Sound Duration by Removing High Frequency Noise PCG signals have cyclo-stationarity behavior, that is, the heart sound fundamental components (termed S1-S2) are repeated cyclically as the heart beat does. Therefore, to calculate the time-varying fundamental cycle frequency, the short time cycle frequency spectrum (STCFS) is introduced γx (α, t) = Rx (α, t)/Rx (0, t), where Rx (α, t) is the cyclic autocorrelation function computed over sliding rectangle windows [5]: t+σ  2 Rx (α, t) = x (τ ) e−j2πατ dτ ,

(1)

t−σ

where α is the cycle frequency and the sliding window expands over [t − σ, t + σ]. The instantaneous cycle frequency (ICF) is then tracked at the greatest value of γx (α, t) for a given time instant t in a given frequency range.  − δ(t )+λ δ (t) = arg max [γx (α, t)] δ(t− )−λ (2) where λ is a threshold parameter to confine the search within a given range and δ (t− ) is the cycle frequency at earlier time t− . Thus, the heart sound duration for a given time (t ) −1 t0 is defined as τd 0 = δ (t0 ) .

256

C.C. Hoyos, S. Murillo-Rendón, and C.G. Castellanos-Dominguez

However, the estimation of cyclic autocorrelation function Rx (α, t) is very sensitive to the noise influence. So, noisy signal removal is to be strongly considered as preprocessing stage. Generally, PCG signals that include spectral components lower that 150 Hz can be affected by high frequency external noise and artifacts, which lead to poor analysis and segmentation of heart sounds. Particularly, high frequency external noise shows bursting behavior focusing its influence within very narrow intervals of time, but conveying high energy. Grounded on this fact, the detection of bursting energy segments in signal x, being the discrete transformation of PCG signal x (t) of duration T, is suggested in [1] as indicator for removing high frequency noise. Namely, given the energy estimation ex [s] over signal segment s, it holds that ex [s] − e˜x ≥ η

(3)

where η is an a priori fixed threshold parameter, e˜x is the average energy, i.e., E {ex [s] : ∀s ∈ 1, . . . , Ne }, being Ne = N/(lfs + 1) , with · the nearest integer approximate of its argument, N = T /fs , and the value l is the considered window analysis of length. Notation E {·} stands for the expectation operator. Although, there are several energy estimators ex , the Shannon’s energy is preferred since it emphasizes the medium intensity sounds and attenuates the effect of low intensity components much more than high intensity components [6]. The Shannon’s energy is defined as follows: ex =

  −x [k]2 log x [k]2

sl 

(4)

k=(s−1)l+1

2.2 Segmentation of S1 and S2 Events Based on Periodicity Signatures For signal boundary delimitation of S1 and S2 events, the wavelet energy envelopes can be employed that clearly produces peaks at the fundamental components of the heart sound signal S1 − S2, defined as follows [7,8]:  2 (t) = |Cw (t, a)| ∀a

where Cw (t, a) is the wavelet scalogram of considered signal segment x (τ ) , a ∈ R is the scale in the continuous wavelet transform. Thus, the prominent peaks of (τ ) must be related to the S1 and S2 heart sounds. For a given set of estimated peaks {pi , ∀i = 1, . . . , P }, where P is the total number of basic components S1-S2 in x (τ ), as well as the phase distances d1 = d (p1 , p2 ) and d2 = d (p2 , p3 ), being d (·) is the Euclidean distance operator, the heart sound segment is said to be synchronic i.e., the first peak does correspond to S1 and the second to S2, if all the next conditions are fulfilled: – – – –

The diastolic phase d2 must be greater than the systolic d1 . d1 > 0.2τd , with τd the cardiac cycle duration. d2 > 0.6τd . d2 < 0.8τd and d1 < 0.8τd .

Heart Sound Segmentation in Noisy Environments

257

Otherwise, the sounds are assumed to be not clearly defined by the energy envelope and additionally phase corrections are to be further provided. Basically, the noise and artifacts cause the sounds to be not properly defined and they can be removed by sequentially using the following two signature periodicity-based algorithms: Time Periodicity Signature. The similarity among heart sounds can be used for estimating the time periodicity signature. Within a time analysis 2T , specifically, two neighboring segments, xi (t) and xi+1 (t) (with t ∈ [iT , (i + 1)T ]) are said to have shape similarity, if an introduced given proximity distance, ρx (xi , xi+1 ), is lower than an a priori given threshold parameter ηρ , that is: ρx (xi , xi+1 ) − ηρ ≤ 0

(5)

As a concrete proximity measure, the radial distance between the prominent peaks (those indicating repetition of a heart sound within the signal segment 2T ,) is suggested in [3], defined as: ρx (xi , xi+1 ) =

rx (iT , τ ) , rx ((i + 1)T , τ ) ,

rx (iT , τ ) rx ((i + 1)T , τ )

(6)

where i = 1, . . . , Nh , being Nh the number of heart sounds occurring within the fixed portions. Notations · and |·| stand for the inner product and Euclidean norm of their arguments, respectively. Function rx (τ ) is the autocorrelation of an energy envelope of x (t), said x (t), defined as:  x (t) h (t) x (t − τ ) h (t − τ ) dt  rx (T ; τ ) = T (7) T h (t) h (t − τ ) dt where h (t) is a Hamming window. The time analysis T is a fixed duration holding at least 3 complete cardiac cycles of the PCG signal, T ≈ 3τd . Time-Frequency Periodicity Signature. The heart sound signal concentrates most of energy in the frequency range 0 − 600 Hz, within which the pairwise autocorrelation functions between different bands should exhibit similar behaviour. Moreover, the prominent peaks of the autocorrelated energy occur somehow aligned and the peak width gradually decreases as the bandwidth range increases. Therefore, a given timefrequency periodicity measure, ρλ , between two neighboring bands, i and i + 1, should keep the same (either increasing or decreasing) monotony evolution and any interruption of this monotony serves as and indicator of persistent noise in the signal, i.e.: sgn(ρλ (i) − ρλ (i + 1)) = const

(8)

The time-frequency PCG representation, X(ω, t), is divided evenly into 15 frequency bands, and for each one the autocorrelation of the energy envelope (see Eq. (1)) is (k) computed, rx (T , τ ), with k = 1, . . . , 15. To assess the linear dependency, contiguous ascending bands are grouped together as follows: A(i) = [rx(i) (Tε , τ ) rx(i+1) (Tε , τ ) · · · rx(i+4) (Tε , τ )]

258

C.C. Hoyos, S. Murillo-Rendón, and C.G. Castellanos-Dominguez (i)

from which the singular value set {λj } is computed, where j−th indicates the eigenvalue place in descending order and i−th is the associated matrix. So, as time-frequency periodicity measure, the following singular value ratio is calculated:  2 (i) (i) , i = 1, 6, 11 ρλ (i) = λ2 /λ1 Lastly, the segment signal is considered as free of noise, when both conditions, given in Eqs (5) and (8), hold. Otherwise, the underlying signal is eliminated.

3 Experimental Setup 3.1 Database and Preprocessing The used heart sound database for murmur detection belongs to the Signal Processing and Recognition Research Group at the Universidad Nacional de Colombia-Manizales. The database holds 29 PCG recordings for different patients ranging 0 to 20 years old. Each patient contains a 20s heart sound signal (with a simultaneous one lead EKG signal) in bell and diaphragm mode for each one of the four traditional auscultation focuses (Aortic, mitral, pulmonary and tricuspid). Signals were recorded at a 44.1kHz and 16 bit resolution with an electronic stethoscope and Meditron software, the acquisition was done in noisy environments as those of health care centers. PCG signal presents components in a lower frequency range than the original sampling frequency, therefore a 8−th order Chebychev filter with a downsampling process is implemented with a central cut-off frequency fc = 1102.5Hz, that is a downsampling factor of 20, therefore resulting a final sampling frequency fˆs = 2205Hz. Finally, as recommended in [6], the amplitude of each record was normalized with the absolute maximum of each PCG recording. 3.2 Performance Measure The simultaneous EKG signal is used to assess the segmentation performance. A traditional EKG segmentation is carried out using the wavelet based QRS detection algorithm given in [9]. Thus, having the proper R-peak locations and provided the correlation between the S1 sound and the QRS complex onset, heart sounds can be picked up and marked. Therefore, the performance evaluation is carried out in terms of true and false detection probability, as discussed in [10]: pd =

ND , ND + NM

pf =

NF ND + NF

where ND are the correctly detected points, NF the number of false points, i.e. a point that is marked but has no correspondence with the true points, and NM a missed point.

Heart Sound Segmentation in Noisy Environments

259

3.3 Experiments Noise Detection from High Frequency Components. The analysis window for high frequency noise detection is manually set to l ≈ 221, i.e., the length of the window is approximated to 100ms. Hence, the number of segments for high frequency noise detection is fixed around 208, η is empirically set to 0.125. As a result, if within 5 continuous segments (0.5 s segments of signal) the cumulative energy is higher than η, that signal part is labeled as noisy, and hence the entire signal is also labeled as noisy, otherwise the recording is considered free of high frequency noise. Heart Sound Duration from Instantaneous Cycle Frequency. The database contains heart rates between 45 and 140 beats per minute corresponding to cycle frequencies from 0.75 to 2.33Hz. Thus, the maximum cycle frequency is αmax = 2.5Hz. However, due to digestive and pulmonary noise, artifacts and sounds attenuation, the cyclostationarity of the signals might be affected and the cyclic nature of the signals are reflected on multiples of the fundamental cycle frequency. Thus, this value is set to αmax = 5Hz and a search algorithm for the fundamental cycle frequency is required, as detailed in algorithm 1. Then, the sliding window is set in such a way that each signal segment to be correlated (see Eq. (1)) has at least 2 complete cardiac cycles, σ = 2.5fˆs , i.e. 2.5 s and the search parameter λ = 0.2Hz, is manually set according to [4]. Noise Detection from Periodicity Signatures. Once δ (t) is defined, the window length for the temporal periodicity analysis is set to T = 2s, then for Eq. (6), i = 1, . . . , 5. Since the pre-detection and heart rate estimation first eliminate highly corrupted signals, the parameter ηρ = 0.7 is set higher that the value recommended in [3] to give a more admissible amount of noise. So, the temporal criteria is selected as μρx = E {ρx (xi , xi+1 )}. If the time signature criterion holds, the time-frequency signature rule is checked using a spectrogram of each signal portion, computed with a gaussian window. Also, the singular values ratio are computed for all the signal segments. Signals are then labeled as noisy if either μρx < η or the time-frequency monotony are interrupted. Segments Boundaries and Signal Performance. Finally, the noise-free signal is segmented, taking segments lasting 3 s to calculate the CScal and its respective energy envelope (t). The scalogram is computed with a complex Morlet wavelet, and scales a are chosen so the frequency range covers the 25 − 600Hz bandwidth. Therefore, none components of the heart sound signal are left out. From Figure 1(a) showing a signal portion and its respective scalogram 1(b), envelogram 1(c), one can see that the durations of d1 and d2 clearly defines the systolic and diastolic phase intervals. After obtaining x (t), segmentation is done according to Algorithm 2.

4 Results and Discussion Figure 2(a) shows an example of high frequency components that are detected within the first noise detection stage (colored as grey areas in the signal). It can be seen how

260

C.C. Hoyos, S. Murillo-Rendón, and C.G. Castellanos-Dominguez

Algorithm 1. ICF Search Algorithm Input Signal x (t) , α, σ, λ. (α, t) and γx (α, t). Get δ0 (t) as in Eq. (2). Compute Rx Do ECF = ∀t Rxα (t), the cycle frequency envelope, and calculate its autocorrelation function RE . Find the peaks of RE , Pi . i = 1, . . . , nb , the number of peaks. if nb = 1 then There is only one peak and the ICF is not clearly defined in any frequency band, i.e. noise might be affecting the signal. h = 0. else if nb = 2 then if P 2 < 0.6 then Both peaks are under the minimum for heart cycle frequency. else if P2 < 2.4 then h = 2; else h = 3; end if else D (k) = Pk+1 − Pk ∀k = 2, . . . , nb μδ0 = E {δ0 (t)}, μD = E {D (k)}, h = [μδ0 /μD ]round off end if if h = 0 then The noise is corrupting the ICF, now cycle frequency is achieved within small error. else δ (t) = δ0 (t)/h. end if Return δ (t).

1

50

0.8

0.9

100

0.6

0.8

150 0.4

0.6

300

0.5

-0.2

350

0.4

-0.4

400

0.3

-0.6

450

0.2

-0.8

500

-1

550

Scale

250

0

0.5

1

1.5

2

2.5

3

(a) Noise-Free PCG Signal segment

d2

0.7

200

0.2

d1

0.1 0.5

1

1.5 Time

2

(b) Scalogram

2.5

3

0.5

1

1.5

2

2.5

(c) Energy Envelope

Fig. 1. Scalogram and envelogram of noise-free signal example

3

Heart Sound Segmentation in Noisy Environments

261

Algorithm 2. Segmentation Procedure Input PCG signal x (t), EKG signal y (t), ICF δ (t), to = 0, tf = 3, set i = 1. Get R-peaks locations of the EKG signal ξ. while tf < 20 do xi = x (τ ), τ = {to , tf }. Get Cycle duration at to , Ci = 1/δ (to ) and x(τ ) and find its prominent peaks. Check synchronism conditions as in section 2.2. if The conditions hold then κi = p1 − 0.05fˆs else κi = p2 − 0.075fˆs end if to = κi + Ci , tf = to + 3. end while Compute the true and false detection probability using ξ and κ.

the high frequency noise affects computation of the STCFS (Figure 2(b)) as well as the instantaneous cycle frequency (2(c)), exhibiting a high frequency peak of 2.1Hz around the 16 s, which is higher that the real average cycle frequency 1.7 measured in the rest of the signal. As a result, from the total number of 232 recordings, 38 are found to have high-frequency noise.

2.3

5

0.8

4.5

0.6

2.2 4

0.4

2.1

3.5

0.2

2

3 0

1.9

2.5

-0.2 2 -0.4

1.5

-0.6

1

-0.8

0.5 0

2

4

6

8

10

12

14

16

18

20

1.8 1.7 1.6

00

2

4

6

8

10

12

14

16

18

20

1.5

0

2

4

6

8

10

12

14

16

18

20

(a) PCG Signal with High Fre- (b) STCFS for a contaminated (c) ICF for a contaminated quency Noise signal signal Fig. 2. STCFS and ICF estimation for contaminated signal example

The remaining signals pass through the second noise detection stage, where 65 signals are found to have noise components affecting temporal and time-frequency conditions. As seen from Table 1(b), mitral and pulmonary focuses are the more affected by noise, due to their localization near the lung structure, respiratory noise induces undesired components over the heart sound. The other foci are found to be affected by internal digestive and externals sounds as human voice or crying. The periodicity signature additionally shows that the tricuspid focus has several noisy signals, this may be attributed to the localization distance to the heart valves mechanism; sounds are found to be attenuated in most of these cases, thus causing the time localization of the spectral peaks not matching the expected heart cycle frequency.

262

C.C. Hoyos, S. Murillo-Rendón, and C.G. Castellanos-Dominguez Table 1. Number of noisy signals in pre-detection and periodicity signature stages (a) Pre-detection Noise Summary Aortic Mitral Pulmonary Tricuspid Bell 1 6 7 4 Diaphragm 4 5 7 4

(b) Periodicity Signatures Noise Summary Bell Diaphragm

Aortic Mitral Pulmonary Tricuspid 8 6 9 10 6 10 7 9

Finally, a subset of 129 signals is considered noise-free. The signals are segmented as explained in section 3.3. True and false detection values are calculated for the beginning of the heart sounds and the estimated heart sound durations at those time moments. Tables 2(a) and 2(b) show the average values of pd and pf with its respective deviation for the four foci in both diaphragm and bell mode. Table 2. Segmentation Performance (a) True Detection Probability Mode Aortic Mitral Pulmonary Tricuspid Bell 0.903 ± 0.091 0.849 ± 0.169 0.878 ± 0.106 0.882 ± 0.079 Diaphragm 0.850 ± 0.126 0.848 ± 0.088 0.855 ± 0.103 0.892 ± 0.095

(b) False Detection Probability Mode Aortic Mitral Pulmonary Tricuspid Bell 0.121 ± 0.085 0.118 ± 0.036 0.107 ± 0.025 0.138 ± 0.073 Diaphragm 0.122 ± 0.03 0.116 ± 0.029 0.185 ± 0.168 0.134 ± 0.069

The cycle duration estimation has an average of 98% accuracy, so the segmentation is only really affected by presence of disruptive peaks in the envelopes due to high amplitude murmurs or some in-band noise that could not be detected. On the other hand, the true detection probability of the heart sounds beginnings has an average value of 87% and an average false detection probability of 13%, showing a robust segmentation performance under considering the poor acquisition conditions. As seen, aortic and tricuspid signals in Bell and Diaphragm modes have the higher performance, however, aortic focus shows lower deviation due to its far localization from the lung structure. In general, it can be observed the higher deviation and lower performance in the diaphragm auscultation mode, which can be easily explained by the frequency range of operation of the auscultation mode, since diaphragm covers higher frequencies and detects murmurs with higher amplitude that the bell mode, inducing higher false peaks in the energy envelope and therefore errors in the timing conditions.

5 Conclusions and Future Work A robust heart sound signal segmentation framework is presented as an alternative for noisy environments. Discussed analysis tools, such as high frequency noise detection and periodicity signatures, allow to discriminate signals that are contaminated with the most common noise sources in auscultation. Segmentation shows a steady and constant

Heart Sound Segmentation in Noisy Environments

263

performance with a true detection probability of 87% for a total of 129 signals with different heart rates, some including rate variation over the signal. Noise analysis enables the implementation of low complexity segmentation procedures such as time duration conditions, reducing the computational cost, which is an advantage for telemedicine environments. Additionally, the heart cycle durations estimated from cycle frequency spectrums are more accurate and the introduced bandsearch procedure allows to supply a more robust analysis against noise. As future work, it is proposed to develop a more robust and faster segmentation procedure, that does not only use the timing conditions but also spectral and energy content of the heart sounds, so the segmentation uses joint analysis to detect the sound fundamentals (S1-S2) and other components related to murmurs. Acknowledgments. This work is supported by the "Aprendizaje de Máquina a partir de mútiples expertos en clasificación multiclase de señales de voz" and "Discrimination of ECG Signals via Time-Frequency Representations" projects associated with the "Jóvenes Investigadores e Innovadores 2011" program funded by COLCIENCIAS and the project "Servicio de Monitoreo Remoto de Actividad Cardíaca para el Tamizaje Clínico en la Red de Telemedicina del Departamento de Caldas" financed by "convocatoria conjunta entre Universidad Nacional-Manizales Universidad de Caldas".

References 1. Ari, S., Kumar, P., Saha, G.: A robust heart sound segmentation algorithm for commonly occurring heart valve diseases. Journal of Medical Engineering and Technology 32(6), 456–465 (2008) 2. Ari, S., Saha, G.: On a robust algorithm for heart sound segmentation. Journal of Mechanics in Medicine and Biology 7(2), 129–150 (2007) 3. Kumar, D., Carvalho, P., Antunes, M., Paiva, R.P., Henriques, J.: Noise detection during heart sound recording using periodicity signatures 4. Tang, H., Li, T., Qiu, T., Park, Y.: Segmentation of heart sounds based on dynamic clustering. Biomedical Signal Processing and Control 7(5), 509–516 (2012) 5. Tang, H., Li, T., Qiu, T.: Cardiac cycle detection for heart sound signal based on instantaneous cycle frequency. In: 2011 4th International Conference on Biomedical Engineering and Informatics (BMEI), vol. 2, p. 676 (October 2011) 6. Delgado-Trejos, E., Quiceno-Manrique, A.F., Godino-Llorente, J.I., Blanco-Velasco, M., Castellanos-Dominguez, G.: Digital Auscultation Analysis for Heart Murmur Detection. Annals of Biomedical Engineering 7. Ergen, B., Tatar, Y., Gulcur, H.O.: Time-frequency analysis of phonocardiogram signals using wavelet transform: a comparative study. Comput. Methods Biomech. Biomed. Engin. 15(4), 371–381 (2012) 8. Choi, S., Jiang, Z.: Comparison of envelope extraction algorithms for cardiac sound signal segmentation. Expert Syst. Appl. 34(2), 1056–1069 (2008) 9. Kohler, B.-U., Hennig, C., Orglmeister, R.: The principles of software qrs detection. IEEE Engineering in Medicine and Biology Magazine 21(1), 42–57 (2002) 10. Sörnmo, L., Laguna, P.: Bioelectrical Signal Processing in Cardiac and Neurological Applications. Academic Press Series in Biomedical Engineering. Academic Press (2005)

Suggest Documents