psuedo Noise Generator

Magnus Danielson cfmd at swipnet.se
Thu Sep 7 21:12:01 CEST 2000


From: The Old Crow <oldcrow at oldcrows.net>
Subject: Re: psuedo Noise Generator
Date: Wed, 6 Sep 2000 20:21:04 -0400 (EDT)

> 
>   Have a look at:
> 
>   http://www.oldcrows.net/~oldcrow/noise508_63.asm
> 
>   It expands the shift register to 63 bits, with taps at 62 & 63 as
> per the 1 + X + X^63 polynomial.  The only tradeoff is that the loop time
> for a bit is 4us longer, lowering the max. frequency to 17.8KHz or so.
> With a bit of tweaking, I can shrink the loop time again.  Here is the fun
> part: (from the code comments)
> 
> ;
> ;   The main loop 'taps' is 28 CPU cycles.  At the 4MHz internal clock
> ; rate, the noise output is operating at a max. rate of about 17.8KHz.
> ; It is 1 microsecond per CPU cycle, so 28us per bit output.  It takes
> ; two bits (one high, one low or vice-versa) to define the highest
> ; frequency, or a period of 56us.  The highest frequency is thus 17,857Hz.
> ; Since the LFSR will cycle through 2^63-1 states, it will take
> ; 9,223,372,036,854,775,807 iterations of the taps loop to return to the
> ; starting seed value.  At a rate of about 35,714 loops per second, it 
> ; will take a mere 8,183,588 YEARS to repeat.
> ;
> 
>   I think I got that right... ;)

Well, this is my point. Why try to search in vain for an old chip that goes
kashunk, kashunk, kashunk when you fairly cheaply could make a curcuit which
will not loop in anything near the better parts of onces life... overdoing it
is very cheap after all. For most purposes up to 40 bits should be WELL than
enougth, beyond that I don't know if it worth the effort, but it is really
simple there too.

Cheers,
Magnus




More information about the Synth-diy mailing list