From: Dean on
I've a very simple signal, and heard people are using Hilbert Transform to detect the instantaneous frequency (Fi). I'm new to Hilbert, and this is my first attempt. Why there are negative values shown in the plot.

The Fi of the signal apparently to be 22.5Hz, which I suppose is:

Sig = sin(A)+sin(B) = sin((A+B)/2)cos((A-B)/2),

From this formula, the Fi = (A+B)/2 = (10+35)/2=22.5 Hz, and this can be seen from the figure below.

But where is Fi at 12.5Hz?

clear;clc;clf;
N=2^22;
t=linspace(1,2,N);deta=t(2)-t(1);fs=1/deta;
x=5*sin(2*pi*10*t)+5*sin(2*pi*35*t);
xx = hilbert(x);
phix = angle(xx)/2/pi;
fxi = diff(phix);
plot(t(1:end-1),fxi*fs,'-o');

%now you can see the 22.5Hz frequency spectrum using
figure;
plot(t(1:end-1),fxi*fs,'-o');
ylim([20.5,24])
From: Dean on
What's the most popular method to estimate the Instantaneous Frequency?