外行问题请教--声压级的计算
通过声卡(或其它设备)采集到声音的数字信号,进行FFT变换后,如何计算声压级? 问题解决了没有啊,都这么久了,早看到的话,我早就给你回了回复 #1 resunli 的帖子
同道中人啊!期待高人指点迷津……回复 #1 resunli 的帖子
高人还没有出现啊 这个怎么会没有人回答呢?这就是sunning的不对喽,嘿嘿。所谓声压级的概念就是声压值与参考声压值(空气声学2*10^(-5)Pa;水声学1*10^(-6)Pa)比值的分贝值,即20lg(P/Pref)。这里取20是因为能量量纲的缘故。FFT变换以后,每根谱线的峰值对应信号中该频率分量的“幅度值”(只有当分析频率和实际频率完全重合时才是真正的幅度值)。所以对FFT结果的幅度除以参考值再取分贝即是声压级(减去3分贝即为有效声压级)。
回复 #5 w89986581 的帖子
"所以对FFT结果的幅度除以参考值再取分贝即是声压级"能不能请你说明其中参考值是多少呢?可不可以用参考声压值(0.00002pa)呢? 空气中就是这个 参考声压值(0.00002pa)。
w89986581 的帖子还有个问题,一般FFT得到的是很多频率,如果对每个频率取声压级的话 不科学。
一般好像是对每个频带内取声压级,比如1/3倍频。
回复 #7 pengweicai 的帖子
我也觉得应该对每个频带内取声压级,不过进行FFT变换后的序列,怎么确定频率成分呢?回复 #5 w89986581 的帖子
"FFT变换以后,每根谱线的峰值对应信号中该频率分量的“幅度值”(只有当分析频率和实际频率完全重合时才是真正的幅度值)。"那么从FFT变换后怎么得到频率分量的"的幅度值"呢?再有就是在噪声的测量还有一个A计权的概念,这个A计权怎么体现 呢?
回复 #7 pengweicai 的帖子
那么这个频带的带宽,上下截止频率都是怎么计算得到的呢?回复 #9 rych 的帖子
我在NI公司的CVI里做的,得到采样数据后,用里面的幅度相位谱函数可以直接求得时域数据的幅度,再根据20*log10(P1/P2)求声压级,知道声压级后,加上各个频率对应的A计权值就是A声级,不知道这样对不对在CVI里也有FFT函数,原型是:FFT (double arrayXReal[], double arrayXImg[], int numberOfElements); 求幅度可以用sqrt(arrayXReal*arrayXReal+arrayXImg*arrayXImg),输入参数arrayXReal(实部)我代入的时域数据,arrayXImg(虚部)全部代入0,两种方法求得的幅度差不多
但求得声压级后,我不知道怎么确定频率,还望有高人指点,并能指出我的错误
[ 本帖最后由 leiswpu 于 2007-6-1 13:24 编辑 ] 可以分析某频率上的声压级,也可以分析某频带内的声压级。对于强线谱信号分析某频率上的声压级;对于连续谱信号分析某频带内的声压级。
关于ABC计权,参考http://www.17360.cn/Article/jishuwenzhang/Article_150.htm 对于未指定上下限的情况,不同场合有不同的规定。有的是指0~fs/2的全频带;有的是指20Hz~10KHz。
回复 #13 w89986581 的帖子
能不能麻烦你说说怎么确定FFT变换后的频率,要计算频带内的声压级,应该先要确定频率吧我求得幅度后,画频域图,只在纵坐标上标明了幅度值,但在横坐标上没有标明频率是多少 这个....
假设频率分辨率为fs,做N点FFT,则频率分辨率为fs/N,第一个点对应0Hz,第二个点对应频率为fs/N,第三个对应频率为2fs/N,依次类推。