inst_freq.m
Instantaneous frequency trajectory from a complex time-domain signal by regularised phase differentiation.
Syntax
freq=inst_freq(signal,dt,npoints,poly_order,amp_tol)
Parameters
signal - complex row or column vector with time-domain signal
dt - time step duration between signal points, seconds
npoints - odd number of signal points in the local least-squares
window
poly_order - local polynomial order used for phase differentiation
amp_tol - fractional amplitude tolerance relative to the maximum
signal amplitude; zero tolerance still masks zero-
magnitude points where the phase is undefined
Outputs
freq - instantaneous frequency trajectory, Hz, same size as
signal and on the same time grid
Notes
Signal phase is unwrapped first and then differentiated by Savitzky-Golay local least-squares polynomial fits. This regularises numerical phase noise before the derivative is taken. Output points are set to NaN when any point in the local differentiation stencil is below the amplitude tolerance.
See also
fapt2sfo.m, read_wave.m, heterodyne.m, bruker_write.m, ctrl_trajan.m, Optimal_control_module
Version 2.11, authors: Ilya Kuprov