Thread Subject: stochastic signal transform in time domain

Subject: stochastic signal transform in time domain

From: Aymen

Date: 28 Oct, 2009 10:25:05

Message: 1 of 3

Hi everybody,

i'm having the following problem :

i want to transform a stochastic signal (a PSD : two column vector, first one for frequency values, second for amplitude values) from Frequency domain to time domain using the "ifft", but i have no idea how to get the initial phases of the signal to do that. In fact the transformation in time domain has not a unique solution, it depends on initial conditions, is it right ?
any idea how could i encounter this problem ?

thanks

Subject: stochastic signal transform in time domain

From: NZTideMan

Date: 28 Oct, 2009 20:05:43

Message: 2 of 3

On Oct 28, 11:25 pm, "Aymen " <aymenkoo...@gmail.com> wrote:
> Hi everybody,
>
> i'm having the following problem :
>
> i want to transform a stochastic signal (a PSD : two column vector, first one for frequency values, second for amplitude values) from Frequency domain to time domain using the "ifft", but i have no idea how to get the initial phases of the signal to do that. In fact the transformation in time domain has not a unique solution, it depends on initial conditions, is it right ?
> any idea how could i encounter this problem ?
>
> thanks

Since its stochastic, you can just use random phases.
The 2nd order statistical properties (standard deviation and variance)
will be preserved, no matter what the phases are.

But before hitting it with ifft, you need to compose a vector of
complex numbers.
The composition of this vector depends upon what you have already.
Does the frequency go from zero to the Nyquist, then negative?
Or are all the frequencies positive?
And is the first frequency zero?

Basically, if Y is a column vector of complex numbers prepared from
the amplitudes with the first frequency being greater than zero, then
your vector for ifft should look like this:
Y1=[0;Y;flipud(conj(Y))];
If there is a zero frequency, it will look like this:
Y1=[Y;flipud(conj(Y(2:end)))];

Subject: stochastic signal transform in time domain

From: Aymen

Date: 29 Oct, 2009 08:15:19

Message: 3 of 3

NZTideMan <mulgor@gmail.com> wrote in message <28ae8ae9-1adb-4911-aa6a-ad457bd22ab0@f18g2000prf.googlegroups.com>...
> On Oct 28, 11:25?pm, "Aymen " <aymenkoo...@gmail.com> wrote:
> > Hi everybody,
> >
> > i'm having the following problem :
> >
> > i want to transform a stochastic signal (a PSD : two column vector, first one for frequency values, second for amplitude values) from Frequency domain to time domain using the "ifft", but i have no idea how to get the initial phases of the signal to do that. In fact the transformation in time domain has not a unique solution, it depends on initial conditions, is it right ?
> > any idea how could i encounter this problem ?
> >
> > thanks
>
> Since its stochastic, you can just use random phases.
> The 2nd order statistical properties (standard deviation and variance)
> will be preserved, no matter what the phases are.
> But before hitting it with ifft, you need to compose a vector of
> complex numbers.
> The composition of this vector depends upon what you have already.
> Does the frequency go from zero to the Nyquist, then negative?
> Or are all the frequencies positive?
> And is the first frequency zero?
>
> Basically, if Y is a column vector of complex numbers prepared from
> the amplitudes with the first frequency being greater than zero, then
> your vector for ifft should look like this:
> Y1=[0;Y;flipud(conj(Y))];
> If there is a zero frequency, it will look like this:
> Y1=[Y;flipud(conj(Y(2:end)))];
>
Thanks for helping NZTideMan!
all my frequencies are greater than 0 (from 10 to 100 with 1024 amplitudes)
could you please explain to me why using this form ?
Y1=[0;Y;flipud(conj(Y))]; ( i'm not familiar with the ifft fct of matlab)

Is there any special algorithms to generate these random phases (monteCarlo ?) ? or should i use the random fct of Matlab ?

thanks again

Tags for this Thread

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

rssFeed for this Thread

Contact us at files@mathworks.com