The ADS1299 uses a Delta Sigma analog to digital converter, which has the big advantage of not requiring a lot of external components such as preamps or filtering. It does have a good onboard Bias generation, which cancels out most 60 Hz line interference, as well as other common mode signals.
Actually the ADS1299 integrates the pre-amps. Each channel has one. The gain is programmable and goes up to 24x. Also its high resolution of 24-bit means you can still see signals much, much smaller than full-scale.
A gain of 24 is not enough for microvolt (millionths of a volt) level inputs. These preamp circuits are not high-gain. Even just to use the 8 least significant bits, the input would need to be amplified around 400 times at least,
(1 volt/1 x 10^-6 volts) / 2^8 = 390.625 assuming 10 microvolt input levels and 1 volt outputs. The Delta Sigma technology is the key. I don't totally understand how that works; seems to be a lot of mathematically based theory involved.
let's assume you use the integrated 2.4 V reference, which gives you a full-scale input of 4.8 Vp-p (+-2.4 V). Setting the gain to 24x results in full-scale of 200 mVp-p. Now the LSB is approx. 12 nV. (200 mVp-p / 2^24). An input of 10 uVp-p would result in a code of approx. 833. You would end up with a resolution of a little less than 10-bit for your signal.
Delta sigmas are highly over-sampled 1-bit ADCs. Applying a digital decimation filter to this low resolution, high speed bit stream gives you a higher resolution, lower speed bit stream. This is nice as the actual sample rate of the converter is very high, which means anti-aliasing filters are much easier to design (single pole filters suffice in many cases).
The short answer is that you "get" at 24 bits. I believe that your question is actually about how many of the bits are real and how many are noise. I, too, wanted to understand the self-noise of the OpenBCI system when I first started using it. So, while I have not yet measured the self-noise of the new V3 board, I did measure the self-noise of the V2 board. You can see my discussion and data here:
Keep in mind that the EEG is a very, very, very tiny signal that exists in the presence of many other signals that are HUGE by comparison. To see these tiny signals in the presence of all the other crap it is necessary to preserve the dynamic range of the system (24 bits) to keep the signal processors from saturating. Just because TI has provide a beautiful signal processor doesn't mean it is any easier. There is a lot going on inside that little part. None of it trivial.
Hello, EEG signals are so weak that it have amplitude in microvolts . So how openbci module can detect this signals as there are no additional amplifiers in schematic.
@wjcroft Hi,Thanks for adding my post in this discussion , i read datasheet of ads1299 and now i can say it does not require any external amplifiers for EEG signals . But dont you think there is a need of low pass filter ! for frequencies above 100 Hz .
I'm designing a prosthetic hand and i am working on signal conditioning part, can anyone please help me in finding the signal filtering and amplification circuits in openBCI
@wjcroft , thank you very much. i understood that all necessary signal conditioning is done by ADS1299. by any chance you know how to do this conditioning without using ADS1299
If you would like to create your own signal conditioning, you should look at other projects that use discrete components, rather than OpenBCI which uses the built-in capabilities of a monolithic chip like the ADS1299.
A good example where you can see the analog signal conditioning elements would be OpenEEG. Their electronics design is available on their website. It is shown as having two parts: the amplifier board and the digital board. It is the amplifier board that you can study to see what elements they used to amplify and filter EEG signals.
Also see the Cyton tutorial, where an example is shown of simultaneous EEG and ECG, which operate respectively on microvolt and millivolt level signals.
Comments
Hi wjcroft,
Thank you for that info. I see from the description at the top of the ADS1299 datasheet that it was designed for EEG.
I'm still amazed though, that it works without preamps with microvolt input signals. Just eerie. Thanks.
Ferdinand
Ferdinand,
A gain of 24 is not enough for microvolt (millionths of a volt) level inputs. These preamp circuits are not high-gain. Even just to use the 8 least significant bits, the input would need to be amplified around 400 times at least,
(1 volt/1 x 10^-6 volts) / 2^8 = 390.625 assuming 10 microvolt input levels and 1 volt outputs. The Delta Sigma technology is the key. I don't totally understand how that works; seems to be a lot of mathematically based theory involved.
let's assume you use the integrated 2.4 V reference, which gives you a full-scale input of 4.8 Vp-p (+-2.4 V). Setting the gain to 24x results in full-scale of 200 mVp-p. Now the LSB is approx. 12 nV. (200 mVp-p / 2^24). An input of 10 uVp-p would result in a code of approx. 833. You would end up with a resolution of a little less than 10-bit for your signal.
Delta sigmas are highly over-sampled 1-bit ADCs. Applying a digital decimation filter to this low resolution, high speed bit stream gives you a higher resolution, lower speed bit stream. This is nice as the actual sample rate of the converter is very high, which means anti-aliasing filters are much easier to design (single pole filters suffice in many cases).
Hi all,
So how many bits of the 24 in the ADC does the OpenBCI get?
Thanks
Chip,
Your blog posts helped a lot, thanks. Very interesting.
EEG signals are so weak that it have amplitude in microvolts . So how openbci module can detect this signals as there are no additional amplifiers in schematic.
I merged your thread with an earlier one that has some links and discussion you may be interested in reading.
Regards,
William
Thanks for support.
http://openbci.com/forum/index.php?p=/discussion/154/front-end-filtering-esd-cmrr-rfi
William
I'm designing a prosthetic hand and i am working on signal conditioning part, can anyone please help me in finding the signal filtering and amplification circuits in openBCI
I merged your question into this existing thread. See some of the preceding posts.
William
thank you very much. i understood that all necessary signal conditioning is done by ADS1299. by any chance you know how to do this conditioning without using ADS1299
thank you. it was really helpful
PGA is given as 1,2...24...what's the real value behind this??