If you run the pwm at the same speed as the sample rate. (or an integer multiple thereof) the ripple is no-longer an issue.
If you run the pwm at the same speed as the sample rate. (or an integer multiple thereof) the ripple is no-longer an issue.
-- ?? 100% natural --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
I did how ever miss read that original post, I guess a DAC was in question.. In which case, dithering the DAC output with a little filter on it passed through a unity amp will yield some good results.
It'll slow down the output response time how ever, unless you have a switchable filter from one of the IO's to allow for fast change of a larger value. Its a matter of just switching it back in once you're at a steady state or in a narrow region. Seems like it would be cheaper to employ a higher res DAC if it gets to that level.
Jamie
Thank you all for your suggestions!
Sample rate of what?
John
Trick: add analog noise ahead of an ADC, several bits maybe, and digitally average it out. Makes more bits and improves linearity.
Different trick: use a dac to add pseudo-random noise to the ADC input, and subtract that out digitally. That smears the data acquisition over many ADC codes without adding a lot of net noise. That improves ADC DNL, like for pulse-height histogramming.
John
one
The trick is called "dither" and is in the text-books, John Watkinson's "The Art of Digital Audio" from 1988 (ISBN 0-240-51270-7) devotes a couple of pages to the subject.
The second trick is in there too - attributed to B.A.Blesser, citing Digital Audio, published in 1983 and edited by B.A. Blesser, B. Locanthi, and T.G.Stockham jnr.
Stockham was tolerably famous - apparently he founded Soundstream
-- Bill Sloman, Nijmegen
Most ADC's these days have significant noise -- often with a standard deviation of several or even tens of steps. So you can pretty much count on getting the analog noise for no extra charge. I've used this with good success in control systems, where short-term resolution was important but absolute accuracy didn't need to be better than the published ENOB of the converter. Just sample as fast as you can push the ADC, take the average ADC output at each control interval, and run with it.
I like your "different trick", though. Dunno if I'll ever need it, but it sounds good.
Yet another trick: run a high resolution slow ADC in parallel with a lower resolution fast ADC. Then after conversion run their outputs through matched low- and high-pass filters, such that you get the DC resolution of the slow ADC while capturing transients with the fast ADC. I haven't done this yet, but one day...
-- Tim Wescott Wescott Design Services
True, especially for 16 bit ADCs, or most any ADC inside a microprocessor. I've built dither generators into ADC systems and wound up not stuffing them!
I've used this
The nuclear pulse-height people like that one. The DAC can have several LSBs below the ADC resolution, and they sometimes dither a lot, like 20% of the ADC range, not just a few LSBs.
That would be good for control loops that have to be both fast and precise. One advantage is that customers almost always test things for accuracy by applying static inputs. So, if you mismatch things and get a little bit of settling tails, you probably won't get caught.
John
Is that noise really random, or just not correlated until you look in the right place?>
-- These are my opinions, not necessarily my employer's. I hate spam.
n, 13 Feb 2011 22:22:00 -0800, Tim Wescott
That depends on the system, but it's certainly possible to get enough Johnson noise from a resistor to smear out the least significant bits of a fast high resolution A/D converter.
Back in 1985 we got a bit of a shock when the lumpiness of the lines we were drawing in photoresist with an electron-beam microfabricator turned out to be coming from the Johnson noise in the input stage of the amplifier that turned our D/A converter output into a current to drive the scan coils. That was fixable - with a lower-noise op amp - but electron-beam resists have gotten faster since then ...
-- Bill Sloman, Nijmegen
I don't know. But the built-in noise of 12-16 bit ADCs usually seems to dither away their quantization and DNL pretty well.
I did one dither thing to get utility-grade electrical metering (which needs like a 20,000:1 dynamic range) from a crummy 8-bit ADC. The dither generator was a uP port pin feeding an RC lowpass, into the current-shunt opamp. That's sort of a delta-sigma noise source. I didn't have code space for a proper random bitstream generator, so I just swept a pointer through the program itself, plucking the MS bit of all my own opcodes. The lowpassed waveform was ugly but it worked fine.
John
oops, I misread the original, also forgot that this has to be done with real parts, not ideal ones.
?? 100% natural
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.