Reply by Jerry Avins June 22, 20102010-06-22
On 6/18/2010 3:29 PM, glen herrmannsfeldt wrote:
> Jerry Avins<jya@ieee.org> wrote: > (big snip) > >>> 1) My "Virtual Sample Rate" is 152 HZ and hence Filter f-cut = [0 - >>> 0.5] * 152 > >> What is virtual sample rate? The reference you cite below deals with >> windowed-sinc filters, not resolution or accuracy. > (snip) > >> This isn't going to work. Other conditions being met, the precision >> gained by averaging increases with the square root of the number of >> measurements. To increase the precision eight times (three bits worth) >> you need to average 64 (8^2) measurements. > > As I just wrote before reading this post. That does work for > reducing the effects of random noise. In many cases that will > be a problem. With slow signals and fast A/D it shouldn't be > hard to do. > >> Even at that rate, it probably won't work on your processor. >> To get 13-bit results from a 10-bit ADC, the converter needs >> to slice accurately to 13 bits thresholds. > > Well, now it is the systematic error question. > > There is the still-used technique of using a smaller A/D converter, > sending the result through a D/A converter, doing an analog > subtraction, and then A/D on the difference. That does depend > on the first A/D thesholds being accurate. > > I believe, though, that you don't need the 13 bit accurate > thresholds if you know the (inaccurate) thresholds to 13 bits. > That is, correct for the systematic error in the appropriately > averaged (and dithered) result. > > Not exaclty the same, but this reminds me of how I understand > that image sensors are used. As it is difficult to make all > the pixels in a large sensor (such as in a digital camera) exactly > the same, instead they supply a table (ROM) indicating the > systematic error in each and then correct the resulting image. > >> Any converter on a processor chip is most unlikely to be >> that good. If the spec sheet doesn't say it is, it isn't. >> There are other considerations, but one thing at a time.
I've been away for a long weekend, and I had a disturbing thought about the whole process. Thirteen bits of resolution is not necessity for the purpose, so U have to assume that the OP wants them for added sensitivity. If his signal is so small that the ADC will call them zero, it doesn't matter how many are averaged. A preamplifier with a gain of a few hundred is likely what is needed. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Reply by Tim Wescott June 18, 20102010-06-18
On 06/18/2010 12:29 PM, glen herrmannsfeldt wrote:
> Jerry Avins<jya@ieee.org> wrote: > (big snip) > >>> 1) My "Virtual Sample Rate" is 152 HZ and hence Filter f-cut = [0 - >>> 0.5] * 152 > >> What is virtual sample rate? The reference you cite below deals with >> windowed-sinc filters, not resolution or accuracy. > (snip) > >> This isn't going to work. Other conditions being met, the precision >> gained by averaging increases with the square root of the number of >> measurements. To increase the precision eight times (three bits worth) >> you need to average 64 (8^2) measurements. > > As I just wrote before reading this post. That does work for > reducing the effects of random noise. In many cases that will > be a problem. With slow signals and fast A/D it shouldn't be > hard to do.
With a 10-bit ADC you won't necessarily get enough noise to linearize the ADC response -- you may need to add a dither signal to the input to dodge quantization noise.
>> Even at that rate, it probably won't work on your processor. >> To get 13-bit results from a 10-bit ADC, the converter needs >> to slice accurately to 13 bits thresholds. > > Well, now it is the systematic error question. > > There is the still-used technique of using a smaller A/D converter, > sending the result through a D/A converter, doing an analog > subtraction, and then A/D on the difference. That does depend > on the first A/D thesholds being accurate. > > I believe, though, that you don't need the 13 bit accurate > thresholds if you know the (inaccurate) thresholds to 13 bits. > That is, correct for the systematic error in the appropriately > averaged (and dithered) result.
True, but after you get your ADC calibrated today and at room temperature, who's to say if it'll have the same thresholds tomorrow, or at a different temperature?
> Not exaclty the same, but this reminds me of how I understand > that image sensors are used. As it is difficult to make all > the pixels in a large sensor (such as in a digital camera) exactly > the same, instead they supply a table (ROM) indicating the > systematic error in each and then correct the resulting image.
With the focal plane arrays used in infra-red imaging the correction is for the gain and offset of each pixel. Pro video cameras do this, too, but pro video camera makers don't like to fess up to it. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
Reply by glen herrmannsfeldt June 18, 20102010-06-18
Jerry Avins <jya@ieee.org> wrote:
(big snip)
 
