主要内容gydF4y2Ba

stftLayergydF4y2Ba

短时间傅里叶变换层gydF4y2Ba

描述gydF4y2Ba

STFT层计算输入的短时傅里叶变换。gydF4y2Ba使用这一层需要深度学习工具箱™。gydF4y2Ba

创建gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

层gydF4y2Ba= stftLayergydF4y2Ba创建一个gydF4y2Ba短时傅里叶变换gydF4y2Ba(STFT)层。的输入gydF4y2BastftLayergydF4y2Ba一定是gydF4y2BadlarraygydF4y2Ba(深度学习工具箱)gydF4y2Ba对象gydF4y2Ba“认知行为治疗”gydF4y2Ba的长度大于时间维度的大小的格式gydF4y2Ba窗口gydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

层gydF4y2Ba= stftLayer (gydF4y2Ba名称=值gydF4y2Ba)gydF4y2Ba使用名称-值参数指定可选参数。您可以指定分析窗口和输出的格式等等。gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

STFTgydF4y2Ba

此属性是只读的。gydF4y2Ba

分析窗口用于计算STFT,指定为具有两个或多个元素的向量。gydF4y2Ba

例子:gydF4y2Ba(1-cos(2 *π* (0:127)/ 127))/ 2gydF4y2Ba而且gydF4y2Ba损害gydF4y2Ba(128)gydF4y2Ba都指定了长度为128的Hann窗口。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

此属性是只读的。gydF4y2Ba

重叠样本数,指定为严格小于长度的正整数gydF4y2Ba窗口gydF4y2Ba.gydF4y2Ba

连续窗口之间的步幅是窗口长度与重叠样本数量之差。gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

此属性是只读的。gydF4y2Ba

用于计算离散傅里叶变换的频率点数,指定为大于或等于窗口长度的正整数。如果未指定,该参数默认为窗口的长度。gydF4y2Ba

如果输入数据在时间维上的长度小于DFT点的数量,gydF4y2BastftLayergydF4y2Ba对数据和窗口右补零,使它们的长度等于gydF4y2BaFFTLengthgydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

图层转换模式,指定为以下其中之一:gydF4y2Ba

  • “杂志”gydF4y2Ba- STFT幅度gydF4y2Ba

  • “squaremag”gydF4y2Ba- STFT平方大小gydF4y2Ba

  • “logmag”gydF4y2Ba- STFT幅度的自然对数gydF4y2Ba

  • “logsquaremag”gydF4y2Ba- STFT平方幅度的自然对数gydF4y2Ba

  • “realimag”gydF4y2Ba- STFT的实部和虚部,沿着通道维度连接gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

层输出模式,指定为以下之一:gydF4y2Ba

  • “时空”gydF4y2Ba-将输出格式化为1-D图像序列,其中图像高度对应于频率,第二维对应于通道,第三维对应于批量,第四维对应于时间。gydF4y2Ba

    您可以使用此输出模式来提供的输出gydF4y2BastftLayergydF4y2Ba当你想要沿着频率进行卷积的时候。有关更多信息,请参见gydF4y2Baconvolution1dLayergydF4y2Ba(深度学习工具箱)gydF4y2Ba.gydF4y2Ba

  • “空间”gydF4y2Ba-将输出格式化为二维图像序列,其中图像高度对应于频率,图像宽度对应于时间。第三和第四个维度分别对应通道和批处理。gydF4y2Ba

    您可以使用此输出模式来提供的输出gydF4y2BastftLayergydF4y2Ba当你想沿着两个空间维度进行卷积的时候。有关更多信息,请参见gydF4y2Baconvolution2dLayergydF4y2Ba(深度学习工具箱)gydF4y2Ba.gydF4y2Ba

  • “时间”gydF4y2Ba-格式化输出为1-D序列。此格式采用gydF4y2Ba“时空”gydF4y2Ba输出格式,并将图像高度压扁为通道维度。STFT输出的第二个维度对应于批处理,第三个维度对应于时间。gydF4y2Ba

    您可以使用此输出模式来提供的输出gydF4y2BastftLayergydF4y2Ba当你想要沿着时间进行卷积的时候。有关更多信息,请参见gydF4y2Baconvolution1dLayergydF4y2Ba(深度学习工具箱)gydF4y2Ba.您也可以使用这种输出模式来使用gydF4y2BastftLayergydF4y2Ba作为循环神经网络的一部分。有关更多信息,请参见gydF4y2BalstmLayergydF4y2Ba(深度学习工具箱)gydF4y2Ba而且gydF4y2BagruLayergydF4y2Ba(深度学习工具箱)gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

层gydF4y2Ba

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

数据类型:gydF4y2Ba双gydF4y2Ba|gydF4y2Ba单gydF4y2Ba

层名,指定为字符向量或字符串标量。为gydF4y2Ba层gydF4y2Ba数组输入时,gydF4y2BatrainNetworkgydF4y2Ba,gydF4y2BaassembleNetworkgydF4y2Ba,gydF4y2BalayerGraphgydF4y2Ba,gydF4y2BadlnetworkgydF4y2Ba函数自动为具有name的层分配名称gydF4y2Ba”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

