You are on page 1of 32

Heart Sound Background Noise

Removal

Haim Appleboim
Biomedical Seminar
February 2007
Overview

Current cardiac monitoring relies on EKG


EKG provides full information about the
electrical activity but very little information
about the mechanical activity
Echo provides full info about the mechanical
activity
Echo can not be used for continuous
monitoring
Heart Sounds may provide information about
mechanical activity
Overview

Monitoring heart sounds continuously in non


clinical environment is difficult due to
background sounds and noise both externally
and internally
This work introduces a method for removal of
internal (and external) background sound
such as speech (of the patient)
Overview

Heart Sounds are vulnerable to sounds


created by the monitored person due to
significant overlap in frequency with speech
Thus, filters are less effective in removing the
noise
Existing solutions

Single sensor Multi Sensor


solutions solutions

Existing Solutions - Time-Varying Wiener - Spectral Subtraction


filtering
- Wavelet
- Other filter denoising
Advantages - Easy - Good noise removal
- Convenient
Disadvantages - Poor noise removal - Inconvenient
A novel approach based on ICA

ICA: Independent component analysis is a


general method for blind source separation.
It has not been used in the context of heart
background sound removal
We shall demonstrate its superiority over
other methods.
ICA (Independent Component Analysis)

Sound A

S1

Sound B x = As
Sm-1
Sound C Sm

Each sensor receives a linear mixture of all the signal


sources
It is required to determine the source signals
ICA definition

ICA of a random vector X consists of estimating


the following generative model for the data:
x  A  s   a i  si
The independent components are latent variables
 They cannot be directly observed
The independent components are assumed to
have a non-Gaussian distributions
The mixing matrix is assumed to be unknown
All we observe is the general vector x and we must
estimate both A and s using it
Independent Components Computation

After estimating the mixing matrix A we can de-mix by


computing it’s inverse:
W  A 1

Then we obtain the independent components (de-mix)


simply by:
S  A1  x  W  x
Principles of ICA Estimation

The fundamental restriction in ICA is that the fundamental


components must be non-Gaussian for ICA to be possible
The Linear combination of independent variables is more
Gaussian than each of the variables
To estimate one of the Independent components y let us write:
y  W X  i wi xi
T

W is One of the rows of A-1 and should be estimated


ZAWT y  W  X  W T  A  s  zT  s
T

Linear combination of independent variables is more Gaussian
than each of the variables  zTs is more Gaussian than each of
the Si  The minimal gaussianity is achieved when it equals to
one of the Si
We can say that W is a vector which maximizes the
nongaussianity of WTX (one of the Independent Components)
FastICA (Hyvärinen, Oja)

FastICA learning finds a direction: unit vector w, such that


the projection wTx maximizes non-Gaussianity
FastICA for one unit computational steps:
Choose an initial weight vector
w  E  x  g  w  x   E  g  w  x   w
 T T

w  w / w

If w did not converge go back to 2


FastICA for several units
To estimate several independent components the one unit
algorithm must run using several units with weight vectors
w1 ,............, wn
To prevent different vectors converging toTthe same
maxima, after each iteration the outputs w1  x,............, wn x
T

must be de-correlated
Spectral ICA

Spectral ICA: performing ICA on a frequency


domain signal (Problem when the Spectrum
is complex)
Solved using DCT (Discreet Cosine Transform)
Spectral ICA algorithmic flow
Perform DCT on the input data
Run FastICA on data after DCT
Perform Inverse DCT
Spectral ICA: Why doe’s it work better?

Spectral ICA attempts to


separate each frequency
component from different
sources (ignoring the delays)
Since the background sound
has overlapping spectrum
with the HS but with different
magnitudes in each channel,
it should be easier to
separate and remove
Experimental Setup and Methodology

Recorded Noise

Filter Run
Measured Set ICA Noise Free
HS Reorgenize Algorithmic HS
Parameters
Data Analysis

Algorithm
Algorithm Quality Quality
Assesment
Algorithm Quality assessment

Quality assessment methods


“Human eye” assessment
Algorithmic assessment
FFT plots
Spectrogram plots
Diastole Analysis (Noise Removal Quality)
Diastole Analysis calculation steps:
A = ICA Diastole Peaks average
B = NoisySig Diastole Peaks average
Noise Removal Quality = B / A
Result with Spectral ICA (1)

