| LTPDA Toolbox™ | contents | ![]() |
LTPDA supports two types of digital filters: Infinite Impulse Response filters (IIR) and Finite Impulse Response filters (FIR). These two filter types are represented by the classes miir and mfir.
To create a simple lowpass filter, you can do:
% Configure a 2nd order lowpass at 1Hz for 100Hz data
filterPlist = plist(...
'type', 'lowpass', ...
'fc', 1, ...
'order', 2, ...
'fs', 100 ...
);
% Configure a 2nd order lowpass at 1Hz for 100Hz data
myFilter = miir(filterPlist);
% Plist for log-spaced frequencies from 0.1Hz to 10Hz
respPlist = plist('f', logspace(-1, 1, 1000));
% Compute filter response
filterResponse = resp(myFilter, respPlist);
% Plot the response
iplot(filterResponse)
% Generate a time-series of random numbers
input = ao.randn(100, 100);
% Filter the data
output = filter(input, myFilter);
% Plot the input and output
iplot(input, output)Often it is useful to be able to whiten a data segment. There are a number of ways you can go about doing this, but in LTPDA a simple way is to use the methods ao/buildWhitener1D and ao/whiten1D. The first method actually builds the whitening filter by fitting to a spectral estimate of the data. The second method uses buildWhitener1D to generate the whitening filter and then applies it to the data.
Here's an example of using whiten1D to whiten the data we filtered above.
% Whiten the data
outputWhite = whiten1D(output);
% Plot the filtered and whitened data
iplot(outputWhite, output)
% Create a plist to configure ao/psd
psdPlist = plist('navs', 10, 'scale', 'asd');
% Compute the PSD of the filtered and whitened data
[output_xx, outputWhite_xx] = psd(output, outputWhite, psdPlist);
% Plot the spectra filtered and whitened data
iplot(outputWhite_xx, output_xx) |
Preparing data segments (splitting) | LTPDA scripting best practices | ![]() |
©LTP Team