Python:检测信号的主波长

时间:2016-12-12 16:02:12

标签: python scipy signal-processing

我有这个信号,为此我要计算主波长,这是发生振荡的明显最小值之间的距离:enter image description here 我应该在scipy中使用哪种工具来完成这项任务?

1 个答案:

答案 0 :(得分:1)

这取决于您从何处获取数据。

如果你只有图的(x,y)点,你可以通过取对应于最小x的所有y来破解它(注意浮点等式,虽然),或使用傅里叶变换,识别主波(最大振幅)并推断其波长。对于后者,您将使用scipy的快速傅立叶变换:https://docs.scipy.org/doc/scipy-0.18.1/reference/tutorial/fftpack.html#fast-fourier-transforms

如果你有函数的功能描述,可以像你一样对它进行采样以构建图形并应用上面的函数,或者使用它的导数来数学地找到最小值(最佳方法)。您也可以使用scipy以数字方式查找最小值(https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.optimize.minimize.html),但您必须手动指定仅包含一个局部最小值的间隔。