ikostoski/esp32-i2s-slm

Meaning of MIC_OFFSET_DB constant

meiniKi opened this issue · 3 comments

Hi, Thank you for the excellent work you put into frequency compensation and frequency weighting. Due to availability, I'd like to use your code with the INMP441 microphone. Unfortunately, I don't fully understand the purpose of the constant MIC_OFFSET_DB.
Is it some value calculated from the manufacturer's specifications. Or is it some offset set by comparing the measurements with a calibrated device? I'd appreciate it if you could provide some clarification.

#define MIC_OFFSET_DB 3.0103 // Default offset (sine-wave RMS vs. dBFS). Modify this value for linear calibration

Or is it some offset set by comparing the measurements with a calibrated device?

It is. It essentially allows you to increase or decrease your microphone's reading depending on if your calculated value is higher or lower than the reference measurement.

@schwukas Thank you.

I also was reading source code and didn’t understand at first how this constant was calculated. Actually, the comment briefly explains it, but a longer version of this explanation could be found here https://dsp.stackexchange.com/a/50947/65262

So it is not from calibration, but rather just $20\cdot\log_{10}(\sqrt 2)$