Subject: Re: Frozen noise generation From: "Susan E. Hall" <susanhal(at)DAL.CA> Date: Fri, 13 Dec 2002 14:50:27 -0400Enrique wrote: >We wish to generate two ".wav" files, each containing a burst of frozen >noise (N1 and N2) of the same duration (say 200 ms) but with different >frequency content. Let's say that N1 has frequency components from 10 Hz >to 3000 Hz, and N2 from 3001 Hz to 4000 Hz. Most importanly, we wish that >the SPL level for all frequencies be equal within each noise and equal for >the two noises. > >So far, we have attempted to generate the noise by adding a large number of >equal-amplitude, random phase tones (phases are uniformly distributed >between 0 and 2pi). We then normalize each of the noises to their maximum >amplitudes to produce a wav file. The result is that the spectrum of each >noise is flat over their respective frequencies. However, the levels are >different for the two noises (remember we wish for them to be equal). It >is lower for the noise with the largest number of frequency >components. This is probably the result of the normalization prior to >producing the wav file. > >Is there a clever (analytical) solution to our problem, or do we have to >adjust the level of noises manually to make them equal? I'm taking a stab at answering this question as much for the self-tutorial value it provides me as anything else. I hope anyone would let me know if I have made any errors. Also, Enrique, if I have oversimplified, it doesn't imply that I think you are unaware of the basics, it is there just to help make my argument coherent to myself. Let me make sure I understand your procedure first. You add equal-amplitude random-phase sine components, 200ms in length, over the two ranges 10-3000 and 3001-4000 Hz. Am I right in assuming that you are using equal linear frequency spacing of the sine components in the two noises, and therefore summing more components for your low freq noise? If so, then at this point, by *definition*, the spectrum levels of the two noises are the same, because that's how you made them. The wider bandwidth noise would at this point have a greater *waveform amplitude*, since it is the sum of more spectral components. You then proceed to normalize each waveform to max amplitude. The noise waveform with the fewer spectral components had the lower waveform amplitude, so it increased more in the normalization process. So as you said, the noise with the *more* components now *must* have a lower spectrum level than the other one. You *can't* have both equal spectrum level and equal amplitude waveforms, *unless* the linear bandwidth of the two noises is equal. If you want unequal bandwidth noises at equivalent spectrum level, their waveforms amplitudes will have to be unequal. Note that you won't be able to get around this in the construction phase, by simply using the *same* number of components in the construction of both noises (eg, by by using a wider frequency spacing for the components summed to create the wider bandwidth noise). The result of this procedure *would* be two waveforms of equal amplitude, but if you were to calculate their spectrum levels, you would find that they would differ. This is because they don't *really* contain the same number of components. Yes, you made them with the same number of components, but actually, in calculating the spectrum of a noise, the components for the purpose of the fft calculation become once again equally-spaced at fs/N (sampling frequency divided by N points in the fft). Since you'd be using the same fs and N in getting the spectrum of the two noises to compare them, you'd once again find that the spectrum level of the narrower bandwidth noise would be higher: That is, for two waveforms of equal amplitude, the one having a narrower bandwidth would have a higher spectrum level. Susan