Time Domain
HS file name used in this example is ‘GA_Halt_1’, ICA type is ‘Gauss’,
Noise file is ‘count_time’
Result with Spectral ICA (2)

Time Domain
HS file name used in this example is ‘GA_Halt_1’, ICA type is
‘Gauss’, Noise file is ‘television’ Spectral Domain
Result with Spectral ICA (3)

FastICA

FastICA

Wiener Filter
Wiener Filter
Wiener Filter
FastICA

Diastole (Quite period) analysis results


HS file name used in this example is ‘GA_Halt_1’, Noise file
name used is ‘snor_with_pre’ and FastICA type is ‘Gauss’
Cases when ICA doesn't work well

Unsuccessful noise removal attempt for a HS with a peak noise caused by


microphone movement
HS file name used in this example is ‘GA_Halt_1’, FastICA type is ‘Gauss’,
Noise file is ‘count_time’
Time vs. Spectral ICA (1)

Spectral
ICA

Time
ICA

HS file name used in this example is ‘Halt_Supine_1’, Noise file is ‘count_time,


FastICA type is ‘Gauss’
Time vs. Spectral ICA (2)

Spectral
ICA

Spectral ICA

Time
FastICA

Time ICA

HS file name used in this example is ‘GA_Halt_1’, Noise file name used is ‘snor_with_pre’ and FastICA type
is ‘Gauss’
Results vs. Nonlinearity

ICA
nonlinearity
= pow3

ICA
nonlinearity
= tanh

ICA
nonlinearity
= Gauss

ICA
nonlinearity
= skew

HS file name used in this example is ‘GA_Normal_1’, Noise file is ‘count_time’


Real Noisy Environment Results

Aortic - 2nd ICS RSB

1 2 Pulmonic - 2nd ICS LSB

Apex - 5th ICS MSL

HS file name used in this example is ‘HAIM_COUNT_1’, FastICA type is ‘Gauss’


Summery

we have introduced a practical method for


background noise removal in heart sounds
for the purpose of continues heart sounds
monitoring
The superiority of the proposed method over
conventional ones makes it into a practical
way of providing high quality heart sound in a
noisy environment
Thank You
Principles of ICA Estimation
(Measures of nongaussianity)

Measures of nongaussianity
Kurtosis
Negentropy
Minimization of mutual information
Kurtosis

Kurt (y) = E{y4} – 3(E{y2})2


E{y2} = 1  Kurt (y) = E{y4} – 3
Y Gaussian  E{y4} = 3(E{y2})2  Kurt (y) = 0

Therefore kurtosis is 0 for a Gaussian random variable.
For most Nongaussian random variables kurtosis ≠ 0

kurtosis can be both positive or negative.


Typically nongaussianity is measured by the absolute value of
kurtosis.
Negentropy

The entropy of a random variable is the degree of


information that an observation of the variable gives.
Entropy is related to the coding length of the random
variable.
The more random the variable is, the larger is it’s
entropy.
For a discrete random variable entropy is defined as:
H(Y) = -Σ P(Y=ai) · log P(Y=ai)
Gaussian variable has the largest entropy among all
random variables of equal variance therefore , entropy
can be used as a measure of nongaussianity.
Negentropy

For a continues random variable differential entropy is


defined as:
H(y) = -∫f(y)·log(f(y))·dy
Negentropy (modified version of differential entropy) is
defined as:
J(y) = H(ygauss) – H(y)
According to the above definition Negentropy is
always non-negative and is zero if and only if y has
Gaussian distribution.
Negentropy

Practically the estimation of NEGENTROPY is rather


difficult. Therefore we usually us some approximations
for this purpose
Principles of ICA Estimation
(Minimization of mutual information)

Definition of mutual information I between m random


variables:
I(y1,y2, …,ym) = Σ H(yi)-H(y)
Mutual Information is a measure of dependence
between random variables.
It is always non negative and zero if and only if the
variables are statistically independent.
For an invertible linear transformation y=Wx we can
write: I(y1,y2,…) = Σ H(yi)-H(x)-log|det(w)|
I(y1,y2,…) = Σ C-J(yi)
Principles of ICA Estimation
(Minimization of mutual information)

Finding the invertible transformation W that


minimizes the mutual information is
equivalent to fining the direction in which the
negentropy J is maximized.

You might also like