diff m-toolbox/test/test_timedomainfit.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_timedomainfit.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,99 @@
+% Test file for ltpda_timedomain fit. This does a noise subtraction from
+% engineering model data.
+% 
+% M Hewitson 18-03-07
+% 
+% $Id: test_timedomainfit.m,v 1.2 2008/07/29 15:11:44 ingo Exp $
+% 
+
+%% Load data into analysis objects
+disp('*** Loading data....')
+x12   = ao('~/frommario/Data/x12.txt'); %x12
+phi1  = ao('~/frommario/Data/phi1.txt'); %phi1
+eta1  = ao('~/frommario/Data/eta1.txt'); %eta1
+phi12 = ao('~/frommario/Data/phi12.txt'); %phi12
+eta12 = ao('~/frommario/Data/eta12.txt'); %eta12
+disp('*** Done.')
+
+% get the sample frequency for designing bandpass filter
+d1 = x12.data;
+fs = d1.fs;
+
+%% Load bandpass
+pl = plist();
+pl = append(pl, param('type', 'bandpass'));
+% pl = append(pl, param('fs', fs));
+pl = append(pl, param('fc', [0.003 0.03]));
+pl = append(pl, param('order', 2));
+bp = miir(pl);
+
+%% Filter data and remove startup transients
+
+% parameter list for split() 
+% to remove startup transient of filters
+spl    = plist(param('times', [1000 2000]));
+
+% parameter list for filter()
+fpl    = plist(param('filter', bp));
+
+% filter and split data
+x12f   = split(filter(x12, fpl), spl);
+phi1f  = split(filter(phi1, fpl), spl);
+eta1f  = split(filter(eta1, fpl), spl);
+phi12f = split(filter(phi12, fpl), spl);
+eta12f = split(filter(eta12, fpl), spl);
+
+
+%% Make Timedomainfit
+
+coeffsAO = timedomainfit(x12f, phi1f, eta1f, phi12f, eta12f);
+
+%% Make linear combination 
+
+x12_fit = lincom(phi1, eta1, phi12, eta12, coeffsAO);
+x12ns = x12 - x12_fit;
+%% Make LPSD of each
+
+% Window function
+w = specwin('Kaiser', 10, 150);
+
+% parameter list for lpsd
+pl = plist();
+pl = append(pl, param('Kdes', 100));
+pl = append(pl, param('Kmin', 2));
+pl = append(pl, param('Jdes', 500));
+pl = append(pl, param('Win', w));
+pl = append(pl, param('order', 1));
+% LPSD of filtered x12
+x12fxx = lpsd(x12f, pl);
+x12xx = lpsd(x12, pl);
+x12nsxx = lpsd(x12ns, pl);
+
+%% Plot results
+
+iplot([x12fxx x12xx x12nsxx])
+legend('Bandpassed X12', 'X12', 'X12 with noise subtracted');
+%%
+figure
+plot(x12ns.hist)
+
+%%
+
+save(x12fxx, 'x12fxx.xml');
+save(x12xx, 'x12xx.xml');
+save(x12nsxx, 'x12nsxx.xml');
+
+return
+
+%% Reproduce from history
+
+% Write an m-file from AO
+ao2m(x12nsxx, 'test.m');
+
+%% now run it
+test
+
+figure
+plot(a1)
+figure
+plot(a1.hist)