# How to convert digital value from MEMS microphone to Pa

I am currently trying to create an Android noise measurement app. I have found that the microphone built into the phone is a digital MEMS microphone and I am having trouble converting the digital data collected by the microphone to sound pressure (Pa).

My question is:

How do I convert digital data from a digital mems microphone to Pa?

You can't. At least not without a phone-specific calibration procedure. Android has too many variables: pre-amps, microphone transfer function & packaging, low lever driver, "enhancements", OS version, etc.. Sometimes the calibration even depends on the carrier.

It is easy enough to calibrate for a specific phone (model, settings, OS version, carrier, etc.), but that calibration can easily be off by 10dB or 15 dB for the next phone.

If nothing @hilmar mentioned in his answer mattered, then, theoretically,

You’d need to get your hands on:

• The microphone’s specs (in particular, the sensitivity).
1. Find the sensitivity $$S_{V/Pa}$$. If the sensitivity is given in dBFS, $$S_{V/Pa} = 10^{S_{dBFS}/20}$$
2. Convert the digital output $$D$$ to Volts: for an ADC with $$N$$ bits and a reference voltage $$V_{ref}$$: $$V_{out} = \left(\frac{D}{2^N}\right)\times V_{ref}$$
3. Use this with the sensitivity to convert to pascals: $$Pa = \frac{V_{out}}{S_{V/Pa}}$$