The most widely used algorithm for the Shock Response Spectrum (SRS) calculation for base excitation is the ramp invariant digital recursive filtering relationship given in:
David O. Smallwood, An Improved Recursive Formula for Calculating Shock Response Spectra, Shock and Vibration Bulletin, No. 51, May 1981. The link is: DS_SRS1.pdf
Smallwood duly gave the resulting filtering coefficients in his paper, but he omitted the derivation details for brevity.
This omission is typical for papers published in journals and conference proceedings, given that derivations may require dozens of steps.
The SRS derivation requires impulse response functions, Laplace transforms and Z-transforms.
The following paper fills in the details: ramp_invariant_base.pdf
See also:
An Introduction to the Shock Response Spectrum: srs_intr.pdf
Additional papers are given at: Vibrationdata SRS
* * *
Here is a Matlab script for the SRS calculation of an arbitrary base input pulse: srs.m
Supporting functions:
srs_coefficients.m
enter_time_history.m
* * *
A Matlab GUI version is included in: Vibrationdata Matlab Signal Analysis Package
* * *
Here is a Matlab SRS function which call be called by main scripts: srs_function.m
* * *
Here is a Matlab script for the time history response of a specific SDOF system to an arbitrary pulse: arbit.zip
* * *
Here is a Matlab script for the SRS of a half-sine pulse & its supporting function: halfsine.m & time_calc.m
* * *
A Fortran SRS program is given at: QSRS.F
* * *
See also:
Synthesize an Acceleration Time History to Satisfy a Shock Response Spectrum
Pyrotechnic Shock Characterization Testing
Pyrotechnic Shock Joint Attenuation
* * *
– Tom Irvine
Join me at: LinkedIn
Thank you Tom.