主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

labeledSignalSet

ラベル付き信号セットの作成

説明

labeledSignalSetを使用して,ラベル付き信号をラベル定義と共に保存します。signalLabelDefinitionを使用して,信号ラベル定義を作成します。

作成

説明

lss= labeledSignalSetは,空のラベル付き信号セットを作成します。セットに信号を追加するには,同时を使用します。セットにラベル定義を追加するには,addLabelDefinitionsを使用します。

lss= labeledSignalSet (srcは,入力データソースsrcのラベル付き信号セットを作成します。セットにラベル定義を追加するには,addLabelDefinitionsを使用します。

lss= labeledSignalSet (srclbldefsは,信号ラベル定義lbldefsを使用して入力データソースsrcのラベル付き信号セットを作成します。信号ラベル定義を作成するには,signalLabelDefinitionを使用します。

lss= labeledSignalSet (srclbldefs“MemberNames”,mnamesは,入力データソースsrcのラベル付き信号セットを作成して,セットのメンバーの名前を指定します。setMemberNamesを使用して,メンバー名を変更します。lbldefsはオプションです。

lss= labeledSignalSet (srclbldefs名称,值は,名前と値のペアを使用してプロパティを設定します。複数の名前と値のペアを指定できます。各プロパティ名を引用符で囲みます。lbldefsはオプションです。

入力引数

すべて展開する

入力データソース。行列、cell 配列、timetable、signalDatastoreオブジェクト,またはaudioDatastore(音频工具箱)オブジェクトとして指定します。srcは,セットのメンバー数,各メンバーの信号数,および各信号のデータを暗黙的に指定します。

例:randn(3) 10randn(17日9)}には2つのメンバーがあります。最初のメンバーには,10サンプルの信号が3つ含まれています。2番目のメンバーには,17サンプルの信号が9つ含まれています。

例:{{randn(10,1)}, {randn(1) 17randn(27日1)}}には2つのメンバーがあります。最初のメンバーには,10サンプルの信号が1つ含まれています。2番目のメンバーには,17サンプルの信号が1つと,27サンプルの信号が1つ含まれています。

例:{{时间表(1:10) ',randn(3) 10),时间表(1:7)”,randn(2) 7)}, {时间表(1:3)”,randn(1))}}には2つのメンバーがあります。最初のメンバーには,1 Hzで10秒間サンプリングされた信号が3つと,1 Hzで7秒間サンプリングされた信号が2つ含まれています。2番目のメンバーには,1 Hzで3秒間サンプリングされた信号が1つ含まれています。

例:ファイルを示すsignalDatastoreオブジェクト

MATLAB®に垫ファイルとして含まれているサンプル音声信号セットへのパスを指定します。各ファイルには,信号変数とサンプルレートが格納されています。ファイル名をリストします。

文件夹= fullfile (matlabroot,“工具箱”“matlab”“音视频”);lst = dir(添加文件夹,“/ * .mat”));nms = {lst (:) . name}’
nms =7 x1细胞{的唧唧声。垫的}{'gong.mat' } {'handel.mat' } {'laughter.mat'} {'mtlb.mat' } {'splat.mat' } {'train.mat' }

指定したフォルダーを示す信号データストアを作成します。サンプルレート変数名をFsに設定します。これは,すべてのファイルで共通です。ファイルmtlb.matを除くデータストアのサブセットを生成します。これは,信号変数がyと呼ばれないという点で他のファイルとは異なっています。

sds = signalDatastore(文件夹,“SampleRateVariableName”“Fs”);sdss =子集(sds ~ strcmp (nms,“mtlb.mat”));

サブセットデータストアをlabeledSignalSetオブジェクトのソースとして使用します。

lss = labeledSignalSet (sdss)
lss = labeledSignalSet with properties: Source: [1x1 signalDatastore] NumMembers: 6 TimeInformation: "inherent" Labels: [6x0 table] Description: ""使用labelDefinitionsHierarchy查看标签和子标签的列表。使用setLabelValue将数据添加到集合。

ラベル定義。signalLabelDefinitionオブジェクトのベクトルとして指定します。

メンバー名。文字ベクトル、string スカラー、文字ベクトルの cell 配列、または string 配列として指定します。

例:labeledSignalSet ({randn (100 1) randn (10,1)}, MemberNames,{“骆驼”“羊驼”})は2つのメンバー,“骆驼”および“羊驼”をもつランダム信号のセットを指定します。

プロパティ

すべて展開する

ラベル付き信号セットの説明。文字ベクトルまたは string スカラーとして指定します。

例:“描述”,“根据性别和年龄对患者进行睡眠测试”

データ型:字符|字符串

このプロパティは読み取り専用です。

サンプルレート値。正のスカラーまたはベクトルとして指定します。このプロパティは、データ ソースに固有の時間情報が含まれていない場合にのみ有効です。

  • ラベル付きセットのすべての信号に同じサンプルレートを指定するには,SampleRateを正の数値スカラーに設定します。

  • ラベル付きセットの各メンバーが,メンバーごとに異なるサンプルレートでサンプリングされた信号を持つように指定するには,SampleRateをベクトルに設定します。このベクトルの要素数は,セットのメンバー数と等しくなければなりません。セットのメンバーが異なるサンプルレートの信号を持つ場合は,时间表を使用してサンプルレートを指定します。

例:“SampleRate”,[1 e2 e3]は,セットの最初のメンバーの信号が100 Hzのレートでサンプリングされ,2番目のメンバーの信号が1 kHzでサンプリングされることを指定します。

このプロパティは読み取り専用です。

サンプル時間値。正のスカラー、ベクトル、持续时间スカラー,または持续时间ベクトルとして指定します。このプロパティは,データソースに固有の時間情報が含まれていない場合にのみ有効です。

  • ラベル付きセットのすべての信号に同じサンプル時間を指定するには,SampleTimeを数値スカラーまたは持续时间スカラーに設定します。

  • ラベル付きセットの各メンバーがサンプル間の時間間隔が等しい信号を持ち,メンバーごとに間隔が異なることを指定するには,SampleTimeを数値ベクトルまたは持续时间ベクトルに設定します。このベクトルの要素数は,セットのメンバー数と等しくなければなりません。セットのメンバーが異なるサンプル時間の信号を持つ場合は,时间表を使用してサンプル時間を指定します。

例:“SampleTime”,秒([1依照1 e - 3])は,セットの最初のメンバーの信号はサンプル間の間隔が0.01秒で,2番目のメンバーの信号はサンプル間の間隔が1ミリ秒であることを指定します。

このプロパティは読み取り専用です。

時間値。ベクトル,持续时间ベクトル行,列,または细胞配列として指定します。このプロパティは,データソースに固有の時間情報が含まれていない場合にのみ有効です。時間値は一意で,増加しなければなりません。

  • ラベル付きセットのすべての信号に同じ時間値を指定するには,时间价值を数値ベクトルまたは持续时间ベクトルに設定します。ベクトルはセット内のすべての信号と同じ長さでなければなりません。

  • ラベル付きセットの各メンバーが同じ時間値の信号を持ち,メンバーごとに時間値が異なることを指定するには,时间价值を数値行列または持续时间行列または细胞配列に設定します。

    • 时间价值が行列の場合は,列数がセットのメンバー数と等しくなければなりません。セット内のすべての信号は,長さが行列の行数と等しくなければなりません。

    • 时间价值が细胞配列の場合は,含まれるベクトル数がセットのメンバー数と等しくなければなりません。メンバー内のすべての信号は,長さが细胞配列内の対応するベクトルの要素数と等しくなければなりません。

セットのメンバーが異なる時間値の信号を持つ場合は,时间表を使用して時間値を指定します。

例:“时间价值”,[1:1000;0:1/500:2-1/500]は,セットの最初のメンバーの信号が1 Hzで1000秒間サンプリングされることを指定します。2番目のメンバーの信号は,500 Hzで2秒間サンプリングされます。

例:“时间价值”,秒([1:1000;0:1/500:2-1/500]”)は,セットの最初のメンバーの信号が1 Hzで1000秒間サンプリングされることを指定します。2番目のメンバーの信号は,500 Hzで2秒間サンプリングされます。

例:“时间价值”,{1:1000,0:1/500:2-1/500}は,セットの最初のメンバーの信号が1 Hzで1000秒間サンプリングされることを指定します。2番目のメンバーの信号は,500 Hzで2秒間サンプリングされます。

例:“时间价值”,{秒(1:1000),秒(0:1/500:2-1/500)}は,セットの最初のメンバーの信号が1 Hzで1000秒間サンプリングされることを指定します。2番目のメンバーの信号は,500 Hzで2秒間サンプリングされます。

このプロパティは読み取り専用です。

セット内のメンバー数。正の整数として指定します。

このプロパティは読み取り専用です。

ラベルテーブル。MATLAB®の表として指定します。标签の各変数は,セットに定義されたラベルに対応しています。标签の各行は,データソースのメンバーに対応しています。标签の行名は,メンバー名です。

データ型:表格

ソースの時間情報。次のいずれかに指定します。

  • “没有”——ソース内の信号に時間情報がありません。

  • “sampleRate”——ソース内の信号は,指定されたレートでサンプリングされます。

  • “sampleTime”——ソース内の信号は,指定されたサンプル間の時間間隔を持ちます。

  • 的时间价值——ソース内の信号は,各サンプルに対応する時間値を持ちます。

  • “固有的”——ソース内の信号に,固有の時間情報が含まれます。このような信号の例には,MATLABの时间表があります。

データ型:字符|字符串

このプロパティは読み取り専用です。

ラベル付き信号セットのデータソース。行列、timetable、cell 配列、またはオーディオ データストアとして指定します。

  • が数値行列の場合,ラベル付き信号セットには,行列の列数に等しい信号数を含む1つのメンバーがあります。

    例:3) labeledSignalSet (randn(10日)では10サンプルの信号を3つ含む1つのメンバーがあります。

  • が行列の细胞配列の場合,ラベル付き信号セットのメンバー数は,细胞配列内の行列数と等しくなります。各メンバーには,対応する行列の列数に等しい信号数が含まれます。

    例:labeledSignalSet ({randn (10, 3), randn(17日9)})には2つのメンバーがあります。最初のメンバーには,10サンプルの信号が3つ含まれています。2番目のメンバーには,17サンプルの信号が9つ含まれています。

  • が细胞配列で、细胞配列の各要素が数値ベクトルの细胞配列である場合,ラベル付き信号セットのメンバー数は,细胞配列の要素数と等しくなります。メンバー内の各信号は,任意の長さを持つことができます。

    例:labeledSignalSet ({{randn (10,1)}, {randn(17日1),randn(27日1)}})には2つのメンバーがあります。最初のメンバーには,10サンプルの信号が1つ含まれています。2番目のメンバーには,17サンプルの信号が1つと,27サンプルの信号が1つ含まれています。

  • が数値を含む変数を持つ时间表の場合,ラベル付き信号セットには,変数の数に等しい信号数を含む1つのメンバーがあります。时间表の時間値は,型が持续时间で,一意であり,増加しなければなりません。

    例:labeledSignalSet(时间表(秒(1:10)”,randn (10, 3)))では1 Hzで10秒間サンプリングされた信号を3つ含む1つのメンバーがあります。

  • が时间表の细胞配列で,各时间表が任意の数の数値を持つ変数を持つ場合,ラベル付き信号セットのメンバー数は,时间表の数と等しくなります。各メンバーには,対応する时间表の変数の数に等しい信号数が含まれます。

    例:labeledSignalSet({时间表(秒(1:10),randn(10, 3)),时间表(秒(1:5)',randn (13))})には2つのメンバーがあります。最初のメンバーには,1 Hzで10秒間サンプリングされた信号が3つ含まれています。2番目のメンバーには,1 Hzで5秒間サンプリングされた信号が13個含まれています。

  • が细胞配列で、细胞配列の各要素が时间表の细胞配列である場合,ラベル付き信号セットのメンバー数は,细胞配列の要素数と等しくなります。各メンバーは任意の数の时间表を持つことができ,メンバー内の各时间表は任意の数の変数を持てます。

    例:labeledSignalSet({{时间表(秒(1:10)”,randn(10, 3)),时间表(秒(1:7)”,randn(7, 2))},{时间表(秒(1:3),randn (3,1))}})には2つのメンバーがあります。最初のメンバーには,1 Hzで10秒間サンプリングされた信号が3つと,1 Hzで7秒間サンプリングされた信号が2つ含まれています。2番目のメンバーには,1 Hzで3秒間サンプリングされた信号が1つ含まれています。

  • 入力データソースsrcがオーディオデータストアの場合,ラベル付き信号セットのメンバー数は,データストアが示すファイルの数と等しくなります。プロパティには,ファイル名を持つ文字ベクトルの细胞配列が含まれます。各メンバーには,対応するデータストアファイルの読み取りによって返されたすべての信号が含まれます。

オブジェクト関数

addLabelDefinitions ラベル付き信号セットへのラベル定義の追加
同时 ラベル付き信号セットへのメンバーの追加
editLabelDefinition ラベル定義のプロパティの編集
getLabelDefinitions ラベル付き信号セットのラベル定義の取得
getLabeledSignal ラベル付き信号セットからのラベル付き信号の取得
getLabelNames ラベル付き信号セットのラベル名の取得
getLabelValues ラベル付き信号セットからのラベル値の取得
getMemberNames ラベル付き信号セットのメンバー名の取得
getSignal ラベル付き信号セットからの信号の取得
ラベルテーブルの先頭の行の取得
labelDefinitionsHierarchy ラベル名とサブラベル名の階層リストの取得
labelDefinitionsSummary 信号ラベル定義の概要テーブルの取得
合并 2つ以上のラベル付き信号セットのマージ
removeLabelDefinition ラベル付き信号セットからのラベル定義の削除
removeMembers ラベル付き信号セットからのメンバーの削除
removePointValue 点ラベルからの行の削除
removeRegionValue ROIラベルからの行の削除
resetLabelValues 既定値へのラベルのリセット
setLabelValue ラベル付き信号セットのラベル値の設定
setMemberNames ラベル付き信号セットのメンバー名の設定
子集 メンバーのサブセットを持つ新しいラベル付き信号セットの取得

すべて折りたたむ

クジラの声の録音のセットについて考えてみましょう。録音されたクジラの声は,ふるえ声とうめき声で構成されています。“ふるえ声“の音声は一連のクリックに似ています。“うめき声“は船の警笛による音声に似た低周波数の鳴き声です。各信号を確認してラベルを付けて,クジラの種類,ふるえ声の領域,およびうめき声の領域を識別します。また,ふるえ声の各領域では,特定のしきい値よりも高い信号ピークにラベルを付けます。

信号ラベル定義

クジラの種類を格納する属性ラベルを定義します。使用するカテゴリは,蓝鲸、座头鲸、および白鲸です。

dWhaleType = signalLabelDefinition (“WhaleType”...“LabelType”“属性”...“LabelDataType”“分类”...“类别”, (“蓝色”“座头鲸”“白色”],...“描述”“鲸鱼类型”);

うめき声の領域を取得するための関心領域(ROI)ラベルを定義します。ふるえ声の領域を取得するための別のROIラベルを定義します。

dMoans = signalLabelDefinition (“MoanRegions”...“LabelType”“投资回报”...“LabelDataType”“逻辑”...“描述”“发出呻吟声的区域”);dTrills = signalLabelDefinition (“TrillRegions”...“LabelType”“投资回报”...“LabelDataType”“逻辑”...“描述”“颤音发生的区域”);

最後に,ふるえ声のピークを取得するための点ラベルを定義します。このラベルは,dTrills定義のサブラベルとして設定します。

dTrillPeaks = signalLabelDefinition (“TrillPeaks”...“LabelType”“点”...“LabelDataType”“数字”...“描述”“颤音峰”);dTrills。Sublabels = dTrillPeaks;

ラベル付き信号セット

クジラの信号とラベル定義を使用して,labeledSignalSetを作成します。クジラの種類,うめき声とふるえ声の領域,およびふるえ声のピークを識別するためのラベル値を追加します。

负载labelwhalesignalslbldefs = [dWhaleType dMoans dTrills];lss = labeledSignalSet({whale1 whale2},lbldefs,“MemberNames”,{“Whale1”“Whale2”},...“SampleRate”Fs,“描述”“描述波浪歌曲区域”);

labelDefinitionsHierarchyおよびlabelDefinitionsSummaryを使用して,ラベル階層とラベルのプロパティを可視化します。

labelDefinitionsHierarchy (lss)
ans = 'WhaleType子标签:[]MoanRegions子标签:[]TrillRegions子标签:TrillPeaks '
labelDefinitionsSummary (lss)
ans =3×9表LabelName LabelType LabelDataType类别ValidationFunction DefaultValue Sublabels标签描述  ______________ ___________ _____________ ____________ __________________ ____________ ___________________________ ___ ____________________________ " WhaleType”“属性”“分类”{3 x1字符串}{【“N / A”】}{0 x0双}{0 x0双}””“鲸鱼输入"MoanRegions" "roi" "logical" {["N/A"]} {0x0 double} {0x0 double} {0x0 double} "" "发生呻吟的区域"" TrillRegions" "roi" "" logical" {["N/A"]} {0x0 double} {0x0 double} {1x1 signalLabelDefinition} ""发生颤音的区域"

読み込まれたデータの信号は,2匹のシロナガスクジラの歌に対応しています。両方の信号に“WhaleType”値を設定します。

setLabelValue (lss 1“WhaleType”“蓝”);setLabelValue (lss 2“WhaleType”“蓝”);

“标签”プロパティを可視化します。この表には,両方の信号に新しく追加された“WhaleType”値が含まれています。

lss。标签
ans =2×3表WhaleType MoanRegions TrillRegions _________ ___________ ____________ Whale1 blue {0x2 table} {0x3 table} Whale2 blue {0x2 table} {0x3 table}

領域ラベルの可視化

クジラの歌を可視化して,ふるえ声とうめき声の領域を特定します。

次要情节(2,1,1)情节((0:长度(whale1) 1) / Fs, whale1) ylabel (“鲸鱼1”) subplot(2,1,2) plot((0:length(whale2)-1)/Fs,whale2) ylabel(《鲸鱼2》

うめき声の領域は持続した低周波数のうめき声です。

  • whale1には約7秒,12秒,17秒で中央揃えされたうめき声があります。

  • whale2には約3秒7秒16秒で中央揃えされたうめき声があります。

ラベル付きセットにうめき声の領域を追加します。秒単位のROI範囲とラベル値を指定します。

moanRegionsWhale1 = [6.1 7.7;11.4 - 13.1;16.5 - 18.1);mrsz1 = [size(moanRegionsWhale1,1) 1];setLabelValue (lss 1“MoanRegions”、moanRegionsWhale1真实(mrsz1));moanRegionsWhale2 = [2.5 3.5;5.8 8;15.4 - 16.7);mrsz2 = [size(moanRegionsWhale2,1) 1];setLabelValue (lss 2“MoanRegions”、moanRegionsWhale2真实(mrsz2));

ふるえ声の領域にはサイレンスで区切られた異なるバーストの音声があります。

  • whale1には約2秒で中央揃えされたふるえ声があります。

  • whale2には約12秒で中央揃えされたふるえ声があります。

ラベル付きセットにふるえ声の領域を追加します。

trillRegionWhale1 = [1.4 3.1];trsz1 = [size(trillRegionWhale1,1) 1];setLabelValue (lss 1“TrillRegions”、trillRegionWhale1真实(trsz1));trillRegionWhale2 = [11.1 13];trsz2 = [size(trillRegionWhale1,1) 1];setLabelValue (lss 2“TrillRegions”、trillRegionWhale2真实(trsz2));

各クジラの歌についてsignalMaskオブジェクトを作成し,それを使用してさまざまな領域を可視化してラベルを付けます。より見やすくなるように,ラベル値を逻辑から直言に変更します。

mr1 = getLabelValues (lss 1“MoanRegions”);mr1。值=分类(repmat (“呻吟”mrsz1));tr1 = getLabelValues (lss 1“TrillRegions”);tr1。值=分类(repmat (“颤音”trsz1));msk1 = signalMask ([mr1; tr1],“SampleRate”Fs);次要情节(2,1,1)plotsigroi msk1, whale1 ylabel (“鲸鱼1”)举行mr2 = getLabelValues (lss 2“MoanRegions”);mr2。值=分类(repmat (“呻吟”mrsz2));tr2 = getLabelValues (lss 2“TrillRegions”);tr2。值=分类(repmat (“颤音”trsz2));msk2 = signalMask ([mr2; tr2],“SampleRate”Fs);次要情节(2,1,2)plotsigroi msk2, whale2 ylabel (《鲸鱼2》)举行

点ラベルの可視化

ふるえ声の各領域の3つのピークにラベルを付けます。点ラベルでは,点の位置とラベル値を指定します。この例では,点の位置は秒単位です。

peakLocsWhale1 = [1.553 1.626 1.7];peakValsWhale1 = [0.211 0.254 0.211];setLabelValue (lss 1“TrillRegions”“TrillPeaks”],...peakLocsWhale1 peakValsWhale1,“LabelRowIndex”1);次要情节(2,1,1)情节(peakLocsWhale1 peakValsWhale1,“v”)举行peakLocsWhale2 = [11.214 11.288 11.437];peakValsWhale2 = [0.119 0.14 0.15];setLabelValue (lss 2“TrillRegions”“TrillPeaks”],...peakLocsWhale2 peakValsWhale2,“LabelRowIndex”1);次要情节(2,1,2)情节(peakLocsWhale2 peakValsWhale2,“v”)举行

ラベル値の確認

getLabelValuesを使用してラベル値を確認します。

getLabelValues (lss)
ans =2×3表Whale1 blue {3x2 table} {1x3 table} Whale2 blue {3x2 table} {1x3 table}

ラベル付きセットの最初のメンバーのうめき声の領域を取得します。

getLabelValues (lss 1“MoanRegions”
ans =3×2表ROILimits价值  ____________ _____ 11.4 - 13.1 6.1 - 7.7 {[1]} {[1]} 16.5 - 18.1 {[1]}

2番目の出力引数を使用して,ラベルのサブラベルを一覧表示します。

(价值,valueWithSublabel) = getLabelValues (lss 1“TrillRegions”
值=1×2表ROILimits值__________ _____ 1.4 3.1 {[1]}
valueWithSublabel =1×3表ROILimits价值Sublabels TrillPeaks  __________ _____ ___________ 1.4 - 3.1 {[1]} {3 x2表}

サブラベル内の値を取得するには,ラベル名を2要素の配列として表します。

getLabelValues (lss 1“TrillRegions”“TrillPeaks”])
ans =3×2表位置值  ________ __________ 1.553 {[0.2110]} 1.626 1.7 {[0.2540]} {[0.2110]}

セットの2番目のメンバーに対応する,3番目のふるえ声のピークの値を検索します。

getLabelValues (lss 2“TrillRegions”“TrillPeaks”],...“LabelRowIndex”,1,“SublabelRowIndex”3)
ans =1×2表位置值  ________ __________ 11.437 {[0.1500]}

参考

アプリ

オブジェクト

R2018bで導入