If you can't read please download the document
Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
Introduction
LTPDA is a MATLAB toolbox that offers an object-oriented approach to data analysis. The user creates and modifies different types of user objects in order to build up a signal processing pipeline. Each user object keeps a full record of all processing steps it goes through. Because of this, the full processing history of each object can be viewed at any time, and used to reproduce the object, or the processing pipeline that created it.
Implementation
The toolbox is implemented as a set of classes programmed in standard MATLAB. There are a number of user classes which represent objects intended to be manipulated by the user. The methods of these user classes provide the user the ability to do:
• Signal-conditioning• Spectral-analysis• Curve-fitting and parameter
estimation• Pole/zero modelling• State-space modelling• Dimensional analysis• Digital filtering• ... and much more.
Due to the object-oriented design of the toolbox, script writing is vastly simplified and typically only requires the application of class methods to the objects created by the user. For example, the following code extract creates a synthetic time-series signal and then computes and plots an estimate of the power spectral density:
a = ao(plist('waveform', 'sine wave', 'fs', 10, 'nsecs', 100));a.psda.iplot
Running these commands yields the plot shown here:
As well as the user objects, there are many other object classes implemented which provide the infrastructure used by the user classes.
Centralised Data Access
In order to provide concurrent storage and retrieval of LTPDA user objects, the toolbox has a built in client that can talk to an LTPDA server. The server is a database system that stores the LTPDA objects and a wealth of meta-data which can be used to search for specific objects.
MySQL server
database 1 database 2 database 3
MATLAB client MATLAB client MATLAB client
Tracking History
One of the main features of the toolbox is the ability to track the full processing history of each user object. At every step of the analysis a record of the algorithm and the parameters used is attached to the processing history of each input object. In this way, a full history tree is built up. This can be used to, for example,• view the history of the object• recreate the object• produce a script/pipeline based on this
history
History trees can be viewed either directly in MATLAB, or using the well-known graphing application, Graphviz (http://www.graphviz.org/):
ao
name
history
version
data
name
input
histories
version
params
name
input
histories
version
params
name
input
histories
version
params
END
+
+
+
+
*
set(YUNITS=
m^2/Hz)
set(XUNITS=
Hz)
set(NAME=o_nxx)
ao(FSFCN=(3.5e-12)^...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
*
./
*
power
abs
-
power
set(NAME=omega_{d...)
sqrt
-
mpower
set(NAME=omega_3)
ao(VALS=-0.001414213562373095)
ao(VALS=2)
mpower
set(NAME=omega_1)
ao(VALS=-0.001140175425099138)
ao(VALS=2)
ao(VALS=2)
*
set(NAME=delta)
ao(VALS=-0.0001)
set(NAME=w3)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=S_{sus})
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=w1)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
-
+
ao(VALS=1) power
abs
set(NAME=S_{df})
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
.*
ao(VALS=2) real
set(NAME=S_{df})
resp(F=[1.0000000000000001e-05
2 ...])
*
set(YUNITS=
m^2/Hz)
set(XUNITS=
Hz)
set(NAME=o_nxx)
ao(FSFCN=(3.5e-12)^...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
power
abs
set(NAME=S_{sus})
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
./
*
set(YUNITS=
m^2s^{-4}/...)
set(XUNITS=
Hz)
set(NAME=A_1xx)
*
ao(VALS=8.9999999999999996e-28) ./
+
./
ao(VALS=1)
ao(FSFCN=(1
+ (f./1...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
*
./
ao(VALS=9000001)
ao(FSFCN=(1
+ (f./1...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
+
ao(VALS=1) ./
ao(VALS=1000001.0000000002)
ao(FSFCN=(1
+ (f./0...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
ao(VALS=10.089992009007998)
power
abs
set(NAME=S_{sus})
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=w3)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
*
set(YUNITS=
m^2s^{-4}/...)
set(XUNITS=
Hz)
set(NAME=A_1xx)
*
ao(VALS=8.9999999999999996e-28) ./
+
./
ao(VALS=1)
ao(FSFCN=(1
+ (f./1...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
*
./
ao(VALS=9000001)
ao(FSFCN=(1
+ (f./1...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
+
ao(VALS=1) ./
ao(VALS=1000001.0000000002)
ao(FSFCN=(1
+ (f./0...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
ao(VALS=10.089992009007998)
*
./
power
abs
set(NAME=S_{sus})
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=w3)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
+
+
./
*
power
abs
-
power
set(NAME=omega_{d...)
sqrt
-
mpower
set(NAME=omega_3)
ao(VALS=-0.001414213562373095)
ao(VALS=2)
mpower
set(NAME=omega_1)
ao(VALS=-0.001140175425099138)
ao(VALS=2)
ao(VALS=2)
*
set(NAME=delta)
ao(VALS=-0.0001)
set(NAME=w3)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=S_{df})
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=w1)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
.*
ao(VALS=2) real
./
*
-
power
set(NAME=omega_{d...)
sqrt
-
mpower
set(NAME=omega_3)
ao(VALS=-0.001414213562373095)
ao(VALS=2)
mpower
set(NAME=omega_1)
ao(VALS=-0.001140175425099138)
ao(VALS=2)
ao(VALS=2)
*
set(NAME=delta)
ao(VALS=-0.0001)
set(NAME=w3)
resp(F=[1.0000000000000001e-05
2 ...])
set(NAME=S_{df})
resp(F=[1.0000000000000001e-05
2 ...])
set(NAME=w1)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=1)
*
set(YUNITS=
m^2s^{-4}/...)
set(XUNITS=
Hz)
set(NAME=A_nxx)
*
ao(VALS=5.2604999579159996e-20) +
./
ao(VALS=1)
ao(FSFCN=1
+ (f./10...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
*
./
ao(VALS=100000001)
ao(FSFCN=1
+ (f/1e-...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
+
ao(VALS=1) ./
ao(VALS=1000001.0000000002)
ao(FSFCN=1
+ (f/0.1...,
F=[1.0000000000000001e-05;2
...], F1=1.0000000000000001e-09,
F2=100, NF=
1000, SCALE=
log)
./
./
*
*
power
abs
-
power
set(NAME=omega_{d...)
sqrt
-
mpower
set(NAME=omega_3)
ao(VALS=-0.001414213562373095)
ao(VALS=2)
mpower
set(NAME=omega_1)
ao(VALS=-0.001140175425099138)
ao(VALS=2)
ao(VALS=2)
*
set(NAME=delta)
ao(VALS=-0.0001)
set(NAME=w3)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=S_{df})
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=S_{sus})
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=w1)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
power
abs
set(NAME=w3)
resp(F=[1.0000000000000001e-05
2 ...])
ao(VALS=2)
User Objects
The user objects form the core of the toolbox’s capabilities. The following classes of user object are implemented:
Each user object can be saved and loaded from disk in an XML format, and submitted and retrieved to/from and LTPDA repository.
l tpda_obj
ltpda_uoltpda_nuo
his toryt ime provenance p l i s tparamdata
data2D
data3D
xyzdata
fsdatatsdataxydata
p z
t imespan
m f i rm i i r
specwin
pzmodel
m in fo
aof i l t e r
l tpda_uoh
ssm
LTPDAa MATLAB toolbox for accountable and reproducible data analysis
M Hewitson for the LTP team
class description
ao Analysis objects containing time-series, frequency-series, x-y data series, vectors or matrices
plist Parameter lists for configuring algorithms.
ssm State-space model objects
miir IIR digital filter representation
mfir FIR digital filter representation
pzmodel Transfer function representation as S-domain poles and zeros
rational Transfer function represented as a rational function of S
parfrac Partial fraction representation of transfer functions
timespan Representation of an interval of time
http://www.lisa.aei-hannover.de/ltpda/
!"#$#"%&'(#)#(*+,$*,#-./,#!#&00#123+*40#5,4/.63789,/6*,/
:(#9,4/.63#/,04;,/
:$40
"%&'(#*.??4$/
-@(89,/6*,/
"%&'(#*.??4$/
%#?27
A-&*3643+.$#B*2089,/6*,/
"%&'(#*.??4$/
"+73#%#A-&*3
%#A-&*3
C@%#";$4?+*789,/6*,/
%#?27
"+73#%#-@(
%#A-&*3
"+73#%#7.049
"+73#%#+$