对音频信号在时域上进行FFT变换后的幅值与DB值有什么对应关系?
以前是学计算机的,刚刚接触音频这一块,有个问题不明白……向各位求教。对声音信号在时域进行FFT变换后,比如在横坐标X处对应的值为Y,那么abs(Y),即对Y取模的这个值是实部与虚部的平方和开根号么?
另外,abs(Y)这个值和声音的DB值有什么关系?
能认为是10lg(abs(Y)/Y0)么?Y0取多少呢? 对整套系统进行校正,使Y代表为声压,单位为微巴,Y0为20微巴,同时声压级的公式是
20lg(abs(Y)/Y0)
回复 沙发 songzy41 的帖子
那么怎样进行校正呢?时域信号经过FFT变换后,abs(Y)这个值就是声压的值吗?或者和声压值有什么对应关系? “abs(Y)这个值就是声压的值吗”,当然不是声压值。
要校准的话,先要校准传声器,测量得到传声器的灵敏度(单位是V/Pa),其次要对采集系统进行校准,当有一标准电压输入时,对应于多少值。这样就可知道,当采集到多少数值时,相应的声压是多少巴,或多少微巴。
回复 地板 songzy41 的帖子
你说的校准我不是很懂。。。我是纯粹想通过MATLAB分析wav文件得出一个图,横轴是频率,纵轴是DB值。
我其实是在MATLAB里读入wav文件的时域信号值,然后对N个点(即X序列)做FFT得到一个序列Y。然后取abs(Y)的,之后的程序里我都是把20*lg(abs(Y)/Y0)当作声压级DB值了。但是数值和AUDITION里分析的DB值不一样,才问一下的。
不知道AUDITION里是怎么分析WAV文件某个声道在某一频率的DB值的。我希望能在MATLAB里编程得到同样的DB值。
多谢你耐心的回复了~呵呵 虽然不是很懂 当然楼主也可以用20*lg(abs(Y)/Y0)表示成dB值,这时用Y0=1,这样得到的是相对值。 抱歉翻老贴出来,我想请教一下,如果20*lg(abs(Y)/Y0)表示成dB值,这时用Y0=1,这样得到的是相对值。
怎么样去将其换算为绝对值? 或者它有没有一个可以计算出来的范围?以方便进行颜色渲染。 {:{13}:} 学习了 {:{13}:}现在也遇到要转换,不懂,求指导!
页:
[1]