使用过滤功能生成缺失数据

jhf*_*ntz 1 matlab octave

我有通过filter()函数提供的数据向量 - 所述过滤器被构造为发出原始信号的合理近似值,然后用于识别原始数据中的"坏"元素(所述元素通常由不常见的短时传感器故障,与良好的数据完全不同).在确定了这些不良元素后,我想回去用合理的东西替换它们.

一种方法是用过滤后的输出替换坏值; 但是,输出是使用坏值生成的,因此它会产生一些不希望的失真.

理想情况下,我想告诉filter()假设坏元素[s]缺失,并且应该生成缺失值[s]的合理插值(例如,基于周围的值和在构造输出时使用的过滤器的属性.

我被告知某些工具箱允许插入特殊值(例如,NaN)以指示丢失(但假设是良好的)数据.

我查看了Octave的filter()的源代码,没有任何明显的消息传递给我 - 是否有一个特殊值(或其他机制)告诉filter()假设缺少行为良好的数据(并且应该插入需要的话)?

nib*_*bot 6

插入NaN不适用于此.该filter功能非常简单 - 它只是实现了一个IIR过滤器.

如果您的信号是平滑且缓慢变化的,那么您可以interp1根据两侧的良好数据简单地使用为不良延伸插值新值.

如果您的信号具有更复杂的频谱内容,我认为"Wiener插值"是google的阶段.对于外推,您可以使用线性预测编码.