I think it is a design error to reverse bias a BJT emitter-base close to it's limit which is called a BREAKdown. It may work for a while but is probably damaged. Perhaps an adjustable current-limiter is needed.What is this fundamental flaw are you detecting in the bjt noise? The only thing an lfsr can do in this application that an avalanching transistor (plus amplifier) definitely can't is operate on 5 volts or less.
I saw this white-pink-noise generator PCB project on PCBway. It uses a ATtiny85 chip as a LFSR. I think that chip is difficult to program with Arduino tools. It uses LM358 for filter and buffer. What do you think.
https://www.pcbway.com/project/shareproject/White_Noise_Pink_Noise_Generator.html
https://github.com/GadgetReboot/White_Pink_Noise
https://www.pcbway.com/project/shareproject/White_Noise_Pink_Noise_Generator.html
https://github.com/GadgetReboot/White_Pink_Noise
Not a problem as long as the power limits are not exceeded (< 25mA). BE junctions are used as Zeners all the time. I built a bipolar variable 0-15VDC supply 40 years ago that still works fine. It uses a BE ~7V "Zener". Some may call it "breakdown" but it's actually the "avalanche" voltage. The same is true for the collector "breakdown" but at higher voltages, the current limit is very small.
I was wondering what would be the best clock rate for a LFSR generating white noise. How much time should one shift take. An ordinary Arduino loop takes 5 microseconds, an 8266 takes 2 or less microsecs. I usually add delayMicroseconds(10) which would loop for almost 12 hours.See https://en.wikipedia.org/wiki/1-bit_DAC#Oversampling_Examples
You already own good D/A converters. I would generate the white noise in software and play it on existing hardware.
Ed
Emitter-base avalanche breakdown increases a transistor's nonideal base current and 1/f noise, so it must actually damage the junction.
Assuming the output stays constant until the next pulse arrives (zero-order hold behaviour): you get a sin(pi f T)/(pi f T) shaped response when the pulses have a width T, so the shorter the pulses, the whiter the noise.I was wondering what would be the best clock rate for a LFSR generating white noise. How much time should one shift take. An ordinary Arduino loop takes 5 microseconds, an 8266 takes 2 or less microsecs. I usually add delayMicroseconds(10) which would loop for almost 12 hours.
Several True Random Number Generators that can be used to generate white noise can be found here: TRNGs. They are based on well-known microcontroller boards.
Usage example: in Linux, set the parameters of the serial port of the TRNG with
route the output of the TRNG for some time to a file (end with CTRL/C):
and create a wav file containing white noise:
Beware of the volume!
Usage example: in Linux, set the parameters of the serial port of the TRNG with
stty -F /dev/ttyUSB0 cs8 115200 -brkint -icrnl -imaxbel -opost -isig -icanon -iexten -echo min 1 time 0 ; stty -F /dev/ttyUSB0
route the output of the TRNG for some time to a file (end with CTRL/C):
cat /dev/ttyUSB0 > test.bin
and create a wav file containing white noise:
dd if=test.bin status=noxfer | sox -t u16 -c 1 -r 48000 - -c 1 test.wav trim 0 300
Beware of the volume!
Last edited:
I wouldn't call those true random, they are intended as entropy sources for crypto. Crypto needs entropy sources, those don't have to be pure random though, just a guaranteed proportion of true entropy (fundamentally un-predictable according to the laws of physics) - any structure is rejected by cryptographic hashing anyway, so you can live with 80% entropy or whatever.
For simulations you want good statistical properties from your random number source, but not necessarily any entropy at all (some deterministic PRNGs have very good statistics, despite being deterministic). In fact in some cases its essential that simulations are fully predictable (for running sims in parallel for instance), so a PRNG is a requirement, so the separate processes can keep in step, by giving them all the same seed.
For simulations you want good statistical properties from your random number source, but not necessarily any entropy at all (some deterministic PRNGs have very good statistics, despite being deterministic). In fact in some cases its essential that simulations are fully predictable (for running sims in parallel for instance), so a PRNG is a requirement, so the separate processes can keep in step, by giving them all the same seed.
The hardware true random number generators are usually used to seed pseudo-random number generators. The hardware ones tend to be too slow for wide use in computers.
I use pseudo-random numbers a lot. A properly-seeded PRNG of sufficient period (hundreds of bits) is indistinguishable from true random numbers for all practical purposes.
Ed
I use pseudo-random numbers a lot. A properly-seeded PRNG of sufficient period (hundreds of bits) is indistinguishable from true random numbers for all practical purposes.
Ed
I bought large Goldfish and used movement sensors for random number
generator.
Started my fish tank hobby.
For White noise and relaxation music Was easier to build generative Modules
using Synthesizer Software. Since more elaborate filters and could run to
a clock. German software Native Instruments, Reaktor
Could Transmit or receive Midi.
Wanted to use the Fish as Gate triggers as well.
I prefer more advance waveforms for relaxation music.
But used filtered white noise and quantized for random number
generation for modulation.
generator.
Started my fish tank hobby.
For White noise and relaxation music Was easier to build generative Modules
using Synthesizer Software. Since more elaborate filters and could run to
a clock. German software Native Instruments, Reaktor
Could Transmit or receive Midi.
Wanted to use the Fish as Gate triggers as well.
I prefer more advance waveforms for relaxation music.
But used filtered white noise and quantized for random number
generation for modulation.
Probably not. ESP8266 comes in a variety of forms. Here is the one I intend to use.fubar3 - I see from the web that the 8266 has I2S. Can you connect a DAC?
Ed
Attachments
Thanks. I will keep this one in mind.Several True Random Number Generators that can be used to generate white noise can be found here: TRNGs. They are based on well-known microcontroller boards.
Usage example: in Linux, set the parameters of the serial port of the TRNG with
stty -F /dev/ttyUSB0 cs8 115200 -brkint -icrnl -imaxbel -opost -isig -icanon -iexten -echo min 1 time 0 ; stty -F /dev/ttyUSB0
route the output of the TRNG for some time to a file (end with CTRL/C):
cat /dev/ttyUSB0 > test.bin
and create a wav file containing white noise:
dd if=test.bin status=noxfer | sox -t u16 -c 1 -r 48000 - -c 1 test.wav trim 0 300
Beware of the volume!
Assuming the output stays constant until the next pulse arrives (zero-order hold behaviour): you get a sin(pi f T)/(pi f T) shaped response when the pulses have a width T, so the shorter the pulses, the whiter the noise.
From tests I've run, it's necessary to ensure that the LFSR clock is at least 3 times the highest frequency of interest. For 20kHz, this means 60kHz is required. --Rod Elliot
https://sound-au.com/project182.htm
If it is just for creating ambient tone for sleeping
then simple transistor circuit much easier.
Of course listening to constant noise gets boring if not
annoying. Eventually leads to wanting filter modulation
and amplitude envelopes.
All depends what the individual considers
helpful or relaxing.
Can even stream 10 or 20 hour videos of
actual water recordings. Or find more elaborate
ambient music artists.
All in all very fascinating fun world for hardware or
software to create ambience.
then simple transistor circuit much easier.
Of course listening to constant noise gets boring if not
annoying. Eventually leads to wanting filter modulation
and amplitude envelopes.
All depends what the individual considers
helpful or relaxing.
Can even stream 10 or 20 hour videos of
actual water recordings. Or find more elaborate
ambient music artists.
All in all very fascinating fun world for hardware or
software to create ambience.
From tests I've run, it's necessary to ensure that the LFSR clock is at least 3 times the highest frequency of interest. For 20kHz, this means 60kHz is required. --Rod Elliot
https://sound-au.com/project182.htm
Peculiar that he needs to run tests for that, instead of just calculating it. Apparently he is willing to accept a drop to 20 dB log10(sin(π/3)/(π/3)) ~= -1.65 dB at 20 kHz.
I like the trick he uses to get out of the all zeros state. It's the simplest circuit I've ever seen for that.
I think if you keep the reverse base current below 10uA you'll have a circuit that would be stable for a very long time. That circuit seems deceptively capable of doing that especially if you start with the pot turned all the way down and only set it for a couple uA. You could use a higher value emitter resistor. You don't need any 50MHz of course. I haven't found any diodes that are louder than the transistor, that's why people do it, but you still don't want to accidentally put a used one back in your bin and grab it later for an amplifier input stage.I think it is a design error to reverse bias a BJT emitter-base close to it's limit which is called a BREAKdown. It may work for a while but is probably damaged. Perhaps an adjustable current-limiter is needed.
View attachment 1195970
Last edited:
I found various schematics for generating white noise and/or pseudo-random numbers. Most of them are just experiments which don't protect the avalanche transistor. I like the projects by Rod Elliot and a few others that explain what they are doing.
http://holdenc.altervista.org/avalanche/ https://electricdruid.net/product/noise2-white-pink-generator/
http://holdenc.altervista.org/avalanche/ https://electricdruid.net/product/noise2-white-pink-generator/
Using boosted Zener.
I abandoned the idea of using BJT for white noise since the BJT is too delicate. Fortunately, an actual Zener diode is "heavily-doped" ..LOL.. to withstand the stress of avalanche operation. I read that BJT can generate 30mv but Zener does only 20mv. I remedy that with a Zener-adapter. It is very robust and I can see it's output on my "Heisenberg" BitScope.
The schematic has a 2N3906 as a buffer which gives up a little gain to provide negative feedback for stability. I call R6 the gain resistor. It can be anything between 220 and 560. I don't know how much feedback is needed to compensate for material variance. I selected 470. I tested 220 but that causes clipping in the opamp of the support PCB which is gained by 10k/1k.
I discovered that the opamp will oscillate if the zener adapter is not plugged. An input termination resistor prevents oscillation but the test PCB needs shielding, shorter tracks and wires. The MC1458 (2X741) does not oscillate since it's frequency response rolls off sooner that 4562 or 5532. The 5532 does 300khz and the 4562 does 200khz. This is not a problem for the custom adapter but a flaw in the fabricated PCB and wires.
The oscillation bug reminds me that audio gear needs to be protected from out-of-band signals. Rod Elliot has an IEC filter for that.
I prefer a digital generator but I want to compare analog and digital. Do they sound the same. Others may want everything analog with a pink noise filter for audio equipment.
I abandoned the idea of using BJT for white noise since the BJT is too delicate. Fortunately, an actual Zener diode is "heavily-doped" ..LOL.. to withstand the stress of avalanche operation. I read that BJT can generate 30mv but Zener does only 20mv. I remedy that with a Zener-adapter. It is very robust and I can see it's output on my "Heisenberg" BitScope.
The schematic has a 2N3906 as a buffer which gives up a little gain to provide negative feedback for stability. I call R6 the gain resistor. It can be anything between 220 and 560. I don't know how much feedback is needed to compensate for material variance. I selected 470. I tested 220 but that causes clipping in the opamp of the support PCB which is gained by 10k/1k.
I discovered that the opamp will oscillate if the zener adapter is not plugged. An input termination resistor prevents oscillation but the test PCB needs shielding, shorter tracks and wires. The MC1458 (2X741) does not oscillate since it's frequency response rolls off sooner that 4562 or 5532. The 5532 does 300khz and the 4562 does 200khz. This is not a problem for the custom adapter but a flaw in the fabricated PCB and wires.
The oscillation bug reminds me that audio gear needs to be protected from out-of-band signals. Rod Elliot has an IEC filter for that.
I prefer a digital generator but I want to compare analog and digital. Do they sound the same. Others may want everything analog with a pink noise filter for audio equipment.
Attachments
- Home
- Design & Build
- Parts
- Testing White Noise Generator Devices