1

I am working with a DSP that takes audio input from a digital microphone. For the sake of this discussion all input sounds are pure sinewaves.

The DSP receives microphone data as 24-bit numbers. Let's say the mic datasheet says its sensitivity is -37 dBFS at 94 dBSPL. This would mean, if there is a very loud sound input in the microphone such that the microphone gives out the maximum possible value that it can (this I am assuming is bit sequence that is all 1s), and we consider it to be 1.0, at a sound input of 94 dBSPL, the mic would be giving out a value equivalent to 10^(-37/20) = 0.014125375446228

If I was representing these fractional values using fixed point 24-bit numbers (with no integer bits), the very loud sound I mentioned earlier would be represented by 1111_1111 1111_1111 1111_1111 = 0xFFFFFF while the 94 dBSPL sound would be represented by 0x01CEDC. The microphone data that comes into DSP memory is sampled at 48000 Hz and 64 audio samples come in every cycle.

Would it be correct to say that this means if the mic input was the very loud sound, I would see audio samples with a peak at 0xFFFFFF in the DSP memory, and for the 94 dBSPL, I would see audio samples with a peak at 0x01CEDC? Or are the actual values seen in the DSP memory irrelevant to the microphone's specifications?

I have actually given a sinewave digital mic input using audio testing equipment to the DSP's digital mic input pins, where the equipment has the option to set the level of sound input in dBFS. I have seen that my assumption above is not really correct, but I don't know if I did something wrong in the experiment either. Hence I would like to hear some more professional opinions.

ocrdu
  • 8,705
  • 21
  • 30
  • 42
user13267
  • 599
  • 2
  • 9
  • 24
  • Go over the datasheet carefully. There's a good chance that the maximum instantaneous output is 0x7FFFFF and the minimum is 0x800000 (or 0x800001). There's also a good chance that it ranges from 0x000000 to 0xFFFFFF. Note, too, that the microphone gives -- essentially -- **instantaneous** sound output levels. So your microphone output will be oscillating _between_ the maximum and the minimum, hopefully with an average close to it's zero value (0x000000 or 0x800000, depending on how it's designed). – TimWescott Feb 03 '23 at 15:47

1 Answers1

0

I have seen that my assumption above is not really correct, but I don't know if I did something wrong in the experiment either. Hence I would like to hear some more professional opinions.

Your assumption about peak signals is low by \$\sqrt2\$.

The microphone specification is the RMS value of a sinewave of sound pressure and, its peak value will be \$\sqrt2\$ higher than what you have estimated. Other than that you seem to be on the right track.

enter image description here

Image from True RMS value. So, the effective RMS value is 0.7071 × the peak value.

Andy aka
  • 434,556
  • 28
  • 351
  • 777