A List of Analytic Expressions for Instantaneous Frequency

advertisement
A List of Analytic Expressions for Instantaneous
Frequency Determined via the Hilbert Transform
Danny Bowman
July 9, 2013
Contents
1 Motivation
1
2 The Hilbert Transform
1
3 Derivation of Instantaneous Frequency
3.1 R Functions for Instantaneous Frequency Calculation . . . . . . .
2
2
4 Analytic Expressions for
4.1 a sin(ωt) . . . . . . . .
4.2 a sin(ωt) + c . . . . . .
4.3 a sin(ω1 t) + b sin(ω2 t) .
2
2
5
7
1
Instantaneous Frequency
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
Motivation
The Hilbert transform can be used to derive the analytic signal of a function,
resulting in the ability to define instantaneous frequency for every point on the
function. This property allows for the examination of frequency variations at
a much higher resolution than Fourier based spectral analysis methods (Huang
et al. (1998)). However, the Hilbert transform represents instantaneous frequency of nonlinear signals as modulations rather than harmonics. Furthermore, if the signal is not symmetric about 0, the instantaneous frequency will
contain spurious modulations (see Equation 9). The intent of this document is
to demonstrate how instantaneous frequency is derived, then provide analytic
solutions for the instantaneous frequency of some common functions encountered in signal processing. A graph of instantaneous frequency accompanies
each solution. I generated each figure using the open source scientific computation package R (R Core Team (2012)); source code for all figures is included in
this document as well. I will add to this list of functions as I derive additional
solutions for instantaneous frequency.
1
2
The Hilbert Transform
The Hilbert transform of a function x(t) is a convolution
H(f (t)) =
−1
∗ f (t)
πt
(1)
that can be expressed in integral form as
Z
1 ∞ f (τ )
dτ
H(f (t)) =
π −∞ τ − t
(2)
where the singularity at t = τ is evaluated by taking the Cauchy principal value
of the integral. For an exhaustive treatment of the Hilbert transform and its
properties, see King (2009).
3
Derivation of Instantaneous Frequency
The Hilbert transform of a periodic function produces a phase shift of
H(cosωt) = −sinωt
π
2,
thus
(3)
resulting in the analytic signal:
x(t) − ıy(t)
(4)
where y(t) = H(x(t)). We can define the instantaneous amplitude a(t) of x(t)
by taking the magnitude of the real and imaginary components of the analytic
signal
p
(5)
a(t) = x(t)2 + y(t)2
and the instantaneous phase ϕ(t) by taking the arctangent of the real and imaginary components
y(t)
ϕ(t) = arctan
(6)
x(t)
Taking the derivative of Equation 6 with respect to time and dividing by 2π
yields instantaneous frequency:
f (t) =
3.1
d
d
y(t) − y(t) dt
x(t)
1 x(t) dt
2π
x2 (t) + y 2 (t)
(7)
R Functions for Instantaneous Frequency Calculation
The programming language R will be used to derive and plot instantaneous
frequency in the following section. The hht package must be present for this to
work; type
> install.packages("hht")
in the R interpreter to install it.
2
4
Analytic Expressions for Instantaneous Frequency
4.1
a sin(ωt)
Through Equation 7 and the liberal use of the trigonometric identity sin2 + cos2 =
1, we find that the instantaneous frequency is simply
f (t) =
ω
2π
where a, ω ∈ R.
>
>
>
>
>
>
>
>
+
+
+
library(hht)
dt <- 0.001
tt <- seq(0, 10, by = dt)
a <- 1
omega <- 2 * pi #1 Hz
b <- 0
c <- 0
PrecisionTester(tt = tt, method = "arctan",
a = a, omega.1 = omega, b = 0, c = 0,
plot.signal = FALSE, plot.instfreq = TRUE,
plot.error = FALSE, new.device = FALSE)
3
(8)
Analytically and numerically derived values for instantaneous frequency
1.004
1.002
1.000
Frequency
1.006
Analytic
Numeric
0
2
4
6
8
Time
Figure 1: Instantaneous frequency of a sin(ωt).
4
10
4.2
a sin(ωt) + c
The addition of a constant to a sinusoidal function will cause the instantaneous
frequency to oscillate:
f (t) =
ω a2 + ac sin(ωt)
2π a2 + 2ac sin(ωt) + c2
where a, ω, c ∈ R.
>
>
>
>
>
>
>
+
+
+
>
library(hht)
a = 1
c = 0.25
omega = 2 * pi #1 Hz
dt = 0.001
tt = seq(0, 10, by=dt)
PrecisionTester(tt = tt, method = "arctan",
a = a, omega.1 = omega, b = 0, c = c,
plot.signal = FALSE, plot.instfreq = TRUE,
plot.error = FALSE, new.device = FALSE)
5
(9)
Analytically and numerically derived values for instantaneous frequency
1.1
1.0
0.9
0.8
Frequency
1.2
1.3
Analytic
Numeric
0
2
4
6
8
10
Time
Figure 2: Instantaneous frequency of a sin(ωt) + c.
6
4.3
a sin(ω1 t) + b sin(ω2 t)
Two sinusoids added together will also cause oscillations. The problem of how
to separate such signals into two modes with instantaneous frequences ω1 and ω2
partly motivated the development of the empirical mode decomposition method
(Huang et al. (1998)).
1 a2 ω1 + b2 ω2 + ab(ω1 + ω2 )(sin(ω1 t) sin(ω2 t) + cos(ω1 t) cos(ω2 t))
2π
a2 + b2 + 2ab(sin(ω1 t) sin(ω2 t) + cos(ω1 t) cos(ω2 t))
(10)
where a, b, ω1 , ω2 ∈ R.
f (t) =
>
>
>
>
>
>
>
>
+
+
+
>
library(hht)
a = 1
b = 0.25
omega1 = 2 * pi
omega2 = 4 * pi
dt = 0.001
tt = seq(0, 10, by=dt)
PrecisionTester(tt = tt, method = "arctan",
a = a, omega.1 = omega1, b = b, omega.2 = omega2, c = 0,
plot.signal = FALSE, plot.instfreq = TRUE,
plot.error = FALSE, new.device = FALSE)
7
Analytically and numerically derived values for instantaneous frequency
1.0
0.9
0.7
0.8
Frequency
1.1
1.2
Analytic
Numeric
0
2
4
6
8
10
Time
Figure 3: Instantaneous frequency of a sin(ω1 t) + b sin(ω2 t).
8
References
Huang, N. E., Shen, Z., Long, S. R., Wu, M. C., Shih, H. H., Zhen, Q., Yen, N.C., Tung, C. C., and Liu, H. H. (1998). The empirical mode decomposition and
the Hilbert spectrum for nonlinear and non-stationary time series analysis.
Proceedings of the Royal Society of London A, 454:903–995.
King, F. (2009). Hilbert transforms. Cambridge University Press.
R Core Team (2012). R: A language and environment for statistical computing.
ISBN 3-900051-07-0.
9
Download