DSPRelated.com
Forums

Generating 1/f^2 and 1/f^3 noise

Started by Marc Brooker March 9, 2007
On Mar 13, 1:24 pm, stev...@alum.mit.edu wrote:
> One of my graduate students recently submitted a > short paper summarizing the published methods for generating > correlated random sequences ("colored noise"), citing the various > references on the IIR design problem and explaining their > applicability to the colored-noise problem, since they do not seem to > be widely known in this context. I've posted a preprint at: > > http://math.mit.edu/~stevenj/preprints/iir-colored-noise-2007-03-13.pdf
Steven, there is an inconsistancy in the captions of Figs. 2 and 3. are the "blue dots" PM or LS? (same question for the "black crosses".) r b-j
Once did it about the same, but repeatedly and with windowing and 
overlapping. This removes the periodicy and can generate any spectrum.
Sounds particulary nice, if you use the spectrum of, say, a spoken vocal 
"A".

Andre

Ben Bradley wrote:
> On 9 Mar 2007 03:30:46 -0800, ray@desinformation.de wrote: > >> On 9 Mrz., 09:42, Marc Brooker <myrealn...@gmail.com> wrote: >>> Hello, >>> >>> I am currently writing software to generate 1/f, 1/f^2 and 1/f^3 noise >>> for use in a simulation, using an existing Gaussian PRNG. Currently, I >>> am generating 1/f noise with the Voss-McCartney algorithm (from here:http://www.firstpr.com.au/dsp/pink-noise/), and it seems to work >>> extremely well and perform well enough for my application. >>> >>> I am generating the 1/f^2 noise (noise with a rolloff of 20dB per >>> decade) by passing the output of my Gaussian noise source through a >>> single pole integrator. The output of this process matches the target >>> rolloff very nicely. Is this a generally accepted way to generate 1/f^2 >>> noise? >>> >>> Does anybody know of a more elegant way to generate 1/f^3 (30dB per >>> octave) noise than pass the output of my 1/f noise generator through an >>> integrator? >>> >> I do it in a even more unelegant way (with a IDFT): >> >> I calculate the amplitude for whatever spectral distribution of the >> "noise" i want. >> >> For example: amplitude=1/f^1.1 >> >> I "randomize" the phase with "random" numbers, do a IDFT. For Audio >> sampled with 44100 Hz and a loop length of 131072 Samples it sounds >> quite like "noise". >> >> It's funny to listen to it for a while (with slightly changing room >> acoustics). >> Concentrating on this sound sometimes i seem to notice a certain >> "rythm" which is the 44100Hz/131072 ? >> I guess one could find out something about the audio perception with >> his brain. > > That's a period of 2.97 seconds, which is apparently within the > time of "perception" of a repeated random signal. The ear/brain can > definitely, even easily hear a repeated section of noise (of most any > spectrum, I presume) of a second or less. It sounds like a tape loop > of a noise recording, because that's exactly what it is. > How the ear/brain detects this is probably Master's thesis > material. >
> Steven, there is an inconsistancy in the captions of Figs. 2 and 3. > are the "blue dots" PM or LS? (same question for the "black > crosses".)
Hi Robert, Thanks for pointing out the inconsistency, it has been fixed. Alex.
> Steven, there is an inconsistancy in the captions of Figs. 2 and 3. > are the "blue dots" PM or LS? (same question for the "black > crosses".)
Hi Robert, The "blue dots" are LS and the black crosses PM. Thanks for pointing out the inconsistency, it has been fixed. Alex.
On Mar 14, 1:01 am, alexr...@mit.edu wrote:
> > Steven, there is an inconsistancy in the captions of Figs. 2 and 3. > > are the "blue dots" PM or LS? (same question for the "black > > crosses".) > > Hi Robert, > > The "blue dots" are LS and the black crosses PM. Thanks for pointing > out the inconsistency, it has been fixed. >
thanks, but now when i hit the link, i get: Forbidden You don't have permission to access /~stevenj/preprints/iir-colored- noise-2007-03-13.pdf on this server. and i didn't save the old version. anyway, just thought i'd point that out. r b-j
On Mar 14, 12:45 pm, "robert bristow-johnson"
<r...@audioimagination.com> wrote:
> thanks, but now when i hit the link, i get: > > Forbidden > You don't have permission to access /~stevenj/preprints/iir-colored- > noise-2007-03-13.pdf on this server. > > and i didn't save the old version
Fixed, sorry.
alexrod7@mit.edu wrote:

> The "blue dots" are LS and the black crosses PM. Thanks for > pointing out the inconsistency, it has been fixed.
I think the text on pp. 2--3 also has black and gray reversed. Martin -- Quidquid latine scriptum est, altum videtur.
Hi Martin,

> I think the text on pp. 2--3 also has black and gray reversed. > > Martin
Thanks for your comment. That too has been fixed, the (gray circles) reads (green diamonds) now. Best, Alex.
Alex wrote:
> Hi Martin, > > > I think the text on pp. 2--3 also has black and gray reversed. > > > Martin > > Thanks for your comment. That too has been fixed, the (gray circles) > reads (green diamonds) now.
Hello Alex (and Steven), thanks for posting that article, it is an interesting read! I also have some comments. 1. Why don't you include the titles of the referenced articles? That would make searching for them a lot easier. 2. You define the L2-norm of a vector (on page 3) as ||x||_L2 = sqrt(1/N sum_{k=1}^N x_k^2). This is the first time I see the factor sqrt(1/N) included in the definition of the L2-norm. 3. Fig. 4 shows how the filters perform with regard to the L2(|H|^2 - R) error. Specifically, the IIR-global filters fare better than the IIR-L2(b) filters (which are supposed to minimize exactly that error). Perhaps you can try to use the IIR-global filter as a start value for the gradient search to minimizie the L2(b) error (instead of the Yule- Walker filter). 4. On page 1 you write: " Filtering in the frequency domain requires the entire data sequence yn to be computed and stored in advance, and if many long sequences are required the storage becomes prohibitive. " If I understand you correctly you are saying that frequency domain filtering can only be applied to a single data block. This is not quite correct. Using overlap methods (overlap-save or overlap-add), y_n can be constructed from short blocks. Regards, Andor
On Mar 16, 2:38 pm, "Andor" <andor.bari...@gmail.com> wrote:
> > 2. You define the L2-norm of a vector (on page 3) as > > ||x||_L2 = sqrt(1/N sum_{k=1}^N x_k^2). > > This is the first time I see the factor sqrt(1/N) included in the > definition of the L2-norm.
i've seen it. it's "root mean square" instead of "root sum of squares". both are norms. they both satisfy the four axiomatic properties of norms (the 4th is the triangle inequality). i think the normalization is useful when you want to make comparisons with different N.
> 4. On page 1 you write: > > " > Filtering in the frequency > domain requires the entire data sequence yn to > be computed and stored in advance, and if many long > sequences are required the storage becomes prohibitive. > " > If I understand you correctly you are saying that frequency domain > filtering can only be applied to a single data block. This is not > quite correct.
i would delete the word "quite".
> Using overlap methods (overlap-save or overlap-add), > y_n can be constructed from short blocks.
i would say "shortER blocks". the blocks can be pretty large (like 5 or 10 times the FIR length) if OLA or OLS is optimized to minimize the computational cost per sample. r b-j