主要内容

多分辨率分析实用导论

这个例子展示了如何执行和解释基本信号多分辨率分析(MRA)。该示例同时使用模拟数据和真实数据来回答以下问题:多分辨率分析意味着什么?对信号进行多分辨率分析可以获得哪些信息?不同的MRA技术有哪些优点和缺点?这里给出的许多分析都可以使用信号多分辨率分析仪应用程序。

什么是多分辨率分析?

信号通常由多个物理上有意义的组件组成。通常,您希望在与原始数据相同的时间尺度上孤立地研究其中一个或多个组件。多分辨率分析指的是将一个信号分解成多个组件,当这些组件被重新组合在一起时,就会产生原始信号。为了对数据分析有用,如何分解信号是很重要的。这些组件理想地将数据的可变性分解为物理上有意义和可解释的部分。这个词多分辨率分析通常与小波或小波包有关,但也有非小波技术产生有用的mra。

作为一个可以从MRA中获得见解的激励例子,考虑下面的合成信号。

Fs = 1e3;t = 0:1/Fs:1-1/Fs;Comp1 = cos(2*pi*200*t).*(t>0.7);Comp2 = cos(2*pi*60*t).*(t>=0.1 & t<0.3);趋势= sin(2*pi*1/2*t);rng默认的wgnNoise = 0.4*randn(size(t));x = comp1+comp2+trend+wgnNoise;情节(t, x)包含(“秒”) ylabel (“振幅”

该信号明确地由三个主要部分组成:频率为60周期/秒的时域振荡、频率为200周期/秒的时域振荡和趋势项。这里的趋势项也是正弦的但它的频率是1/2周期/秒,所以它在1秒的间隔内只完成1/2周期。60周期/秒或60hz振荡发生在0.1 ~ 0.3秒之间,而200hz振荡发生在0.7 ~ 1秒之间。

并非所有这些都能从原始数据的图表中立即看出,因为这些成分是混合的。

现在,从频率的角度画出信号。

XDFT = fft(x);N = numel(x);XDFT = XDFT (1:numel(XDFT)/2+1);freq = 0:Fs/N:Fs/2;情节(频率,20 * log10 (abs (xdft)))包含(“周期/秒”);ylabel (“数据库”网格)

从频率分析中,我们更容易辨别振荡分量的频率,但我们失去了它们的时局域性。在这种观点下,也很难将趋势形象化。

为了获得一些同时的时间和频率信息,我们可以使用时频分析技术,如连续小波变换。

类(x, Fs)

现在您可以看到60hz和200hz组件的时间范围。然而,我们仍然没有任何有用的趋势可视化。

时频视图提供了有用的信息,但在许多情况下,您希望分离出信号的时间分量,并单独检查它们。理想情况下,您希望该信息与原始数据在同一时间范围内可用。

多分辨率分析实现了这一点。事实上,考虑多分辨率分析的一个有用的方法是,它提供了一种避免需要时频分析的方法,同时允许您直接在时域中工作。

按时间分离信号成分

真实世界的信号是不同成分的混合物。通常,您只对这些组件的一个子集感兴趣。多分辨率分析可以通过将信号分离成不同的分量来缩小分析范围决议金宝搏官方网站

提取不同分辨率的信号成分相当于在不同的时间尺度上分解数据的变化,或等效地在不同的频带(不金宝搏官方网站同的振荡率)。因此,您可以在不同的尺度或频带同时可视化信号的可变性。

利用小波MRA对合成信号进行分析和绘制。信号在八个分辨率或级别上进行分析。金宝搏官方网站

Mra = modwtmra(modwt(x,8));helperMRAPlot (x, mra t“小波”小波多分辨的,[2 3 4 9])

不解释图上的符号的含义,让我们利用我们对信号的知识,试着理解这个小波MRA向我们展示了什么。如果你从最上面的图开始,一直向下,直到你到达原始数据的图,你会看到分量变得越来越平滑。如果您更喜欢从频率的角度来考虑数据,则组件中包含的频率正变得越来越低。回想一下,原始信号有三个主要成分,一个200hz的高频振荡,一个60hz的低频振荡和一个趋势项,所有这些都被附加噪声破坏了。

如果你看 D 2 你可以看到时间局域高频分量被隔离在那里。你可以看到和研究这个重要的信号特征基本上是孤立的。接下来的两个图包含较低频率的振荡。这是多分辨率分析的一个重要方面,即重要的信号成分可能不会被孤立在一个MRA成分中,但它们很少位于两个以上。最后,我们看到 年代 8 图中包含趋势项。为了方便起见,这些组件中的轴的颜色已更改为在MRA中突出显示它们。如果您喜欢在不突出显示的情况下可视化此图或后续图,请忽略最后的数字输入helperMRAPlot

小波MRA使用固定的函数称为小波分离信号成分。的k第th小波MRA分量,表示为 D k 在前面的图中,可以看作是将信号滤波成频带的形式 1 2 k + 1 Δ t 1 2 k Δ t 在哪里 Δ t 是采样周期,或采样间隔。最后的平滑分量,在图中表示为 年代 l ,在那里 l 是MRA的水平,捕获的频带 0 1 2 l + 1 Δ t .这种近似的准确性取决于MRA中使用的小波。有关小波和小波包mra的详细描述,请参见[4]。

然而,还有其他的MRA技术需要考虑。

经验模态分解EMD是一种数据自适应的多分辨率技术。EMD递归地从数据中提取不同的分辨率,而不使用固定的函数或过滤器。金宝搏官方网站EMD认为一个信号由一个振荡叠加在a上一个。在快速振荡被提取后,该过程将剩下的较慢的分量作为新信号,再次将其视为快速振荡叠加在较慢的振荡上。这个过程一直持续,直到达到某个停止标准。虽然EMD不使用像小波这样的固定函数来提取信息,但EMD方法在概念上非常类似于将信号分离为的小波方法细节而且近似然后再把近似值分成细节和近似值。EMD中的MRA组件称为内禀模态函数(货币基金组织)。EMD的详细治疗方法见[3]。

绘制同一信号的EMD分析图。

[imf_emd,resid_emd] = emd(x);helperMRAPlot (x, imf_emd t“emd”“经验模态分解”,[1 2 3 6])

虽然MRA分量的数量不同,但EMD和小波MRA产生的信号图像相似。这并非偶然。参见[2],了解小波变换和EMD之间的相似之处。

在EMD分解中,高频振荡定位于第一本禀模态函数(IMF 1)。低频振荡主要定位于IMF 2,但在IMF 3中也可以看到一些影响。IMF 6的趋势分量与小波技术提取的趋势分量非常相似。

自适应多分辨率分析的另一种技术是变分模态分解(VMD)。与EMD一样,VMD试图从信号中提取固有模态函数或振荡模态,而不使用固定函数进行分析。但是EMD和VMD以非常不同的方式确定模态。EMD对时域信号进行递归工作,提取逐步降低的频率imf。VMD首先在频域内识别信号的峰值,并同时提取所有的模态。VMD的治疗方法见[1]。

[imf_vmd,resid_vmd] = vmd(x);helperMRAPlot (x, imf_vmd t“vmd”“变分模态分解”,[2 4 5])

需要注意的关键是,与小波分解和EMD分解类似,VMD将感兴趣的三个成分分离为完全独立的模式或少量相邻的模式。所有这三种技术都允许您在与原始信号相同的时间尺度上可视化信号组件。

对于一个有用的组件分离的真实例子,考虑地震仪(垂直加速度, 纳米 / 年代 2 )是1995年1月16日在澳大利亚霍巴特的塔斯马尼亚大学记录的神户地震,从20时56:51分(格林尼治时间)开始,以1秒为间隔持续51分钟。

负载KobeTimeTableT = KobeTimeTable.t;kobe =科比时间表。kobe;图图(T,科比)“神户地震地震仪”)轴网格

