Mercurial > hg > ltpda
comparison m-toolbox/test/utils/get_2D_test_obj_tf_psd.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f0afece42f48 |
---|---|
1 % test csd for ao/noisegen2D | |
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
3 % | |
4 % DESCRIPTION: Output a model for mdc1 cross spectral density | |
5 % | |
6 % CALL: | |
7 % [CSD,TF,a1,a2,a3,a4,a5,a6,av,am,plstd] = get_test_obj_ao_noisegen2D() | |
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 [CSD,TF] = get_2D_test_obj_tf_psd() | |
24 | |
25 fs = 10; % Hz | |
26 f = logspace(-6,log10(fs/2),100).'; % vector of frequencies Hz | |
27 | |
28 % Models response calculation | |
29 tf11 = calcTF11(f,fs); | |
30 tf12 = calcTF12(f,fs); | |
31 tf21 = calcTF21(f,fs); | |
32 tf22 = calcTF22(f,fs); | |
33 | |
34 % CSD calculation | |
35 csd11 = tf11.*conj(tf11)+tf12.*conj(tf12); | |
36 csd12 = tf11.*conj(tf21)+tf12.*conj(tf22); | |
37 csd22 = tf22.*conj(tf22)+tf21.*conj(tf21); | |
38 csd21 = conj(csd12); | |
39 csd11.setName('CSD11'); | |
40 csd12.setName('CSD12'); | |
41 csd21.setName('CSD21'); | |
42 csd22.setName('CSD22'); | |
43 | |
44 CSD = [csd11 csd12;csd21 csd22]; | |
45 TF = [tf11 tf12;tf21 tf22]; | |
46 | |
47 | |
48 end | |
49 | |
50 | |
51 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
52 % LOCAL FUNCTIONS | |
53 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
54 function tf11 = calcTF11(f,fs) | |
55 | |
56 | |
57 | |
58 % Model Stefano TF11 coefficients | |
59 dRes11 = [2.44554138162509e-011 - 1.79482547894083e-011i; | |
60 2.44554138162509e-011 + 1.79482547894083e-011i; | |
61 2.66402334803101e-009 + 1.1025122049153e-009i; | |
62 2.66402334803101e-009 - 1.1025122049153e-009i; | |
63 -7.3560293387644e-009; | |
64 -1.82811618589835e-009 - 1.21803627800855e-009i; | |
65 -1.82811618589835e-009 + 1.21803627800855e-009i; | |
66 1.16258677367555e-009; | |
67 1.65216557639319e-016; | |
68 -1.78092396888606e-016; | |
69 -2.80420398962379e-017; | |
70 9.21305973049041e-013 - 8.24686706827269e-014i; | |
71 9.21305973049041e-013 + 8.24686706827269e-014i; | |
72 5.10730060739905e-010 - 3.76571756625722e-011i; | |
73 5.10730060739905e-010 + 3.76571756625722e-011i; | |
74 3.45893698149735e-009; | |
75 3.98139182134446e-014 - 8.25503935419059e-014i; | |
76 3.98139182134446e-014 + 8.25503935419059e-014i; | |
77 -1.40595719147164e-011]; | |
78 | |
79 dPoles11 = [0.843464045655194 - 0.0959986292915475i; | |
80 0.843464045655194 + 0.0959986292915475i; | |
81 0.953187595424927 - 0.0190043625473383i; | |
82 0.953187595424927 + 0.0190043625473383i; | |
83 0.967176277937188; | |
84 0.995012027005247 - 0.00268322602801729i; | |
85 0.995012027005247 + 0.00268322602801729i; | |
86 0.996564761885673; | |
87 0.999999366165445; | |
88 0.999981722418555; | |
89 0.999921882627659; | |
90 0.999624431675213 - 0.000813407848742761i; | |
91 0.999624431675213 + 0.000813407848742761i; | |
92 0.997312006278751 - 0.00265611346834941i; | |
93 0.997312006278751 + 0.00265611346834941i; | |
94 0.990516544257531; | |
95 0.477796923118318 - 0.311064085401834i; | |
96 0.477796923118318 + 0.311064085401834i; | |
97 0]; | |
98 | |
99 dDTerms11 = 0; | |
100 | |
101 % response calculation | |
102 pfparams.type = 'disc'; | |
103 pfparams.freq = f; | |
104 pfparams.fs = fs; | |
105 pfparams.res = dRes11; | |
106 pfparams.pol = dPoles11; | |
107 pfparams.dterm = dDTerms11; | |
108 pfr = utils.math.pfresp(pfparams); | |
109 mtf11 = pfr.resp; | |
110 | |
111 % building AOs | |
112 tf11 = ao(plist('xvals', f, 'yvals', mtf11, 'fs', fs, 'dtype', 'fsdata')); | |
113 % name for this object | |
114 tf11.setName('TF11'); | |
115 | |
116 end | |
117 | |
118 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
119 function tf12 = calcTF12(f,fs) | |
120 | |
121 % Model Stefano TF12 | |
122 dRes12 = [1.44258422208796e-017 + 7.07359428613009e-019i; | |
123 1.44258422208796e-017 - 7.07359428613009e-019i; | |
124 -3.4918408053655e-021 - 1.05662874569329e-021i; | |
125 -3.4918408053655e-021 + 1.05662874569329e-021i; | |
126 -7.61773292876976e-021; | |
127 4.84357724603939e-020 + 2.38824204294595e-019i; | |
128 4.84357724603939e-020 - 2.38824204294595e-019i; | |
129 -4.07088520945753e-020 - 2.31474543846105e-019i; | |
130 -4.07088520945753e-020 + 2.31474543846105e-019i; | |
131 8.73316588658882e-023; | |
132 -5.21840635377469e-020; | |
133 1.8461911504859e-023; | |
134 5.20105247464461e-020; | |
135 -4.68960092394415e-022; | |
136 -1.44261407664171e-017 + 6.8922564526833e-019i; | |
137 -1.44261407664171e-017 - 6.8922564526833e-019i; | |
138 3.13688133935426e-022]; | |
139 | |
140 dPoles12 = [0.477546340377332 - 0.310830571032376i; | |
141 0.477546340377332 + 0.310830571032376i; | |
142 0.99790715414307 - 0.0028490561287024i; | |
143 0.99790715414307 + 0.0028490561287024i; | |
144 0.998014205354671 ; | |
145 0.999585354543332 - 0.000780408757425194i; | |
146 0.999585354543332 + 0.000780408757425194i; | |
147 0.99966003029931 - 0.000830944038363768i; | |
148 0.99966003029931 + 0.000830944038363768i; | |
149 0.999962770401331 ; | |
150 0.999981881865521 ; | |
151 0.999999365763457 ; | |
152 0.999981706320212 ; | |
153 0.99992421574188 ; | |
154 0.477898460791003 + 0.311001926610074i; | |
155 0.477898460791003 - 0.311001926610074i; | |
156 0]; | |
157 dDTerms12 = 0; | |
158 | |
159 % response calculation | |
160 pfparams.type = 'disc'; | |
161 pfparams.freq = f; | |
162 pfparams.fs = fs; | |
163 pfparams.res = dRes12; | |
164 pfparams.pol = dPoles12; | |
165 pfparams.dterm = dDTerms12; | |
166 pfr = utils.math.pfresp(pfparams); | |
167 mtf12 = pfr.resp; | |
168 | |
169 % building AOs | |
170 tf12 = ao(plist('xvals', f, 'yvals', mtf12, 'fs', fs, 'dtype', 'fsdata')); | |
171 % name for this object | |
172 tf12.setName('TF12'); | |
173 | |
174 end | |
175 | |
176 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
177 function tf21 = calcTF21(f,fs) | |
178 | |
179 % Model Stefano Tf21 | |
180 dRes21 = [-1.80035241582968e-016 + 1.99543917791863e-015i; | |
181 -1.80035241582968e-016 - 1.99543917791863e-015i; | |
182 -1.85590889333759e-013 - 1.23844418827409e-014i; | |
183 -1.85590889333759e-013 + 1.23844418827409e-014i; | |
184 5.03656596876842e-013 ; | |
185 -2.62470963499904e-013 + 2.30024232938878e-012i; | |
186 -2.62470963499904e-013 - 2.30024232938878e-012i; | |
187 -9.83780507870955e-018 ; | |
188 3.40426735130194e-021 ; | |
189 9.78322351492755e-018 ; | |
190 -1.65010934542937e-020 ; | |
191 2.60918565203438e-015 + 1.0546609464659e-015i; | |
192 2.60918565203438e-015 - 1.0546609464659e-015i; | |
193 3.18105585405455e-014 + 2.48839990780042e-013i; | |
194 3.18105585405455e-014 - 2.48839990780042e-013i; | |
195 3.23021641947666e-013 ; | |
196 4.81265000078114e-016 - 3.18269170053848e-017i; | |
197 4.81265000078114e-016 + 3.18269170053848e-017i; | |
198 5.16260024128201e-018]; | |
199 | |
200 dPoles21 = [0.872004077421604 - 0.110344282822693i; | |
201 0.872004077421604 + 0.110344282822693i; | |
202 0.956884129232757 - 0.0225532091775074i; | |
203 0.956884129232757 + 0.0225532091775074i; | |
204 0.966514825697177 ; | |
205 0.995140550419744 - 0.000755127639524413i; | |
206 0.995140550419744 + 0.000755127639524413i; | |
207 0.999981802194393 ; | |
208 0.99999936576546 ; | |
209 0.999981722418555 ; | |
210 0.999921882627659 ; | |
211 0.999624431675213 + 0.000813407848742761i; | |
212 0.999624431675213 - 0.000813407848742761i; | |
213 0.997312006278751 + 0.00265611346834941i; | |
214 0.997312006278751 - 0.00265611346834941i; | |
215 0.990516544257531 ; | |
216 0.477796923118318 + 0.311064085401834i; | |
217 0.477796923118318 - 0.311064085401834i; | |
218 0]; | |
219 | |
220 dDTerms21 = 0; | |
221 | |
222 % response calculation | |
223 pfparams.type = 'disc'; | |
224 pfparams.freq = f; | |
225 pfparams.fs = fs; | |
226 pfparams.res = dRes21; | |
227 pfparams.pol = dPoles21; | |
228 pfparams.dterm = dDTerms21; | |
229 pfr = utils.math.pfresp(pfparams); | |
230 mtf21 = pfr.resp; | |
231 | |
232 % building AOs | |
233 tf21 = ao(plist('xvals', f, 'yvals', mtf21, 'fs', fs, 'dtype', 'fsdata')); | |
234 % name for this object | |
235 tf21.setName('TF21'); | |
236 | |
237 end | |
238 | |
239 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
240 function tf22 = calcTF22(f,fs) | |
241 | |
242 % Model Stefano Tf22 | |
243 dRes22 = [1.1284521501259e-014; | |
244 -3.72133611555879e-014 - 2.08232683444075e-014i; | |
245 -3.72133611555879e-014 + 2.08232683444075e-014i; | |
246 9.84930639106637e-014 - 1.46640810672565e-013i; | |
247 9.84930639106637e-014 + 1.46640810672565e-013i; | |
248 2.51323684013671e-014 ; | |
249 -5.64078525288305e-014 ; | |
250 -1.62476406586366e-014 ; | |
251 -1.08424815979566e-011 + 8.32328079357669e-012i; | |
252 -1.08424815979566e-011 - 8.32328079357669e-012i; | |
253 2.41831559776112e-011]; | |
254 | |
255 dPoles22 = [0.988511243978897; | |
256 0.997305870640646 + 0.00211760900132725i; | |
257 0.997305870640646 - 0.00211760900132725i; | |
258 0.999626453270255 + 0.0008125673525946i; | |
259 0.999626453270255 - 0.0008125673525946i; | |
260 0.999999366366222 ; | |
261 0.999981706320212 ; | |
262 0.99992421574188 ; | |
263 0.477898460791003 - 0.311001926610074i; | |
264 0.477898460791003 + 0.311001926610074i; | |
265 0]; | |
266 | |
267 dDTerms22 = 0; | |
268 | |
269 % response calculation | |
270 pfparams.type = 'disc'; | |
271 pfparams.freq = f; | |
272 pfparams.fs = fs; | |
273 pfparams.res = dRes22; | |
274 pfparams.pol = dPoles22; | |
275 pfparams.dterm = dDTerms22; | |
276 pfr = utils.math.pfresp(pfparams); | |
277 mtf22 = pfr.resp; | |
278 | |
279 % building AOs | |
280 tf22 = ao(plist('xvals', f, 'yvals', mtf22, 'fs', fs, 'dtype', 'fsdata')); | |
281 % name for this object | |
282 tf22.setName('TF22'); | |
283 | |
284 end |