This is the Python implementation of the method based on the Morlet-wave integral, which is developed for identification of modal parameters from short, noisy and low-dynamic-range signals [1].
This package is created within the H2020-MSCA-IF-2020 project NOSTRADAMUS.
A simple example how to identify modal parameters using Morlet-Wave Modal package:
import mwmodal as mwm
import numpy as np
# set time domain
fs = 5000 # sampling frequency [Hz]
T = 2 # signal duration [s]
time = np.arange(T*fs) / fs # time vector
# generate a free response of a SDOF damped mechanical system
w_d = 2*np.pi * 100 # damped natural frequency
d = 0.01 # damping ratio
x = 1 # amplitude
phi = 0.3 # phase
response = x * np.exp(-d * w_d / np.sqrt(1 - d**2) * time) * np.cos(w_d * time - phi)
# set MorletWaveModal object identifier
identifier = mwm.MorletWaveModal(free_response=response, fs=fs)
# set initial natural frequency, estimate damping ratio and identify modal parameters
identifier.identify_modal_parameters(omega_estimated=w_n, damping_estimated=0.005)| [1] | I. Tomac, J. Slavič, Morlet-wave-based modal identification in the time domain, Mechanical Systems and Signal Processing 192C (2023) 110243, doi: 10.1016/j.ymssp.2023.110243. |