scipy 时间信号的A加权

csbfibhn  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(160)

我花了几个星期的时间来解决这个问题,但似乎我无法理解。任务很简单:我从一个麦克风接收到一个电压信号,最后我想知道它的分贝(A)有多大。有这么多的问题,我甚至不知道从哪里开始。让我们从我的想法开始。

  1. Im将电压信号转换为帕斯卡[Pa]信号。
    1.对信号使用FFT,这样我就知道我在处理哪些频率。
    1.然后我应该在上面实现A权重,但是因为我在[Pa]中处理我的值,所以我不能只是乘以或加上我的A权重。
    1.用快速傅立叶变换回到时间信号。
    1.从Pa到dB。
    1.计算RMS和IM完成。(希望)
    主要的问题是A加权。我真的不知道如何在现场信号上实现它?由于FFT导致复杂的值,我也有点困惑。
    也许你得到的想法/问题/工作流程,并帮助我至少得到一点点接近目标。
    一个小小的免责声明,我是100%新的世界声学,所以请确保解释它就像你会解释它一个小孩子:D和Im编程与python。
    提前感谢您抽出时间!
rnmwe5a2

rnmwe5a21#

您好,Christian Fichtelberg,欢迎来到StackOveflow。我相信您的问题可以在DSP StackExchange中得到更容易的回答,但我会尽量提供一些快速和肮脏的答案。
为了避免将信号带入频域,请在频域中进行乘法运算(我强烈建议您注意,信号“驻留”的时域中的卷积与频域中的乘法运算等效。如果您不熟悉这一点,请快速浏览Wikipedia's convolution page),您可以在时域中实现A加权滤波器,并在此执行某种卷积运算。
我不会详细介绍每种方法的优缺点(时域卷积与频域乘法)。您可以搜索DSP SE或查阅一些DSP教科书(如Oppenheim's Digital Signal Processingan equivalent book by Proakis and Manolakis)。
根据*IEC 61672-1:2013***,数字滤波器应从模拟滤波器“转换”而来(一种很好的方法是使用双线性变换)。建议的滤波器是一种非常“简单”的IIR(无限脉冲响应)滤波器。
我将跳过这里的实现,因为它已经由其他人提供。请找到一个MATLAB implementation,一个Python实现(最有可能是你正在寻找的应用程序),一个相当“高级”的answer on DSP SE与一些链接和information on designing filters for arbitrary sample rates on DSP SE
最后,我想说的是,如果你设法创造了一个(“足够平滑”)多项式近似A加权滤波器的曲线,您可以执行频率响应和多项式的频域乘法,以仅改变频谱的幅度,然后执行iFFT返回到时域。这应该最有可能提供A加权信号的近似。请注意,这
不是**正确的过滤方式,因此请谨慎对待(如果您决定尝试),并且仅作为执行某些检查的快速解决方案。

相关问题