<< Time-Domain Processing Time-Domain Processing instfreq >>

stftb >> stftb > Time-Domain Processing > ifestar2

ifestar2

Instantaneous frequency estimation using AR2 modelisation

Calling Sequence

[FNORM,T2,RATIO] = ifestar2(X, T)
[FNORM,T2,RATIO] = ifestar2(X)

Parameters

X :

A real vector of size N: the signal to be analyzed.

T :

A vector with integer elements >= 4: Time instants (default : 4:N).

FNORM :

a real column vector: the (normalized) instantaneous frequency.

T2 :

a real column vector: the time instants coresponding to FNORM. Since the algorithm can not always give a value, T2 may be different of T.

RATIO :

a scalar in [0 1]: the proportion of instants where the algorithm yields an estimation

Description

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.

Examples

First example

[x,if1] = fmlin(50,0.05,0.3,5); 
[if2,t] = ifestar2(real(x));
clf; plot(t,if1(t),t,if2);

Second example

N=1100; 
[deter,if1]=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,1)=norm(if1(t)-if2)^2 / length(t) ;
end;

clf(); 
subplot(211); plot(SNR,EQM); gca().log_flags="nl";xgrid;
xlabel('SNR'); ylabel('EQM');
subplot(212); plot(SNR,ratio); xgrid;
xlabel('SNR'); ylabel('ratio');

See also

Authors


Report an issue
<< Time-Domain Processing Time-Domain Processing instfreq >>