我正在计算压力时间信号的声压级.每秒钟的样本数为9831。(dt= 0.0001017秒)对于一个简单的例子,总共收集了749个样本。
在这个例子中,我使用了512个FFT点,所以频率从19.2 Hz开始到4877 Hz,dF = 19.2 Hz。
我要计算1/3倍频程频率的声压级。
所以我取10波段倍频程1Hz,1.25Hz,1.6Hz,2Hz,2.5Hz,3.15Hz,4Hz,5Hz,6.3Hz,8Hz,是10的倍数。接下来是10 it,12.5Hz,16Hz.....till 5000 it)
注意,这是1/3倍频程波段的中心频率。
每个波段都有较低和较高的频率("fl“和"fu"),如下所示。"freq“是根据抽样率计算的,因此它增加了19.2。"i“表示fft点数,注1表示0 0Hz。"j“表示fft频带数,随着频率的增加,频带内的点数增加。
i=2 j=13 fl= 17.82 freq= 19.2 fu= 22.27
i=3 j=16 fl= 35.64 freq= 38.4 fu= 44.54
i=4 j=18 fl= 56.13 freq= 57.61 fu= 71.27
i=5 j=19 fl= 71.27 freq= 76.81 fu= 89.09
i=6 j=20 fl= 89.09 freq= 96.01 fu= 111.4
i=7 j=21 fl= 111.4 freq= 115.2 fu= 142.5
i=8 j=21 fl= 111.4 freq= 134.4 fu= 142.5
i=9 j=22 fl= 142.5 freq= 153.6 fu= 178.2
i=10 j=22 fl= 142.5 freq= 172.8 fu= 178.2
i=11 j=23 fl= 178.2 freq= 192 fu= 222.7
i=12 j=23 fl= 178.2 freq= 211.2 fu= 222.7
i=13 j=24 fl= 222.7 freq= 230.4 fu= 280.6
i=14 j=24 fl= 222.7 freq= 249.6 fu= 280.6
i=15 j=24 fl= 222.7 freq= 268.8 fu= 280.6
i=16 j=25 fl= 280.6 freq= 288 fu= 356.4
i=17 j=25 fl= 280.6 freq= 307.2 fu= 356.4
i=18 j=25 fl= 280.6 freq= 326.4 fu= 356.4
i=19 j=25 fl= 280.6 freq= 345.6 fu= 356.4
i=20 j=26 fl= 356.4 freq= 364.8 fu= 445.4 因此,这导致我在低倍频程波段内的均方根计算结果不佳,因为它在波段内没有足够的点(通常是1或2),随着频率的增加,平均值更好(例如,在带"j"= 254分用于rms计算)。
我是否可以通过将频率范围分成两部分(低频段和高频段)来改进均方根的计算,并应用不同的fft采样大小来包括较低频段(通常从100 as到600 as )内的点。
我还计划使用Hann窗口函数来减少泄漏,应该在FFT之前或FFT之后应用。
欢迎你的建议。
发布于 2015-08-14 15:36:15
在FFT之前,在时域中应用Hann窗口。
至于频率分辨率-没有银弹-如果只有749个样本,以9.8 kHz采样率,那么这将限制可用的分辨率。如果使用较长的混合基FFT,例如N= 735分解,可以获得更高的分辨率,并将与FFTW一起工作。您也可以使用零填充来有效地内插输出频谱,例如,将749个样本加到4096个样本之前,使用零采样,而不是4096点FFT。这实际上不会产生更多的信息,但插值可能是有用的。
发布于 2015-08-18 17:38:46
您可以在FFT前进行零点处理,以插入更多的频率结果箱.然后,这些内插频率箱可以用于更精细地将频谱划分成更均匀大小的频带。
https://stackoverflow.com/questions/32012904
复制相似问题