2010-03-30 7 views
5

iPhone 용 간단한 볼륨 미터를 만들려고합니다. 볼륨을 dB로 표시하고 싶습니다. this turorial을 사용할 때 측정 값은 최대 78dB입니다. 필자는 16 비트 오디오 레코딩의 dBFS 스펙트럼이 96dB에 불과하다는 것을 읽었습니다. 기록의 비트 값을 증가시키기를 바라고, I는 mBitsPerChannel의 값을 변경최소 120dB의 한계로 dB 단위로 iPhone 녹음의 볼륨을 측정하는 방법

dataFormat.mSampleRate = 44100.0f; 
dataFormat.mFormatID = kAudioFormatLinearPCM; 
dataFormat.mFramesPerPacket = 1; 
dataFormat.mChannelsPerFrame = 1; 
dataFormat.mBytesPerFrame = 2; 
dataFormat.mBytesPerPacket = 2; 
dataFormat.mBitsPerChannel = 16; 
dataFormat.mReserved = 0; 

:

난 init 함수 코드의 일부를 수정하려고. 32으로 설정하는 변수

dataFormat.mBitsPerChannel = 32; 

에서, "mAveragePower"기능 따라서 만 0

를 반환 어떻게 데시벨 이상 측정 할 수 있는가? 내 모든 코드는 위에서 설명한 튜토리얼과 거의 동일합니다. 사전에

감사합니다, 상대 측정 토마스

답변

5

16 비트 오디오 만 동적 범위 (96) dB을 가지고,하지만 난 당신이 dB 사이에서 혼란스러워지고 할 수있다 의심, 그리고 dB SPL, 절대의 측정은 음압 레벨입니다. dB SPL을 측정하려면 마이크와 오디오 하드웨어를 일종의 기준으로 보정해야합니다. 일단 입력이 보정되면 동적 범위의 96 dB이 예를 들어 44 dB SPL에서 140 dB SPL의 절대 범위로 변환 될 수 있습니다.

는 SO에 또한 이전의 유사한 질문에 대한 내 대답을 참조하십시오 How can I calculate audio dB level?

참고 : dB SPL의 정의는 20 μPa (RMS)에 음압 레벨 상대적입니다.

+0

네, (빠른) 답변 주셔서 감사합니다. 내 iPhone 마이크로 측정을 보정하는 경우 다른 iPhone의 측정 값도 정확합니까? 데시벨이 2 데시벨이라면 상관 없습니다. 마이크로 포착 된 사운드의 볼륨을 알려주고 싶습니다. – Cyber

+0

동일한 모델 (예 : 3G) 인 iPhone간에 몇 dB 차이가 나올 것으로 예상되지만 다른 모델 간에는 더 많은 차이가있을 수 있습니다. 또한 주파수 응답이 평평하지 않을 수도 있으므로 측정 값이 근사치가 될 것입니다. 한 가지 유의해야 할 점은 일반적으로 dB SPL (예 : A 가중치)을 측정 할 때 가중 필터를 사용하는 것입니다. 아, 그리고 한 가지 더 : 일부 또는 모든 iPhone 모델에는 AGC 회로가있을 수 있습니다. 사용하지 않으면 측정을 혼란스럽게 할 수 있습니다. –