DSPRelated.com
Forums

White noise generation in the frequency domain

Started by Michel Rouzic September 22, 2008
Hello all,

I'd like to synthesise white noise in the frequency domain, the reason
for that is that I need to make it go through a bank of filters so
it's more convenient if I don't have to perform a FFT on it. I've
tried that before, unfortunately strange artifacts would appear in the
form of diagonal streaks on the noise's spectrogram. I have no idea
what this can be due to. The technique I used was to generate each
complex bin by having a magnitude of 1.0 and a random phase, normally
distributed from 0� to 360�.

That seemed like a sensible approach, considered the circular complex
distribution of frequency domain bins it would give me, however it
yields those undesirable diagonal streaks, basically long random dark
lines in the noisy spectrogram with fainter perpendicular equivalents.
Is there anything wrong with the approach? What could these diagonal
streaks be due to? How would you go about doing what I'm trying to do?

Thanks in advance
Michel Rouzic wrote:
> The technique I used was to generate each > complex bin by having a magnitude of 1.0 and a random phase, normally > distributed from 0� to 360�.
Try a uniform distribution of phase from 0 to 360 degrees. Greg
Michel Rouzic wrote:

> I'd like to synthesise white noise in the frequency domain, the reason > for that is that I need to make it go through a bank of filters so > it's more convenient if I don't have to perform a FFT on it. I've > tried that before, unfortunately strange artifacts would appear in the > form of diagonal streaks on the noise's spectrogram. I have no idea > what this can be due to. The technique I used was to generate each > complex bin by having a magnitude of 1.0 and a random phase, normally > distributed from 0� to 360�.
How are you generating the random numbers? There have been stories for years on periodicities in random number generators. One well known one is that groups of three consecutive numbers have some unrandom properties. You might be seeing a similar effect. -- glen

Michel Rouzic wrote:

> Hello all, > > I'd like to synthesise white noise in the frequency domain, the reason > for that is that I need to make it go through a bank of filters so > it's more convenient if I don't have to perform a FFT on it. I've > tried that before, unfortunately strange artifacts would appear in the > form of diagonal streaks on the noise's spectrogram. I have no idea > what this can be due to. The technique I used was to generate each > complex bin by having a magnitude of 1.0 and a random phase, normally > distributed from 0� to 360�.
This is not right. That way are generating a sum of the synchronously phase manipulated signals with the breaks of phase at the same point. there will be the artifacts at the edges of the subsequent FFT blocks, and you will see it in the frequency domain, too. You have to make random magnitude in the addition to the random phase. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Vladimir Vassilevsky wrote:

> This is not right. That way are generating a sum of the synchronously > phase manipulated signals with the breaks of phase at the same point. > there will be the artifacts at the edges of the subsequent FFT blocks, > and you will see it in the frequency domain, too. You have to make > random magnitude in the addition to the random phase.
I think that your description of the problem is right but your solution is wrong. The resulting "white" noise will be pseudorandom with period equal to the FFT size. But using a random FFT magnitude won't change that. The Fourier Transform of white noise has constant magnitude and random phase. Greg

Greg Berchin wrote:

> Vladimir Vassilevsky wrote: > > >>This is not right. That way are generating a sum of the synchronously >>phase manipulated signals with the breaks of phase at the same point. >>there will be the artifacts at the edges of the subsequent FFT blocks, >>and you will see it in the frequency domain, too. You have to make >>random magnitude in the addition to the random phase. > > > I think that your description of the problem is right but your > solution is wrong. The resulting "white" noise will be pseudorandom > with period equal to the FFT size.
I meant generating the different FFT contents for each and every frame.
> But using a random FFT magnitude > won't change that. The Fourier Transform of white noise has constant > magnitude and random phase.
This applies to the continious time Fourier Transform and the infinitely long piece of the white noise. For the finite parameters and discrete sequences, both amplitude and phase will be random. Vladimir Vassilevsky DSP and Mixed Signal Design Consultant http://www.abvolt.com
Vladimir Vassilevsky wrote:

> This applies to the continious time Fourier Transform and the infinitely > long piece of the white noise. For the finite parameters and discrete > sequences, both amplitude and phase will be random.
Do you mean that the DFT squared magnitude will be random with mean equal to the variance of the noise (suitably scaled so that the DFT/ IDFT math works out)? I can sort of justify that intuitively. Greg
Greg Berchin  <gberchin@sentientscience.com> wrote:

>Vladimir Vassilevsky wrote:
>> This is not right. That way are generating a sum of the synchronously >> phase manipulated signals with the breaks of phase at the same point. >> there will be the artifacts at the edges of the subsequent FFT blocks, >> and you will see it in the frequency domain, too. You have to make >> random magnitude in the addition to the random phase.
>I think that your description of the problem is right but your >solution is wrong. The resulting "white" noise will be pseudorandom >with period equal to the FFT size. But using a random FFT magnitude >won't change that. The Fourier Transform of white noise has constant >magnitude and random phase.
Vladimir is right. The Fourier transform of a white noise process has constant magnitude. Whereas the values of the discrete Fourier transform of a white noise signal have a normal distribution. Major difference. Steve
On Mon, 22 Sep 2008 20:44:46 +0000 (UTC), spope33@speedymail.org
(Steve Pope) wrote:

>Whereas the values of the discrete Fourier transform of a white >noise signal have a normal distribution.
I'm not doubting the statements from you and Vladimir, but I've never seen the derivation of this. Where did you find this info? Greg
Greg Berchin  <gberchin@comicast.net> wrote:

>On Mon, 22 Sep 2008 20:44:46 +0000 (UTC), spope33@speedymail.org
>>Whereas the values of the discrete Fourier transform of a white >>noise signal have a normal distribution.
>I'm not doubting the statements from you and Vladimir, but I've never >seen the derivation of this. Where did you find this info?
Let's see... the DFT is a linear operation, that is to say, any given output of a DFT is a linear combination of the inputs to the DFT, so if the inputs are all normal, then any output is normal, since the sum of normal variables is normal. This applies to both the real part of an output, and the imaginary part of an output. They would each be normal. Steve