> > 1) My "Virtual Sample Rate" is 152 HZ and hence Filter f-cut = [0 - > > 0.5] * 152
> What is virtual sample rate? The reference you cite below deals with > windowed-sinc filters, not resolution or accuracy.
(snip)
> This isn't going to work. Other conditions being met, the precision > gained by averaging increases with the square root of the number of > measurements. To increase the precision eight times (three bits worth) > you need to average 64 (8^2) measurements.
As I just wrote before reading this post. That does work for reducing the effects of random noise. In many cases that will be a problem. With slow signals and fast A/D it shouldn't be hard to do.
> Even at that rate, it probably won't work on your processor. > To get 13-bit results from a 10-bit ADC, the converter needs > to slice accurately to 13 bits thresholds.
Well, now it is the systematic error question. There is the still-used technique of using a smaller A/D converter, sending the result through a D/A converter, doing an analog subtraction, and then A/D on the difference. That does depend on the first A/D thesholds being accurate. I believe, though, that you don't need the 13 bit accurate thresholds if you know the (inaccurate) thresholds to 13 bits. That is, correct for the systematic error in the appropriately averaged (and dithered) result. Not exaclty the same, but this reminds me of how I understand that image sensors are used. As it is difficult to make all the pixels in a large sensor (such as in a digital camera) exactly the same, instead they supply a table (ROM) indicating the systematic error in each and then correct the resulting image.
> Any converter on a processor chip is most unlikely to be > that good. If the spec sheet doesn't say it is, it isn't. > There are other considerations, but one thing at a time.
-- glen
Reply by glen herrmannsfeldt June 18, 20102010-06-18
Tauno Voipio <tauno.voipio@notused.fi.invalid> wrote:
> On 18.6.10 2:04 , gpezzella wrote:
>> I will try to explane better and if there are errors, >> please correct me.
>> My goal is to acquire very low frequency and voltage >> signal (5Hz-50Hz 1mV -2mV) with 10bit DAC.
> EKG/ECG/EEG signal?
> Please note that the built-in A/D converters of small processors > (like ATTiny) are far too noisy for this kind of work. If you have > biological signals, you need a proper pre-amplifier, and you were > much better off with a separate A/D converter.
You might be able to use the statstical techniques of signal averaging. If you make many measurements of a signal that has a random error (noise) component, and average those values, you can decrease the noise by a factor of sqrt(N) (where N is the number of points averaged). It is a little more complicated in the case of a time varying signal, but it can still be done. This relies on either the signal changing much slower than the A/D conversion time or it being periodic such that you can make repeated measurements. -- glen
Reply by Tim Wescott June 18, 20102010-06-18
On 06/18/2010 09:08 AM, gpezzella wrote:
> Dear Friends > > My application should detect signal that come from MicroWave cavity (the > one used in alarm). > When people walk in front a MW, a little signal of few mV and frequency > between 10-50Hz is generated. I should detect this! > > I'm developing on ATTiny micro family. Now: > > a) Since AtTiny have 20x amplifier buit in, instead of add 3 new bit by > Oversampling and Decimation is better first amplify the signal and use the > basic 10 bit ADC?
You're not giving enough information for anyone to make that determination. Normally you want to amplify the signal as high as you can without it exceeding the amplitude that the ADC can handle, or hitting the rails of the ADC. But sometimes you do.
> b) After I have acquired the sample I must always filter it by FIR filter > like sen(x)/x with cut frequency = 50 Hz?
What gives you that idea?
> c) For understand if someone have walk in front MW I can stop here o must > do a FFT?
An FFT would probably be overkill.
> d) Return to point b, which are the minimum point I must acquire and the > minimum value of M. I don't have experience in this and the memory of > ATTINY is very little.
Minimum point what? What's M? Your problems go beyond just your low-pass filter: your entire system design is vague. Because the filter is only part of all the design tradeoffs you must make, you'll never pin down what the "best" filter is, because every time you change other parts of the system design -- or even your goals about what you want out of the system -- what the "best" filter is will change. I think at this point you want to start trying things, and see how they go. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
Reply by Jerry Avins June 18, 20102010-06-18
On 6/18/2010 12:08 PM, gpezzella wrote:
> Dear Friends > > My application should detect signal that come from MicroWave cavity (the > one used in alarm).
Start over from the beginning. What frequency is your microwave signal? What is the highest frequency that your hardware can respond to?
> When people walk in front a MW, a little signal of few mV and frequency > between 10-50Hz is generated. I should detect this!
10-50Hz is hardly microwave. Is it a beat frequency? How is this signal connected to the chip?
> I'm developing on ATTiny micro family. Now: > > a) Since AtTiny have 20x amplifier buit in, instead of add 3 new bit by > Oversampling and Decimation is better first amplify the signal and use the > basic 10 bit ADC? > > b) After I have acquired the sample I must always filter it by FIR filter > like sen(x)/x with cut frequency = 50 Hz?
Anti-alias filtering needs to be done *before* sampling.
> c) For understand if someone have walk in front MW I can stop here o must > do a FFT?
What does an FFT do for you?
> d) Return to point b, which are the minimum point I must acquire and the > minimum value of M. I don't have experience in this and the memory of > ATTINY is very little.
What is M? Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
Reply by gpezzella June 18, 20102010-06-18
Dear Friends