获取并绘制数据的小波MRA。

mraKobe = modwtmra(modwt(kobe,8));图helperMRAPlot(科比,mraKobe T“小波”“小波MRA神户地震”[4 - 5])

图中显示了MRA分量中一次波分量和延迟二次波分量的分离 D 4 而且 D 5 .地震波中的各分量以不同的速度传播,主波(纵波)比次波(横波)传播快。MRA技术可以使您在原始时间尺度上孤立地研究这些组件。

从MRA重构信号

将信号分离成组件的目的通常是去除某些组件或减轻它们对信号的影响。MRA技术的关键是重建原始信号的能力。

首先,让我们演示所有这些多分辨率技术允许您从组件完美地重建信号。

Sigrec_wavelet = sum(mra);Sigrec_emd = sum(imf_emd,2)+resid_emd;Sigrec_vmd = sum(imf_vmd,2)+resid_vmd;图subplot(3,1,1) plot(t,sigrec_wavelet);标题(“小波重建”);集(gca),“XTickLabel”[]);ylabel (“振幅”);次要情节(3、1、2);情节(t, sigrec_emd);标题(“EMD重建”);集(gca),“XTickLabel”[]);ylabel (“振幅”);次要情节(3、1,3)情节(t, sigrec_vmd);标题(“VMD重建”);ylabel (“振幅”);包含(“时间”);

