diff m-toolbox/test/test_ao_sineParams.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_sineParams.m	Wed Nov 23 19:22:13 2011 +0100
@@ -0,0 +1,132 @@
+% Test ao/sineParams
+%
+% M Nofrarias 10-02-10
+%
+% $Id: test_ao_sineParams.m,v 1.2 2010/02/18 11:17:59 miquel Exp $
+
+clear
+
+% general parameters
+fs  = 5;
+nsecs =500;
+
+
+%% one sinusoid 
+
+% signal parameters
+A1 =  1.23456;
+f1 = 0.1;
+sigma = 0.01;
+
+% AOs
+pl = plist('waveform','sine','f',f1,'A',A1,'fs',fs,'nsecs',nsecs);
+a = ao(pl);
+a.setName('signal 1')
+pl = plist('waveform','noise','sigma',sigma,'fs',fs,'nsecs',nsecs);
+c = ao(pl);
+c.setName('noise')
+
+% sum contributions
+d = a  + c;
+d.iplot
+
+% get parameters
+pl = plist('N',1);
+p = sineParams(d,pl);
+
+% compare with contributions
+% bb = eval(p,plist('index',1));
+% iplot(b,bb)
+
+aa = eval(p,plist('index',1));
+residual = aa-a;
+residual.setName
+iplot(aa,a,residual)
+
+
+%% one sinusoid montecarlo
+
+% signal parameters
+A1 =  1.5;
+f1 = 0.12;
+
+for i = 1:100
+fprintf('iteration %d\n',i);
+sigma(i) = 0.01;
+
+% AOs
+pl = plist('waveform','sine','f',f1,'A',A1,'fs',fs,'nsecs',nsecs);
+a = ao(pl);
+a.setName('signal 1');
+pl = plist('waveform','noise','sigma',sigma(i),'fs',fs,'nsecs',nsecs);
+c = ao(pl);
+c.setName('noise');
+
+% sum contributions
+d = a  + c;
+% d.iplot
+
+% get parameters
+pl = plist('N',1);
+p(i) = sineParams(d,pl);
+A(i) = p(i).y(1);
+dA(i) = p(i).dy(1);
+f(i) = p(i).y(2);
+df(i) = p(i).dy(2);
+% compare with contributions
+% bb = eval(p,plist('index',1));
+% iplot(b,bb)
+
+aa = eval(p(i),plist('index',1));
+residual = aa-a;
+residual.setName;
+end
+
+% compare mean(MSE) with computed Var + bias^2 
+predicted_A = sqrt(std(A)^2 + (mean(A)-A1)^2)
+computed_A = mean(dA)
+
+predicted_f = sqrt(std(f)^2 + (mean(f)-f1)^2)
+computed_f = mean(df)
+
+%% two sinusoid
+
+% signal parameters
+A1 =  2.2;
+f1 = 0.1;
+A2 = 4.5;
+f2 = 0.33;
+sigma = 0.02;
+
+% AOs
+pl = plist('waveform','sine','f',f1,'A',A1,'fs',fs,'nsecs',nsecs);
+a = ao(pl);
+a.setName('signal 1')
+pl = plist('waveform','sine','f',f2,'A',A2,'fs',fs,'nsecs',nsecs);
+b = ao(pl);
+b.setName('signal 2')
+pl = plist('waveform','noise','sigma',sigma,'fs',fs,'nsecs',nsecs);
+c = ao(pl);
+c.setName('noise')
+
+% sum contributions
+d = a  + b + c;
+% d.iplot
+
+% get parameters
+pl = plist('N',2);
+p = sineParams(d,pl);
+
+aa = eval(p,plist('index',1));
+
+
+% compare with contributions
+bb = eval(p,plist('index',1));
+residual = bb-b;
+residual.setName
+iplot(bb,b,residual)
+
+aa = eval(p,plist('index',2));
+residual = aa-a;
+residual.setName
+iplot(aa,a,residual)
\ No newline at end of file