Overcoming the negative inst. frequencies from hilbert transform

Started by togo_la 7 months ago4 replieslatest reply 7 months ago170 views

How to avoid negative frequencies that can be obtained from instantaneous frequency estimation using Hilbert transform?

Here is what I am doing:

1. compute analytic signal, X = hilbert(x);
2. from analytic signal, unwrap the instantaneous phase
3. calculate instantaneous frequency from derivation (np.diff) of instantaneous phase

The problem I have is that the instantaneous frequency can contains negative frequencies (e.g. chirp signal).

The best solution seems to be descriped here:
(Overcoming the negative frequencies - Instantaneous frequency and amplitude estimation using Osculating Circle method, by Ming-Kuang Hsu)

and here:
(Instantaneous frequency estimation using Osculating Circle Method)

An other matlab code snipped is posted here, but it has no results:

The question is, how to calculate the velocity vector of the particle and the Osculating Circle method (in matlab or python)?


[ - ]
Reply by fharrisAugust 24, 2022

Measure instantaneous frequency from the complex signal obtained from output of hilbert transform filter... don't use x_hat=hilbert(x). form filter hilbert then pass signal through filter and append real part to imaginary part. then compute atan of angle using

(x y_dot-y_xdot)/(x^2+y^2) this way you never compute angles as atan and then unwrap angle

the derivative of atan is wonderful for this

look at the two matlab files below.... also look at hilbert filters in multirate signal processing book.... 



[ - ]
Reply by togo_laAugust 31, 2022

Post deleted by author

[ - ]
Reply by togo_laAugust 26, 2022
Thanks for the answer! I will work through the book. In general there are many Hilbert transformers filter designs:
  • FIR kernel calculated with Kaiser Window
  • FIR kernel calculated with Remez
  • FIR kernel based on Sinc kernel
  • IIR with Hanh's method
  • ...

What are the coefficients based on in your examples (brent_frq_est_x)?

Isn't the "Osculating Circle Method" so interesting? Because then the easy-to-use Hilbert transform can be used.

[ - ]
Reply by togo_laAugust 31, 2022
The Hilbert transformers filter with Remez Kernel seems to be best suited for multirate signals. I haven't been able to implement and test the "Osculating Circle method" yet.