[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference rusure::math

Title:Mathematics at DEC
Moderator:RUSURE::EDP
Created:Mon Feb 03 1986
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2083
Total number of notes:14613

658.0. "Gaussian random numbers??" by ECC::JAERVINEN (impersonal name) Tue Jan 27 1987 13:39

I could not think of a better conference to put this question, so here
we go...

How would one generate Gaussian distributed *bandwidth-limited* random
numbers?

Let me explain what I mean:

I want to generate random numbers that represent something you would
get by sampling ideal white noise that has been passed e.g. through
a 0.3-3 kHz filter (thus being 'pink' noise) and sampled at a given
frequency of, say 8 kHz (as in a PCM phone system).

    I wanted to do some computer simulations using signals and bandlimited
    noise (just a private hack, not work-relateed).
    
T.RTitleUserPersonal
Name
DateLines
658.1Definitions please...CHOVAX::YOUNGBack from the Shadows Again,Tue Jan 27 1987 14:3317
    Please explain:
    
    	Ideal white noise.
    
    	Gaussian distribution.
    
    	In what manner you wish to interface this data.  A function
    	call?  A subroutine call?  A file?
    
    	Please list number and types of arguments.  I seem to recall
    	that the definition of white noise has something to do with
    	frequency AND amplitude.
    
    Shouldn't be too hard, but its a lot easier for us (me) if you can
    provide the answers to these.
    
    --  Barry
658.2some ideasENGINE::ROTHTue Jan 27 1987 15:2644
    I encountered the problem when I wanted to generate 2 and 3 dimensional
    band limited perturbations for texture mapping of rendered images.

    There are a number of ways of getting a reasonable approximation, how
    fancy you want to get depends on how accurate you want your simulation
    to be.

    One way that works well is to just generate N equally spaced sinusoids
    with uniformly distrubuted random phases, over the band.  These could be
    fetched from a sine/cosine table, so only time to do the indexing
    and additions would be taken.

    Another alternative is to generate a Poisson distrubution of
    of the impulse responses of a lowpass filter (sin x)/x, and keep a
    running sum, dropping the contribution of a given impulse distribution
    when its tails die away sufficiently. Again, a table could be used for
    this, avoiding math library calls.

    Yet another is to shock excite a recursive digital lowpass filter
    with such a Poisson distribution of impulses - this will trade
    flatness of the frequency distribution for better long term randomness
    of the signal.  But this requires some multiplies in the filter
    simulation.  You can use any classic analog lowpass filter and
    map it to a digital domain via a bilinear transformation to do the
    synthesis.  (Phase response is clearly no concern!)

    What it always comes down to is adding some contributions, either
    spectral or time domain - maybe a mixture of these two would be
    even better.

    You can use something like a maximum entropy spectral estimator to
    check the frequency domain behaviour of your noise source, let me know
    and I can post one (max entropy is good for finding if any narrow
    spectral peaks may be lying around).

    I've read papers on noise loading testing of frequency division multiplex
    systems where the N randomly phased sines were used.  They deleted
    one of the sines and then looked there with a spectrum analyzer on
    the receiving end to see how much energy was thrown into that slot.

    If you can tell me a little more about what you are trying to simulate
    I may be able to give more specific recomendations.

    - Jim
658.3CLT::GILBERTeager like a childTue Jan 27 1987 18:097
    I'd check the literature, especially CACM (Collected Algorithms
    of the Association of Computing Machinery).  I recently (last two
    or three years) saw an article in one of the ACM journals of a new
    and improved method of generating random numbers according to a
    Gaussian and/or Poisson distribution -- such algorithms typically
    take one or two random numbers from a uniform distribution, and
    produce a random number for the desired distribution.
658.4Fourier MethodAIWEST::DRAKEDave (Diskcrash) Drake 619-292-1818Sun Feb 08 1987 19:5016
    We generated random signals for repeatable radar system testing
    by taking the inverse Fourier Transform of the desired spectral
    envelope and using uniform random phase at each frequency. I. E.
    
    	1. Establish the time-bandwidth product desired, say 8192 complex
    	samples.
    
    	2. Introduce  amplitude =1.0, phase = uniform random number
    and convert this into a complex pair of real,imaginary values. Place
    the real, imaginary pair into the array. Weight the array with the
    desired bandpass. (Say 1.0 in the range you desire, 0.0 elsewhere,
    or make a realizable filter such as a Chebyshev or Butterworth.)
    
    	3. Take the inverse FT of the array and use the real result
    as the time domain signal for your test.