www.gusucode.com > 时间序列分析工具箱 - tsa源码程序 > tsa/demoperf.m

    % Demonstrates the much higher performance 
% of EARPYW.M compared to AR.M
% Both algoriths implemented the Yule-Walker approach
% for estimating the Autoregressive Parameters 

%	Version 2.43
%	last revision 19.06.1998
%	Copyright (c) 1997-1998 by Alois Schloegl
%	e-mail: a.schloegl@ieee.org	

% This library is free software; you can redistribute it and/or
% modify it under the terms of the GNU Library General Public
% License as published by the Free Software Foundation; either
% Version 2 of the License, or (at your option) any later version.
%
% This library is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
% Library General Public License for more details.
%
% You should have received a copy of the GNU Library General Public
% License along with this library; if not, write to the
% Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA  02111-1307, USA.


if exist('OCTAVE_VERSION')==5
	 fprintf(2,'DEMOPERF cannot count FLOPS\n');
end;
% 	 fprintf(2,'DEMOPERF cannot be executed because FLOPS is not available under octave\n');
%        return;
%else
fprintf(1,'\nAR-test, calculates Autoregressive parameters with the Yule-Walker method\n');

clear eeg8s;load eeg8s.mat;
eeg8s=repmat(eeg8s,100,1);
MOP = 20;

if exist('ar')>=2
tic,flops(0); AR_ident=ar(eeg8s,MOP,'fb');RES=[flops toc];
which ar;
fprintf(1,'   needs \t%i FLOPS,%3.3fs for %i samples and a model order of %i.\n',RES,length(eeg8s),MOP);
else
        % AR.M is part of the Matlab IDENT-toolbox, which is not available 
        fprintf(1,'Sorry, AR.M not available \n');
end;        
tic,flops(0); AR_tsa=lattice(eeg8s',MOP);RES=[flops toc];
which lattice;
fprintf(1,'   needs \t%i FLOPS, %3.3fs for %i samples and a model order of %i.\n',RES,length(eeg8s),MOP);
    
fprintf(1,'\nHistogramm test\n');
tic,flops(0); [H,X]=hist(eeg8s,1060);RES=[flops toc];
which hist;
fprintf(1,'   needs \t%i FLOPS, %3.3fs for %i samples and a binwidth of 0.01 (1060 bins).\n',RES,length(eeg8s));
tmp=round(eeg8s/.01);
tic,flops(0); [R]=histo3(tmp);RES=[flops toc];
which histo;
fprintf(1,'   needs \t%i FLOPS, %3.3fs for %i samples and a binwidth of 0.01 (1060 bins).\n',RES,length(eeg8s));

fprintf(1,'\nUCP-Test: Test polynomials if all roots are inside the Unit Circle\n');
N=100;
x=rand(N,10);
y=zeros(N,11);

for k=1:N,y(k,:)=poly(x(k,:));end;

tic,flops(0); for k=1:N, b(k)=all(abs(roots(y(k,:)))<1); end; RES=[flops toc];
fprintf(1,'for k=1:N, b(k)=all(abs(roots(y(k,:)))<1); end;\n   needs \t%i FLOPS, %3.3fs for %i polynomials of order %i.\n',RES,N,MOP+1);

tic,flops(0); b=ucp(y);RES=[flops toc];
which ucp;
fprintf(1,'   needs \t%i FLOPS, %3.3fs for %i polynomials of order %i.\n',RES,N,MOP+1);

%end;