主要内容

cwtLayer

连续小波变换(CWT)层

自从R2022b

    描述

    CWT层计算输入的类。使用这一层需要深度学习工具箱™。

    创建

    描述

    = cwtLayer创建一个类层的信号长度1024个样本。层使用每倍频程10小波滤波器和周期性边界条件。默认情况下,该层使用分析莫尔斯(60)小波。

    的输入cwtLayer必须是一个dlarray(深度学习工具箱)对象“认知行为治疗”格式。张量的大小在时间维度的输入是平等的价值的SignalLength。默认情况下,cwtLayer格式的输出“SCBT”。有关更多信息,请参见层输出格式

    请注意

    cwtLayer初始化权重内部类中使用小波滤波器。不建议直接初始化权重。

    例子

    = cwtLayer (名称=值)创建一个类层属性指定的一个或多个名称参数。例如,层= cwtLayer(小波=“阿莫”)创建一个层,使用解析Morlet小波变换。您可以指定多个名称参数。

    属性

    全部展开

    信号长度样本中,指定为一个正整数大于或等于4。所有的序列输入cwtLayer垫有尺寸吗SignalLength在时间维度。

    数据类型:|

    分析中使用小波变换,指定为“莫尔斯”,“埃莫”,或“撞”,代表了分析莫尔斯,Morlet(伽柏),分别和凹凸小波。默认小波分析莫尔斯(60)小波。

    体重阈值,指定为一个积极的真正的标量。cwtLayer使用阈值来确定每个CWT过滤器的显著值小波滤波器组之前任何重量修改通过学习。它集值低于指定的阈值为零,不包括学习。CWT过滤器是规范化,以便每个滤波器的峰值是2。

    • 较小的值阈值导致更多的值被保留的CWT过滤器,因此不减肥。

    • 更大的值阈值导致更多的减肥和分歧的深度学习CWT和转换计算滤波器组。

    • 一个阈值小于最小正浮点数,最小的积极的归一化双精度浮点数,剪最小正浮点数计算重要的过滤值。

    设置阈值值导致没有值被保留任何单个过滤器会导致错误。

    数据类型:|

    包括低通滤波器,指定为一个数字或逻辑1(真正的)或0()。指定真正的包括低通滤波器(扩展)过滤器类。

    数据类型:逻辑

    每个八度的声音数类,指定为一个整数1 - 48。CWT尺度离散使用指定的数量每八度的声音。小波能量传播的频率和时间自动决定了最小和最大尺度。

    您可以使用cwtfreqbounds确定小波滤波器组的频率限制。频率范围取决于等参数小波的能量分散,数量每八度的声音,和信号长度。

    数据类型:|

    CWT频率限制,指定为一个双元素向量用积极严格增加条目。频率限制解释为归一化频率,周期/样品。

    • 第一个元素指定了最低通带频率和峰值必须大于或等于小波的峰值频率的乘积在归一化频率和两个标准差除以时间SignalLength

    • 第二个元素指定了最高峰通带频率和必须小于或等于奈奎斯特频率。

    以2为底的对数频率上限的比值freqMax频率下限freqMin必须大于或等于1 /VoicesPerOctave:

    日志2(freqMax / freqMin)≥1 / VoicesPerOctave

    有关更多信息,请参见CWT频率限制

    获得归一化频率,您期望在赫兹频率除以赫兹的采样率。例如,如果采样率为1000 Hz和你想要的频率范围是[100400]赫兹,每个元素除以1000获得归一化频率:(100/1000、400/1000)

    仅适用于小波滤波器频率限制。如果您另外指定IncludeLowpass作为真正的,cwtLayer还包括低通滤波器(扩展)。

    请注意

    如果你使用深层网络设计师(深度学习工具箱)创建或编辑一个深度学习网络,改变小波财产的cwtLayer,应用程序不会改变的频率限制层。如果您希望应用程序提供默认频率限制适合新的小波,你必须采取额外措施。有关更多信息,请参见重置默认值频率限制深陷网络设计师

    数据类型:|

    莫尔斯波的时间带宽积,指定为一个积极的标量大于或等于3和小于或等于120。莫尔斯波的对称性(γ)固定在3。此属性时才有效小波“莫尔斯”。时间带宽积是忽略的“埃莫”“撞”小波。莫尔斯小波、时间带宽积越大、越分散小波在时间和更窄的小波的频率。

    的符号莫尔斯小波,TimeBandwidthP2

    数据类型:|

    层变换模式,指定为其中的一个:

    • “杂志”——CWT级

    • “squaremag”——CWT平方级

    • “realimag”沿着通道——CWT实部和虚部连接尺寸

    乘数为体重学习速率,指定为负的标量。权重是减少CWT过滤器值表示为1-by-1-by -Nr张量。看到cwtfilters2array获取详细信息。默认情况下,重量不更新培训。

    数据类型:|

    图层名称,指定为一个特征向量或字符串标量。为数组输入,trainNetwork(深度学习工具箱),assembleNetwork(深度学习工具箱),layerGraph(深度学习工具箱),dlnetwork(深度学习工具箱)函数自动分配名称层的名称

    数据类型:字符|字符串

    这个属性是只读的。

    输入层的数量。这一层只接受一个输入。

    数据类型:

    这个属性是只读的。

    输入层的名称。这一层只接受一个输入。

    数据类型:细胞

    这个属性是只读的。

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

    数据类型:

    这个属性是只读的。

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

    数据类型:细胞

    对象的功能

    filterbank 毛重CWT过滤器银行深入学习

    例子

    全部折叠

    创建一个类层的信号长度2000个样本。学习速率因子设置为1。

    粘土= cwtLayer (SignalLength = 2000, WeightLearnRateFactor = 1);

    创建一个三层dlnetwork类包含一个序列输入层,图层,和一个二维最大池层。

    sqLayer = sequenceInputLayer (Name =“输入”,最小长度= 2000);媒体播放器= maxPooling2dLayer(25[2],跨步= 12 [2]);层= [sqLayer粘土媒体播放器);dlnet = dlnetwork(层);

    运行一个批10个随机单通道信号通过dlnetwork

    dataout =前进(dlnet,dlarray (randn (1, 2000,“单身”),“认知行为治疗”));大小(dataout)
    ans =1×440 1 165
    dim (dataout)
    ans = ' SCBT '

    加载Espiga3脑电图数据集。脑电图采样的数据由23频道在200赫兹。有995个样本在每个通道。保存multisignal作为dlarray,指定的尺寸。dlarray排列的阵列尺寸“认知行为治疗”所期望塑造一个深度学习网络。

    负载Espiga3(N, nch) = (Espiga3)大小;x = dlarray (Espiga3“TCB”);谁Espiga3x
    类属性名称大小字节Espiga3 995 x 23 x1x995 183110 dlarray x23 183080双

    创建一个适合的CWT过滤器银行渠道的数据集。使用默认分析莫尔斯(60)小波。指定周期性边界条件。使用滤波器组获得的类的一个渠道。类是一个二维矩阵。行维度对应于规模,或频率,列维度对应时间。

    fb = cwtfilterbank (SignalLength = N,边界=“周期”);colInd = 11;cfs = wt (fb, Espiga3 (:, colInd));

    层变换模式-“杂志”

    创建一个类与EEG数据层,可以使用。默认情况下,层输出的绝对值类,或量图,每个通道。

    粘土= cwtLayer (SignalLength = N);

    创建一个两层的dlnetwork对象包含一个序列输入层和您刚才创建的CWT层。对待每个通道特性。指定长度的信号作为输入层最低序列长度。

    杀手= sequenceInputLayer (nch最小长度= N);层=(杀手粘土);dlnet = dlnetwork(层);

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

    向前dataout = (dlnet x);

    默认情况下,输出的cwtLayer是一个dlarray对象“SCBT”格式。空间维度对应于频率。网络的输出转换为一个数字数组。交换网络的维度与输出“STCB”格式。结果是一个三维数值数组,因为只有一个批处理。

    q = extractdata (dataout);q =排列(q, [1 4 2 3]);谁慢性疲劳综合症
    类属性名称大小字节cfs 71 x995 1130320双复杂问71 x995x23 6499340单身

    从输出结果对应于你选择的通道。与先前获得的CWT的绝对值。

    r = q (:,:, colInd);d = max (abs (r (:) abs (cfs (:))));str = sprintf (“区别:% g”d);流(“% s \ n”str)
    区别:8.86966 e-06
    次要情节(2,1,1)显示亮度图像(r)标题(“层输出”次要情节(2,1,2)显示亮度图像(abs (cfs))标题(“滤波器组输出”)

    图包含2轴对象。轴输出对象与标题1层包含一个类型的对象的形象。坐标轴对象2与滤波器组输出标题包含一个类型的对象的形象。

    层变换模式-“realimag”

    创建一个类层,可以使用的数据。指定层输出的类的实部和虚部。创建一个两层的dlnetwork对象包含一个序列输入层和CWT层。通过运行脑电图数据向前网络的方法。

    clayer2 = cwtLayer (SignalLength = N, TransformMode =“realimag”);layers2 =[杀手clayer2];dlnet2 = dlnetwork (layers2);向前dataout2 = (dlnet2 x);

    网络的输出转换为一个数字数组。交换网络的维度与输出“STCB”格式。因为输出类的实部和虚部,通道尺寸的大小是输入通道数的两倍。

    q2 = extractdata (dataout2);q2 =排列(q2, [1 4 2 3]);谁第二季
    类属性名称大小字节71年第二季度x995x46 12998680单

    选择一个频道。使用CWT滤波器组来获得类的频道。比较类的实部和虚部和从网络输出相应的结果。

    colInd = 23;cfs = wt (fb, Espiga3 (:, colInd));r = q2 (:,: [colInd nch + colInd]);a1 =实际(cfs);a2 = r (:,: 1);str1 = sprintf (“差(实部):% g”马克斯(abs (a1 (:) a2 (:))));a1 =图像放大(cfs);a2 = r (:: 2);str2 = sprintf (“差(图像放大部分):% g”马克斯(abs (a1 (:) a2 (:))));流(“% s \ n % s \ n”、str1 str2)
    差异(实部):7.102 e-05差异(图像放大部分):6.94453 e-05
    图次要情节(2 2 1)显示亮度图像(真实(cfs))标题(“过滤器”银行——真正的次要情节(2,2,2)显示亮度图像(r(:,: 1))标题(“层——真正的“次要情节(2,2,3)显示亮度图像(图像放大(cfs))标题(“过滤器”银行——图像放大次要情节(2,2,4)显示亮度图像(r(:,: 2))标题(“层-图像放大”)

    图包含4轴对象。坐标轴对象1标题过滤器银行——真正的包含一个类型的对象的形象。坐标轴对象与标题2层——真正包含一个类型的对象的形象。坐标轴对象3标题过滤器银行——图像放大包含一个类型的对象的形象。坐标轴对象与标题4层——图像放大包含一个类型的对象的形象。

    创建一个类层使用默认值。默认情况下,类层是信号长度的1024个样本。层使用分析莫尔斯(60)的小波变换与10每八度的声音和周期性边界条件。检查默认频率限制的层。频率限制,在单位的周期/样本,基于小波的能量传播,信号长度,每八度的声音。

    粘土= cwtLayer;clayer.FrequencyLimits
    ans =1×20.0032 - 0.4341

    使用filterbank层的方法来获得全重CWT滤波器组的层。每行包含一个过滤器的值。过滤器是下令从高中心频率低。

    psif = filterbank(粘土);谁psif
    类属性名称大小字节psif 71 x1024 290816单

    您可以确定通过创建一个中心频率cwtfilterbank对象,指定类中使用的相同的小波参数的层,然后使用centerFrequencies对象的功能。

    创建一个cwtfilterbank。默认的小波参数的CWT层完全相同。获得中心频率。的频率从高到低是有序的。情节的中心频率。

    fb = cwtfilterbank;cf = centerFrequencies (fb);次要情节(2,1,1)情节(cf) ylabel (“周期/样本”)标题(“小波中心频率”网格)次要情节(2,1,2)semilogy (cf)网格ylabel (“周期/样本”)标题(“半对数的规模”)

    图包含2轴对象。坐标轴对象1标题小波中心频率,ylabel周期/示例包含一个类型的对象。坐标轴对象与标题2半对数的规模,ylabel周期/示例包含一个类型的对象。

    情节表明小波中心频率并不像通常的线性间隔的情况下与其他过滤器银行。具体来说,中心频率指数下降。在连续小波分析,小波滤波器的中心频率是对数间隔。最常见的间隔是2 ^ (1 /NV),NV是声音的数量每倍频程,提高到整数的权力。换句话说,在CWT滤波器组,它是不可能连续的中心频率 f 1 f 2 ,在那里 f 1 < f 2 ,以满足 日志 2 ( f 2 / f 1 ) < 1 / N V 。CWT层中的频率限制您指定必须满足 日志 2 ( f 2 / f 1 ) 1 / N V

    CWT层使用10每八度的声音。连续计算以2为底的对数的比值对中心频率。确认结果的最大和最小值都等于1/10。

    cfRatio = log2 (cf (1: end-1)。/ cf(2:结束);(最小(cfRatio)最大(cfRatio))
    ans =1×20.1000 - 0.1000

    情节毛重CWT过滤器银行和中心频率。中心频率的峰值对应的频率响应每个小波滤波器组。

    slen = clayer.SignalLength;f = 0:1 / slen: 1 - 1 / slen;图绘制(f, psif”) xlim(1/2[0])包含(“周期/样本”)ylabel (“级”)标题(“全力过滤器银行”,“与中心频率”)举行情节(cf, 2 *(大小(psif, 1), 1),“软”)举行

    图包含一个坐标轴对象。坐标轴对象与标题毛重与中心频率,滤波器组包含周期/样本,ylabel级包含72行类型的对象。一个或多个行显示的值只使用标记

    如果您创建的CWT层不支持你的频率限制,试着增加声音的数量每八度层。金宝app有关更多信息,请参见实际使用连续小波变换时频分析的介绍连续和离散小波变换

    这个例子展示了如何重置默认值的极限频率改变后的小波cwtLayer深层网络设计师

    假设您正在编辑一个深度学习网络使用深层网络设计师。网络上有一个cwtLayer使用莫尔斯波,频率限制[0.1,0.3]

    starting-frequency-limits.png

    使用下拉列表来改变小波埃莫。不改变频率限制,但是权重的数量变化。

    change-wavelet.png

    改变频率限制合适的默认值埃莫小波,先做以下之一:

    • 删除FrequencyLimits0.1,0.3

    • 设置FrequencyLimits[]

    然后单击鼠标外FrequencyLimits编辑字段移动焦点。应用程序会自动填充FrequencyLimits使用默认值埃莫小波。权重的数量也在改变以反映新的限制。

    提示:如果你改变频率限制,后来想恢复默认值,遵循相同的步骤。

    new-frequency-limits.png

    更多关于

    全部展开

    版本历史

    介绍了R2022b

    另请参阅

    应用程序

    功能

    对象