Prev: radiographic images
Next: Whitened Matched Filter
From: msarovar on 9 Mar 2010 09:22 Hi, What is the most efficient way to generate a noise process that is Gaussian correlated in time from a white noise process? I'm having trouble coming up with a simple FIR filter that will do this. Any suggestions? Thanks, ~mohan
From: Tim Wescott on 9 Mar 2010 11:53 msarovar wrote: > Hi, > > What is the most efficient way to generate a noise process that is Gaussian > correlated in time from a white noise process? > > I'm having trouble coming up with a simple FIR filter that will do this. > > Any suggestions? You _do_ mean that you want to take white noise and color it in frequency, not that you want to take noise with a non-Gaussian distribution and make it Gaussian, right? Just run it through a FIR filter with a Gaussian shape. Bim-bam-boom, you'll have noise with a Gaussian PSD. Deciding where to truncate the Gaussian is up to you, of course. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
From: dbd on 9 Mar 2010 11:58 On Mar 9, 6:22 am, "msarovar" <mo...(a)grommit.com> wrote: > Hi, > > What is the most efficient way to generate a noise process that is Gaussian > correlated in time from a white noise process? > > I'm having trouble coming up with a simple FIR filter that will do this. > > Any suggestions? > > Thanks, > ~mohan By "Gaussian correlated" do you mean anything other than correlated and Gaussian distributed? What have you tried and why do you think it hasn't worked? "most efficient" is a context dependent term. Are you concerned with implementing in a 8-bit micro-controller, a supercomputer, an FPGA or a PC? Do you mean efficient in your time or the processor's time or memory space? Dale B. Dalrymple
From: msarovar on 9 Mar 2010 12:25 >On Mar 9, 6:22=A0am, "msarovar" <mo...(a)grommit.com> wrote: >> Hi, >> >> What is the most efficient way to generate a noise process that is Gaussi= >an >> correlated in time from a white noise process? >> >> I'm having trouble coming up with a simple FIR filter that will do this. >> >> Any suggestions? >> >> Thanks, >> ~mohan > >By "Gaussian correlated" do you mean anything other than correlated >and Gaussian distributed? > >What have you tried and why do you think it hasn't worked? > >"most efficient" is a context dependent term. Are you concerned with >implementing in a 8-bit micro-controller, a supercomputer, an FPGA or >a PC? Do you mean efficient in your time or the processor's time or >memory space? > >Dale B. Dalrymple > > Hi, Thanks for the quick answers. And sorry for the lack of detail in my last message. First, by "Gaussian correlated" I mean colored noise for which the temporal correlations are Gaussian. What I have tried so far is to form a Gaussian FIR filter and convolve the white noise with it to get output that is Gaussian correlated in time. I am running this on a PC but need to do it many, many times and so efficiency (in time, not memory) is important. Currently, the convolution is the limiting step in my code and I was wondering if there was an easier way to do this. For example, is there a recursive (IIR) filter for generating Gaussian correlations that might decrease the number of convolution steps? Thanks again for the help, ~mohan
From: Tim Wescott on 9 Mar 2010 13:20
msarovar wrote: >> On Mar 9, 6:22=A0am, "msarovar" <mo...(a)grommit.com> wrote: >>> Hi, >>> >>> What is the most efficient way to generate a noise process that is > Gaussi= >> an >>> correlated in time from a white noise process? >>> >>> I'm having trouble coming up with a simple FIR filter that will do > this. >>> Any suggestions? >>> >>> Thanks, >>> ~mohan >> By "Gaussian correlated" do you mean anything other than correlated >> and Gaussian distributed? >> >> What have you tried and why do you think it hasn't worked? >> >> "most efficient" is a context dependent term. Are you concerned with >> implementing in a 8-bit micro-controller, a supercomputer, an FPGA or >> a PC? Do you mean efficient in your time or the processor's time or >> memory space? >> >> Dale B. Dalrymple >> >> > > Hi, > Thanks for the quick answers. And sorry for the lack of detail in my last > message. > > First, by "Gaussian correlated" I mean colored noise for which the temporal > correlations are Gaussian. > > What I have tried so far is to form a Gaussian FIR filter and convolve the > white noise with it to get output that is Gaussian correlated in time. I am > running this on a PC but need to do it many, many times and so efficiency > (in time, not memory) is important. Currently, the convolution is the > limiting step in my code and I was wondering if there was an easier way to > do this. > > For example, is there a recursive (IIR) filter for generating Gaussian > correlations that might decrease the number of convolution steps? > "I'm having trouble coming up with a simple FIR filter that will do this" Thus, no one suggests the obvious. Yes, there are IIR filters that will approximate a Gaussian filter. In continuous time these are referred to as "Bessel filters"; I don't know how they've acquired a different name in the sampled time domain. No matter what, you'll only get an approximation. The FFT of a white Gaussian noise process is itself white Gaussian noise with uniformly distributed phase. If you need finite-length vectors with your Gaussian autocorrelation, you can make sequences with white noise, shape them with the appropriate Gaussian envelope, then take the inverse FFT to get a sequence with your desired time-domain properties. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com |