The VIBES Toolbox for MATLAB provides several different classes to store, access and plot measurement and simulation data. All these classes are subclasses of superclass vibes.abstract.Dataset. This tutorial will demonstrate how to construct, modify and convert the different types of datasets. The following classes will be discussed:

- vibes.TimeSeries
- vibes.TimeBlocks
- vibes.FreqBlocks
- vibes.FRFMatrix

## Class hierarchy

See * Figure 2-5* to gain insight into the hierarchy of the different dataset classes in the VIBES Toolbox.

## Time series

The most basic dataset class is the vibes.TimeSeries class. This class allows you to import measurement data directly. We will demonstrate this by converting a PAK2Mat file to a vibes.TimeSeries object.

Show the object’s properties. Notice the ‘Data’ property, which contains the actual numeric measurement data, stored as a matrix.

Any dataset object contains a list of channels, which can be accessed through the ‘Channels’ property. These channels provide information on your data, such as the units in which they are measured and the direction of the measured response (if applicable).

You can use the ‘plot’ method for any vibes.abstract.Dataset object. This method will automatically apply axis labels based on the definition of the object’s channels. You can specify channel names, indices or properties to select which channels to plot. For more information about plotting of datasets, see: * 2.3 Plotting of time data* and

*.*

**2.4 Plotting of spectral data**## Time blocks

A vibes.TimeSeries object can easily be converted into a vibes.TimeBlocks object, which contains the same data cut into (overlapping) blocks. This introduces an extra dimension to your data. The ‘Data’ matrix can be indexed according to channel, block and time indices. For a more detailed tutorial on the parameters used in this conversion, see * 3.1 Signal processing: vehicle measurement*.

A vibes.TimeBlocks object has an additional property, ‘Blocks’. Inspect the list of blocks to see its properties. All blocks have a start time, ‘t1’, an end time ‘t2’ and an extra field ‘z’. You can use this field to store information about your measurement, such as RPM values at specific times.

Plotting vibes.TimeBlocks objects allows to specify which block to plot. The first three arguments of the ‘plot’ method are now the channel, block and time indices in the data matrix respectively.

## Frequency blocks

The vibes.FreqBlocks class is similar to the vibes.TimeBlocks class, except that it contains frequency data as opposed to time data. vibes.TimeBlocks objects can be converted to frequency blocks by applying the Fast Fourier Transform (FFT). For more information on how to customize this procedure, see * 3.1 Signal processing: vehicle measurement*.

Plotting of frequency blocks happens according to the same indexing as time blocks, except the third argument now refers to the frequency range of interest.

## FRF matrix

Some types of datasets describe the transfer of input to output. These types are grouped under superclass vibes.abstract.RefDataset. Their columns are indexed according to the property ‘RefChannels’, containing a list of vibes.Channel objects. An example of a reference dataset is the Frequency Response Function Matrix (vibes.FRFMatrix) class. You can calculate FRF matrices from measurement data by dividing two vibes.FreqBlocks objects to perform a least-squares inversion across all blocks and frequencies.

Define two subsets of the measurement data: the sound channel and the acceleration channels. For more information on selecting channels, see * 2.1 Nodes, DoFs and channels*.

## Dataset operations

Many of the basic operations available in MATLAB can be applied to dataset objects. This will be demonstrated by using the FRF matrix of a benchmark structure.

Now, the forces corresponding to the measured response can be calculated by applying a matrix division to the FRF matrix.

Calculate the partial response corresponding to each force input by applying an element-wise multiplication.

Operations in the VIBES Toolbox are automatically applied to matching channels and reference channels. For example, when multiplying to FRF matrices, the reference channels (columns) of the first object are matched with the channels (rows) of the second object. For more information about automatic and customized DoF-matching, see * 2.1 Nodes, DoFs and channels*.

## Transformation matrices

Apart from applying operations to two dataset objects, it is also possible to transform measurement data by using vibes.TransformationMatrix objects. This can be especially useful when applying, for example, a Virtual Point Transformation.