主要内容

modwtLayer

最大重叠离散小波变换(MODWT)层

    描述

    MODWT层计算输入的MODWT和MODWT多分辨率分析(MRA)。使用这一层需要深度学习工具箱™。

    创建

    描述

    = modwtLayer创建一个MODWT层。默认情况下,该层使用带有四个消失矩的Daubechies最小不对称小波计算MODWTMRA到5级(“sym4”)。

    的输入modwtLayer必须是一个dlarray(深度学习工具箱)对象“认知行为治疗”格式。张量输入的时间维的大小必须大于或等于2水平,在那里水平为MODWT的变换电平。modwtLayer将输出格式化为“SCBT”.有关更多信息,请参见层输出格式

    请注意

    对象在内部初始化权重,以便在MODWT中用作小波过滤器。不建议直接初始化权重。

    例子

    = modwtLayer (名称=值创建一个MODWT层属性由名称-值参数指定。例如,层= modwtLayer(小波=“哈尔”)创建一个使用Haar小波的MODWT层。您可以指定小波和分解级别等等。

    属性

    全部展开

    MODWT

    此属性是只读的。

    MODWT中使用的正交小波的名称,指定为字符向量或字符串标量。

    在小波管理器中,将正交小波指定为第1类小波。有效的内建正交小波族开始于“哈雾”的数据库N的颗N“头巾N的提单N“汉LP“信谊N“乌”,或“beyl”.使用waveinfo使用小波族短名称查看任何数字后缀的支持值以及如何解释这些值。例如,waveinfo(汉族)

    小波由wname,相关的低通和高通滤波器而且分别是(~, ~,嗨)= wfilters (wname

    数据类型:字符|字符串

    此属性是只读的。

    初始小波滤波器对,指定为一对偶长实值向量。向量的长度必须相等。LowpassFilter而且HighpassFilter必须分别对应低通和高通滤波器,与正交小波相关联。您可以使用isorthwfb确定正交性。

    (~, ~,嗨)= wfilters (“db2”);[tf,检查]= isorthwfb (Lo,嗨);
    如果未指定,两个过滤器默认为[]而且modwtLayer使用小波以确定MODWT中使用的滤波器。

    不能同时指定小波名称和小波过滤器对。

    例子:层= modwtLayer(‘LowpassFilter’,‘HighpassFilter’,嗨)

    数据类型:|

    此属性是只读的。

    转换级别以计算MODWT,指定为小于或等于的正整数地板(log2 (N)),在那里N是在时间维度中输入的层的大小。

    数据类型:|

    此属性是只读的。

    用于MODWT计算的边界条件,指定为以下之一:

    • “周期”-信号沿时间维度周期性地扩展。小波系数的个数等于信号在时间维度上的大小。

    • “反射”—在计算MODWT之前,信号在终端端沿时间维对称反射。返回的小波系数的数量是输入信号长度的两倍。

    此属性是只读的。

    选定的水平modwtLayer输出,指定为小于或等于的正整数的向量水平

    数据类型:|

    此属性是只读的。

    包括低通系数,指定为数字或逻辑1真正的)或0).如果指定为真正的, MODWT层包括水平MODWT中的第th级低通(缩放)系数,或水平MODWTMRA中第th级平滑。

    数据类型:逻辑

    此属性是只读的。

    聚合选定的级别,指定为数字或逻辑级别1真正的)或0).如果指定为真正的, MODWT层聚合所选级别和低通级别(如果IncludeLowpass真正的),以求和的方式计算每个输入通道。如果AggregateLevels真正的,在空间维度上的输出大小为1.有关更多信息,比较modwtLayer Output与modwt和modwtmra Output

    数据类型:逻辑

    此属性是只读的。

    算法modwtLayer用于计算输出,指定为以下之一:

    • “MODWTMRA”-计算基于多分辨率分析的最大重叠离散小波变换。

    • “MODWT”-计算最大重叠离散小波变换的小波系数。

    有关更多信息,请参见比较MODWT和MODWTMRA

    用于权重学习率的乘数,指定为非负标量。如果未指定,此属性默认为零,导致权重不随训练而更新。方法设置此属性setLearnRateFactor(深度学习工具箱)函数。

    可学的参数“重量”modwtLayer是当前滤波器对的两行矩阵。第一行是低通滤波器,第二行是高通滤波器。默认情况下,权重是与默认小波相关的低通和高通滤波器,并且不更新。

    数据类型:|

    层名,指定为字符向量或字符串标量。为数组输入,trainNetworkassembleNetworklayerGraph,dlnetwork函数自动为具有此名称的层分配名称

    数据类型:字符|字符串

    此属性是只读的。

    层的输入数。该层只接受单个输入。

    数据类型:

    此属性是只读的。

    输入图层名称。该层只接受单个输入。

    数据类型:细胞

    此属性是只读的。

    层的输出数量。这个层只有一个输出。

    数据类型:

    此属性是只读的。

    输出层的名称。这个层只有一个输出。

    数据类型:细胞

    例子

    全部折叠

    创建一个MODWT层来计算输入信号的多分辨率分析。使用5阶的coiflet小波。将转换级别设置为8。只保留级别3、5和7的细节和近似。

    层= modwtLayer(小波=“coif5”= 8级,...SelectedLevels =(3、5、7)Name =“MODWT”);

    创建一个dlnetwork对象,包含序列输入层、MODWT层和LSTM层。对于8级分解,将最小序列长度设置为2^8个样本。为了使用LSTM层,在LSTM层之前还需要一个flatten层,以将空间维度折叠为通道维度。

    mLength = 2 ^ 8;sqLayer = sequenceInputLayer (Name =“输入”最小长度= mLength);layers = [sqLayer layer扁平化层lstmLayer(10,Name= .“LSTM”));dlnet = dlnetwork(层);

    运行一批10个随机单通道信号通过dlnetwork对象。检查输出的尺寸和尺寸。扁平的层塌了空间维度。

    dataout = dlnet.forward (dlarray (randn (1, 2000,“单一”),“认知行为治疗”));大小(dataout)
    ans =1×310 2000
    dim (dataout)
    ans =“认知行为治疗”

    加载Espiga3脑电图(EEG)数据集。数据由23路200 Hz采样的脑电图组成。每个通道有995个样本。将多信号保存为dlarray,按顺序指定尺寸。dlarray对象的数组尺寸排列“认知行为治疗”深度学习网络所期望的形状。

    负载Espiga3(N, nch) = (Espiga3)大小;x = dlarray (Espiga3“TCB”);

    使用modwt而且modwtmra得到6级以下多信号的MODWT和MRA。默认情况下,modwt而且modwtmra使用sym4小波。

    列弗= 6;wt = modwt (Espiga3,列弗);mra = modwtmra (wt);

    modwt

    创建一个可用于数据的MODWT层。将转换级别设置为6。指定使用MODWT计算输出的层。默认情况下,该层使用sym4小波。

    mlayer = = modwtLayer(水平=列弗,算法“MODWT”);

    创建一个两层的dlnetwork对象包含序列输入层和刚刚创建的MODWT层。把每个频道看作一个特色。对于第6级分解,将最小序列长度设置为2^6。

    mLength = mlayer.Level;sqInput = sequenceInputLayer (nch最小长度= 2 ^ mLength);layers = [sqInput mlayer];dlnet = dlnetwork(层);

    把脑电图数据通过向前网络的方法。

    向前dataout = (dlnet x);

    modwt而且modwtmra函数返回多通道信号的MODWT和MRA作为一个三维阵列。数组的第一、第二和第三维分别对应小波分解级别、信号长度和通道。将网络输出转换为数字数组。排列网络输出的维度以匹配函数输出。的网络输出与modwt输出。

    q = extractdata (dataout);Q = permute(Q,[1 4 2 3]);马克斯(abs (q (:) wt (:)))
    ans = 8.4402 e-05

    选择MODWT结果modwtLayer.与脑电图数据中相应通道进行比较。每一层的平面图modwtLayer输出。不同的电平包含不同频率范围内的信号信息。由于该层使用了MODWT算法,所以这些电平不是与原始信号时间对齐的。

    频道= 10;t = 100:400;次要情节(lev + 2 1 1)情节(t, Espiga3 (t,频道))ylabel (“原始脑电图”K =2:lev+1 subplot(lev+2,1, K) plot(t,q(K -1,t,channel)) ylabel([“水平”k - 1,“MODWT”])结束次要情节(lev + 2 1列弗+ 2)情节(t, q (lev + 1 t频道))ylabel ([“缩放”“系数”“MODWT”set(gcf,Position=[0 0 500 700])

    图中包含8个轴对象。axis对象1包含一个类型为line的对象。Axes对象2包含一个类型为line的对象。Axes对象3包含一个类型为line的对象。Axes对象4包含一个line类型的对象。axis对象5包含一个类型为line的对象。Axes对象6包含一个类型为line的对象。Axes对象7包含一个类型为line的对象。Axes对象8包含一个line类型的对象。

    modwtmra

    创建第二个类似于第一个网络的网络,只不过这次指定它modwtLayer使用MODWTMRA算法并聚合第四、第五和第六层。不要在聚合中包含低通级别。

    sLevels = [4 5 6];=列弗mlayer = modwtLayer(水平,...SelectedLevels = sLevels,...IncludeLowpass = 0,...AggregateLevels = 1);layers = [sqInput mlayer];dlnet2 = dlnetwork(层);

    把脑电图数据通过向前网络的方法。将网络输出转换为数字数组。如前面所做的那样排列维度。

    向前dataout = (dlnet2 x);q = extractdata (dataout);Q = permute(Q,[1 4 3 2]);

    聚合MRA的第四、第五和第六层。与网络输出比较。

    mraAggregate =总和(mra (sLevels,:,:));马克斯(abs (q (:) -mraAggregate (:)))
    ans = 2.1036 e-04

    检查该层的MODWTMRA结果。与脑电图数据中相应通道进行比较。通过只选择第四、第五和六层,而不包括低通组件,该层从信号中删除了几个高频和低频组件。变换后的信号比原始信号更平滑,并且去掉了低频分量,使得偏移量更接近于0。输出与原始信号时间对齐,因为该层使用默认的MODWTMRA算法。根据你的目标,保持时间的一致性是有用的。

    频道= 10;t = 100:400;图保存plot(t, Espiga3(t,通道))plot(t,q(1,t,1,通道))保持传奇([“原始脑电图”“层输出”),...位置=“西北”

    图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象代表原始脑电图,层输出。

    这个例子演示了MODWT和MODWTMRA之间的区别。MODWT通过细节系数和缩放系数划分信号的能量。MODWTMRA将信号投射到小波子空间和缩放子空间上。

    选择sym6小波。加载并绘制心电图信号。心电信号的采样频率为180赫兹。数据取自Percival和Walden(2000),第125页(数据最初由华盛顿大学William Constantine和Per Reinhall提供)。

    负载wecgt =(0:元素个数(wecg) 1) / 180;西弗吉尼亚州=“sym6”;情节(t, wecg)网格标题(['信号长度= 'num2str(元素个数(wecg))))包含(“时间(s)”) ylabel (“振幅”

    图中包含一个axes对象。标题为Signal Length = 2048的axes对象包含一个类型为line的对象。

    取信号的MODWT。

    西弗吉尼亚州wtecg = modwt (wecg);

    输入数据是函数的样本 f x 评估在 N 时间点。该函数可以表示为缩放函数的线性组合 ϕ x 和小波 ψ x 在不同的尺度和翻译上: f x k 0 N - 1 c k 2 - J 0 / 2 ϕ 2 - J 0 x - k + j 1 J 0 f j x 在哪里 f j x k 0 N - 1 d j k 2 - j / 2 ψ 2 - j x - k 而且 J 0 是小波分解的层数。第一个和是信号的粗尺度近似,而 f j x 是在连续的尺度上的细节。MODWT返回 N 系数 c k J 0 × N 细节系数 d j k 的扩张。在每一行wtecg包含不同尺度下的系数。

    当取长度信号的MODWT时 N 地板上 日志 2 N 默认情况下的分解级别。每一级产生细节系数。只返回最后一级的缩放系数。在这个例子中, N 2 0 4 8 J 0 地板上 日志 2 2 0 4 8 1 1 的行数wtecg J 0 + 1 1 1 + 1 1 2

    MODWT在不同的尺度和比例系数上划分能量: | | X | | 2 j 1 J 0 | | W j | | 2 + | | V J 0 | | 2 在哪里 X 是输入数据, W j 细节系数是成比例的吗 j , V J 0 为最终级标度系数。

    计算每个刻度的能量,并计算它们的和。

    energy_by_scales = (wtecg。^ 2,2)总和;水平= {“D1”“D2”“D3”“D4”“D5”“D6”...“D7”D8的“D9”“D10”“这里”“A11”};energy_table =表(水平,energy_by_scales);disp (energy_table)
    水平energy_by_scales  _______ ________________ {' D1} 14.063 20.612{“D2”}{D3的}37.716 25.123 {D4的}{}“D5”17.437 {D6的}8.9852 1.2906 {D7的}{D8的}4.7278 {D9的}12.205 76.428 {D10的}{‘这里’}76.268 3.4192{“A11”}
    energy_total = varfun (@sum energy_table (:, 2))
    energy_total =表格sum_energy_by_scales  ____________________ 298.28

    通过计算信号的能量,并将其与所有尺度上的能量之和进行比较,确认MODWT是节能的。

    energy_ecg =总和(wecg。^ 2);马克斯(abs (energy_total.sum_energy_by_scales-energy_ecg))
    ans = 7.4402平台以及

    取信号的MODWTMRA。

    西弗吉尼亚州mraecg = modwtmra (wtecg);

    MODWTMRA返回函数的投影 f x 到各个小波子空间和最终的缩放空间上。也就是说,MODWTMRA返回 k 0 N - 1 c k 2 - J 0 / 2 ϕ 2 - J 0 x - k J 0 许多 f j x 评估在 N 时间点。在每一行mraecg是一个投影 f x 在不同的子空间上。这意味着原始信号可以通过添加所有的投影来恢复。在MODWT的情况下不是这样的。将系数相加wtecg不会恢复原来的信号。

    选择一个时间点,加上投影 f x 在该时间点进行评估,并与原始信号进行比较。

    time_point = 1000;abs(总和(mraecg (:, time_point)) -wecg (time_point))
    ans = 3.0846 e-13

    确认,与MODWT不同,MODWTMRA不是一个能量守恒变换。

    energy_ecg =总和(wecg。^ 2);energy_mra_scales = (mraecg。^ 2,2)总和;energy_mra =总和(energy_mra_scales);马克斯(abs (energy_mra-energy_ecg))
    ans = 115.7053

    MODWTMRA是信号的零相位滤波。功能将与时间一致。通过绘制原始信号和它的一个投影来显示这一点。为了更好地说明对齐,放大。

    情节(t, wecg“b”)举行:情节(t, mraecg (4),“- - -”)举行网格传说xlim (8 [4]) (“信号”“投影”“位置”“西北”)包含(“时间(s)”) ylabel (“振幅”

    图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些物体代表信号、投影。

    用相同尺度下的MODWT系数做一个相似的图。功能将不会与时间一致。MODWT不是输入的零相位滤波。

    情节(t, wecg“b”)举行:情节(t, wtecg (4),“- - -”)举行网格传说xlim (8 [4]) (“信号”“系数”“位置”“西北”)包含(“时间(s)”) ylabel (“振幅”

    图中包含一个axes对象。坐标轴对象包含两个line类型的对象。这些对象表示信号,系数。

    更多关于

    全部展开

    版本历史

    介绍了R2022b

    另请参阅

    应用程序

    功能

    对象

    主题

    Baidu
    map