leiswpu 发表于 2007-5-31 01:01

请帮我验证正确性--计算A声级的问题

用计算机声卡采集噪声,用16位表示每个采集样本,采集频率为11025Hz,这样可得到时幅数据,再做FFT变换,得到频幅数据,在20Hz-20000Hz范围内各个频率对应的幅度除以声压的阀值,这样能得到dB吗?如果不能,是不是应该在用幅度除以声压阀值后需要取常用对数,然后乘以20才能得到dB呢?(即:20*log10(P/P。))
还有,因为要计算A声级,求得声压级后要加上各个频率对应的A计权值才能得到A声级,怎么由频幅数据确定各个频率呢?因为只有知道了频率才能确定对应的A计权值,才能求A声级。希望哪位大侠验证我上面所述正确与否,并希望能答复我的问题,多谢了!

yangzj 发表于 2007-5-31 16:44

我想这里大多是做振动信号处理的,像这种其他领域非纯粹的信号处理的问题很可能还是得由自己解决。

songzy41 发表于 2007-5-31 17:54

光从声卡输入的电压计算起,是不可能求出声压级的,要从传声器算起。首先对各部分进行标定。参看一下:
http://forum.vibunion.com/forum/vi ... 39&page=1#pid234605

friendnx 发表于 2007-5-31 19:08

20*log10(P/P。)是对的,但按各频率加权来求声压,各频率按倍频程或1/3倍频程求各段声压,各段声压又采用平方和开方来求。可以找参考书查找一下。

leiswpu 发表于 2007-5-31 19:38

回复 #4 songzy41 的帖子

哦,谢谢,知道一点,据我了解,声卡采集的数据是无量纲的,但除以100就是毫伏的单位,所以我在这里除以100进行了标定,其他地方没有进行标定,不知道这样正确否?

leiswpu 发表于 2007-5-31 19:44

回复 #5 friendnx 的帖子

按频率加权先要知道包含哪些频率,怎么求出频率呢?

songzy41 发表于 2007-5-31 20:13

原帖由 leiswpu 于 2007-5-31 19:38 发表 http://www.chinavib.com/forum/images/common/back.gif
哦,谢谢,知道一点,据我了解,声卡采集的数据是无量纲的,但除以100就是毫伏的单位,所以我在这里除以100进行了标定,其他地方没有进行标定,不知道这样正确否?
1,声卡的输入无非有二个插口,一个是直接接传声器,里面将有自动坛益,另一个是线路输入 (online),不论哪一个输入都是电压输入。
2,就算楼主所说,“声卡采集的数据是无量纲的,但除以100就是毫伏的单位”,那声卡采集的数据还是有量纲的,是电压的量纲。
3,“声卡采集的数据是无量纲的,但除以100就是毫伏的单位”,只是毫伏,无法转换到声压的单位(帕)。要计算声级必须要转成2个声压之比:20*log10(P/P。)

leiswpu 发表于 2007-5-31 22:18

回复 #7 songzy41 的帖子

我要计算声级,怎么能得到声压呢?

songzy41 发表于 2007-6-1 08:01

原帖由 leiswpu 于 2007-5-31 22:18 发表 http://www.chinavib.com/forum/images/common/back.gif
我要计算声级,怎么能得到声压呢?
正如我在#3层所述,要从传声器开始进行标定。请参阅以下帖子
http://www.chinavib.com/forum/viewthread.php?tid=44412&page=1#pid232465
该帖子是求速度,而楼主是求声压,但方法是一样的。

同时请问楼主:
1,噪声的频率范围是多少?楼主的采集频率为11025Hz,是得不到“20Hz-20000Hz范围内各个频率对应的幅度”。
2,准备怎么进行A计权计算的?

leiswpu 发表于 2007-6-1 09:16

回复 #9 songzy41 的帖子

