home    Nederlands    next

Portfolio

Noise generator

Purpose

Listening to classical music while traveling on public transport is a waste of time due to the noisy environment (80 to 90 dBA). THe main reason why people listen to some kind of music in these circumstances is to isolate oneself in order to read, daydream or slumber.
The combination of earplugs and an audio noise generator is very effective way to isolate oneself from traffic noise (and worse) without inflicting hearing damage.
It is well know that the writer Simon Vestdijk used a Nilfisk vacuumcleaner for simular purposes. It is on display in the Letterkundig Museum in The Hague.
portfolio_files/noise-extern.jpg portfolio_files/noise-intern.jpg

Theory

By shifting a bit pattern (to the left, say) and filling the empty place (at the right) by a suitable value, for instance the XOR value (*) of the first and the last bit before shifting, we can get a maximum length series . That is a series of numbers that contains all possible values except zero, or we get a series of zeros. An example:
f[n+1]=((2*f[n])&15)+(XOR(f[n]&8,f[n]&1)?1:0)
0001=01 or 0000=00
0011=03 or 0000=00
0111=07 or 0000=00
1111=15 or 0000=00
1110=14 or 0000=00
1101=13 or 0000=00
1010=10 or 0000=00
0101=05 or 0000=00
1011=11 or 0000=00
0110=06 or 0000=00
1100=12 or 0000=00
1001=09 or 0000=00
0010=02 or 0000=00
0100=04 or 0000=00
1000=08 or 0000=00
0001=01 or 0000=00
et cetera

(*) The truth table for the eXclusive-OR function is:
XOR(0,0)=0
XOR(0,1)=1
XOR(1,0)=1
XOR(1,1)=0

The non-trivial series has an interesting property. Its autocorrelation function is a 0, except for one point:
∫ (f(t-τ)-<f>)*(f(t)-<f>)dt = C*δ(τ) where <f> denotes the mean value of f().
In other words the series is a very coarse pseudo-random function.
In 1995 I had access to a state-of-the-art Sun workstation and I used that to evaluate a 31 bit variant of the example above.
Next I designed an implementation in COS/MOS logic.
portfolio_files/noise-140995.jpg

Electronics

The noise generator consists of 4 COS/MOS chips and a few passive components.
Power is supplied by a 9 V rechargable battery. On power on a small capacitor is charged over a LED in series with a Zener diode. The LED gives a short flash when the battery is sufficiently charged.
If the noise generator fails to start (see above), it is kick started again.
We needed
• 1 CD4030 quad exclusive-or gate
• 2 CD4006 18-stage static shift registers
• 1 CD4049 inverting hex buffer
Two XOR gates are used to make a NOT-XOR gate. The other two were used for the clock generator.
The clock frequency is about 200 kHz. So with a cyclelength of 2^31 - 1 steps the noise pattern is repeated every 3 hours.
The shift registers were rearranged into a 14-, 17- and 4-bit shift register.
The six stages of the 4049 were arranged in parallel to provide the low impedance output signal. Volume is conrolled with a miniature logarithmic potmeter.

The noise generator and amplifier
portfolio_files/noise-components.jpg portfolio_files/noise-amplifier.jpg
Underside of the noise generator
portfolio_files/noise-wiring.jpg
home (English)    Nederlands