平滑非均匀采样数据
这个例子展示了如何使用多尺度局部多项式变换(MLPT)平滑和去噪非均匀采样数据。MLPT是一种提升方案(Jansen, 2013),它具有离散小波变换的许多特征,并适用于非均匀采样数据。
许多真实世界的时间序列都有观测值,这些观测值并不是按规律间隔记录的。这可能是由于数据采样不均匀或观测缺失或损坏造成的。离散小波变换(DWT)是一种强大的数据去噪或非参数回归工具,但经典的小波变换是针对均匀采样数据定义的。尺度的概念是小波变换的核心,关键在于观测之间有规律的间隔。
提升方案(第二代小波)(Jansen & Oonincx, 2005)提供了一种完全在时间(空间)域中设计小波和实现小波变换的方法。虽然经典的DWT也可以用提升方案来表示,但提升也足够灵活,可以处理不均匀采样数据。
去噪数据
加载并绘制一个有噪声的非均匀采样时间序列。
负载天际线情节(T、y)包含(“秒”网格)在
如果将采样时间的差异画出来,就会发现数据是不均匀采样的。
情节(diff (T))标题(“采样次数的第一差值”)轴紧ylabel (' \δT ')包含(“样本”网格)在
在这个合成数据集中,您可以访问原始的无噪声信号。如果将该数据绘制成图,可以看到该数据具有平滑变化的特征以及0.07秒、0.26秒和0.79秒附近的突变瞬态特征。
情节(T、f)包含(“秒”网格)在标题(“原始(无噪声)数据”)
在实际应用程序中,数据中的突然变化通常表示重要事件。当你去噪这样的数据时,重要的是不要平滑瞬态。小波通常擅长于去噪这样的数据,因为小波拉伸以匹配更长的持续时间平滑变化的特征,收缩以匹配瞬态。MLPT具有类似的特征,但它自然地处理不均匀采样的数据。使用MLPT去噪数据。
xden = mlptdenoise(y,T,3);hline = plot(T,[f xden]);网格在线(1)。LineWidth = 2;标题(“MLPT去噪”)
MLPT在去噪数据方面做得很好。平滑变化的特征被很好地表示,瞬态被保留。在这个合成数据集中,您可以实际测量去噪版本的信噪比(SNR)。
信噪比= 20*log10(范数(f,2)/范数(xden-f,2));标题([“信噪比”num2str(信噪比,' % 2.2 f ')“数据库”])
信噪比接近20 dB。当然,您可以忽略数据是不均匀采样的事实,并将样本视为均匀采样。使用DWT去噪之前的数据集。
Xd = wdenoise(y,3,“小波”,“bior2.2”,“DenoisingMethod”,“确定”,“NoiseEstimate”,“LevelDependent”);信噪比= 20*log10(范数(f,2)/范数(xd-f,2));hline = plot(T,[f xd]);标题([“信噪比”num2str(信噪比,' % 2.2 f ')“数据库”])网格在线(1)。LineWidth = 2;
在这里,DWT在去噪数据方面做得很好,但它被MLPT所超越,MLPT明确地考虑了不均匀采样瞬间。
比较小波和MLPT去噪结果与Savitzky-Golay方法,该方法实现了数据的局部多项式近似。实现的Savitzky-Golay的变体smoothdata
处理均匀和不均匀采样的数据。
XDSG = smoothdata(y,“sgolay”,“度”4“samplepoints”T);信噪比= 20*log10(范数(f,2)/范数(xdsg-f,2));hline = plot(T,[f xdsg]);标题([“信噪比”num2str(信噪比,' % 2.2 f ')“数据库”])网格在线(1)。LineWidth = 2;
经典DWT和MLPT在此数据上都优于Savitzky-Golay。
考虑另一个不均匀采样的合成数据集。
负载nonuniformheavisine情节(t, x)网格在
该数据通常比前面的示例更平滑,但在0.3秒和0.7秒时有两个瞬变。这样的数据对Savitzky-Golay等方法提出了挑战,因为需要低阶多项式来拟合平滑振荡的数据,而需要高阶多项式来近似跳跃。
使用MLPT对数据进行去噪,并测量信噪比。返回原始MLPT系数和去噪系数。
[xden,t,wthr,w] = mlptdenoise(x,t,3,“denoisingmethod”,“确定”);Plot (t,[f xden])网格在信噪比= 20*log10(范数(f,2)/范数(xden-f,2));标题({“MLPT去噪”;[“信噪比”num2str(信噪比,' % 2.2 f ')“数据库”]})
绘制原始和去噪系数。
图(2,1,1)子图“ShowBaseLine”,“关闭”,“标记”,“没有”)标题(“原始MLPT系数”) subplot(2,1,2) stem(wthr,“ShowBaseLine”,“关闭”,“标记”,“没有”)标题(“去噪MLPT系数”)
将MLPT结果与Savitzky-Golay方法进行比较。
XDSG = smoothdata(x,“sgolay”,“度”4“samplepoints”t);图plot(t,[f xdsg])网格在信噪比= 20*log10(范数(f,2)/范数(xdsg-f,2));标题({“Savitzky-Golay去噪”;[“信噪比”num2str(信噪比,' % 2.2 f ')“数据库”]})
在这里,MLPT方法显著优于Savitzky-Golay方法。这在Savitzky-Golay方法无法捕捉0.3秒和0.7秒附近的瞬态时尤为明显。
非参数回归
在许多应用中,目标是在一个或多个预测变量变化时估计一些未知的响应函数。当响应函数的确切形状是未知的,这是一个例子非参数回归.
在这些情况下的主要目标通常是获得一个平滑的估计,假设未知响应函数随着预测器的变化而平滑地变化。
作为使用非均匀采样数据的非参数回归的一个例子,考虑以下数据,这些数据是在碰撞条件下对一个碰撞试验假人的摩托车头盔进行的g力测量。
负载motorcycledata情节(次,gmeasurements)网格在包含(“时间”) ylabel (“重力”)
如果绘制时间数据的差值图,就会看到数据的采样不均匀。
情节(diff(次))标题(“时间数据的第一次差异”网格)在
这些数据很复杂,但数据中似乎有一个明显的总体趋势。具体来说,最初的重力是负的,然后随着时间的推移开始变成正的。正反弹持续超过0,然后恢复到基线。你可以使用mlptrecon
对该数据进行非参数回归。
[w,t,nj,缩放力矩]= mlpt(gmeasurements,times,“dualmoments”4...“primalmoments”4预滤器的,“没有”);A4 = mlptrecon(“一个”w t nj scalingmoments 4,“dualmoments”4);Hline = plot(times,[gmeasurements a4]);网格在线(2)。LineWidth = 2;传奇(“原始数据”,“顺利适应”)包含(“时间”) ylabel (“重力”)标题(重力测量的)
第4级的MLPT近似为数据提供了一个很好的平滑拟合,允许您在没有噪声影响的情况下捕捉响应的本质。
总结
本例演示了多尺度局部多项式变换(MLPT),这是一种适用于非均匀采样数据的提升格式。MLPT在缺失或不均匀采样数据的情况下用于去噪或非参数回归。最起码,它是一个有用的基准,用于与设计用于均匀采样数据的小波去噪技术比较。在其他情况下,它优于传统的小波去噪通过明确考虑非均匀采样网格。
参考文献
詹森,M。非等距数据的提升金字塔的多尺度局部多项式平滑。IEEE信号处理汇刊。Vol. 61, no . 3, 2013, pp. 545-555。
詹森,M,和帕特里克·欧宁克斯。第二代小波及其应用伦敦:施普林格,2005。