I built 3x3 microphone array using ICS-52000 MEMS microphones and Teensy 4.1 MCU to get data from those mics. I also wrote code in MATLAB to get data via serial port from Teensy.
ICS-52000 are 24 bit mics. In Teensy I had to use 2 channels, because each channel can get only 16 bit data. This is how I save final value:
finalSignal1 = mic1A[0]*256 + mic1B[0]/256;
I need to convert the digital data to decibels, which will represent the sound pressure level. The only idea that came to my mind is to calculate it like this:
20*log10((digital_value)/(2^24-1))