我可以使用自回归模型进行信号去噪吗?

2024-06-16 11:15:47 发布

您现在位置:Python中文网/ 问答频道 /正文

如下所示,我的任务是使用AR建模来去除噪声信号中的伪影。假设我在原始数据中有心电图或肌电图。在IEEE上,我发现这可以通过小波变换、巴特沃斯滤波器或经验模式分解实现

https://www.kaggle.com/residentmario/denoising-algorithms#Machine-learning-models

原始肌电图:

enter image description here

支持我用自动回归模型做什么?据我目前的理解,它是用来预测数据的


Tags: httpscom原始数据信号www模式经验建模
1条回答
网友
1楼 · 发布于 2024-06-16 11:15:47

As I understand it right now it is used to forecast the data.

是的,这是AR(p)模型的常见情况;但为了进行预测,应该对其参数进行估计,并根据您提供给它的观察结果进行预测。因此,您可以获得所谓的“拟合值”,并将其用作手头信号的“去噪”版本。这是因为AR(p)是这样的:

y_t = \phi_1 * y_{t-1} + \phi_2 * y_{t-2} + ... + \phi_p * y_{t-p} + e_t

其中\phi_j是要估计的AR参数,并且e_t被假定为具有一定方差的白噪声。您可以将此e_t视为基础信号顶部的噪声,因此拟合值在某种程度上是去噪的

在软件实施之前,我们应该注意AR(p)是对广义平稳序列进行建模的,因此如果存在非平稳行为(例如趋势/季节性),则应首先明确删除(例如差分),或者隐式删除(例如ARI(p, d)建模)

这是一个故意发出噪音的信号:

noisy_AR

下面是AR(2)模型的拟合值:

noisy_plus_denoised

这是我从“AR模型去噪”中理解的;假设模型中的e_t分量表示噪声,因此拟合值给出“去噪”版本

至于编码部分:有许多方法可以将AR(p)模型与Python库相匹配,但最方便的方法可能是通过^{}

from statsmodels.tsa.ar_model import AutoReg

model = AutoReg(your_data, lags=p)
result = model.fit()
fitted_values = result.fittedvalues

决定AR(p)的顺序是另一个问题,但是一个快速的方法是查看数据的PACF图,看看它在哪个延迟之后消失,例如

pacf_ex

这将表示AR(2)模型

相关问题 更多 >