测量声音分贝.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
测量声音分贝

我们经常用手机来录音、拍摄,这些功能都用到了手机自带的microphone(MIC)。也有人想到了用手机的MIC来检测环境噪声的大小,这个小功能可以使手机更加智能化,比如调整振铃等,其拓展应用非常广。 目前已经有许多软件已经实现了这个功能,比如PocketRTA。PocketRTA有两个版本,分别适用于Windows NT 和 Windows Mobile(WM)。大家可以Google一下,下载适用,放在手机上当做噪声检测仪也是很有趣的。目前还没看见PocketRTA的源码。 经过一段时间的摸索研究,实现了测量环境噪声DB值功能的软件,一些经验在此和大家分享一下。网上这方面的信息很零碎,我综合原理和实际开发,把整个流程完整叙述一下。在此就不贴代码,相信知识比代码更能让人受益。 实现语言: C++ 开发平台: VS 2005 手机OS: ?Windows Mobile 5.0 流程图 大致流程分为4步: step1?: 获取声音数据。声音是以波的形式传播的,在传播路径上遇到障碍物时,会在这些障碍物表面上产生压力,这就是声压。MIC可以检测到声压,声压的大小反应为MIC输出电平的大小。MIC的输出电平进入到声卡后,声卡进行采样和量化,这是传统的模数转换 ADC 过程。声卡采样和量化后的值,就是波形数据。波形数据反映声音强度在时域上的变化。这些波形数据可以采用一定的格式在电脑上储存,如.wav文件,也可以输出到扬声器播放。 有关如何获取声音数据,可以参考本人先前的文章:WAVE文件录放音Windows API。 通常声卡的采样率为11.025kHz,16bit量化。即每秒采样11,025次,每次采样值量化为65536阶,量化值用0~65535表示。波形数据为时域离散信号。 step2:FFT / DFT 。 声音是由若干(或无限多个)频率分量组成的。为了检测和描述声音的特性,人们使用频谱。噪声检测也需要在频域处理数据,要把时域信号转换为频域信号。 step1得到的WAVE时域离散信号经过DFT可以变成频域离散信号。FFT是离散傅里叶变换DFT在工程上的优化算法。有关FFT的代码在网上很多。 step3:划分倍频程,并把信号从绝对量值转换为相对量值 DB 。 a。先说dB(decibel)的含义。dB是一个相对值,声学上来讲,声压的分贝值的基准是20微帕斯卡。假设一个声音的测得的声压是P帕斯卡,那么声音的分贝值计算公式为: SPL:Sound Press Level 声压级。 通常物理上20微帕斯卡通过MIC和声卡量化后为1。所以公式简化为: 此处P也为量化后相对20微帕斯卡的值 b。然后说dB相加,比如有两个声音,分别为70dB和60dB,它们叠加是多少dB? 70.4dB。因为两个声音的叠加是能量的叠加。 c。再说倍频程。我们最终要计算的声音分贝值是由各个频率分量的声音分量组成的。我们用倍频程或1/3倍频程把声音划分为许多频带。倍频程的中心频率为31.5、63、125、250、500、1K、2K、4K、8K、16KHz十个频率,后一个频率均为前一个频率的两倍,因此被称为倍频程,而且后一个频率的频率带宽也是前一个频率的两倍。在有些更为精细的要求下,将频率更细地划分,形成1/3倍频程,也就是把每个倍频程再划分成三个频带。 d。计算每个倍频程的声压级。FFT后的信号在频域上是离散的,相邻点的频率间隔为 SampleRate / FFTPoint ,即采样率除以FFT的点数。计算倍频程的声压级的方法是先计算频带内频点的平均能量, 然后再取对数。计算公式为: Pi为倍频程中某个频点的值 e。下图为1/3倍频程的计算结果。 step4:A率加权后计算dBA。 ? a。A率曲线。由于人耳对不同频率的声音敏感程度不同,表现为相同dB值的声音,2kHz 比 100Hz听起来更响一些。为了使测量得到的值更符合人的主管感觉,在此引入A率加权。下图是A率曲线: a率曲线曲线函数为: 可见,a率加权减弱了声音低频分量对最终测量结果的贡献。 b。加权方法。假设step3后,中心频率为125Hz的1/3倍频程的声压级为40dB, 125Hz的A率加权值为-16.18,加权后的声压级为 40-16.18 23.82dBA。A率加权后单位为dBA。 c。全部频率范围内的dBA叠加。 若采用的是1/3倍频程,经过b步骤后,得到30个频带的dBA值,表示为qi,i 1,2,...,30。 全部频率范围内的dBA叠加公式为: ?这就是最终结果。 或者音调比 的以2为底的对数称为频程,数学表达式为n log2 f2/f1 ,式中f1为基准频率, f2为求倍频程数的信号频率, n为倍频程数.可以是整数或分数.例如n 1,1/3,则分别称为”倍频程”和”三分之一倍频程

文档评论(0)

st4739288 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档