The following Matlab files are given at: psd_syn_revD.zip
psd_syn.m is the main Matlab script.
The remaining scripts in the zip file are supporting functions.
It synthesizes an acceleration time history to satisfy a power spectral density function. It also calculates the corresponding velocity and displacement time histories. The scripts also perform trend removals so that the acceleration, velocity and displacement signals each oscillate about the zero baseline as a matched set.
The script also has an option for adding sine tones.
* * *
The steps in the synthesis process are:
1. Generate a white noise time history.
2. Take a Fourier transform of the white noise time history.
3. Scale the Fourier spectral components to meet the user’s PSD function.
4. Integrate acceleration to velocity, and velocity to displacement.
5. Perform trend removals, fade in and out during the above integration process so that the displacement oscillates about the zero baseline.
6. Differentiate the displacement to velocity, and the velocity to acceleration.
7. Add sine tones as an option.
8. Verify that the PSD of the resulting, synthesized acceleration reasonably satisfies the PSD specification.
The resulting acceleration time history could be used for a modal transient analysis.
The process is also similar to that which a vibration control computer would perform in order to drive a shaker table to a specified PSD.
* * *
A script for synthesizing a time history for a generic PSD is given at: generic_psd_syn.zip
generic_psd_syn.m is the main Matlab script.
It does not perform any integration. It is suitable for a force or pressure PSD.
* * *
Please contact me if you have any questions.