Clear Filters
Clear Filters

Info

This question is closed. Reopen it to edit or answer.

Problem Calculating an instantanous frequency

2 views (last 30 days)
Jonathan Ron
Jonathan Ron on 24 Jul 2012
Closed: MATLAB Answer Bot on 20 Aug 2021
Hi,
I'm trying to calculate an instantanous frequency in the (x,t) coordinates
signal -->W=f(t)+i*h(t)
inst. freq--> Wt=(f*h'-h*f')/(h^2+f^2);
the code I'm using (this is an example with a chirp signal);
dt=0.002;
nt=1001;
tvec=linspace(0,2,nt);
f=chirp(tvec,40,2,80);
h=imag(hilbert(f));
n=(f.*gradient(h)-h.*gradient(f))/dt;
d=f.^2+h.^2;
D=diag(d);
w=D\n';
figure(1)
plot(t_vec,ww/2/pi);
the result becomes less and less acurate as the frequency increases and the increase is in a certain rate (which I think concernes the sampling rate).
u can try tt even with a wavelet containing one frequency:
f=cos(2*pi*freq); %change values from 10 to 80
and notice the increase in the error.
I can not upsample the signal and must do the calculation in these coordinates for further work.
anyone have any ideas how to work it out if possible how to get the correct inst. frequency?

Answers (0)

This question is closed.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!