Mercurial > hg > ltpda
diff m-toolbox/test/test_ao_sDomainFit_2.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/test/test_ao_sDomainFit_2.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,55 @@ +% Test script for sDomainFit in two dimensional case +% +% L. Ferraioli 02-12-08 +% +% $Id: test_ao_sDomainFit_2.m,v 1.4 2009/08/06 21:55:34 luigi Exp $ +% +%% Building a frequency response + +% Create a frequency-series AO +pl_data1 = plist('fsfcn', '(1e-3./(f).^2 + 1e3./(0.001+f) + 1e5.*f.^2).*1e-10', 'f1', 1e-6, 'f2', 5, 'nf', 1000); +a1 = ao(pl_data1); + +pl_data2 = plist('fsfcn', '(5e-3./(2e-5+f).^2 + 5e3./(0.001+f) + 5e4.*f.^2).*1e-10', 'f1', 1e-6, 'f2', 5, 'nf', 1000); +a2 = ao(pl_data2); + +iplot(a1,a2) +a = [a1,a2]; + +%% Fitting + +% Fitting parameter list +pl_fit = plist('AutoSearch','on',... + 'StartPoles',[],... + 'StartPolesOpt','clog',... + 'maxiter',35,... + 'minorder',10,... + 'maxorder',25,... + 'weights',[],... + 'weightparam','abs',... + 'CONDTYPE','MSE',... + 'FITTOL',1e-3,... + 'MSEVARTOL',1e-2,... + 'Plot','off',... + 'ForceStability','off',... + 'direct term','off',... + 'CheckProgress','off'); + +% Do fit +mod = sDomainFit(a, pl_fit); + +%% Comparison + +resp(2,1) = ao; +resids(2,1) = ao; +mse(2,1) = ao; + +for ii = 1:numel(mod.objs) + resp(ii) = mod.objs(ii).procinfo.find('FIT_RESP'); + resids(ii) = mod.objs(ii).procinfo.find('FIT_RESIDUALS'); + mse(ii) = mod.objs(ii).procinfo.find('FIT_MSE'); +end + +iplot(a,resp,abs(resids)) +iplot(mse,plist('Yscales',{'All','log'})) +