如何在Android中将16位PCM数据转换为电压值

如何在Android中将16位PCM数据转换为电压值,android,android-audiorecord,android-hardware,Android,Android Audiorecord,Android Hardware,我试图计算安卓系统中麦克风发出的声音的分贝值。 我使用音频录制类从麦克风获取16位PCM数据 //init a recorder instance recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,ECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);

我试图计算安卓系统中麦克风发出的声音的分贝值。 我使用音频录制类从麦克风获取16位PCM数据

      //init a recorder instance
      recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,ECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);                                   

      recorder.startRecording();

    // and then read 16 bit PCM data
      recorder.read(data, 0, bufferSize);
此数据的值范围为-32768到32767(符号为2^16)

我相信这些是量化值。但我想知道相应的电压值是多少。麦克风的电压值范围是多少 在android中?所有智能手机都差不多吗


例如:假设麦克风输出为0到+5 V,那么32767对应于+5 V DC。

在搜索网络后,我发现振幅值取决于设备中使用的ADC,而不是麦克风本身。