Signal Conditioning

cancel
Showing results for 
Search instead for 
Did you mean: 

MEMS accelerometer: noise reduction and improve resolution

Hi to all, I hope to post in the right place.

I have a 14 bit MEMS digital accelerometer, I need 100 sps output rate.

I would like to start tests with LabView before move to microcontroller but first I have these doubts:

 

First step: sensor could  work up to 1200 sps, so I'm thinking about reading data at 1200 sps to increase resolution.

Is there any suitable algorithm specific for this case or just oversample then avarage results to 100 sps?

 

Second step: I've heard it's possible to use multiple (2-3) sensor at same time to reduce noise (Kellman filter?), right?

If so I haven't found examples on the net, just using sensors grid (isn't my case).

Is there available any example?

 

Thanks. Michele.

0 Kudos
Message 1 of 13
(9,775 Views)

Try to get as much information about that sensor as possible.

How does it work internal if you change samplerates?

Will it be affected by line noise?

 

You said you want more resolution, do not mix that up with accuracy 😉

MEMS nonlinearitys and drifts and dynamic influences ?? What happens to that sensor if it is exited at higher frequencies?

I expect interesting folding effects, however I'm no MEMS expert 😉

 

That said, yes by using more sensors and more samples you migth get more information IF your last bit(s) are not pure noise.

 

 

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


0 Kudos
Message 2 of 13
(9,765 Views)

Ok, I need to measure signal up to 50Hz bandwidth (0 to something less 50 Hz).

My accelerometer has got an internal 1th order low pass filter I can set, 14 bits resolution and output data rate up to 1200 samples per second.

So I get data sampled at 100 samples per second.

 

Ok, I understand I can't get efective 24 bit resolution, but let's try to improve something.

 

I can measure noise so I would like to try different ways and check which is better.

 

So, due to available maximum ODR is 1200 I would like to try with oversampling and try to get additional bits; I'm sure here there is someone more expert than me (I've never done this before).

 

Then I know with Kellman filtering I can use several low-cost sensors to improve precision (this would be a second step).

Thanks.

0 Kudos
Message 3 of 13
(9,758 Views)

I think you mean Kalman filter 🙂

But you need information about the system you monitor

 

For the noise: FFT and even more a STFT spectrogram is a nice tool

 

If you have periodic signals think about a lock in approach ...

Sine signals: use tone detection (FFT based) or a sine fit.

 

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


0 Kudos
Message 4 of 13
(9,753 Views)

Unfortunately I haven't periodic signals.

Now I would like to know (theory) about achieving best performances, I already have a laser-based device with reference sensor to check noise.

0 Kudos
Message 5 of 13
(9,746 Views)

Michele,

 

Using multiple sensors to improve resolution assumes that all the sensors measure the same desired signal and that the measurement from each sensor is degraded by uncorrelated random noise.  You would need to be sure the sensors were all mounted in such a manner that they all experience the same acceleration signal without significant delays.

 

Since it appears that your sensors do their own digitizing and (unknown) signal conditioning prior to digitizing, it is not clear how much randomness is in the outputs.

 

Oversampling and then averaging can reduce time sequential noise. This may improve resolution and accuracy but not beyond the 14 bits.

 

In principle dithering with a random signal can improve resolution but making it work depends on details of the snesor and the system being measured.  Again with the built-in signal conditioning and digitizing, you may not have adequate access to the points needed to make the process work.

 

Lynn

0 Kudos
Message 6 of 13
(9,737 Views)

Sorry, my fault, I've misunderstood....

 

Oversampling works only if I have low noise signal, oversampling with 16 bit ADC where I have 1mg/LSB with 1g peak-peak noise, I suppose wouldn't be usefull.

 

By the way, I could place sensors to create a sensor array on same circuit board, so I could assume all sensors would measure same value.

So, now, my first issue is "reduce" noise, then let's assume I read all sensors (e.g. 3 sensors) at the same time, at 1kHz sampling frequency, where my signal bandwidth is 0-50Hz, how should I proceed? 

 

 

0 Kudos
Message 7 of 13
(9,706 Views)

What is the model number of the accelerometer? Can you post the datasheet or a link to it?

 

How big is the desired signal? You mentioned 1 g peak-peak noise. Is the noise random or an interfering signal at a specific frequency? What is your desired resolution on the desired signal?

 

Lynn

0 Kudos
Message 8 of 13
(9,664 Views)

At the end, my final application is measure signal with maximum pk-pk value of 1-1,5g, maximum bandwidth 50Hz.

Target accelerometers has got about 300ng PSD value, at 24 bit resolution, I would likr to know what can I do with commercial accelerometers.

 

 

Hi, I've take as example application note AN4075 from Freescale:

 

- sensor MMA8451 14 bit digital output, +/- 2g fullscale, 0,25 mg/count

 

PSD = 85ug/SQRT(Hz)

Signal bandwidth = 200 Hz

Sample frequency = 400 Hz

RMS noise = 1,2mg (on 200 Hz bandwidth)

pk-pk noise = RMS noise * 4 = 4,8 mg

 

I have 2,8 mg of noise where I have a resolution of 0,25 mg/count, so I got at the end efective resolution of 11,05mg.

Other sensors could be BMA180 from Bosch or LIS3LV02DQ from ST (both digital output).

 

1) can I improve performances of these sensors?

I've read I can increase resolution with oversampling, but I think I would be limited to the maximum sample rate of sensor (1200 SPS for BMA180 or 1600 for LIS3LV02DQ)

 

 

If oversampling would be correct way, I think I could use external ADC (due to high SPS I can reach in this way, digital sensors has got maximum SPS up to 1600) to increase SPS value.

 

But if I increase resolution through oversampling (let's suppose I can reach 24 bit resolution), which would be efective number of bits?

 

 

2)I can place sensors much closer, so I think I can get same acceleration reading from 2 (or more) sensors. In this case I would reduce noise throu Kelman filter.

But examples I've fond on the net are based on "estimated" value I suppose, and on "real" value I read from sensor.

So I have no idea how implement Kelman filter.

 

0 Kudos
Message 9 of 13
(9,649 Views)

I looked at the information for the MMA8451. It appears that the manufacturer already does a significant amount of oversampling, filtering, and other processing of the raw accelerometer signals before generating a digital output.

 

I have not used these or similar devices, but I suspect that you will not be able to get much improvement over what the device produces.

 

Is your 2.8 mg of noise from the sensor or is it mechanical noise in the object you are measuring?

 

Lynn

0 Kudos
Message 10 of 13
(9,624 Views)