主要内容

变换

变换信号数据存储

自从R2020a

描述

例子

transformDatastore=变换(sds,@fcn)创建一个新的数据存储转换输出函数。

transformDatastore=变换(sds,@fcn“IncludeInfo”,infoIn)包括返回的信息读取的sds

例子

全部折叠

sample_chirps文件夹包含示例文件包含在信号处理工具箱™。每个文件包含一个唧唧,随机采样率,fs,从100到150赫兹。创建一个指向四个信号数据存储文件sample_chirps并指定采样率变量的名称。

目录“sample_chirps”)文件= [“chirp_1.mat”,“chirp_4.mat”,“chirp_9.mat”,“chirp_10.mat”];sds = signalDatastore(文件、SampleRateVariableName =“fs”);

定义一个函数,这个函数的输出功能和计算并返回:

  • 唧唧的声音。

  • 相对应的向量的时间瞬间视窗化的中心部分。

  • 相对应的频率估计。

函数[dataOut, infoOut] = extractSpectrogram (dataIn信息)[dataOut F T] = pspectrum (dataIn info.SampleRate,“声谱图”,TimeResolution = 0.25,OverlapPercent = 40,泄漏= 0.8);infoOut =信息;infoOut。CenterFrequencies = F;infoOut。TimeInstants = T;结束

调用变换函数创建一个数据存储,计算每个唧唧喳喳的声谱图使用定义的函数。

sdsNew =变换(sds、@extractSpectrogram IncludeInfo = true);

尽管转换后的数据存储未读文件,读取新的数据存储和可视化三维空间的谱图。

t = tiledlayout (“流”);hasdata (sdsNew) nexttile[团体,infoOut] =阅读(sdsNew);瀑布(infoOut.TimeInstants infoOut.CenterFrequencies,团体)包含(“频率(赫兹)”)ylabel (“时间(S)”)视图([70])结束

图包含4轴对象。坐标轴对象1包含频率(赫兹),ylabel时间(S)包含一个补丁类型的对象。坐标轴对象2包含频率(赫兹),ylabel时间(S)包含一个补丁类型的对象。坐标轴对象3包含频率(赫兹),ylabel时间(S)包含一个补丁类型的对象。4轴对象包含频率(赫兹),ylabel时间(S)包含一个补丁类型的对象。

指定的路径四个信号包含的MATLAB®。一只小鸟唧唧喳喳的信号是录音,锣,一列火车,一个长条木板。所有信号采样在8192赫兹。

文件夹= fullfile (matlabroot,“工具箱”,matlab的,的音视频,(“chirp.mat”,“gong.mat”,“train.mat”,“splat.mat”]);

创建一个点的信号数据存储到指定的文件。每个文件包含的变量Fs表示采样率。

sds1 = signalDatastore(文件夹,“SampleRateVariableName”,“Fs”);

定义一个函数,这个函数的输出功能和计算信号的上、下信封使用样条插值在当地maxima隔开至少80个样本。每个信号的函数也返回样品时间。

函数[dataOut, infoOut] = signalEnvelope (dataIn信息)[dataOut (: 1), dataOut(:, 2)] =信封(dataIn, 80,“高峰”);infoOut =信息;infoOut。TimeInstants =(0:长度(dataOut) 1) / info.SampleRate;结束

调用变换函数创建第二个数据存储,sds2的信封,计算信号使用函数定义。

sds2 =变换(sds1 @signalEnvelope,“IncludeInfo”,真正的);

结合sds1sds2创建第三个数据存储。每一个调用函数相结合的数据存储返回一个矩阵有三列:

  • 第一列对应于原始信号。

  • 第二和第三列对应上下信封,分别。

sdsCombined =结合(sds1 sds2);

读取和显示原始数据和合并后的数据存储的上部和下部信封。使用extractBetween函数来提取文件名的文件路径。

tiledlayout (“流”)hasdata (sdsCombined) [dataOut infoOut] =阅读(sdsCombined);ts = infoOut {2} .TimeInstants;nexttile举行情节(ts dataOut (: 1),“颜色”,“# DCDCDC”,“线型”,“:”)情节(ts dataOut (: 2:3),“线宽”,1.5)包含(“时间(s)”)ylabel (“信号”)标题(extractBetween (infoOut {: 2} .FileName,“音视频\”,“.mat”))结束

图包含4轴对象。坐标轴对象1包含时间(s), ylabel信号包含3线类型的对象。坐标轴对象2包含时间(s), ylabel信号包含3线类型的对象。坐标轴对象3包含时间(s), ylabel信号包含3线类型的对象。4轴对象包含时间,ylabel信号包含3线类型的对象。

输入参数

全部折叠

指定sds作为一个signalDatastore对象。

函数变换数据,指定为一个函数处理。的签名函数依赖IncludeInfo参数。

  • 如果IncludeInfo被设置为(默认),函数变换的信号输出。的信息输出是不变的。

    转换函数必须有这个签名:

    函数dataOut = fcn (dataIn)结束

  • 如果IncludeInfo被设置为真正的,函数变换的信号输出,可以使用或修改返回的信息

    转换函数必须有这个签名:

    函数[dataOut, infoOut] = fcn(信号,infoIn)结束

通过定制的传递信息函数,指定为真正的。如果真正的,变换函数可以从使用或修改信息。如果未指定的,IncludeInfo默认为

数据类型:逻辑

输出参数

全部折叠

新的数据存储与定制,返回TransformedDatastoreUnderlyingDatastores设置为sds,转换设置为fcn,IncludeInfo设置为真正的

版本历史

介绍了R2020a