数字麦克风:I2S数据输出
Digital microphone : I2S data output
我一直在玩一些具有 I2S 接口的数字麦克风。我设法让它工作(带有小型 I2S mems 板的 Arduino 板)。至少,我想我做到了。
在阅读 I2S 规范或麦克风数据表时,我似乎无法找到以下简单问题的答案;
1. 数字值代表什么?
2. 如何将数字值转换为 dbFS(然后是 dbSPL)?
SPH0645LM4H-B (Knowles) 麦克风似乎输出所有负值 (?)。我在某处读到你必须 "subtract the midpoint" 来消除大的直流偏移?!
另一方面,Invensense 的支持工程师向我解释说 ICS-43434 输出正值和负值 "represent the amplitude of the signal relative to +/-full scale".
我希望 I2S 成为标准;不是这样吗……?
你必须保存数字化数据的每个样本,这个 24 位的字转换为十进制后,会给你一个电压。此电压是您计算 RMS 值所需的电压,稍后将计算您的分贝 SPL。
你用哪个arduino板来让它工作?大多数 arduino 没有 I2S 通信,我认为 Arduiino Zero 和 MKR 是可用于任务的。如果使用具有浮点、32 位处理器、DMA 等的 STM32 微控制器,您将获得更好的性能
我一直在玩一些具有 I2S 接口的数字麦克风。我设法让它工作(带有小型 I2S mems 板的 Arduino 板)。至少,我想我做到了。
在阅读 I2S 规范或麦克风数据表时,我似乎无法找到以下简单问题的答案; 1. 数字值代表什么? 2. 如何将数字值转换为 dbFS(然后是 dbSPL)?
SPH0645LM4H-B (Knowles) 麦克风似乎输出所有负值 (?)。我在某处读到你必须 "subtract the midpoint" 来消除大的直流偏移?! 另一方面,Invensense 的支持工程师向我解释说 ICS-43434 输出正值和负值 "represent the amplitude of the signal relative to +/-full scale".
我希望 I2S 成为标准;不是这样吗……?
你必须保存数字化数据的每个样本,这个 24 位的字转换为十进制后,会给你一个电压。此电压是您计算 RMS 值所需的电压,稍后将计算您的分贝 SPL。
你用哪个arduino板来让它工作?大多数 arduino 没有 I2S 通信,我认为 Arduiino Zero 和 MKR 是可用于任务的。如果使用具有浮点、32 位处理器、DMA 等的 STM32 微控制器,您将获得更好的性能