非常感谢你的回答,我是用麦克风输入噪声的,不知道该如何标定
1、我不确定噪声的频率范围是多少
“楼主的采集频率为11025Hz,是得不到“20Hz-20000Hz范围内各个频率对应的幅度”
那应该怎么办呢?
2、在NI公司的CVI开发环境中有个函数,输入时幅数据,可以输出其幅度、相位,但我不知道求出幅度后,怎么确定各幅度对应的频率
是不是这样的,求A声级,先求出声压级,再按照频率加上相应的A计权值就是A声级呢?


目前我求的声压级多半不对,是用求得的幅度除以声压阀值,再取常用对数,并乘以20,我知道应该用声压除以阀值,但由于时间太紧,也没其他办法

songzy41 发表于 2007-6-1 14:03

原帖由 leiswpu 于 2007-6-1 09:16 发表 http://www.chinavib.com/forum/images/common/back.gif
非常感谢你的回答,我是用麦克风输入噪声的,不知道该如何标定
1、我不确定噪声的频率范围是多少
“楼主的采集频率为11025Hz,是得不到“20Hz-20000Hz范围内各个频率对应的幅度”
那应该怎么办呢?
2、在NI ...
为求绝对声压值,并进一步计算出声压级,对于麦克风(传声器)当然必须标定,测量它的灵敏度。B&K公司有专门的设备对传声器进行标定的(其它声学仪器公司可能也有)。如果不能标定只能求相对值。
1,为满足采样定律,采样频率必须大于信号中最高频率2倍;
2,对于A计权,MATHWORK的用户交流区中有A计权网络滤波器,信号通过该滤波器后便被A计权了,滤波器的设计程序在附件中。

leiswpu 发表于 2007-6-1 15:38

回复 #11 songzy41 的帖子

我做的开发是毕业设计题目,所以能求出相对值就可以了,不需要太精确
我设置的采样频率11025Hz应该算比较高了吧,满足采样定律的,在CVI里我还不知道怎么利用m文件,但我已下载了,以后慢慢研究。
现在我计算出了声压级,是用求得的幅度除以声压阀值,再取常用对数,并乘以20,数值上感觉是对的,在50dB--130dB范围内,如果进行A计权,可能就和常用的A声级差不多了,这样对不对呢?
还有个问题,就是A声级,是用求得的声压级加上A计权值,还是用各个频率加上A计权值呢?

leiswpu 发表于 2007-6-5 02:19

回复 #9 songzy41 的帖子

你好,请问一个问题,就是看我计算声压级的方法是不是有问题,多谢了
声卡采集噪声数据后,做FFT变换,所用的FFT函数有三个参数,一个输入数据实部A,一个输入数据虚部B,还有一个是FFT变换长度N,B我全部代入零,A就是代入噪声数据,变换后计算幅值,幅值M=sqrt(A*A+B*B),然后声压级=20*log10(M/0.0002)
请你帮忙回答一下,再次感谢,因为我觉得有错误,但不知道错在哪里

songzy41 发表于 2007-6-5 08:44

楼主要求A声级,在这http://forum.vibunion.com/forum/thread-40001-3-1.html帖子上异步有人提出先用倍频程或1/3倍频程求出声级,同时在该帖子上我也给了你参考资料:“在王济和胡晓编 “MATLAB在振动信号处理中的应用” (中国水利水电出版社)一书中有一节用介绍1/3倍频程分析,它是在FFT之后用1/3倍频程滤波器对信号进行分析处理,求出1/3倍频程滤波器输出的均方根值,并提供了MATLAB程序,对楼主的课题很有参考价值。只不过是MATLAB程序,楼主可能要改为LabView。”不知楼主查阅了没有?

leiswpu 发表于 2007-6-5 09:35

回复 #14 songzy41 的帖子

好的,主要目前我没有这本书,先多谢了,我想办法去找这本书
现在改变开发环境可能不合适,但程序应该是相通的,能有所参考就可以了
页: [1] 2
查看完整版本: 请帮我验证正确性--计算A声级的问题