插值规则间隔数据的不规则缺失数据点

信息处理 插值
2022-02-19 20:23:20

如果我有一组规则间隔的样本数据(间距δx)并且我的一些数据丢失(零)但不是定期丢失,即

[a0,(missing),(missing),(missing),a4,a5,(missing),a7,a8,a9,a10,...]

可以使用数字信号处理技术来插入丢失的数据吗?

当丢失的数据是每个第 n 个元素时,我只读过 FIR 或 IIR 插值。

存在的数据多于缺失的数据。

插值可以离线完成。

第一个或最后一个数据点可能会丢失。

3个回答

我发现了一种类似于零填充 FFT 插值的方法,但其中丢失的样本可能是非均匀间隔的。我认为它完全可以解决您遇到的问题。该方法在此处描述:

J. Selva,“规则网格中非均匀样本的 FFT 插值”,IEEE Trans。关于信号处理,卷。63,名词。2015 年 6 月 11 日。

代码可在此处获得。

如果您只想有一个工作示例,可以考虑 scipy.interpolate 的功能:

N = 128
n = np.arange(N)
x = np.sin(2*np.pi*n/32)
plt.plot(n, x)

pos = np.random.randint(N, size=(50,))

x_received = np.delete(x, pos)
n_received = np.delete(n, pos)
plt.stem(n_received, x_received)

import scipy.interpolate

interpolated = scipy.interpolate.interp1d(n_received, x_received, bounds_error=False, kind='cubic')
plt.plot(n, interpolated(n), 's')

在此处输入图像描述

此代码为 n=0,...,127 生成信号 x。然后,它从中删除一些值,并通过样条三次插值法对缺失值进行插值。看到蓝色垂直线表示接收到的样本,绿色方块表示插值。近似值非常好。

使用修复方法。检查这个问题修复方法也适用于一维信号。