DSPRelated.com
Forums

Overcoming the negative inst. frequencies from hilbert transform

Started by togo_la 2 years ago4 replieslatest reply 2 years ago221 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:
https://www.researchgate.net/publication/265026536...
(Overcoming the negative frequencies - Instantaneous frequency and amplitude estimation using Osculating Circle method, by Ming-Kuang Hsu)

and here:

https://www.researchgate.net/publication/254011228...
(Instantaneous frequency estimation using Osculating Circle Method)

An other matlab code snipped is posted here, but it has no results:
https://de.mathworks.com/matlabcentral/fileexchang...


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


Thanks,
Tobias

[ - ]
Reply by fharrisAugust 31, 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.... 

brent_frq_est_1

brent_frq_est_2

[ - ]
Reply by togo_laAugust 31, 2022

Post deleted by author

[ - ]
Reply by togo_laAugust 31, 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.