FFmpeg、幅值、响度、分贝的计算

落日流沙 2017-08-28 08:32:23

分贝:通常表示两个声音信号或电力信号在功率或强度方面的相对差别的单位,相当于两个水平的比率的常用对数的十倍。

响度:指在单位时间内通过指定大小的面积内的能量的总和

响度 = 能量 / (时间*面积)

响度 = 功率 / 面积

故:分贝 = 10 * log 响度

但是 幅值和响度之间的计算关系是怎样的呢?

然而,通常情况下,当人们说到分贝的时候,却指的是压强。dBSPL(Sound Pressure Levels)

响度 = 声压 * 声压 / 常数,室内常数一般取400

假设可听最低声响 0.000000000001瓦/(米*米) 0.00002帕



分贝 = 10 log (响度/0.000000000001瓦/(米*米))

分贝 = 20 log (声压 * 声压 / 400)

声压单位 牛/(米*米),即帕,乘单位距离为功,除单位时间为功率

故以声压记,系数为20

假设已通过 FFmpeg 拿到时间段内的16位音频数据,怎么算声压和响度???

...全文
3438 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
落日流沙 2017-08-28
  • 打赏
  • 举报
回复
FFT变换有实部数据和虚部数据,其能量值是(实部*实部+虚部*虚部)的开方,而声音的大小是分贝,20*lg(能量值),所以频谱图各音量是10*lg(实部*实部+虚部*虚部)
落日流沙 2017-08-28
  • 打赏
  • 举报
回复
另外基准怎么选取,有没有标准可查?

2,275

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计/Flash/Silverlight 开发 Flash流媒体开发
社区管理员
  • Flash流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