拙网论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 214|回复: 0

Calculating Sound Pressure Level from FFT

[复制链接]

949

主题

1001

帖子

3736

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3736
发表于 2018-7-24 16:42:33 | 显示全部楼层 |阅读模式
https://control.com/thread/1350653884
In a test cell for diesel engines I am sampling audio from a high-quality industrial microphone and performing an FFT, from which I hope to extract an "A-weighted" sound pressure level in dB comparable to a commercial dosimeter to measure how loud the engine is. I am unsure about the algorithm. This is what I have done so far:
1. FFT of the microphone data is in frequency bins of complex numbers up to the Nyquist frequency.
2. I multiply each complex number by the A-weighting scaling factor. This is supposed to represent the characteristics of the human ear:
(12200^2 * f^4) / ((f^2+20.6^2) * (f^2+12200^2) * (f^2+107.7^2)^0.5 * (f^2+737.9^2)^0.5))where f is the bin frequency in Hz.
3. I add up the magnitude squared of the resulting complex numbers (real^2 + imag^2).
4. I divide the sum in (3) by the number of bins up to the Nyquist frequency (so that I get the average of the magnitude squared of all the complex numbers in (2).
5. I take the logarithm base 10 of the average from (4) and multiply by 20 and call this a dB level.
6. I add a fixed dB offset determined by my gold standard calibration against a good dosimeter so the result agrees with the dosimeter.
My question is do I have the algorithm right? I am not sure about using the magnitude squared instead of taking the square root. Am I applying the A-weighting formula in the right place? Once I establish the offset will my algorithm continue to agree with the dosimeter as the amplitude and frequency distribution changes? I am assuming that both units have comparable microphone and signal conditioning response.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|抱朴守拙BBS

GMT+8, 2025-5-26 07:19 , Processed in 0.191469 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表