OpenSeismoMatlab can calculate the following strong motion data processing output: (1) Time histories of acceleration, velocity and displacement, with or without baseline correction, (2) Resampled time histories of acceleration, velocity and displacement with modified time step size, (3) Peak ground acceleration, velocity and displacement (PGA, PGV, PGD), (4) Total cumulative energy and its normalized time history, (5) Significant duration according to Trifunac & Brady (1975), (6) Arias intensity, (7) Linear elastic response spectra, (8) Constant ductility inelastic response spectra, (9) Fourier amplitude spectrum, (10) Mean period (Tm)
George Papazafeiropoulos (2019). OpenSeismoMatlab (https://www.mathworks.com/matlabcentral/fileexchange/67069-openseismomatlab), MATLAB Central File Exchange. Retrieved .
@ michele paoletti: The code has been updated so that this issue is resolved. Thank you for your suggestions and apologies for the delayed response.
Thanks for answer George. td is considered as time duration of the seismic wave. For example if we use definition of Trifunac duration td is the time where the energy go from 5% to 95% of the total energy. Reducing time duration respect your formula we take in account only energy of the wave and not the noise energy (although very low) that is present first and then the seismic wave. The result obtained is a slightly lower value respect your formula. I'd like to know what you think about.
OpenSeismoMatlab calculates the Arias intensity in the whole time duration of the input earthquake acceleration time history. This is the reason for which there are not any limits in the code segment. What do you mean by td?
Hi, Arias Intensity must be calculated in the interval from 0 to td, while this line code that you post not have this limit:
aint2 = cumsum(A.^2)*pi*dt/(2*g);
Thank you very much Ricardo A. The code has been fixed and enhanced based on your comments. You can now download the latest version. Regards!
line 188 should be: seismic.vel = cumtrapz(time,xgtt);
line 190 should be: seismic.disp = cumtrapz(time,seismic.vel);
previously, the velocity was multiplied by an extra 'dt' and the displacement by an extra 'dt^2'. Thanks for your work!
Also, maybe you can add these 2 parameters calculations:
% MEAN FREQUENCY
fi = f(f>0.25 & f<20);
Ci = U(f>0.25 & f<20);
Fm = ((Ci(:)'.^2)*(fi(:)))/(Ci(:)'*Ci(:));
seismic.Fm = Fm;
% PREDOMINANT PERIOD & FREQUENCY
Calculation of Arias intensity and significant duration are corrected. Minor updates at the help section of the main routine OpenSeismoMatlab.m
Baseline correction enhanced
Resampling capability added for increasing or decreasing the size of the time step of the input acceleration time history.
Baseline correction added
Inspired: Artificial accelerogram generator