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