Synthesize an Acceleration Time History to Satisfy a Power Spectral Density

The following Matlab files are given at:

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.m is the main Matlab script.

It does not perform any integration.  It is suitable for a force or pressure PSD.

* * *

See also:

Matlab Random Vibration Page

Random Vibration & Power Spectal Density Page

Please contact me if you have any questions.

Thank you,
Tom Irvine

Contact Form:

9 thoughts on “Synthesize an Acceleration Time History to Satisfy a Power Spectral Density

    • Tom

      Thanks. Isn’t it that the bandwidth of the sine tone affect the converted PSD amplitude? What bandwidth did you assume for sine tones?

      • The sine tone in the time domain is a pure tone. It does not depend on bandwidth.

        The G^2/Hz level of the sine tone in the PSD does depend on the PSD spectral line bandwidth, however.

        A PSD is rather unsuited for characterizing a pure sine tone. A Fourier transform would be a better choice. But sometimes there is a need to a plot a PSD of a sine-on-random time history.


      • Tom
        If I want to convert the a PSD to 3 sigma Grms value, I would find the area under the curve. That is a_rms = sqrt(3 * delta_f * a_psd). This relation tells me the g value in the deterministic world depends on the delta_f of the PSD curve. Where do I go wrong?


  1. I think I asked my question in a wrong way. I will try to explain better. If you have a pure sine tone and when you try to convert to PSD, you will get a extremely sharp peak the bandwidth of this peak close to zero. In that case, what would be the area under the sine tone curve?

  2. Pingback: Miner’s Cumulative Fatigue via Rainflow Cycle Counting « Vibrationdata

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s