我用scipy.signal.fft.rfft()来计算信号的功率谱密度。采样频率为1000 The,信号包含2000点。所以频率箱是(1000/2)/(2000/2)=0.5Hz。但是我需要分析0-0.1Hz中的信号.
我看到了一些建议chirp变换的答案,但我没有找到用Python编写的任何工具箱。
那么,我如何用Python完成这个小桶分析呢?或者我可以像Butterworth滤波器那样将信号滤波到0-0.1Hz。
非常感谢!
发布于 2018-12-18 09:57:46
即使使用另一个转换,也不会产生更多的数据。
如果你有一个1千赫的采样和2s的样本,那么你的精度是0.5Hz。您可以使用chirpz (或者只使用sinc(),这是数据在梳子样本之间的形状)进行插值,但是当前点上的数据是决定您在叶(0 0Hz到0.5Hz之间)中有什么的数据。
如果你想要0.1Hz的实际精度,你需要10s的数据。
发布于 2018-12-19 22:31:45
除非你使用更多(更长的)数据,否则你无法获得较小的频率箱来分离近光谱峰。
您不能只使用更窄的过滤器,因为这样的过滤器的瞬态响应将比您的数据长。
你可以得到更小的频率箱,这只是附近频率桶之间的平滑插值,例如,通过零填充数据和使用更长的FFT,在更宽的纸上或更高的dpi图形分辨率上绘制频谱。但这不会产生更多细节。
https://stackoverflow.com/questions/53830329
复制相似问题