一维抽取小波变换

本节将向您介绍使用小波工具箱™软件进行1-D临界采样小波分析的特性。

工具箱为一维信号分析提供了这些功能。有关更多信息,请参阅参考页。

Analysis-Decomposition功能

函数名

目的

dwt

单一层次分解

wavedec

分解

wmaxlev

最大小波分解级别

Synthesis-Reconstruction功能

函数名

目的

得到

单层重建

waverec

完整的重建

wrcoef

选择性重建

upcoef

单一的重建

分解结构实用程序

函数名

目的

detcoef

细节系数的提取

appcoef

近似系数的提取

upwlev

分解结构的重组

去噪和压缩

函数名

目的

wdenoise

自动小波信号去噪(推荐)

wdenoise2

自动小波图像去噪(推荐)

ddencmp

提供以下的默认值去噪和压缩

wbmpen

小波一维或二维去噪的惩罚阈值

wdcbm

基于Birgé-Massart策略的小波1-D阈值

wdencmp

小波去噪与压缩

wden

自动小波去噪

wthrmngr

阈值设置管理器

在本节中,您将学习如何

  • 加载信号

  • 对信号进行单级小波分解

  • 根据系数构造近似和细节

  • 显示近似和细节

  • 用小波反变换重新生成信号

  • 对信号进行多级小波分解

  • 提取近似和细节系数

  • 重建三级近似

  • 重建级别1、2和3的细节

  • 显示多级分解的结果

  • 从三级分解中重建原始信号

  • 从信号中去除噪声

  • 细化分析

  • 压缩信号

  • 显示信号的统计数据和直方图

由于您既可以从命令行执行分析,也可以使用Wavelet Analyzer应用程序执行分析,因此本节包含了涵盖每种方法的子节。

最后一小节讨论如何在磁盘和图形工具之间交换信号和系数信息。

使用命令行进行一维分析

这个例子涉及一个真实世界的信号——3天内测量的耗电量。这个信号特别有趣,因为在进行测量时,监测设备出现缺陷时引入了噪声。小波分析可以有效地去除噪声。

请注意

