diff m-toolbox/test/LTPDA_training/topic5/gendata.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/LTPDA_training/topic5/gendata.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,166 @@
+% util script to generate training session data for topic 5
+% L FERRAIOLI 22-02-09
+%
+% $Id: gendata.m,v 1.4 2009/10/02 08:31:21 mauro Exp $
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% save path
+data_path = '/Users/MH/Matlab/ltpda_cvs/software/m-toolbox/test/LTPDA_Training/topic5/';
+
+%% 1) model filter
+
+% Model Residues and Poles
+mRes = [2.44554138162509e-011 - 1.79482547894083e-011i;
+2.44554138162509e-011 + 1.79482547894083e-011i;
+2.66402334803101e-009 +  1.1025122049153e-009i;
+2.66402334803101e-009 -  1.1025122049153e-009i;
+-7.3560293387644e-009;
+-1.82811618589835e-009 - 1.21803627800855e-009i;
+-1.82811618589835e-009 + 1.21803627800855e-009i;
+1.16258677367555e-009;
+1.65216557639319e-016;                         
+-1.78092396888606e-016;
+-2.80420398962379e-017;
+9.21305973049041e-013 - 8.24686706827269e-014i;
+9.21305973049041e-013 + 8.24686706827269e-014i;
+5.10730060739905e-010 - 3.76571756625722e-011i;
+5.10730060739905e-010 + 3.76571756625722e-011i;
+3.45893698149735e-009;
+3.98139182134446e-014 - 8.25503935419059e-014i;
+3.98139182134446e-014 + 8.25503935419059e-014i;
+-1.40595719147164e-011];
+
+mPoles = [0.843464045655194 - 0.0959986292915475i;
+0.843464045655194 + 0.0959986292915475i;
+0.953187595424927 - 0.0190043625473383i;
+0.953187595424927 + 0.0190043625473383i;
+0.967176277937188;
+0.995012027005247 - 0.00268322602801729i;
+0.995012027005247 + 0.00268322602801729i;
+0.996564761885673;
+0.999999366165445;
+0.999981722418555;
+0.999921882627659;
+0.999624431675213 - 0.000813407848742761i;
+0.999624431675213 + 0.000813407848742761i;
+0.997312006278751 - 0.00265611346834941i;
+0.997312006278751 + 0.00265611346834941i;
+0.990516544257531;
+0.477796923118318 - 0.311064085401834i;
+0.477796923118318 + 0.311064085401834i;
+0];
+
+f = logspace(-6,log10(5),100).';
+fs = 10;
+
+pfparams.type = 'disc';
+pfparams.freq = f;
+pfparams.fs = fs;
+pfparams.res = mRes;
+pfparams.pol = mPoles;
+pfparams.dterm = 0;
+
+% response of the model filter
+pfr = utils.math.pfresp(pfparams);
+y = pfr.resp;
+
+% saving AO
+rfilt = ao(plist('xvals', f, 'yvals', y, 'fs', fs, 'dtype', 'fsdata'));
+rfilt.setName;
+
+%
+rfilt.save(plist('filename',[data_path 'T5_Ex02_rfilt.mat']));
+rfilt.save(plist('filename',[data_path 'T5_Ex02_rfilt.xml']));
+
+%% 2) Peaked model psd
+
+% Create a psd model with two peak resonance at 5e-2 and 7e-2 Hz
+func = '(1e-3./(f).^2 + 1e3./(0.001+f) + 1e6.*f.^2).*1e-10 + 1e-5./(1e-3+((f./1e-2).^2-1).^2) + 1e-6./(1e-3+((f./2e-2).^2-1).^2)';
+pl_data = plist('fsfcn', func, 'f1', 1e-6, 'f2', .5, 'nf', 300);
+mod = ao(pl_data);
+iplot(mod)
+
+%% Building white noise
+
+a = ao(plist('tsfcn', 'randn(size(t))', 'fs', 1, 'nsecs', 10000, 'yunits', 'm'));
+a.setName;
+
+%% Calling the noise generator
+
+pl = plist(...
+    'model', mod, ... % Multiplication by fs needed to preserve energy
+    'MaxIter', 70, ...
+    'PoleType', 2, ...
+    'MinOrder', 10, ...
+    'MaxOrder', 45, ...
+    'Weights', 2, ...
+    'Plot', false,...
+    'Disp', false,...
+    'RMSEVar', 7,...
+    'FitTolerance', 2);
+
+ac = noisegen1D(a, pl);
+
+%% 
+
+acxx = ac.psd(plist('Nfft',2000));
+iplot(acxx,mod)
+
+%%
+
+ac.save(plist('filename',sprintf([data_path 'T5_Ex03_TestNoise.mat'])));
+ac.save(plist('filename',sprintf([data_path 'T5_Ex03_TestNoise.xml'])));
+
+%% 3) Generate polynomial tsdata
+
+% Make fake AO from polyval
+nsecs = 1000;
+fs    = 1;
+  
+a1 = ao(plist('tsfcn', 'polyval([1e-11 0 -5e-6 -1e-3 -5e-1 0.5], t) + 5e2*randn(size(t))', 'fs', fs, 'nsecs', nsecs, 'yunits', 'm'));
+
+% iplot(a1)
+
+a1.save(plist('filename',sprintf([data_path 'T5_Ex04_TestNoise.mat'])));
+a1.save(plist('filename',sprintf([data_path 'T5_Ex04_TestNoise.xml'])));
+
+%% 4) Generate tsdata from function
+
+nsecs = 1000;
+fs = 1;
+a2 = ao(plist('tsfcn','5 + 3.*sin(2.*pi.*(1e-4 + 1e-5.*t).*t + 0.3) + randn(size(t))', 'fs', fs, 'nsecs', nsecs, 'yunits', 'm'));
+
+iplot(a2)
+
+a2.save(plist('filename',sprintf([data_path 'T5_Ex05_TestNoise.mat'])));
+a2.save(plist('filename',sprintf([data_path 'T5_Ex05_TestNoise.xml'])));
+
+%% 5) Temp and Ifo data
+
+% read ao
+ifo_rw = ao('ifo_temp_example/ifo_training.dat');
+ifo_rw.setYunits('rad');
+T_rw = ao('ifo_temp_example/temp_training.dat');
+T_rw.setYunits('degC');
+
+%% 
+
+% Consolidate data
+[ifo_c,T_c] = consolidate(ifo_rw,T_rw,plist('fs',1));
+ifo_c.save(plist('filename',sprintf([data_path 'ifo_Ex06.mat'])));
+ifo_c.save(plist('filename',sprintf([data_path 'ifo_Ex06.xml'])));
+T_c.save(plist('filename',sprintf([data_path 'T_Ex06.mat'])));
+T_c.save(plist('filename',sprintf([data_path 'T_Ex06.xml'])));
+
+%%
+
+% do TF
+% pl2 = plist('Nfft', 2000);
+% tf = tfe(T_c,ifo_c,pl2);
+tf = tfe(T_c,ifo_c);
+
+
+
+
+