The phase of a complex-valued signal gt = ut+ivt
is defined by
.The
instantaneous frequency
is
.Before forming the derivative,
recall the definition of a complex logarithm of g:
![]() |
(12) |
![]() |
(13) |
Trouble can arise in (13) when the denominator g gets small, which happens whenever the envelope of the signal gets small. This difficulty can be overcome by careful smoothing. Rationalize the denominator by multiplying by the conjugate signal, and then smooth locally a little (as indicated by the summation sign below):
![]() |
(14) |
What range of times
should be smoothed in equation (14)?
Besides the nature of the data,
the appropriate smoothing depends on the method of representing .To prepare a figure, I implemented
by multiplying
by
.(This is more accurate
than finite differences at high frequencies,
but has the disadvantage that the discontinuity in slope
at the Nyquist frequency gives an extended transient in the
time domain.)
The result is shown in Figure 5.
![]() |
Inspection of the figure shows that smoothing is
even more necessary for instantaneous frequency than for envelopes,
and this is not surprising because the presence of makes the signal rougher.
Particularly notice times in the range 400-512
where the sinusoids are truncated.
There the unsmoothed instantaneous frequency
becomes a large rapid oscillation near the Nyquist frequency.
This roughness is nicely controlled by (1,2,1) smoothing.
It is gratifying to see that a spike added to the sinusoids (at point 243) causes a burst of high frequency. Also interesting to notice is where an oscillation approaches the axis and then turns away just before or just after crossing the axis.
An example of instantaneous frequency applied to field data is shown in Figure 6.
![]() |
The instantaneous-frequency idea can also be applied to the space axis.
This will be more easily understood by readers
familiar with the methodology of imaging and migration.
Instead of temporal frequency ,we compute the spatial frequency
.Figure 7 gives an example.
Analogously, we could make plots of local dip
.
![]() |
by the column vector