为了去噪信号,wdenoise而且小波信号去噪器是推荐的。

  1. 加载信号,选取一部分进行小波分析。

    负载leleccum;S = leceleccum (1:3920);L_s =长度(s);
  2. 对信号进行单级小波分解。

    方法执行信号的单级分解db1小波。

    [cA1,cD1] = dwt(s,“db1”);

    这就产生了一级近似的系数(cA1)和详情(cD1).

  3. 根据系数构造近似和细节。

    要构造一级近似和细节(A1而且D1)由系数cA1而且cD1、类型

    A1 = upcoef(“一个”cA1,“db1”1、l_s);D1 = upcoef(' d ', cD1、“db1”1、l_s);

    A1 = idwt(cA1,[],“db1”, l_s);D1 = idwt([],cD1,“db1”, l_s);
  4. 显示近似和细节。

    要显示一级分解的结果,键入

    次要情节(1、2、1);情节(A1);标题(“近似A1”)次要情节(1、2、2);情节(D1);标题(“细节D1”

  5. 用逆小波变换重新生成信号。

    要求逆变换,输入

    A0 = idwt(cA1,cD1,“db1”, l_s);err = max(abs(s-A0))
  6. 执行一个信号的多电平小波分解。

    要执行信号的3级分解(再次使用db1小波),类型

    [C,L] = wavedec(s,3,“db1”);

    第三级分解(即第三级近似和前三个详细级别)的所有组件的系数被连接到一个向量c中返回,向量L给出了每个组件的长度。

  7. 提取近似,细节系数。

    提取三级近似系数C、类型

    cA3 = appcoef(C,L,'db1',3);

    来提取级别3、2和1详细系数来自C、类型

    cD3 = detcoef(C,L,3);cD2 = detcoef(C,L,2);cD1 = detcoef(C,L,1);

    [cD1,cD2,cD3] = detcoef(C,L,[1,2,3]);
  8. 重建关卡3近似和等级1 2 3细节。

    来重建三级近似C、类型

    A3 = wrcoef('a',C,L,'db1',3);

    重建级别1、2和3上的细节,从C、类型

    D1 = wrcoef('d',C,L,'db1',1);D2 = wrcoef('d',C,L,'db1',2);D3 = wrcoef('d',C,L,'db1',3);
  9. 项的结果多级分解。

    要显示第3级分解的结果,请键入

    次要情节(2 2 1);情节(A3);title('近似A3') subplot(2,2,2);情节(D1);标题(“细节D1”)次要情节(2,2,3);情节(D2);title('Detail D2') subplot(2,2,4);情节(D3);标题(细节D3)

  10. 从三级分解中重建原始信号。

    对原始信号进行小波分解重构,形成结构、类型

    A0 = waverec(C,L,'db1');err = max(abs(s-A0))
  11. 原油信号去噪。

    使用小波从信号中去除噪声需要识别哪些成分包含噪声,然后在没有这些成分的情况下重构信号。

    在这个例子中,我们注意到,随着越来越多的高频信息从信号中过滤掉,连续逼近的噪声会越来越小。

    三级近似,A3,它与原始信号之间的比较非常清晰。

    要将近似值与原始信号进行比较,请键入

    次要情节(2,1,1);情节(年代);标题(原始的);轴离子图(2,1,2);图(A3);标题(“三级近似”);轴了

    当然,在丢弃所有高频信息的同时,我们也失去了原始信号的许多最鲜明的特征。

    最优去噪需要一种更微妙的方法,叫做阈值.这涉及到只丢弃超过一定限制的细节部分。

  12. 去除噪音阈值。

    让我们再看一看第3级分析的细节。

    要显示详细信息D1D2,D3、类型

    次要情节(1,1);情节(D1);title(“细节级别1”);轴离子图(3,1,2);情节(D2);title(“细节级别2”);轴离子图(3,1,3);情节(D3);title(“细节级别3”);轴了

    大多数噪声发生在信号的后一部分,在那里细节显示了它们最大的活动。如果我们通过限制细节的最大值来限制细节的强度会怎样?这将有减少噪音的效果,同时在大部分持续时间内不影响细节。但是有一个更好的办法。

    请注意,cD1,cD3都是MATLAB®向量,所以我们可以直接操作每个向量,将每个元素设置为向量峰值或平均值的某个部分。然后我们可以重建新的细节信号D1D2,D3从阈值系数。

    去噪信号,使用ddencmp命令来计算默认参数和wdencmp命令执行实际去噪,键入

    [thr,sorh,keepapp] = ddencmp('den','wv',s);clean = wdencmp('gbl',C,L,'db1',3,thr,sorh,keepapp);

    请注意,wdencmp使用分解的结果(C而且l),我们已经计算过了。我们还指定使用db1对原始小波进行分析,并指定全局阈值选项gbl(的.看到ddencmp而且wdencmp有关这些命令使用的更多信息,请参阅参考页。

    要显示原始信号和去噪信号,请键入

    次要情节(2,1,1);情节(s (2000:3920));标题(原始的)次要情节(2,1,2);情节(清洁(2000:3920));标题(“去噪”)

    我们在这里只画出了信号中有噪声的后半段。请注意我们是如何在不影响原始信号的清晰细节的情况下去除噪声的。这是小波分析的一个强项。

    虽然使用命令行函数从信号中去除噪声可能很麻烦,但该软件的小波分析仪应用程序包括一个易于使用的去噪功能,包括自动阈值。

    关于去噪过程的更多信息可以在以下部分中找到:

使用小波分析仪App进行一维分析

在本节中,我们将探索与前一节相同的电力消耗信号,但我们使用小波分析仪应用程序来分析和去噪信号。

请注意

不再推荐使用小波分析仪应用程序去噪信号。使用小波信号去噪器代替。

  1. 启动1-D小波分析工具。

    从MATLAB提示符中输入waveletAnalyzer

    小波分析仪出现了。

    单击小波一维菜单项。

    提出了一维信号数据的离散小波分析工具。

  2. 加载一个信号。

    在MATLAB命令提示符下,键入

    加载leleccum;
    小波一维工具,选择文件>从工作区导入.当从工作区导入对话框出现时,选择leleccum变量。点击好吧输入用电信号。

  3. 执行单级小波分解。

    在开始分析之前,让我们使用db1中的命令行函数使用命令行进行一维分析

    的右上角小波一维工具,选择db1小波和单层分解。

    单击分析按钮。

    在暂停计算之后,该工具将显示分解。

  4. 放大相关细节。

    使用小波分析应用程序的一个优点是,您可以轻松地放大信号的任何部分,并更详细地检查它。

    将一个橡皮筋盒(按住鼠标左键)拖到要放大的信号部分上。这里,我们选择了原始信号的噪声部分。

    单击X +按钮(位于屏幕底部)用于水平缩放。

    小波一维工具放大所有显示的信号。

    其他的缩放控件或多或少都是你所期望的。的X -按钮,例如,水平缩小。历史函数会跟踪您对信号的所有视图。单击左侧箭头按钮可返回到先前的缩放级别。

  5. 执行一个多级分解。

    同样,我们将使用图形工具来模拟我们在前一节中使用命令行函数所做的工作。方法对信号进行3级分解db1小波:

    选择3.水平菜单的右上角,然后单击分析按钮一次。

    执行分解之后,您将看到在小波一维工具。

    选择分解的不同视图

    显示模式菜单(右中)允许您选择小波分解的不同视图。

    默认显示模式被调用“完全分解模式。”其他替代方案包括:

    • “分离模式”,它在单独的列中显示细节和近似。

    • “叠加模式”,显示单个图上的细节以不同的颜色叠加。近似值以相似的方式绘制。

    • 树模式,”它显示分解树、原始信号和一个您选择的附加组件。单击分解树以选择想要查看的信号组件。

    • 显示和滚动模式,显示三个窗口。第一个显示原始信号叠加在你选择的近似值上。第二个窗口显示您选择的细节。第三个窗口显示了小波系数。

    • “显示和滚动模式(Stem Cfs)”与“显示和滚动模式”非常相似,除了它在第三个窗口中将小波系数显示为茎图而不是彩色块。

    您可以在每个会话的基础上更改默认显示模式。控件中选择所需的模式视图>默认显示模式子菜单。

    请注意

    压缩而且去噪窗户从窗口打开。小波一维工具将继承当前系数可视化属性(茎或彩色块)。

    选项可以访问其他显示选项,具体取决于所选择的显示模式更多显示选项按钮。

    这些选项包括抑制各种组件显示的能力,以及选择是否显示原始信号以及细节和近似值。

  6. 从信号中去除噪声。

    小波分析仪应用程序具有一个预定义的阈值策略去噪选项。这使得从信号中去除噪声变得非常容易。

    请注意

    不再推荐使用去噪选项。使用小波信号去噪器代替。

    调出去噪工具:单击消除干扰按钮,位于窗口的右中间,在分析按钮。

    小波一维去噪窗口出现。

    虽然有许多选项可用于微调去噪算法,但我们将接受软固定形式阈值和无缩放白噪声的默认值。的无尺度白噪声选项对应于设置乘法阈值输入参数公司拥有wden“一个”.选择缩放白噪声对应于“sln”,非白人的噪音对应于“mln”.有关更多信息,请参见wden

    继续单击消除干扰按钮。

    去噪后的信号似乎叠加在原始信号上。该工具还绘制了两个信号的小波系数。原始细节系数显示在显示器的左侧。为了在所有尺度上对分解级别进行时间对齐,在每个尺度上复制小波系数以说明缺失的时间点。因此,当尺度变粗时,系数呈阶梯状。

    放大原始信号和去噪信号的图,以便更仔细地观察。

    在相关区域周围拖动橡皮筋框,然后单击XY +按钮。

    消除干扰窗户能放大你的视野。默认情况下,原始信号显示为红色,去噪信号显示为黄色。

    取消小波一维去噪窗口:点击关闭按钮。

    你不能拥有消除干扰而且压缩窗口同时打开,所以关闭小波一维去噪窗口继续。当更新合成信号对话框,单击没有.如果你点击是的,合成信号然后在小波一维主窗口。

  7. 细化分析。

    图形化工具使您随时都可以轻松地改进分析。到目前为止,我们已经看到了三级分析使用db1.让我们使用。来改进我们对用电信号的分析db4第5级的小波。

    水平菜单,然后选择db4小波菜单。单击分析按钮。

  8. 压缩信号。

    图形界面工具具有自动或手动阈值压缩选项。

    调出压缩窗口:点击压缩按钮,位于窗口的右中间,在分析按钮。

    压缩窗口出现。

    虽然您总是可以通过级别阈值进行选择,但在这里我们将利用全局阈值特性进行快速和简单的压缩。

    请注意

    如果您想尝试手动阈值设置,请选择级别阈值的右上角菜单中的选项小波一维压缩窗口。然后,位于该菜单下方的滑块控制与级别相关的阈值,这些阈值由窗口左侧图形中水平运行的黄色虚线表示。黄色虚线也可以直接使用鼠标左键拖动。

    单击压缩按钮,位于右中间。

    在暂停计算后,耗电量信号以红色重新显示,压缩后的信号以黄色叠加。下面,我们放大了信号的噪声部分。

    你可以看到压缩过程去除了大部分噪声,但保留了信号99.99%的能量。

  9. 显示残差。

    小波一维压缩工具,单击残差按钮。的更多关于小波1-D压缩的残差窗口出现。

    显示的统计数据包括趋势(均值、模式、中位数)和离散度(范围、标准偏差)。此外,该工具还提供了频率分布图(直方图和累积直方图),以及时间序列图:自相关函数和频谱。相同的特性存在于小波一维去噪工具。

    取消小波一维压缩窗口:点击关闭按钮。当更新合成信号对话框,单击不。

  10. 显示统计数据。

    您可以查看有关信号及其组件的各种统计信息。

    小波一维工具,单击统计数据按钮。

    小波一维统计窗口将显示原始信号的默认统计信息。

    选择要检查其统计信息的合成信号或信号分量。单击相应的选项按钮,然后单击显示统计信息按钮。在这里,我们选择使用100个箱来检查合成信号,而不是默认的30个箱:

    显示的统计数据包括趋势(均值、模式、中位数)和离散度(范围、标准偏差)。

    此外,该工具还提供了频率分布图(直方图和累积直方图)。方法可以分别绘制这些直方图柱状图按钮。小波一维窗口。

    单击近似选项按钮。将出现一个菜单,从中选择要检查的近似级别。

    选择Level 1,然后再次单击显示统计信息按钮。1级近似的统计数据出现。

从小波分析仪应用程序导入和导出信息

小波一维图形界面工具允许您从磁盘和MATLAB工作区导入和导出信息。

将信息保存到磁盘

中保存合成信号、系数和分解小波一维工具到磁盘,可以在其中操作信息,然后重新导入到图形化工具中。

保存合成信号。您可以处理信号小波一维工具,然后将处理后的信号保存到mat文件(扩展名为或其他)。

例如,加载实例分析:文件>分析示例>基本信号> with db3 at level 5→sin的和,并对原始信号进行压缩或去噪操作。当你关闭去噪压缩窗口中,单击更新合成信号是的在对话框中。

然后,从小波一维工具,选择File >保存>信号菜单选项。

出现一个对话框,允许您为mat文件选择文件夹和文件名。对于本例,选择名称synthsig

要将信号加载到工作区中,只需键入

加载synthsig;

当使用除全局阈值方法外的任何阈值方法获得合成信号时,保存的结构为

名字 大小 字节
synthsig 1 x1000 8000 数组
thrParams 1 x5 580 单元阵列
wname 1 x3 6 字符数组

合成信号由变量给出synthsig.此外,去噪或压缩过程的参数由小波名称(wname)和载于thrParams变量,它是一个长度为5的单元格数组(与分解的级别相同)。

从1到5,thrParams{我}包含阈值间隔和阈值的下界和上界(因为允许使用依赖于间隔的阈值,请参见小波系数的一维自适应阈值).

例如,对于第一级,

thrParams{1} ans = 1.0e+03 * 0.0010 1.0000 0.0014

当使用全局阈值方法获得合成信号时,保存的结构为

名字 大小 字节
synthsig 1 x1000 8000 双数组
valTHR 1 x1 8 双数组
wname 1 x3 6 字符数组

其中变量valTHR包含全局阈值:

valTHR valTHR = 1.2922

保存离散小波变换系数。小波一维工具允许您将离散小波变换(DWT)的系数保存到磁盘。工具箱在当前文件夹中用您选择的名称创建一个mat文件。

要保存当前分析中的DWT系数,请使用菜单选项文件>保存>系数

出现一个对话框,允许您指定存储系数的文件夹和文件名。

考虑下面的例子分析:

>分析实例>基本信号>与db1在5级→康托曲线

将小波系数保存到文件后cantor.mat,在工作区中加载变量:

加载歌唱者whoos
名字 大小 字节
系数 1 x2190 17520 双数组
多头 1 x7 56 双数组
thrParams 0 x0 0 双数组
wname 1 x3 6 字符数组

变量系数包含离散小波系数。更准确地说,在上面的例子中系数是一个1乘2190的级联系数向量,和多头向量是否给出了向量的每个分量的长度系数

变量wname包含小波名称和thrParams为空,因为合成信号不存在。

储蓄分解。小波一维工具允许您将整个数据集从离散小波分析保存到磁盘。工具箱在当前文件夹中创建一个mat文件,该文件具有您选择的名称和扩展名wa1(小波分析1-D)。

打开小波一维工具和加载实例分析:

文件>分析示例>基本信号> with db3 at level 5→sin的和

要保存此分析的数据,请使用菜单选项文件>保存>分解

将出现一个对话框,允许您指定用于存储分解数据的文件夹和文件名。输入名称wdecex1d

将分解数据保存到文件后wdecex1d.wa1,将变量加载到你的工作区:

负载wdecex1d。Wa1 -mat whoos
名字 大小 字节
系数 1 x1023 8184 双数组
data_name 1 x6 12 字符数组
多头 1 x7 56 双数组
thrParams 0 x0 0 双数组
wave_name 1 x3 6 字符数组

请注意

文件中执行去噪或压缩时,也可以使用保存选项小波一维工具。在小波一维去噪窗口,可以保存去噪后的信号并进行分解。同样适用于小波一维压缩窗口。这样,你可以从降噪和压缩窗口中保存许多不同的试验,而无需返回到主窗口小波一维窗口。

请注意

当将合成信号、分解或系数保存到mat文件时,可以使用不需要文件扩展名。你可以为每个关卡单独保存近似值,也可以一次性保存它们。

导出到工作区

小波一维工具允许您以多种格式将1-D小波分析导出到MATLAB工作空间。

例如,加载实例分析freqbrk信号。

小波1-D分析加载后,选择File - >导出到工作区

你可以选择

  • 输出信号-该选项导出合成信号矢量。

  • 出口系数—该选项将导出小波和缩放系数的向量、簿记向量以及在结构数组中分析小波。所得到的小波、标度系数和记账向量与输出完全相同wavedec

  • 出口分解—与出口系数除了它还包含被分析信号的名称。

  • 导出所有近似-此选项导出一个L × n矩阵,其中L为的值水平N为输入信号的长度。矩阵的每一行都是在相应能级的近似空间上的投影。例如,矩阵的第一行是在第1级的近似空间上的投影。

  • 导出所有详细信息-此选项导出一个L × n矩阵,其中L为的值水平N为输入信号的长度。矩阵的每一行都是对应级别的细节(小波)空间上的投影。例如,矩阵的第一行是在级别1的细节空间上的投影。

将信息加载到小波1-D工具

您可以将信号、系数或分解加载到Wavelet Analyzer应用程序中。您加载的信息可能已经从应用程序中导出,然后在工作空间中进行操作,或者它可能是您最初从命令行生成的信息。

类使用的严格文件格式和数据结构小波一维工具,否则在尝试加载信息时将导致错误。

加载信号。将在MATLAB工作区中构建的信号加载到小波一维工具,保存信号在一个mat文件(扩展名或其他)。

例如,假设您设计了一个名为warma想要分析它小波一维工具。

省省吧,暖暖的

工作区变量warma必须是一个向量。

Sizwarma = size(warma) Sizwarma = 1 1000

将这个信号加载到小波一维工具,使用菜单选项File >加载>信号

将出现一个对话框,允许您选择要加载的适当mat文件。

请注意

文件中遇到的第一个1-D变量被认为是信号。变量按字母顺序检查。

加载离散小波变换系数。将离散小波变换系数加载到小波一维工具,您必须首先在mat文件中保存适当的数据,该文件必须至少包含这两个变量系数而且多头

变量系数必须是DWT系数的矢量(为各个级别连接),变量多头的每个分量的长度的向量系数,以及原始信号的长度。

在工作区中构造或编辑适当的数据之后,键入

保存我的文件

使用文件>加载>系数菜单选项。小波一维工具将数据加载到图形化工具中。

这时会出现一个对话框,允许您选择数据所在的文件夹和文件。

加载分解。将离散小波变换加载到分解数据中小波一维图形界面,您必须首先将适当的数据保存在mat文件(扩展名为wa1或其他)。

mat文件包含以下变量。

变量 状态 描述
系数

要求

级联DWT系数的向量

多头

要求

的分量长度的向量系数和原始信号

wave_name

要求

指定用于分解的小波名称的字符向量(例如,db4

data_name

可选

指定分解名称的字符向量

在工作区中构造或编辑适当的数据之后,键入

保存我的文件coefs long wave_name

使用文件>加载>分解菜单选项。小波一维工具将分解数据加载到图形化工具中。

这时会出现一个对话框,允许您选择数据所在的文件夹和文件。

请注意

当从mat文件加载信号、分解或系数时,该文件的扩展名是免费的。的不需要延期。

另请参阅

|

相关的话题