I'd like to model an Analog Devices ADXL330 MEMS accelerometer using data provided in its datasheet to estimate measurement noise. I'm using a simple mathematical model defined in the paper "Non-linear complementary filters on the special orthogonal group" by Robert Mahony et al.:

\$ \bar{a} = a + \mu_a + b_a \$,

where \$ \bar{a} \$ is accelerometers output given in [g], \$ a \$ denotes the true value, \$ \mu_a \$ denotes additive measurement noise and \$ b_a \$ denotes a constant (or slowly time-varying) bias.

The question is what sensible values should I take for \$\mu_a\$ and \$b_a\$? How do I derive them?

I'd like those values to be in units of g. There are some noise characteristics given in the aforementioned datasheet (page 3), but I'm not sure I can interpret those correctly. Any help appreciated.


1 Answer 1


Let's assume your model is sufficient for your application, and we can really describe the behavior of the device simply in additive terms, one for the per-measurement stochastic behavior and one for the overall bias. Three observations before we get started:

  • I assume you are running the sensor on a 3V supply. If not, you can use the values in the datasheet to adjust the calculations.
  • These terms are expressed in the same units as \$\bar{a}\$, which in this case is volts, not \$g\$.
  • You will actually need three such equations, one for each axis. So 6 terms in total.

For the bias \$b_a\$ we can turn to the charts in figures 5,6, and 7 on page 6 of the datasheet, titled "{X,Y,Z}-axis zero g bias". In a perfect world the zero g output would be 1.5V, but as we can see from the charts the actual value varies between parts. To select your \$b_a\$ for a particular simulated device for a particular axis, you can draw a random sample from that distribution, and use the offset from the expected value of 1.5 as your value for \$b_a\$ for that axis.

Let's look for example at the X-axis term for a particular device. Eyeballing the distribution's parameters I would model it as a Gaussian with \$\mu = 1.53V\$ and \$\sigma=0.01V\$. This means that the distribution for your bias \$b_a\$ for that axis (0g output - expected 0g output of 1.5V) is also a Gaussian, but with \$\mu = 0.03V\$ and \$\sigma=0.01V\$.

In order to assess the random noise, we need to stipulate some sort of output filtering. As is mentioned in the data sheet, by reducing the bandwidth you also significantly reduce noise on the output. I am going to assume a bandwidth of 100Hz just to make the math easier, but feel free to substitute your own values. There is a fairly extensive treatment of this topic in the datasheet under the heading "Design trade-offs for selecting filter characteristics".

With a bandwidth of 100HZ we can expect, according to the datasheet, a noise around 280*10 \$\mu g\$= 2.8 \$mg\$ RMS for the x-axis. We need to convert this to volts in order be able to add it to the formula. The expected sensitivity is about 300 mV/g, so we're execpting a noise of about 0.8 mV RMS. Note that RMS is exactly equal to the standard deviation of the distribution, so you can draw your per-measurement noise samples \$\mu_a\$ directly from a gaussian with \$\mu=0\$ and \$\sigma=0.0008 V\$.

So, for an output filtering of 100HZ: \$\mu_a\ \sim \mathcal{N}(0,0.0008)\$ and \$b_a \sim \mathcal{N}(0.03,0.01)\$, with the stipulation that \$\mu_a\$ is sampled at every measurement, and \$b_a\$ is sampled once for every device.

A factor that we neglected to consider is the variation in sensitivity between devices. This can be accounted for in a manner similar to our treatment of \$b_a\$, but since it's a multiplicative factor, it is not easily captured in your additive model.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.