This question comes from a realistic problem that how to obtain a time domain wind pressure from known wind spectrum. Or similarly, gets rail surface curve from spatial rail spectrum.

Obviously, this question does not have unique solution, since phase information is not given. Usually we assume that phase of the time/spatial domain data in uniformly distributed in ($-\pi$, $\pi$], and using a random distributed phase to do inverse Fourier transform to obtain the time/spatial domain data. However, I feel not so comfortable to assign such rapid changing phase to the spectrum. I wonder whether there are some more reasonable assumptions to get these jobs done?

BTW, question ifft of signal without phase information discussed some strategies on how to do this job. @LutzL suggested Human perception can be used to help determine the phase information. But I cannot understand how Human perception is working. @Hilmar said minimum phase may be a choice, but I do not know whether there is a physical meaning of minimum phase. Is there any discussion to show minimum phase is a good choice for physical phenomena, like wind.

  • $\begingroup$ What information are you hoping to extract from the time domain data? As you point out, there is no unique solution, So the best you can do is produce a time series that gives rise to the same spectrum. But it won't tell you with any degree of certainty whether the wind speed was 30 km/h at time t or 0 km/h at time t $\endgroup$ – nispio Jan 22 '14 at 23:18
  • $\begingroup$ We want to use the time domain data as an input to other program. Because wind is flow of air, I think there are solutions which are more natural than other ones. Is there any method that can take theories like fluid mechanics to determine what properties the phase of the wind should have? $\endgroup$ – Kattern Jan 23 '14 at 1:42
  • $\begingroup$ The more information you have about the system, the more you can start to restrict your solution space. For example, if you know that wind pressure is always non-negative, that could significantly reduce the number of plausible solutions. Depending on the form that these restrictions take, you might be able to use Monte-Carlo methods to converge to more likely solutions. However, unless the restrictions necessitate a unique solution you cannot say with any certainty that the wind pressure at time t was q. $\endgroup$ – nispio Jan 23 '14 at 18:51
  • $\begingroup$ Yes, I agree 'The more information you have about the system, the more you can start to restrict your solution space', but I do not know how to restrict the solution space in action. We can assume wind is caused by difference of pressure, and friction along the path, vortex from obstacle introduce turbulence in the air flow. The wind is governed by air dynamic equation. Then how to use these information restrict the solution space, they seems not related to the phase of pressure. $\endgroup$ – Kattern Jan 24 '14 at 9:27
  • $\begingroup$ I don't know if this is relevant but there is a FIR filter design program called METEOR. It uses linear programming to find coefficients for a linear phase FIR given spectrum data. You can find more info here: cs.princeton.edu/~ken/meteor.html $\endgroup$ – Emanuel Landeholm Feb 23 '15 at 11:22

If you know anything at all about the time-domain signal, for example that it's piecewise linear, or should never be negative, or should look like a series of spikes with exponentially decaying tails, you could define a cost function that measures how well a proposed signal meets those criterea. How to do that is hard to describe in a generic way. Then feed that cost function into your favorite multi-variable optimizer. The phases of the Fourier amplitudes are the variables to be optimized. Try a variety of initial values, beware local minima, and all the other usual cautions for optimization apply.


This is not a proper answer, but I am not yet allowed to leave comments.

If you need to convert your PSD into time history I think you could find useful to visit this website http://www.vibrationdata.com/software.htm . In the 'Random Vibration' section you can download a MATLAB .m file which does that conversion. It might be useful to have a look at it to understand how it works

  • $\begingroup$ Do not find the matlab file, but it seems they are using synthesis method to do the conversion. It is a very old method, and most of time the result is not good. $\endgroup$ – Kattern Nov 26 '14 at 4:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.