Instantaneous frequency estimation using AR2 modelisation.
[FNORM,T2,RATIO]=ifestar2(X,T) [FNORM,T2,RATIO]=ifestar2(X)
real signal to be analyzed.
Time instants (must be greater than 4) (default : 4:length(X)).
Output (normalized) instantaneous frequency.
Time instants coresponding to FNORM. Since the algorithm can not always give a value, T2 is different of T.
proportion of instants where the algorithm yields an estimation
ifestar2 computes an estimate of the instantaneous frequency of the real signal X at time instant(s) T. The result FNORM lies between 0.0 and 0.5. This estimate is based only on the 4 last signal points, and has therefore an approximate delay of 2.5 points.
[x,if]=fmlin(50,0.05,0.3,5); x=real(x); [if2,t]=ifestar2(x); plot(t,if(t),t,if2); N=1100; [deter,if]=fmconst(N,0.05); deter=real(deter); noise=rand(N,1,'normal'); NbSNR=101; SNR=linspace(0,100,NbSNR); for iSNR=1:NbSNR, sig=sigmerge(deter,noise,SNR(iSNR)); [if2,t,ratio(iSNR)]=ifestar2(sig); EQM(iSNR)=norm(if(t)-if2)^2 / length(t) ; end; clf(); subplot(211); plot(SNR,-10.0 * log10(EQM)); xgrid; xlabel('SNR'); ylabel('-10 log10(EQM)'); subplot(212); plot(SNR,ratio); xgrid; xlabel('SNR'); ylabel('ratio'); | ![]() | ![]() |