The Hilbert Transform and Empirical Mode Decomposition:
Suz Tolwinski
University of Arizona
Program in Applied Mathematics
Spring 2007 RTG
Powerful Tools for Data Analysis
Deriving the Hilbert Transform
For f(z) = u(x,y) + iv(x,y) analytic on the upper half-plane, and decays at infinity: Cauchy’s Integral Formula+ Decay of function+ Clever rearrangement of terms : Relationship between u(x,y) and v(x,y) on RR
Define the Hilbert transform in similar spirit:
Another View of the Hilbert Transform.
Looks like minus the convolution of f(t) with 1/πt.Apply Convolution Theorem for something more manageable in frequency space?
Take away message:The Hilbert transform rotates a signal counter-clockwise by π/2 at every point in itspositive frequency spectrum, and clockwise at all its negative frequencies.
Real Signals.
A signal is any time-varying quantity containing information.
Signals in nature are real.
Real signals have even frequency spectra.
This makes them difficult to analyze.We would like to know, how is the signalenergy distributed in time and/or frequency space?
For a signal with even frequency spectrum, -Mean frequency? -Spread of signal in frequency space?
Electrocardiographic signal in time and frequency domain
(Energy of s(t) = |s(t)|2 dt = |S()|2 d)
Analytic Signals.
Have positive frequency spectrum only, so<>, spread in are meaningful quantities.
Analytic signal can be represented as time-varying frequency and amplitude:
fANALYT.(t) = A(t)ei(t)
Frequency spectrum of a real signal.
Frequency spectrum of the corresponding analytic signal.
We can construct an analytic signal corresponding to any real signal (takes only the positive frequencies):
FANALYT.() = 1/2(F()+ sgn()F())
Then in the time domain, the analyticsignal is given by
fANALYT.(t) =1/2(f(t) + iH{f(t)})
A(t) = (1/2f(t))2+1/2 (H{f(t)})2)1/2 (t) = tan-1(H{f(t)}/f(t))
Empirical Mode Decomposition of Real Signals.(Method due to N. Huang, 1998.)
• Creates an adaptive decomposition of signal • Result is a generalized Fourier series (Modes with time-varying amplitude and phase)
• Components are called Intrinsic Mode Functions (IMFs) IMFs satisfy two criteria by designs:
-Have only one zero between successive extrema-Have zero “local mean”
• EMD separates phenomena occurring on different time scales.
• “Residue” shows overall trend in data.
10 20 30 40 50 60 70 80 90 100 110 120
-2
-1
0
1
2
IMF 1; iteration 0Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-2
-1
0
1
2
IMF 1; iteration 0Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-2
-1
0
1
2
IMF 1; iteration 0Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-2
-1
0
1
2
IMF 1; iteration 0Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-2
-1
0
1
2
IMF 1; iteration 0Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-2
-1
0
1
2
IMF 1; iteration 0Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-2
-1
0
1
2
IMF 1; iteration 0
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t) (“residue”-->)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 1
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 1
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 1
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 1
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 1
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 1
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t) (“residue”-->)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 2
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 2
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 2
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 2
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 2
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1.5
-1
-0.5
0
0.5
1
1.5
IMF 1; iteration 2
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t) (“residue”-->)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
IMF 1; iteration 3
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
IMF 1; iteration 4
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
IMF 1; iteration 5
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
IMF 1; iteration 6
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
IMF 1; iteration 7
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
IMF 1; iteration 8
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
IMF 2; iteration 0
10 20 30 40 50 60 70 80 90 100 110 120
-1
-0.5
0
0.5
1
residue
Residue = s(t)
I1(t) = Residue
i = 1
k = 1
while Residue not equal zero or not monotone
while Ii has non-negligible local mean
U(t) = spline through local maxima of Ii
L(t) = spline through local minima of Ii
Av(t) = 1/2 (U(t) + L(t))
Ii(t) = Ii(t) - Av(t)
i = i + 1
end
IMFk(t) = Ii(t)
Residue = Residue - IMFk
k = k+1
end
Huang’s “Sifting Process”.
Now that we have a set of IMFs; construct their analytic counterparts using the Hilbert transform.
The Hilbert Spectrum
Now we can look at f(t) in time and frequency space simultaneously.Instantaneous frequency is given by the derivative of the phase angle.The Hilbert spectrum H(,t) gives the instantaneous amplitude (~energy) as a function of frequency.A plot of H(,t) provides an intuitive, visual representation of the signal in time and frequency.
Example: EMD for a Test Signal with Known Components.
Hilbert Spectrum for EMD of Example Signal.
Real-World Example: Temperature Data from Amherst, MAfrom 1988 - 2005.
IMF 8
IMF 5
Physical Interpretation of IMFs for Amherst Temperature Data.
Huang-Hilbert Spectrum for EMD of Amherst Temperature Data
-Most of the signal information contained in the bottom 10% of all frequencies represented-Can we make a correspondence between what we see here and the IMFs of the decomposition?-This would help identify which modes are important in determining the character of the data.
Hilbert Spectrum for IMF 8
Hilbert Spectrum for IMF 7
Increasing Frequencies: Decreasing Information!
IMF 6
IMF 5
IMF 4
Interpretation of Residue (Shows Overall Trend).
Bibliography.
• Langton, C. Hilbert Transform, Anayltic Signal and the Complex Envelope Signal Processing and Simulation Newsletter, 1999. http://www.complextoreal.com/tcomplex.htm
• Electrocardiograph signal graphic: http://www.neurotraces.com/scilab/scilab2/node61.html
• MATLAB code used for all computations, and “sifting” graphics: Rilling, G. MATLAB code for computation of EMD and illustrative slides. http://perso.ens lyon.fr/patrick.flandrin/emd.html
• Temperature data from Amherst, MA: Williams, C.N., Jr., M.J. Menne, R.S. Vose, and D.R. Easterling. 2006. United States Historical Climatology Network Daily Temperature, Precipitation, and Snow Data. ORNL/CDIAC-118, NDP-070. Online at [http://cdiac.ornl.gov/epubs/ndp/ushcn/usa.html]; site MA190120
• “Burning Globe” graphic: http://river2sea72.wordpress.com/2007/03/24/its-not-all-about-carbon-or-is-it/