此属性是只读的。gydF4y2Ba

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

数据类型:gydF4y2Ba双gydF4y2Ba

此属性是只读的。gydF4y2Ba

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

数据类型:gydF4y2Ba细胞gydF4y2Ba

此属性是只读的。gydF4y2Ba

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

数据类型:gydF4y2Ba双gydF4y2Ba

此属性是只读的。gydF4y2Ba

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

数据类型:gydF4y2Ba细胞gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

生成一个采样频率为600hz的信号,持续2秒。该信号由具有正弦变化频率内容的啁啾组成。将信号存储在深度学习数组中gydF4y2Ba“施”gydF4y2Ba格式。gydF4y2Ba

Fs = 6e2;X = vco(sin(2*pi*(0:1/fs:2)),[0.1 0.4]*fs,fs);DLX = dlarray(x,gydF4y2Ba“施”gydF4y2Ba);gydF4y2Ba

创建一个具有默认属性的短时傅里叶变换层。创建一个gydF4y2BadlnetworkgydF4y2Ba由序列输入层和短时傅里叶变换层组成的对象。指定最小序列长度为128个样本。让信号通过gydF4y2Ba预测gydF4y2Ba网络的方法。gydF4y2Ba

ftl = stftLayer;dlnet = dlnetwork([sequenceInputLayer(1,MinLength=128) ftl]);Netout =预测(dlnet,dlx);gydF4y2Ba

将网络输出转换为数字数组。使用gydF4y2Ba挤压gydF4y2Ba函数删除长度为1的通道和批处理尺寸。画出STFT的大小。数组的第一个维度对应频率,第二个维度对应时间。gydF4y2Ba

Q = extractdata(netout);瀑布(挤压(q)的)设置(gca XDir =gydF4y2Ba“反向”gydF4y2Ba,View=[30 45]) xlabel(gydF4y2Ba“频率”gydF4y2Ba) ylabel (gydF4y2Ba“时间”gydF4y2Ba)gydF4y2Ba

图中包含一个轴对象。axis对象包含一个patch类型的对象。gydF4y2Ba

生成一个3 × 160 (× 1)数组,其中包含一批三通道,160个样本的正弦信号。归一化正弦波频率为gydF4y2BaπgydF4y2Ba/ 4 rad /样本,gydF4y2BaπgydF4y2Ba/2 rad/sample, 3gydF4y2BaπgydF4y2Ba/ 4 rad /样品。将信号保存为agydF4y2BadlarraygydF4y2Ba,按顺序指定尺寸。gydF4y2BadlarraygydF4y2Ba将数组尺寸排列到gydF4y2Ba“认知行为治疗”gydF4y2Ba深度学习网络所期望的形状。gydF4y2Ba

NCH = 3;N = 160;x = dlarray(cos(pi.*(1:nch)'/4*(0:N-1)),gydF4y2Ba“施”gydF4y2Ba);gydF4y2Ba

创建一个可以用于正弦信号的短时傅里叶变换层。指定一个64个样本的矩形窗口,相邻窗口之间的48个重叠样本,以及1024个DFT点。指定图层输出模式为gydF4y2Ba“空间”gydF4y2Ba.缺省情况下,该层输出STFT的幅值。gydF4y2Ba

stfl = stftLayer(窗口=rectwin(64),gydF4y2Ba...gydF4y2BaOverlapLength = 48岁gydF4y2Ba...gydF4y2BaFFTLength = 1024,gydF4y2Ba...gydF4y2BaOutputMode =gydF4y2Ba“空间”gydF4y2Ba);gydF4y2Ba

创建两层gydF4y2BadlnetworkgydF4y2Ba对象,其中包含序列输入层和刚刚创建的STFT层。将正弦信号的每个通道视为一个特征。指定信号长度为输入层的最小序列长度。gydF4y2Ba

layers = [sequenceInputLayer(nch,MinLength=N) stfl];Dlnet = dlnetwork(层);gydF4y2Ba

让正弦信号通过gydF4y2Ba向前gydF4y2Ba网络的方法。gydF4y2Ba

Dataout = forward(dlnet,x);gydF4y2Ba

将网络输出转换为数字数组。使用gydF4y2Ba挤压gydF4y2Ba函数折叠大小为1的批处理维度。在瀑布图中分别为每个通道绘制STFT幅度。gydF4y2Ba

Q = squeeze(extractdata(dataout));gydF4y2Ba为gydF4y2BaKj = 1:nch subplot(nch,1, Kj) waterfall(q(:,:, Kj)') view(30,45) zlabel(gydF4y2Ba“Ch。”gydF4y2Ba+字符串(kj))gydF4y2Ba结束gydF4y2Ba

图中包含3个轴对象。Axes对象1包含一个patch类型的对象。Axes对象2包含一个patch类型的对象。Axes对象3包含一个patch类型的对象。gydF4y2Ba

更多关于gydF4y2Ba

全部展开gydF4y2Ba

版本历史gydF4y2Ba

R2021b中引入gydF4y2Ba

另请参阅gydF4y2Ba

应用程序gydF4y2Ba

对象gydF4y2Ba

功能gydF4y2Ba

主题gydF4y2Ba