My application should detect signal that come from MicroWave cavity (the
one used in alarm).
When people walk in front a MW, a little signal of few mV and frequency
between 10-50Hz is generated. I should detect this!

I'm developing on ATTiny micro family. Now: 

a) Since AtTiny have 20x amplifier buit in, instead of add 3 new bit by
Oversampling and Decimation is better first amplify the signal and use the
basic 10 bit ADC?

b) After I have acquired the sample I must always filter it by FIR filter
like sen(x)/x with cut frequency = 50 Hz?

c) For understand if someone have walk in front MW I can stop here o must
do a FFT? 

d) Return to point b, which are the minimum point I must acquire and the
minimum value of M. I don't have experience in this and the memory of
ATTINY is very little.

Thanks


 
Reply by steve June 18, 20102010-06-18
On Jun 17, 5:23&#4294967295;pm, "gpezzella" <gpezzella@n_o_s_p_a_m.yahoo.com>
wrote:

> In this last case can you explane me how to write 50Hz Low Pass Filter? > > Thanks
use a simple RC equivalent filter, the equation is output = a*input +(1-a)*previous_output a = samplerate/(RC + samplerate) your samplerate you pick, the RC is a constant and it determines your cutoff cutoff frequency = 1/2piRC hz so 50 hz = 1/2piRC, solve for RC and stick in the equation above
Reply by Tim Wescott June 18, 20102010-06-18
On 06/18/2010 07:01 AM, Jerry Avins wrote:
> On 6/18/2010 7:04 AM, gpezzella wrote: > >>> On 06/17/2010 02:23 PM, gpezzella wrote: >>>> Hello >>>> >>>> this is the first time that I approach to DSP so I'm really newbie. >>>> I have to write a program that realize a Low Pass Filter at 50 Hz. >>>> >>>> My processor (ATTINY) have 10bit ADC so for first time I have used >>>> Oversampling and Decimation technique for add 3 "Virtual Bit" >>>> >>>> First Question: >>>> Since my Oversampled Frequency is: >>>> >>>> 4^3 * F-nyquist = 64 * 100 = 6.4KHz >>>> >>>> Taking sample at this precise rate I obtain directly a signal already >>>> filtered at 50Hz?? >>> >>> Not unless the processor does it for you, which I doubt. >>> >>>> The maximum sample rate of ATTiny is about 15KHz >>>> Is Better take sample at this rate and after filter a signal with a DSP >>>> Filter? >>> >>> From what perspective? It's more work for the processor, does it have >>> the bandwidth to spare? Assuming plenty of processor resources, faster >>> sampling is generally better. >>> >>>> In this last case can you explane me how to write 50Hz Low Pass Filter? >>> >>> Hit the books! Is this for school? If so, ask the prof. If it's for >>> work, or if it's project work, look on Wikipedia, and do some web >>> searches. You need to know if you want to use an IIR or FIR filter (web >>> searches will tell you what those are, and give some guidance of why one >>> or the other will be good), whether you want to decimate (web search), >> etc. >>> >>> If you come up with more questions as you go along, ask. >>> >>> -- >>> Tim Wescott >>> Control system and signal processing consulting >>> www.wescottdesign.com >>> > > Hello > > > > I will try to explane better and if there are errors, please correct > > me. > > My goal is to acquire very low frequency and voltage signal (5Hz-50Hz > > 1mV -2mV) with 10bit DAC. > > > > I have Voltage Reference = 1.1Volt that give me at 10bit 1mV > > resolution. > > So for first thing I have add 3 virtual bit for increase resolution by > > using Oversampling and Decimation Technique: > > > > 'F-cut = 50Hz > > 'F-nyquist = 100Hz > > 'Virtual Bit = 3 > > 'Scale Factor 2^Virtual_Bit = 2^3 = 8 > > 'F-oversampling = ( 4^3 ) * 100 Hz = 64 * 100 = 6400 Hz. > > > > Since I can set only FIX Sample Rate at 9.8 KHz is correct that my > > real f-cut will be 76Hz and not 50Hz? > > Not correct. You must sample *at least* twice as fast as the data's > bandwidth. In other words, the cut-off frequency should be *no more* > than half the sample rate. Actually, one third is good practice.
This may help: http://www.wescottdesign.com/articles/Sampling/sampling.html
> > NOW FILTER > > > > I have read that FIR sync filter sen(x) / x is good low pass filter. > > Is correct that: > > Good for what? A truck is a good vehicle; so is a bicycle. > > > 1) My "Virtual Sample Rate" is 152 HZ and hence Filter f-cut = [0 - > > 0.5] * 152 > > What is virtual sample rate? The reference you cite below deals with > windowed-sinc filters, not resolution or accuracy. > > > For last > > 2) Since I have very few memory on micro, how I must choose M value? > > > > Please do not reply vaguely but use number and value.
(a) Specificity out requires specificity in. (b) Specificity takes more time than most here are willing to deliver. Really specific, number-for-number and code-line for code-line answers are _work_. Some of us are hobbyists with our own pursuits, some of us are retired, and some of us (like me) are professionals. Most of us give answers for the gratification of seeing people learn; it's rare to see one of us doing someone else's work for them. Conclusion: we provide general guidelines, you find number and value.
> > p.s. > > This is the tutorial that I'm reading: > http://www.dspguide.com/ch16/2.htm > > > This isn't going to work. Other conditions being met, the precision > gained by averaging increases with the square root of the number of > measurements. To increase the precision eight times (three bits worth) > you need to average 64 (8^2) measurements. Even at that rate, it > probably won't work on your processor. To get 13-bit results from a > 10-bit ADC, the converter needs to slice accurately to 13 bits > thresholds. Any converter on a processor chip is most unlikely to be > that good. If the spec sheet doesn't say it is, it isn't. There are > other considerations, but one thing at a time.
To correct Jerry's language, I'd use "accuracy" instead of "precision". Think of shooting a gun at a target range -- "precision" is how closely spread the bullet holes are on the target, "accurate" is how close they are to the bullseye. "Resolution" is the smallest increment that the ADC will deliver, and it is often misleading to equate it with either precision or accuracy. To add to what Jerry is saying, in general the hard part of making a really precise ADC is getting the threshold to be accurate; adding more bits to an ADC is easy. In general, if an ADC has a given number of bits of resolution (i.e. the number of bits it actually gives you), you can expect that the accuracy will be lower. For ADCs with high bit counts (14 or more for SAR types) you can expect that there will be noise with an amplitude of several LSBs, so the precision of any one measurement won't be good, but you _will_ be able to average readings for more accuracy. * But you can tease the TI app engineers with it. -- Tim Wescott Control system and signal processing consulting www.wescottdesign.com
Reply by Jerry Avins June 18, 20102010-06-18
On 6/18/2010 7:04 AM, gpezzella wrote:

