Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用奴佛卡因计算dB_Ios_Signal Processing_Core Audio_Audio Recording - Fatal编程技术网

Ios 使用奴佛卡因计算dB

Ios 使用奴佛卡因计算dB,ios,signal-processing,core-audio,audio-recording,Ios,Signal Processing,Core Audio,Audio Recording,我想用有效值来计算分贝,所以我的问题是我能用有效值来测量分贝吗。事实上,我想要iphone的麦克风作为输入,监视周围的噪音。 我无法解决这个问题。请帮忙 请给出任何示例基本上,这是dB满标度背后的数学: 其中b是位深度,在iOS上b=16 这可以通过如下方式实现: const float min = 20.0f*log10f(powf(2, 15)); // the "most silent" sample Novocaine *audioManager = [Novocaine audio

我想用有效值来计算分贝,所以我的问题是我能用有效值来测量分贝吗。事实上,我想要iphone的麦克风作为输入,监视周围的噪音。 我无法解决这个问题。请帮忙


请给出任何示例

基本上,这是dB满标度背后的数学:

其中
b
是位深度,在iOS上
b=16

这可以通过如下方式实现:

const float min = 20.0f*log10f(powf(2, 15)); // the "most silent" sample

Novocaine *audioManager = [Novocaine audioManager];
[audioManager setInputBlock:^(float *newAudio, UInt32 numSamples, UInt32 numChannels) 
{
    float f = 0.0f;
    for (int i = 0; i<numSamples; i++)
    {
          f += fabsf(newAudio[i]); // we are only interested in non-imaginary values
    }
    f /= numSamples; // kind of a poor averaging... 
    float value_dB = 20.0f*log10f(f) - min; // dB in full scale
    NSLog(@"%f dB for %f", value_dB, f); // or do whatever you want to do...
}];
[audioManager play];
const float min=20.0f*log10f(功率(2,15));//“最沉默”的样本
Novocaine*audioManager=[Novocaine audioManager];
[audioManager设置输入块:^(浮点*新音频、UInt32数字示例、UInt32数字通道)
{
浮动f=0.0f;

对于(int i=0;idB是功率的对数比,而不是需要考虑的振幅。RMS只是振幅。可能的重复会得到dBFS,而不是需要的dB SPL。没有外部校准无法计算dB SPL。你是对的,但这个解决方案可以在没有校准的情况下完成。