IMAT+Signal extends IMAT's functionality into signal processing, which in general encompasses processing time domain data into the frequency domain. In addition to command-line functions for tasks such as computing PSD and CSD from time histories, computing FRF, and time domain filtering, IMAT+Signal also provides two GUIs that greatly simplify the process. SPFRF provides a fully functional GUI for converting time histories to FRF, and RTK provides a GUI that facilitates the analysis of rotational events.
The command-line functions available are marked in the IMAT documentation with a (+Signal) by their name in the function list.
All of the IMAT+Signal functionality ships with the IMAT toolbox, but requires a separate license to access. You can use either tokens or a perpetual license to access these useful features. Please contact us for more information.
The following is an example of how to use the command-line functionality available in IMAT+Signal to process time histories into Frequency Response Functions (FRF).
The first step in the process is to import your time histories into MATLAB. In this example, the time histories are stored in an Associated Data File (.ati).
>> t=readadf('test_data.ati')
t =
4x1 IMAT Function with the following attributes:
Record Name FunctionType AbscissaSpacing NumberElements
--------------------------- ---------------- ---------------- ----------------
1_(,101X+) Time Response Even 159681
2_(,103X+) Time Response Even 159681
3_(,101Y+) Time Response Even 159681
4_(,103Y+) Time Response Even 159681
Once the time histories are in MATLAB, the next step is to compute Power Spectral Densities (PSD) of the response channels, and Cross Spectral (CSD) of of the responses and references. In this example we have two reference channels, which are the first two time histories. We want to include the reference channels as responses so we can evaluate the cross-responses between the two reference channels. We will apply a Hanning window using a blocksize of 4096.
>> p = psd(t,window(t,'hanning',4096))
PSD Processing Parameters
-------------------------
Number of points: 155648
Block Size: 4096 (window vector supplied)
Averages: 38
Overlap: 0 samples (0.00%)
Delta F: 1.0000 Hz
Spectral lines: 2049
-------------------------
...Processing time histories
p =
4x1 IMAT Function with the following attributes:
Record Name FunctionType AbscissaSpacing NumberElements
--------------------------- ---------------- ---------------- ----------------
1_(101X+,101X+) Power Spectral D Even 2049
2_(103X+,103X+) Power Spectral D Even 2049
3_(101Y+,101Y+) Power Spectral D Even 2049
4_(103Y+,103Y+) Power Spectral D Even 2049
>> c = csd(t(1:2),t,window(t,'hanning',4096))
CSD Processing Parameters
-------------------------
Number of points: 155648
Block Size: 4096 (window vector supplied)
Averages: 38
Overlap: 0 samples (0.00%)
Delta F: 1.0000 Hz
Spectral lines: 2049
-------------------------
...Processing time histories
c =
4x2 IMAT Function with the following attributes:
Row Col Record Name FunctionType AbscissaSpacing NumberElements
--- --- ------------------- ---------------- ---------------- ----------------
1 1 1_(101X+,101X+) Auto Spectrum Even 2049
2 1 2_(101X+,103X+) Cross Spectrum Even 2049
3 1 3_(101X+,101Y+) Cross Spectrum Even 2049
4 1 4_(101X+,103Y+) Cross Spectrum Even 2049
1 2 5_(103X+,101X+) Auto Spectrum Even 2049
2 2 6_(103X+,103X+) Cross Spectrum Even 2049
3 2 7_(103X+,101Y+) Cross Spectrum Even 2049
4 2 8_(103X+,103Y+) Cross Spectrum Even 2049
Once we have PSDs and CSDs, we can compute the FRF. Though not shown here, it is also a very good idea to compute the coherence functions, and review them to evaluate the quality of your FRF.
>> f = frf(c,p)
f =
4x2 IMAT Function with the following attributes:
Row Col Record Name FunctionType AbscissaSpacing NumberElements
--- --- ------------------- ---------------- ---------------- ----------------
1 1 1_(101X+,101X+) Frequency Respon Even 2049
2 1 2_(101X+,103X+) Frequency Respon Even 2049
3 1 3_(101X+,101Y+) Frequency Respon Even 2049
4 1 4_(101X+,103Y+) Frequency Respon Even 2049
1 2 5_(103X+,101X+) Frequency Respon Even 2049
2 2 6_(103X+,103X+) Frequency Respon Even 2049
3 2 7_(103X+,101Y+) Frequency Respon Even 2049
4 2 8_(103X+,103Y+) Frequency Respon Even 2049
spFRF™ stands for “Signal Processing for Frequency Response Functions”. The primary purpose of this application is to process time response data into spectral functions such as frequency response, coherence, auto-spectra and cross-spectra. spFRF can read time response functions from ADF files, Universal files, or from the MATLAB workspace, and can write time response and spectral functions to the same. spFRF can process continuous measurements, as well as triggered measurements with the ability to preview, and accept or reject each frame. Although the name implies that spFRF produces frequency response functions, it can also be used to generate the auto-spectra of response-only datasets.
The spFRF documentation is located
spVIEW™ is an application for plotting multiple datasets of measurements. It was originally intended for viewing the spectral function results from spFRF™. However, spVIEW’s scope has expanded to viewing time response, mode indicator functions (MIF), and sound pressure level (SPL). While spVIEW’s primary purpose is plotting, it also has some signal processing and computational capabilities, such as filtering, resampling, decimation, and octave band reduction.
spVIEW can read time response and spectral functions from ADF files, Universal files, or from the MATLAB workspace, and can write sieved and truncated datasets of functions to the same. spVIEW has four modules (Time Response, Spectra, MIFs, and SPL) and some data can be sent between the modules.
The spVIEW documentation is located
RTK is the Rotational Toolkit, which is a GUI that facilitates the analysis and order-tracking of rotational events, using the Vold-Kalman filtering technique. The application uses time-history data files from simulations or real-time data collections to process and visualize the spectral properties of rotating events. This tool facilitates the process of obtaining response characteristics and finding insights into the mechanics of rotating events.
The RTK documentation is located here. This documentation also covers the command-line usage of the Vold-Kalman filtering capability.