Xref: utzoo comp.dsp:1245 sci.math:15023 comp.music:2542 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!olivea!oliveb!amdahl!netcom!mcmahan From: mcmahan@netcom.COM (Dave Mc Mahan) Newsgroups: comp.dsp,sci.math,comp.music Subject: Re: Want algorithm to generate 1/f time series Message-ID: <23421@netcom.COM> Date: 9 Feb 91 20:13:45 GMT References: <52654@sequent.UUCP> Organization: Dave McMahan @ NetCom Services Lines: 32 In a previous article, rjk@sequent.uucp (Robert Kelley) writes: >There are some obvious ways to generate 1/f time series, one way that >comes to mind is to use an fft. What I really want to do, is to generate >a pseudo-random time series such that the spectral energy varies as 1/f >(or, more generally, 1/(f**n)). > >Any ideas about how to do this? Sure. Just generate random noise (this should give you a more or less flat frequency response when you view the FFT of it) and then run the data thru a filter with the response you desire. The advantage of this is that it is done in the time domain so you can create as much data as you desire and do it fairly fast. You also don't need to do things in 'batches' where you would if you tried to use the FFT in the process. Each time you wanted to do the conversion with an FFT, you would have to create a bunch of data points, FFT them, Scale them, and then IFFT them. Messy, plus lots of math which means lots of time required. Create an FIR filter program and give it a time domain response that gives you the 1/f frequency domain response you desire. Generating the time domain impulse response of such a filter and choosing the number of filter coefficients is left as an exercise to the interested reader. :-) >Robert Kelley >rjk@sequent.com -dave -- Dave McMahan mcmahan@netcom.com {apple,amdahl,claris}!netcom!mcmahan