>> On 06/17/2010 02:23 PM, gpezzella wrote: >>> Hello >>> >>> this is the first time that I approach to DSP so I'm really newbie. >>> I have to write a program that realize a Low Pass Filter at 50 Hz. >>> >>> My processor (ATTINY) have 10bit ADC so for first time I have used >>> Oversampling and Decimation technique for add 3 "Virtual Bit" >>> >>> First Question: >>> Since my Oversampled Frequency is: >>> >>> 4^3 * F-nyquist = 64 * 100 = 6.4KHz >>> >>> Taking sample at this precise rate I obtain directly a signal already >>> filtered at 50Hz?? >> >> Not unless the processor does it for you, which I doubt. >> >>> The maximum sample rate of ATTiny is about 15KHz >>> Is Better take sample at this rate and after filter a signal with a DSP >>> Filter? >> >> From what perspective? It's more work for the processor, does it have >> the bandwidth to spare? Assuming plenty of processor resources, faster >> sampling is generally better. >> >>> In this last case can you explane me how to write 50Hz Low Pass Filter? >> >> Hit the books! Is this for school? If so, ask the prof. If it's for >> work, or if it's project work, look on Wikipedia, and do some web >> searches. You need to know if you want to use an IIR or FIR filter (web >> searches will tell you what those are, and give some guidance of why one >> or the other will be good), whether you want to decimate (web search), > etc. >> >> If you come up with more questions as you go along, ask. >> >> -- >> Tim Wescott >> Control system and signal processing consulting >> www.wescottdesign.com >>
> Hello > > I will try to explane better and if there are errors, please correct > me. > My goal is to acquire very low frequency and voltage signal (5Hz-50Hz > 1mV -2mV) with 10bit DAC. > > I have Voltage Reference = 1.1Volt that give me at 10bit 1mV > resolution. > So for first thing I have add 3 virtual bit for increase resolution by > using Oversampling and Decimation Technique: > > 'F-cut = 50Hz > 'F-nyquist = 100Hz > 'Virtual Bit = 3 > 'Scale Factor 2^Virtual_Bit = 2^3 = 8 > 'F-oversampling = ( 4^3 ) * 100 Hz = 64 * 100 = 6400 Hz. > > Since I can set only FIX Sample Rate at 9.8 KHz is correct that my > real f-cut will be 76Hz and not 50Hz? Not correct. You must sample *at least* twice as fast as the data's bandwidth. In other words, the cut-off frequency should be *no more* than half the sample rate. Actually, one third is good practice. > NOW FILTER > > I have read that FIR sync filter sen(x) / x is good low pass filter. > Is correct that: Good for what? A truck is a good vehicle; so is a bicycle. > 1) My "Virtual Sample Rate" is 152 HZ and hence Filter f-cut = [0 - > 0.5] * 152 What is virtual sample rate? The reference you cite below deals with windowed-sinc filters, not resolution or accuracy. > For last > 2) Since I have very few memory on micro, how I must choose M value? > > Please do not reply vaguely but use number and value. > > Thanks > > > p.s. > This is the tutorial that I'm reading: http://www.dspguide.com/ch16/2.htm This isn't going to work. Other conditions being met, the precision gained by averaging increases with the square root of the number of measurements. To increase the precision eight times (three bits worth) you need to average 64 (8^2) measurements. Even at that rate, it probably won't work on your processor. To get 13-bit results from a 10-bit ADC, the converter needs to slice accurately to 13 bits thresholds. Any converter on a processor chip is most unlikely to be that good. If the spec sheet doesn't say it is, it isn't. There are other considerations, but one thing at a time. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;