⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ifestar2.m

📁 最新时频分析处理软件
💻 M
字号:
function [fnorm,t,rejratio]=ifestar2(x,t);%IFESTAR2 Instantaneous frequency estimation using AR2 modelisation. %	[FNORM,T2,RATIO]=IFESTAR2(X,T) 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     : real signal to be analyzed.%	T     : Time instants (must be greater than 4) %					(default : 4:length(X)).%	FNORM : Output (normalized) instantaneous frequency.%	T2    : Time instants coresponding to FNORM. Since the%		algorithm can not always give a value, T2 is %		different of T. %       RATIO : proportion of instants where the algorithm yields%		an estimation%%	Examples : %        [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=randn(N,1); 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;%        subplot(211); plot(SNR,-10.0 * log10(EQM)); grid;%        xlabel('SNR'); ylabel('-10 log10(EQM)');%        subplot(212); plot(SNR,ratio); grid;%        xlabel('SNR'); ylabel('ratio');%%	 See also  INSTFREQ, KAYTTH, SGRPDLAY.%	F. Auger, April 1996.%       This estimator is the causal version of the estimator called%       "4 points Prony estimator" in the article "Instantaneous%	frequency estimation using linear prediction with comparisons%	to the dESAs", IEEE Signal Processing Letters, Vo 3, No 2, p%	54-56, February 1996. %	Copyright (c) 1996 by CNRS (France).%%	------------------- CONFIDENTIAL PROGRAM -------------------- %	This program can not be used without the authorization of its%	author(s). For any comment or bug report, please send e-mail to %	f.auger@ieee.org if (nargin == 0), error('At least one parameter required');end;[xrow,xcol] = size(x);if (xcol~=1), error('X must have only one column');endx = real(x);if (nargin == 1), t=4:xrow; end;[trow,tcol] = size(t);if (trow~=1), error('T must have only one row'); elseif min(t)<4, error('The smallest value of T must be greater than 4');end;Kappa = x(t-1) .* x(t-2) - x(t  ) .* x(t-3) ;psi1  = x(t-1) .* x(t-1) - x(t  ) .* x(t-2) ;psi2  = x(t-2) .* x(t-2) - x(t-1) .* x(t-3) ;den   = psi1 .* psi2 ;indices = find(den>0);arg=0.5*Kappa(indices)./sqrt(den(indices));indarg=find(abs(arg)>1);arg(indarg)=sign(arg(indarg));fnorm = acos(arg)/(2.0*pi);rejratio = length(indices)/length(t);t = t(indices);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -