在 Python 中的振动信号中插入预测缺失的 NaN 序列

问题描述

我正在处理从加速度计接收到的丢失信号恢复。在数据采集过程中,由于数据传输的性质,它的某些部分有时会丢失,通常是信号序列,而不是孤立值。下图显示了数据序列丢失的示例。

Signal with a sequence og lost data (47 positions). X represents que index number and Y,the vibratinal aceleration in mg. This signal is a white noise,the machine was turned off.

为了拟合信号,我执行了多项式插值,阶数 = 5,但是,在 NaN 序列的位置,我得到了以下结果:

The signal out of the NaN sequence is interpolated ok,but the method does not actually "see" the sequence,seems to interpolate between 2 values only (the first and the last).

要插入的代码片段:

plt.plot(dados["Z"][8800:9000],color = 'blue',lw = 3)
interpol = dados.copy()
interpol['Z'].interpolate(method = 'polynomial',order = 5,inplace = True)
plt.plot(interpol['Z'][8800:9000],color = 'red')

我想用插值数据拟合整个信号,旨在用它们替换 NaN 序列,恢复信号并执行 FFT,但是,通过这种方式,它不起作用。

有谁知道我如何用内插数据替换 NaN 值序列以恢复信号模式?

提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...