Digital microphone : I2S data output [closed]

被刻印的时光 ゝ 提交于 2019-12-24 21:22:27

问题


I have been playing around with some digital microphones, which have an I2S interface. I managed to get it working (Arduino board with small I2S mems board). At least, I think I did.

When reading the I2S specification, or the microphone datasheet, I can not seem to find the answer to the following simple questions; 1. What do the digital values represent? 2. How do you convert the digital values to dbFS (and then later an dbSPL)?

The SPH0645LM4H-B (Knowles) microphone seems to output all negative values (?). I read somewhere you have to "subtract the midpoint" to eliminate the large DC offset?! On the other hand, a support engineer at Invensense explained to me that the ICS-43434 outputs positive and negative values which "represent the amplitude of the signal relative to +/-full scale".

I expected I2S to be a standard; isn't that the case ... ?


回答1:


You have to save each sample of the digitized data, this word of 24 bits when converted to decimal, will give you a voltage. This voltage is what you need to calculate RMS value, and later on calculate your db SPL.

Which arduino board are you using to make it work? most arduino doesn't have I2S communication, I think Arduiino Zero and MKR are the ones available for the taks. You would achieve a better perfomance if you use STM32 microcontrollers, which have floating point, 32 bits processor, DMA.. etc.



来源:https://stackoverflow.com/questions/47142902/digital-microphone-i2s-data-output

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!