Info
This question is closed. Reopen it to edit or answer.
Problem Calculating an instantanous frequency
1 view (last 30 days)
Show older comments
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?
0 Comments
Answers (0)
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!