[AH] Red noize

Magnus Danielson cfmd at swipnet.se
Sun Feb 6 01:34:09 CET 2000


From: Harry Bissell <harrybissell at prodigy.net>
Subject: Re: [AH] Red noize
Date: Sat, 05 Feb 2000 17:41:23 -0500

> If I follow this the 2^(n-1) frequencies is where n is the number of stages
> in the register.

You got my formula incorrect I wrote 2^n-1 which becomes (2^n)-1 rather than
2^(n-1). It should actually be written

 n
2  - 1

but that doesn't look very nice when writen in the middle of the bulk text
using the highly advanced pay layout techniques being available in ASCII and
ISO Latin 1.

> I have a 31 stage shift register so that would be 2^30. Thats enough frequencies for
> my hearing... I have never had a hole in even the most agressive bandpass filter...

A 31 stager should be OK. It is actually not the stages alone that set the
limits. You actually also have to consider the clock rate and how that effects
the lowest frequency generated. This is actually how it works:

For all PRBSes consisting of "linear feedback" XOR stages we can construct
maximum length sequence (MLS) feedback settings that will have a number of
properties that only relate to the clock rate and N.

* The sequence length L depend on N as

       N
  L = 2  - 1

* Maximum frequency is at the Nyquist frequency, those

         f
          s
  f    = --
   max    2

* Minimum frequency is by nature DC. Since within the sequence there is an
  uneven number of bits, there is allways a DC component.

* The sequence will have as many frequencies as the sequence is long, so
  therefore will a Fourier transform of the sequence S result in L frequencies
  all spread from DC to fmax. Thus, the distance between two frequencies will
  be

            f        f         f
             max      s         s
  delta f = ---- = ----- = --------
             L     2 * L    N+1
                           2    - 2

Now, the key question here is really how many single frequencies do you require
to be within the -3 db to -3 dB range of a high Q filter and still accept it
as noise? This will put requirements on the clock frequency and N.

One should also note that we can not run with a too low fs because then will
the randomness of the levels be too coarse for the high end, so we need some
minimum distance to acheive that. You can use a bunch of resistors from
diffrent taps to average out somewhat (TAOE shows this for instance).

It is not too hard to build long sequences and it is not too hard to clock them
at high clock rates enougth to acheive a good randomness for the high end.

> OTOH this was a replacement for the National Semi 5831 (?) 17 stage noise source,
> which had good enough frequency distribution (of energy) but a cycle time of less
> than 2 seconds... which I COULD hear the envelope of...
> woosh...woosh...woosh...woosh...
> (you get the picture).

You can certainly hear such short sequences. I have spent many, many nigths
listening to the pulsation of a 16 stage PRBS in MLS configuration. However,
in that particular case I didn't use the noise itself for musical purposes,
just to ensure the music came out nicely ;)

> Why not take two (or more) shift register noise sources and sum their outputs
> together in an analog fashion.  use different clocks... that would make it WAY more
> random !!!

You would need to assure that you run them at the same levels (say +/- 1 dB)
or else one of them is basically wasted. If one is much hotter than the other
will that noise source basically dominate the randomness. However, it is not
at all hard to build LONG sequences with just a few chips. If you build a 39
stage thing and clock it at 1 MHz you would get:

             1M       1M
delta f = ------- = ----- < 1 uHz
           39+1      40
          2    -2   2  -2

So, this should be enougth for much of normal musical work.

Such an noise source can be built by taking a tap after the 35:th and 39:th
register and XORing them and feedback that to the input. Have a 1 MHz CMOS
clock oscillator feed the clock inputs of the chips.

A little ASCII schematic:

+-------+
|       |
| 1 MHz |--*-------------*------------------*
|       |  |             |                  |
+-------+  |             |                  |
           |   1/2 4517  |   1/2 4015       |   1/2 4015
           | 4 +-------+ | 9 +-------+      | 1 +-------+
           *---|CLK    | *---|CLK    | 3    *---|CLK    |       1/4
             2 |       | 6 7 |    Q3A|---*   15 |       | 11  1 4030
       GND ----|WE  Q32|-----|DIN    |10 | *----|DIN Q3A|-------\\--\  3
             7 |       |   6 |    Q4A|---+-* 14 |       |     2 ||   >---*
           *---|DI     | *---|RESET  |   |  *---|RESET  |  *----//--/    |
           |   +-------+ |   +-------+   |  |   +-------+  |             |
           |     GND ----*---------------+--*              |             |
           |                             *-----------------*             |
           *-------------------------------------------------------------*
           |
           Digital Out

You have to treat the digital output some. But in general the above curcuit
will be the full core. I haven't breadboarded it or anything, but it should
be a simple thing to do once you have the chips around.

Cheers,
Magnus



More information about the Synth-diy mailing list