Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Displacement Spectrum data conversion 1

Status
Not open for further replies.

cloche

Mechanical
May 12, 2005
112
Hi everybody,
I have a displacement spectrum s(f) given as a succession of analytical laws. I can very easily sample it, since the fundamental frequency is fixed to 0.25 Hz and I can chose an arbitrary number of harmonics. I want to sample the spectrum with a bandwidth of 100 Hz and a number of frequency samples of 1000.
QUESTION: how do I transform this data into a time-dependent expression?
I tried with IDFT but I'm surely missing something because the s'(t) I get is completely absurd !!
Can somebody guide me "step-by-step" in this domain transform (I'm not a vib/acoustic specialist)?
Thanks in advance,

Claudio
 
Replies continue below

Recommended for you

Before you start, you need to work out a few things.

Firstly, do your "analytical laws" define the phase of each spectral line or just the amplitude?

Secondly, How does your DFT/IDFT program scale the spectral lines?

Thirdly, In what order does your DFT/IDFT require the spectral lines (particularly the negative frequencies, the DC value and the value at the Nyquist frequency)?

In what way is your answer absurd? If it is because the time signal values are very large then it is probably due to the second point. If your time values are complex then it is probably due to the third point.

Step 1: Calculate the amplitude, A, of each required spectral line based on your "analytical laws". You want 1000 frequency lines between 0 and 100 Hz, but your spectrum is only defined at 0.25 Hz intervals. That would only give you 401 spectral lines so you will have to interpolate to get spectral amplitudes at frequencies in between. The frequency interval, df, will be 100/1000 Hz. Let's call that "Case A". The alternative "Case B" is to zero-pad the spectrum. This will maintain your df at 0.25 Hz. Find your spectral amplitudes between 0 and 100 Hz in 0.25Hz intervals, this gives you 401 of the 1000 spectral lines you need. Define the remaining 599 spectral lines to be zero.

[Step 1a - If your "analytical laws" do not define the phase of each spectral line: If you wand a pseudo-random time signal then you need to define a random phase, theta, between +pi and -pi radians for each spectral line. The real and imaginary parts of the spectrum will then be A*cos(theta) and B*sin(theta) respectively]

Step 2: Arrange your spectral lines in the order required by your IDFT program. For example, Matlab would require your spectral lines to be arranged in the form

[0 df 2df 3df ... 998df 999df 1000df -999df -998df ... -3df -2df -df]

where the value at frequency -y*df is the conjugate of the value at y*df. The order of the spectral lines depends on the software you are using (remember df = 0.1 Hz for case A and df = 0.25 Hz for case B).

Step 3: Scale the spectral lines. You now have 2000 complex numbers in your list. Matlab would require you to scale the numbers by dividing each one by 2000/2=1000. Other software may require you to divide by 2000 or not do any scaling at all.

Step 4: Perform the inverse DFT.

Step 5: Check you have done everything right by making sure that your time data values are all real. You may find some very small (~1E-15 for double precision) imaginary part due to numerical noise which you can remove.

Step 6: You now have your 2000 point time signal which, for case A, has a sample freqency of 200 Hz and a sampling interval of 0.005 s giving you 10 s of data or, for case B, a sample frequency of 500 Hz and a sampling interval of 0.002 s giving you 4 s of time data.

M

--
Dr Michael F Platten
 
Thank you very much indeed!
Your answer already gave me some points to think about and threw some light upon some other points.
Just to be more precise:
- The analytical laws give only amplitude and no phase. In the trials I've made, I forced the phase to be zero for every spectral line, but that's probably an error (forced a deterministic inference into a pseudo-random signal?)
- The spectrum is refered to a typical (statistically-determined) earthquake
- The spectrum is continuous, defined in four intervals; so I'm not bound to a fixed freq sampling. Only, the first "usable" freq is 0.25 Hz because no data is available between 0 and 0.25 Hz
- I find some problem in giving the value of the 0-Hz (DC) harmonic, because the earthquake-analysis norm to which I refer explicitly prohibits introducing frequencies below 0.25 Hz (except if specific data exist for the soil to be examined, but it's not my case). Do you think it's correct to introduce it as a zero-amplitude spectral line?
- No idea about the scaling, that's most of my problem: the spectrum seems to report values that are "possible" if taken one by one: for example, 0.25 Hz freq has an amplitude of 0.570 meters (classified as "class D earthquake on zone 1", which in the ialian earthquake norm is the worst statistically possible)
- I first programmed in VBA (Excel) my own routine for IDFT following the formulas I had studied years ago. This gives a very bad result; probably there's an interpretation and/or programming error
- I generated a list of spectral lines in the format required by Mathematica, but most likely I got messed up with the data list generation (in fact, I violated some of the rules you give in your answer...) because the Mathematica IDFT gives complex values with no negligeable imeginary part (this already seemed to me very "strange"
- By "strange" or "bad" results I mean that the time-dependent waveform doesn't resemble to any displacement waveform which can be compatible with an earthquake... Or that the amplitudes are extremely large / small

I'll work upon the advices you gave me. Thank you for your help!

Claudio
 
My version of Excel includes an DFT algorithm. It is not installed as part of a standard installation but if you have the install disks you should be OK.

Without knowlege of the phase in the original spectrum you are unlikely to get anything which looks like an earthquake response from the IDFT approach. This is way outside my subject area but aren't there "standard" earthquake response time signals available for modelling purposes.

I have just done a quick google search for "synthetic ground motion" and found the following link:


"Simple Fourier analysis methods such as those found in Matlab can be used to generate synthetic ground motions. One way of doing this is to take a real ground motion and decompose it into its Fourier amplitude and phase angle spectra. By randomizing the phase angle spectrum, re-convolution produces a descendent with similar frequency content but differing temporal characteristics. Similar methods can be used to generate a ground motion which will have a particular response spectrum. This is often done when creating motions to fit a target spectrum."

So it appears that some people at least use random phase multisines for earthquake simulation despite the fact that the resulting time signals do not "look" like an earthquake accelogram.

Personally I don't like the idea. Surely the damaging effects of peak response are just as (if not more) important than frequency content?

M

--
Dr Michael F Platten
 
Thank you for your valuable advices! I'll give you not just one but two or three stars!

1- Excel: I'll look for it. It's probably in the additional "analysis tools" or whatever it's called. I already installed it because I needed the "complex numbers" extension, but I seemed not to see the DFT; I'll look better.

2- I'm strictly bound to the displacement spectrum prescribed by the italian seismic norms. Strange that these norms don't give any information about phase... Probably, they implicitly aknowledge the fact that one may re-construct the time-dependent displacement waveform by applying random phase.

3- As you point out, this sounds a bit strange because the response of the structure to be analyzed is not depending only on the peak response but also on the "shape" of the waveform, i.e. on the frequency content: I agree that assembling the sines with random phase can lead to over- or under- estimated excitations on the structure, with no way to discriminate how much it is over- or under...

4- Some programs like Straus have built-in extensions targeted to the seismic norms. As they can't invent what is not written, I assume that they are applying random phase to the spectra. Or, possibly they use methods like the one called "spectral response" in ANSYS (the program I use), with the limitation that they don't perform a "real" transient full time-dependent analysis but rather something like a modal superposition. In this way, a lot of non-linearities can not be taken into account, which in my case is instead crucial...

Claudio
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor