[sdiy] Vote for your favorite noise source

Magnus Danielson cfmd at swipnet.se
Wed May 15 01:52:10 CEST 2002


From: Sowa Roman <Roman.Sowa at upc.com.pl>
Subject: RE: [sdiy] Vote for your favorite noise source
Date: Tue, 14 May 2002 10:46:13 +0200

Hi Roman,

> Magnus Danielson has sent lots of polynominals to make
> PRNs up to 64 stages long. It was September 2000.
> Search the archives.

To be exact - the thread is "psuedo Noise Generator" and this was an
answer (on the 7th Sep. 2000) to the notorious Tim Ressel!!!!

He still doesn't seem to have settle his brain on this issue...

Here is my cut-n-paste:

8<----
Tim,

> To all except Magnus   ;-)

Well, this is since he asked off-list... I didn't have the answer, but since I
have made a little search, so... I ignore this ;D

> Does anyone have info on making shift register-style PRN generators bigger than
> 32 bits?? I'm thinking 64 bits and get it over with. I have up to 32 bits from
> Chamberlan's book and Lancaster's CMOS cookbook, but I need MORE!!!  (heh heh)

How about this:

1 + X + X^3 + X^4 + X^64 
1 + X + X^63 
1 + X^3 + X^5 + X^6 + X^62 
1 + X + X^2 + X^5 + X^61 
1 + X + X^60 
1 + X + X^3 + X^4 + X^5 + X^6 + X^59 
1 + X + X^5 + X^6 + X^58 
1 + X^4 + X^57 
1 + X^2 + X^4 + X^7 + X^56 
1 + X + X^2 + X^6 + X^55 
1 + X^2 + X^3 + X^4 + X^5 + X^6 + X^54 
1 + X + X^2 + X^6 + X^53 
1 + X^3 + X^52 
1 + X + X^3 + X^6 + X^51 
1 + X^2 + X^3 + X^4 + X^50 
1 + X^4 + X^5 + X^6 + X^49 
1 + X^2 + X^3 + X^5 + X^48 
1 + X^5 + X^47 
1 + X + X^46 
1 + X + X^3 + X^4 + X^45 
1 + X^5 + X^44 
1 + X^3 + X^4 + X^6 + X^43 
1 + X + X^2 + X^5 + X^42 
1 + X^3 + X^41 
1 + X^3 + X^4 + X^5 + X^40 
1 + X^4 + X^39 
1 + X + X^5 + X^6 + X^38 
1 + X + X^2 + X^3 + X^4 + X^5 + X^37 
1 + X^2 + X^4 + X^5 + X^36 
1 + X^2 + X^35 
1 + X + X^3 + X^4 + X^34 
1 + X + X^3 + X^6 + X^33 
1 + X^2 + X^3 + X^7 + X^32 
1 + X^3 + X^31 
1 + X + X^30 
1 + X^2 + X^29 
1 + X + X^28 
1 + X + X^2 + X^5 + X^27 
1 + X + X^3 + X^4 + X^26 
1 + X^3 + X^25 
1 + X + X^3 + X^4 + X^24 
1 + X^5 + X^23 
1 + X + X^22 
1 + X^2 + X^21 
1 + X^3 + X^20 
1 + X + X^2 + X^5 + X^19 
1 + X^3 + X^18 
1 + X^3 + X^17 
1 + X + X^3 + X^5 + X^16 
1 + X + X^15 
1 + X^5 + X^14 
1 + X + X^3 + X^4 + X^13 
1 + X^3 + X^12 
1 + X^2 + X^11 
1 + X^3 + X^10 
1 + X + X^9 
1 + X + X^3 + X^4 + X^8 
1 + X + X^7 
1 + X + X^6 
1 + X^2 + X^5 
1 + X + X^4 
1 + X + X^3 
1 + X + X^2

> Thanks!

You are wellcome. Let me know if you plan to go over 64...

Cheers,
Magnus
---->8

Now, there is no single-feedback variant of the 32-stage, but there is
one for 32-stage length if you have multiple middle feedbacks.

I have VHDL code which can do any of the above in serial or parallel
form. Let me know if you need it. Just toss the polynomial on the code
and it spits out the waveform for ya'!

It is verified with the notorious X^7+X^6+1. I've broken FAT IP-pipes
(at the time) with that polynomial. Now, anybody knows where in the
world it is being used? Oh, you can't break IP-pipes with this
polynomial anymore, but it scared the willies of people in the
buissness when I told them I could ping down their biggest
pipe... hehehe ;O)

Anyway, I could cook up MUUUUCH longer things, but I consider 64 bit
sufficient. Let's assume we clock it at 15 MHz. This means that we
spend 24 bits in length per second. This would leave a mere 40 bits
for the seconds, that is 10^12 seconds.... or about 300 milion hours
or 12.75 milion days... or 34,8 thousand years... to loop.

Another way to put it... for musical purposes, you can forget about
looping and sparse spectras. Clock it sufficiently high and you can
also forget about the upper limit being a practical problem. If you
pick the 63-stage polynomial you only have to spend 1 XOR gate at it.
You can realize it using 4 4006 and an XOR-gate.

For two of the 4006 you wire up the delay of 16 stages each. For one
you wire up the delay of 18 stages. For the last one you wire up the
delay of 8 stages plus one 4+1 at the very end. The two last outputs
is sent into the XOR gate, which output is sent to the input at the
first 4006. The full chain will thus be 16+16+18+13 = 63 stages, and
we tap at X^62 (which is complementary to X - a little trick of the
trade). Now, that's not to hard, now is it?

Cheers,
Magnus - still haven't released the code of that evil PING variant



More information about the Synth-diy mailing list