Mercurial > hg > ltpda
comparison testing/utp_1.1/utp_fcns/get_test_obj_ao_noisegen1D.m @ 44:409a22968d5e default
Add unit tests
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Tue, 06 Dec 2011 18:42:11 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
43:bc767aaa99a8 | 44:409a22968d5e |
---|---|
1 % test csd for ao/noisegen1D | |
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
3 % | |
4 % DESCRIPTION: Output a model for mdc1 cross spectral density | |
5 % | |
6 % CALL: | |
7 % [PSD,a1,a2,a3,a4,a5,av,am,plstd] = get_test_obj_ao_noisegen1D() | |
8 % | |
9 % | |
10 % OUTPUTS: | |
11 % CSD - a 2x2 matrix of analysis objects containing CSD | |
12 % models | |
13 % TF - a 2x2 matrix of analysis objects containing TF | |
14 % models | |
15 % a# - are white noise aos | |
16 % av - a vector of wn aos | |
17 % am - a matrix of wn aos | |
18 % plst - a standard plist to call noisegen2D | |
19 % | |
20 % | |
21 % | |
22 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
23 function [PSD,a1,a2,a3,a4,a5,av,am,plstd,plstd2] = get_test_obj_ao_noisegen1D() | |
24 | |
25 nsecs = 100; | |
26 fs = 10; % Hz | |
27 f = logspace(-6,log10(fs/2),100).'; % vector of frequencies Hz | |
28 | |
29 % Models response calculation | |
30 tf11 = calcTF11(f,fs); | |
31 tf12 = calcTF12(f,fs); | |
32 | |
33 % PSD calculation | |
34 PSD = tf11.*conj(tf11)+tf12.*conj(tf12); | |
35 PSD.setName('PSD'); | |
36 | |
37 | |
38 % Building test objects | |
39 a1 = ao(plist('tsfcn', 'randn(size(t))', 'fs', fs, 'nsecs', nsecs, 'yunits', 'm')); | |
40 a2 = ao(plist('tsfcn', 'randn(size(t))', 'fs', fs, 'nsecs', nsecs)); | |
41 a3 = ao(plist('tsfcn', 'randn(size(t))', 'fs', fs, 'nsecs', nsecs, 'yunits', 'V')); | |
42 a4 = ao(plist('tsfcn', 'randn(size(t))', 'fs', fs, 'nsecs', nsecs, 'yunits', '')); | |
43 a5 = ao(plist('tsfcn', 'randn(size(t)).''', 'fs', fs, 'nsecs', nsecs, 'yunits', 'fm s^-2')); | |
44 av = [a1 a2 a3]; | |
45 am = [a1 a2; a3 a4]; | |
46 | |
47 a1.setName; | |
48 a2.setName; | |
49 a3.setName; | |
50 a4.setName; | |
51 a5.setName; | |
52 | |
53 % building standard plist | |
54 plstd = plist(... | |
55 'model', PSD, ... | |
56 'MaxIter', 60, ... | |
57 'PoleType', 2, ... | |
58 'MinOrder', 15, ... | |
59 'MaxOrder', 45, ... | |
60 'Weights', 3, ... | |
61 'Plot', false,... | |
62 'Disp', false,... | |
63 'MSEVARTOL', 0.1,... | |
64 'FITTOL', 0.01); | |
65 | |
66 plstd2 = plist(... | |
67 'fs', fs, ... | |
68 'Iunits', '', ... | |
69 'Ounits', 'm', ... | |
70 'MaxIter', 60, ... | |
71 'PoleType', 2, ... | |
72 'MinOrder', 15, ... | |
73 'MaxOrder', 45, ... | |
74 'Weights', 3, ... | |
75 'Plot', false,... | |
76 'Disp', false,... | |
77 'MSEVARTOL', 0.1,... | |
78 'FITTOL', 0.01); | |
79 | |
80 end | |
81 | |
82 | |
83 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
84 % LOCAL FUNCTIONS | |
85 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
86 function tf11 = calcTF11(f,fs) | |
87 | |
88 | |
89 | |
90 % Model Stefano TF11 coefficients | |
91 dRes11 = [2.44554138162509e-011 - 1.79482547894083e-011i; | |
92 2.44554138162509e-011 + 1.79482547894083e-011i; | |
93 2.66402334803101e-009 + 1.1025122049153e-009i; | |
94 2.66402334803101e-009 - 1.1025122049153e-009i; | |
95 -7.3560293387644e-009; | |
96 -1.82811618589835e-009 - 1.21803627800855e-009i; | |
97 -1.82811618589835e-009 + 1.21803627800855e-009i; | |
98 1.16258677367555e-009; | |
99 1.65216557639319e-016; | |
100 -1.78092396888606e-016; | |
101 -2.80420398962379e-017; | |
102 9.21305973049041e-013 - 8.24686706827269e-014i; | |
103 9.21305973049041e-013 + 8.24686706827269e-014i; | |
104 5.10730060739905e-010 - 3.76571756625722e-011i; | |
105 5.10730060739905e-010 + 3.76571756625722e-011i; | |
106 3.45893698149735e-009; | |
107 3.98139182134446e-014 - 8.25503935419059e-014i; | |
108 3.98139182134446e-014 + 8.25503935419059e-014i; | |
109 -1.40595719147164e-011]; | |
110 | |
111 dPoles11 = [0.843464045655194 - 0.0959986292915475i; | |
112 0.843464045655194 + 0.0959986292915475i; | |
113 0.953187595424927 - 0.0190043625473383i; | |
114 0.953187595424927 + 0.0190043625473383i; | |
115 0.967176277937188; | |
116 0.995012027005247 - 0.00268322602801729i; | |
117 0.995012027005247 + 0.00268322602801729i; | |
118 0.996564761885673; | |
119 0.999999366165445; | |
120 0.999981722418555; | |
121 0.999921882627659; | |
122 0.999624431675213 - 0.000813407848742761i; | |
123 0.999624431675213 + 0.000813407848742761i; | |
124 0.997312006278751 - 0.00265611346834941i; | |
125 0.997312006278751 + 0.00265611346834941i; | |
126 0.990516544257531; | |
127 0.477796923118318 - 0.311064085401834i; | |
128 0.477796923118318 + 0.311064085401834i; | |
129 0]; | |
130 | |
131 dDTerms11 = 0; | |
132 | |
133 % response calculation | |
134 pfparams.type = 'disc'; | |
135 pfparams.freq = f; | |
136 pfparams.fs = fs; | |
137 pfparams.res = dRes11; | |
138 pfparams.pol = dPoles11; | |
139 pfparams.dterm = dDTerms11; | |
140 pfr = utils.math.pfresp(pfparams); | |
141 mtf11 = pfr.resp; | |
142 | |
143 % building AOs | |
144 tf11 = ao(plist('xvals', f, 'yvals', mtf11, 'fs', fs, 'type', 'fsdata')); | |
145 % name for this object | |
146 tf11.setName('TF11'); | |
147 | |
148 end | |
149 | |
150 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
151 function tf12 = calcTF12(f,fs) | |
152 | |
153 % Model Stefano TF12 | |
154 dRes12 = [1.44258422208796e-017 + 7.07359428613009e-019i; | |
155 1.44258422208796e-017 - 7.07359428613009e-019i; | |
156 -3.4918408053655e-021 - 1.05662874569329e-021i; | |
157 -3.4918408053655e-021 + 1.05662874569329e-021i; | |
158 -7.61773292876976e-021; | |
159 4.84357724603939e-020 + 2.38824204294595e-019i; | |
160 4.84357724603939e-020 - 2.38824204294595e-019i; | |
161 -4.07088520945753e-020 - 2.31474543846105e-019i; | |
162 -4.07088520945753e-020 + 2.31474543846105e-019i; | |
163 8.73316588658882e-023; | |
164 -5.21840635377469e-020; | |
165 1.8461911504859e-023; | |
166 5.20105247464461e-020; | |
167 -4.68960092394415e-022; | |
168 -1.44261407664171e-017 + 6.8922564526833e-019i; | |
169 -1.44261407664171e-017 - 6.8922564526833e-019i; | |
170 3.13688133935426e-022]; | |
171 | |
172 dPoles12 = [0.477546340377332 - 0.310830571032376i; | |
173 0.477546340377332 + 0.310830571032376i; | |
174 0.99790715414307 - 0.0028490561287024i; | |
175 0.99790715414307 + 0.0028490561287024i; | |
176 0.998014205354671 ; | |
177 0.999585354543332 - 0.000780408757425194i; | |
178 0.999585354543332 + 0.000780408757425194i; | |
179 0.99966003029931 - 0.000830944038363768i; | |
180 0.99966003029931 + 0.000830944038363768i; | |
181 0.999962770401331 ; | |
182 0.999981881865521 ; | |
183 0.999999365763457 ; | |
184 0.999981706320212 ; | |
185 0.99992421574188 ; | |
186 0.477898460791003 + 0.311001926610074i; | |
187 0.477898460791003 - 0.311001926610074i; | |
188 0]; | |
189 dDTerms12 = 0; | |
190 | |
191 % response calculation | |
192 pfparams.type = 'disc'; | |
193 pfparams.freq = f; | |
194 pfparams.fs = fs; | |
195 pfparams.res = dRes12; | |
196 pfparams.pol = dPoles12; | |
197 pfparams.dterm = dDTerms12; | |
198 pfr = utils.math.pfresp(pfparams); | |
199 mtf12 = pfr.resp; | |
200 | |
201 % building AOs | |
202 tf12 = ao(plist('xvals', f, 'yvals', mtf12, 'fs', fs, 'type', 'fsdata')); | |
203 % name for this object | |
204 tf12.setName('TF12'); | |
205 | |
206 end | |
207 |