每种方法在逐样本基础上的最大重构误差约为 1 0 - 1 2 或更小,说明它们是完美的重建方法。因为MRA分量的和可以重建原始信号,所以包含或排除分量的子集可以产生有用的近似。

回到合成信号的原始小波MRA,假设你对趋势项不感兴趣。因为趋势项是在最后一个MRA组件中本地化的,所以只需要从重构中排除该组件。

sigWOtrend = sum(mra(1:end-1,:));图(t,sigWOtrend)“趋势术语被删除”

要删除其他组件,可以使用您不希望包含的组件中的值。在这里,我们删除了趋势和最高频率分量以及第一个MRA分量(这看起来很大程度上是噪声)。绘制实际的第二个信号分量(60hz)以及重建以进行比较。

Include = true(size(mra,1),1);Include ([1 2 9]) = false;Ts = sum(mra(include,:));情节(t, comp2“b”)举行情节(t, t,“r”)标题(“趋势项和最高频率分量被删除”)包含(“秒”);传奇(《组件2》“部分重建”xlim([0.0 0.4])

在前面的示例中,我们将趋势术语视为要删除的有害组件。在许多应用程序中,趋势可能是主要的关注点。让我们可视化由三个mra示例提取的趋势项。

图绘制(t)的趋势,“线宽”, 2)情节(t, mra(最终,:)imf_vmd(:,结束)imf_emd(:,结束)])网格传奇(“趋势”“小波”“VMD”“EMD”)标题(“三个互认协议的趋势”

注意,小波技术捕捉到的趋势更平滑,也更准确。EMD发现了一个平滑的趋势项,但它相对于真实的趋势振幅发生了偏移,而VMD技术似乎天生就比小波和EMD技术更倾向于发现振荡。这方面的影响将在MRA技术的优点和缺点部分。

利用MRA检测瞬态变化

在第一个例子中,强调了多分辨率分析在检测数据中的振荡成分和总体趋势中的作用。然而,这些并不是使用多分辨率分析可以分析的唯一信号特征。MRA还可以帮助定位和检测信号中的瞬时特征,如脉冲事件,或某些成分的可变性的减少或增加。在某些尺度或频带范围内的可变性的变化往往表明在生成数据的过程中发生了重大变化。这些变化通常在MRA组件中比在原始数据中更容易显示。

为了说明这一点,我们考虑一下1947年第一季度到2011年第四季度美国实际国内生产总值(GDP)的季度链加权数据。季度样本对应的采样频率为4个样本/年。垂直的黑线标志着“大缓和”的开始,这意味着从20世纪80年代中期开始的美国宏观经济波动减少的时期。注意,从原始数据中很难看出这一点。

负载GDPData图(年,实际gdp) hold住地块([年(146)年(146)],[-0.06 0.14],“k”)标题(“GDP数据”);包含(“年”);持有

获得GDP数据的小波MRA。绘制最佳分辨率MRA分量,并标记大缓和期。由于小波MRA是使用固定滤波器获得的,我们可以将最佳尺度的MRA分量与每年1个周期到每年2个周期的频率相关联。一个以两个季度周期振荡的元件,其频率为每年2个周期。在这种情况下,最佳分辨率的MRA组件捕获GDP中的变化,这些变化发生在相邻的两个季度之间,发生在季度与季度之间。

Mra = modwtmra(modwt(realgdp,“db2”));Figure plot(year,mra(1,:)) hold住地块([年(146)年(146)],[-0.015 0.015],“k”)标题(“小波MRA -季度与季度的变化”);持有

在最精细的MRA组件中,变化率或经济术语波动率的减少比在原始数据中更明显。检测方差变化的技术,如MATLABfindchangepts(信号处理工具箱)通常在MRA组件上比在原始数据上更有效。

MRA技术的优点和缺点

在这个例子中,我们讨论了多分辨率分析的小波和数据自适应技术。各种技术的优缺点是什么?换句话说,对于什么应用程序,我可以选择一个而不是另一个?让我们从小波开始。本例中的小波技术使用固定滤波器来获得MRA。这意味着小波MRA有一个明确的数学解释,我们可以预测MRA的行为。我们还能够将MRA中的事件与数据中的特定时间尺度联系起来,就像在GDP示例中所做的那样。缺点是小波变换将信号划分为八度频带(每个分量的中心频率减少1/2),因此在高中心频率处的带宽比在低频率处的带宽大得多。这意味着用小波技术,两个紧密间隔的高频振荡可以很容易地在同一个MRA分量中结束。

重复第一个合成的例子,但移动两个振荡成分在彼此一个八度。

Fs = 1e3;t = 0:1/Fs:1-1/Fs;Comp1 = cos(2*pi*150*t).*(t>=0.1 & t<0.3);Comp2 = cos(2*pi*200*t).*(t>0.7);趋势= sin(2*pi*1/2*t);rng默认的;wgnNoise = 0.4*randn(size(t));x = comp1+comp2+trend+wgnNoise;情节(t, x)包含(“秒”) ylabel (“振幅”

重复并绘制小波MRA。

Mra = modwtmra(modwt(x,8));helperMRAPlot (x, mra t“小波”小波多分辨的, 9 [2])

现在我们看到了 D 2 包含150hz和200hz分量。如果您使用EMD重复此分析,您将看到相同的结果。

现在让我们使用VMD。

[imf_vmd,~,info_vmd] = vmd(x);helperMRAPlot (x, imf_vmd t“vmd”“VMD”,[1 2 3 5]);

VMD能够分离这两个组件。高频振荡局限于IMF 1,而第二个分量分布于两个相邻的IMF。如果您查看VMD模式的估计中心频率,该技术已经将前两个组件定位在200和150 Hz左右。第三个IMF的中心频率接近150hz,这就是为什么我们在两个MRA组件中看到第二个组件。

info_vmd。CentralFrequencies * Fs
ans =5×1202.7204 153.3278 148.8022 84.2802 0.2667

VMD之所以能够做到这一点,是因为它首先通过查看数据的频域分析来识别imf的候选中心频率。

虽然小波MRA不能分离两个高频成分,但有一个额外的成分小波包MRA可以。

WPT = modwptdetails(x,3);helperMRAPlot (x,翻转(wpt), t,“小波”“小波包MRA”,[5 6 8]);

现在你可以看到这两个振荡是分开的 D 5 而且 D 6 .从这个例子中我们可以提取出一条普遍规律。如果初始小波或EMD分解显示同一分量振荡速率明显不同的分量,则考虑VMD或小波包MRA。如果您怀疑数据的高频分量在频率上接近,VMD或小波包方法通常比小波或EMD方法工作得更好。

回想一下提取平滑趋势的问题。重复小波MRA和EMD。

Mra = modwtmra(modwt(x,8));helperMRAPlot (x, mra t“小波”小波多分辨的, 9 [2])

Imf_emd = emd(x);helperMRAPlot (x, imf_emd t“EMD”“经验模态分解”,[1 2 6])

小波和EMD技术提取的趋势比VMD和小波包技术提取的趋势更接近真实趋势。VMD固有地倾向于寻找窄带振荡分量。这是VMD在检测紧密间隔振荡时的一个优点,但在提取数据中的平滑趋势时是一个缺点。当分解超过几个级别时,小波包mra也是如此。这就引出了第二条一般建议。如果您对描述数据中的平滑趋势以进行识别或删除感兴趣,可以尝试小波或EMD技术。

如何检测我们在GDP数据中看到的短暂变化?让我们使用VMD重复GDP分析。

[imf_vmd,~,vmd_info] = vmd(realgdp);Figure subplot(2,1,1) plot(year,realgdp) title(实际国内生产总值的);持有图([年(146)年(146)],[-0.1 0.15],“k”)举行次要情节(2,1,2)情节(一年,imf_vmd (: 1));标题(“第一个VMD IMF”);持有图([年(146)年(146)],[-0.02 0.02],“k”)举行

虽然从20世纪80年代中期开始,最高频率的VMD分量似乎也显示出一些变异性的减少,但它不像小波MRA那样容易明显。由于VMD技术倾向于寻找振荡,在第一个VMD IMF中有大量的振铃,这掩盖了波动率的变化。

使用EMD重复此分析。

Imf_emd = emd(realgdp);Figure subplot(2,1,1) plot(year,realgdp) title(实际国内生产总值的);持有图([年(146)年(146)],[-0.1 0.15],“k”)举行次要情节(2,1,2)情节(一年,imf_emd (: 1));标题(“第一个EMD IMF”);持有图([年(146)年(146)],[-0.06 0.05],“k”)举行

EMD技术在发现波动率(方差)的变化时不太有用。在这种情况下,小波MRA中使用的固定函数比数据自适应技术更具有优势。

这就引出了我们最后的一般规则。如果您对检测信号中的瞬时变化感兴趣,比如脉冲事件是变异性的减少和增加,可以尝试小波技术。

结论

该示例展示了多分辨率分解技术(如小波、小波包、经验模态分解和变分模态分解)如何允许您在与原始数据相同的时间尺度上研究相对隔离的信号成分。每种技术在许多应用中都证明了自己的强大。该示例给出了一些经验法则,但不应将其视为绝对的。下表概述了这里介绍的MRA技术的特性以及一些一般的经验规则。属性用蓝色表示,推荐用橙色表示。

  • 如果您的数据似乎包含频率接近的振荡成分,请尝试VMD或小波包。VMD直接从数据中识别重要的中心频率,而小波包采用固定频率分析,可能不如VMD灵活。

  • 如果您对数据中的瞬时事件感兴趣,如脉冲事件或可变性的瞬时减少和增加,请尝试小波MRA。在任何MRA中,这些事件通常被定位到最精细的尺度(最高中心频率)MRA组件。

  • 如果您对数据中平滑趋势项的表示感兴趣,可以考虑EMD或小波MRA。

信号多分辨率分析仪,您可以对信号执行多分辨率分析,获得各种MRA组件的度量,进行部分重构实验,并生成MATLAB脚本以在命令行中再现分析。

参考文献

[1] Dragomiretskiy, Konstantin, Dominique Zosso。“变分模态分解。”IEEE信号处理汇刊62年,没有。3(2014年2月):531-44。https://doi.org/10.1109/TSP.2013.2288675。

Flandrin, P. G. Rilling, P. Goncalves。"经验模式分解作为滤波器组"IEEE信号处理快报11日,没有。2(2004年2月):112-14。https://doi.org/10.1109/LSP.2003.821662。

[3]黄、Norden E、沈征、龙瑞文、吴曼丽、施兴宏、郑全安、颜乃钦、董志超、刘亨利。非线性和非平稳时间序列分析的经验模态分解和希尔伯特谱。伦敦皇家学会学报。A系列:数学,物理和工程科学454年,没有。1971年(1998年3月8日):903-95。https://doi.org/10.1098/rspa.1998.0193。

[4]珀西瓦尔,唐纳德·B和安德鲁·t·瓦尔登。时间序列分析的小波方法.剑桥统计与概率数学系列。剑桥 ;纽约:剑桥大学出版社,2000。

另请参阅

功能

应用程序

相关的话题