Is there a code to get power spectrum corresponding to a velocity/acceleration time history?

14 Ansichten (letzte 30 Tage)
I am working on generating seimic noise numerically. I have a velocity/acceleration time history. I want to generate power spectrum (power spectral density) compatible to the time history. Is there any code for that?
  2 Kommentare
Sam Chak
Sam Chak am 28 Mär. 2022
Best if you provide the noise data and the equation for the power spectrum, so that we can investigate and analyze it.
Else, please check if the following article is helpful:
Aniket Desai
Aniket Desai am 29 Mär. 2022
I have attached the noise data. Left column is time (s) and right column is velocity (m/s).

Melden Sie sich an, um zu kommentieren.

Antworten (1)

William Rose
William Rose am 28 Mär. 2022
Bearbeitet: William Rose am 29 Mär. 2022
[edited: corrected spelling errors]
Yes it is possible. Estimate the spectrum of the original signal by taking the FFT or by other standard methods, such as those described in the link provided by @Sam Chak, or see the attached notes. Note that the Welch periodogram method, which is usually my first choice, would not be my first choice for a seismogram, because Welch's method chops up the signal into segments that are presumed to be similar random samples of the signal. But for a seismogram, they are not random samples of the signal, because one chunk will have the peak, and other chunks will have very little activity, and so on. Therefore I would just use the fft to estimate the amplitude spectrum.
Then create a frequency domain representation of your signal, with the ampltudes you got above, and random phases. But the phases for the "negative" frequencies must be the negative of the phases at the corresponding positive frequencies, otherwise the inverse FFT will be complex, and you want it to be real. Then take the inverse FFT of the frequency-domain version of the signal which you have cretaed. This is the output you desire. I willl provide an example of all this, in case it is not clear.
  5 Kommentare
William Rose
William Rose am 30 Mär. 2022
I modified the script so that it reads in your file and uses the time vector in your file. I also modified the code so it works with an even or odd number of points - since your file has an odd number of points. As before, the script synthesizes three signals with the same power spectrum as the original signal, but with random phases. If you wish, adjust the script to save the signals to disk, or change the number of signals. Here is the graphical output, using your data file.

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by