Skip to main content
Associate III
February 18, 2025
Solved

MEMS audio sensor MP23DB01HP Values/Units

  • February 18, 2025
  • 1 reply
  • 3495 views

I have a question about the MEMS audio sensor MP23DB01HP.

I think i already undertood that the output is a PDM, but my question is, how can I convert that to obtain a corresponding value in dB? Or some used unit?

I have done the acquisitons, but know i don't know what to do with that values...

Thank you in advance for your replies

Best answer by Andrea VITALI

As explained before, the formula would be a rough estimate of the dBSPL because dBFS is measuring one thing (where the signal stand with respect to full-amplitude) and dBSPL is measuring the actual physical sound pressure.

135dB AOP was an example, if you are using a specific part you should read the datasheet! for MP23DB01HP the datasheet says AOP is 120dBSPL and you should use that number, not the one in the example: dBSPL = dBFS + 120.

The datasheet says that a 94dBSPL signal at 1kHz stays at -24dBFS +/-1dB. You can use this reference point to get the number you are looking for, 118dBSPL+/-1dB at 1kHZ would correspond to 0dBFS. Which again points to dBSPL = dBFS + 118.

RMS is more reliable than an instantaneous measure. So, use the RMS of a data segment to get the same levels that an audio instrument would report (because remember audio applications use RMS).

Finally, for applications that require accuracy you can perform a 1 point calibration: create a stimulus with a precisely known dBSPL level, measure the dBFS level from the microphone and compute the offset to be added to go from one number to the other. 

Keep in mind that the frequency response is not flat, signals with same dBSPL but different frequencies will appear to have different dBFS.

Hope you can move forward with your application now. If so, please mark this as solution accepted.

 

1 reply

Andrea VITALI
ST Employee
February 19, 2025

What have you acquired? not clear - if you have the PCM (pulse code modulated) stream then you already have everything. If you do not know how to convert from PDM to PCM, then PCM was not saved, did you save the PDM bitstream?

The PDM to PCM conversion can be done by the firmware, check for example AN3998 and UM2372 that describe the API of the library in STM32Cube software packages: 

The PDM to PCM conversion can also be done by a dedicated hardware peripheral on STM32 models equipped with that peripheral, check AN5027 for more information

Finally, audio processing and fusion such as BeamForming (BF), Sound Source Localization (SL), FFT analysis, and of course PDM to PCM conversion is in X-Cube-MEMSMIC1 software package!

 

Associate III
February 20, 2025

Thanks @Andrea VITALI 

I am using steval mkboxpro with FP-SNS-DATALOG2, and after acquisition i obtained a .dat file, then i used the program that came in  FP-SNS-DATALOG2 to convert .dat to .csv, after opening the .csv i have the timestamps and waveform. Like this:

FilipeLoureno_0-1740044539396.png

From what i understand by reading the files and your explanation, the output is a PDM, a stream os 0s and 1s, but i don't have that output. My problem is that i need to have this in db or dbSPL.

Associate III
February 20, 2025

Any of the solution that you suggested is compatible with using FP-SNS-DATALOG2?