0
votes

I have a set of random numbers that will be used for a simulation. However, I need this numbers to have a specific Fourier spectrum (that looks similar to the real data I have) but without changing the phase of the random numbers.

Does anyone have any idea on how I can use the amplitude of the Fourier transform of the real data to generate approximately similar Fourier spectrum for the random numbers?

What I thought of doing is:

  1. Take the Fourier transform of the real data.

  2. Multiply the spectrum (|F(w)|) of the real data by the Fourier transform of the random numbers.

  3. Calculate the inverse Fourier transform of the multiplied signal to get the random numbers.

Would this approach work well?

What would be the effect on the phase angle (if any)?

Any suggestions on different ways to do that are welcome.

1
Are you trying to implement this with code?Anubian Noob
what are you trying to do? truly random data would never have a spectrum to speak of with distinct peaks at certain frequencies. if you want to see how well you can "detect" your signal, why not take your real data in time domain and add some noise?Fredrik
An aperiodical signal doesn't have a phase, its freq. components do. Multipl. them w. real nrs doesn't alter phase.Jacques de Hooge
You might get a better audience for this question on dsp.stackexchange.commtrw

1 Answers

1
votes

Your question is a classic one, since many people want to generate random numbers with a specific power spectral density. In my case, I was simulating random rough surfaces. I wrote a paper discussing how to do this: Chris A. Mack, "Generating random rough edges, surfaces, and volumes", Applied Optics, Vol. 52, No. 7 (1 March 2013) pp. 1472-1480. A copy of this paper can be found on my website (paper #178): http://www.lithoguru.com/scientist/papers.html