Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

信号ラベラーへのデータのインポート

次の 3 つのいずれかの方法で信号ラベラーにメンバーをインポートして、ラベル付き信号セットを作成します。

  1. MATLAB ワークスペースからの信号のインポート — 各信号をメンバーとしてインポートし、個別にラベル付けする。または、ラベル付き信号セットをインポートする。

  2. ファイルからの信号のインポート — 各ファイルをメンバーとしてインポートし、ファイルに含まれるすべての信号にまとめてラベル付けする。

  3. Import and Play Audio File Data in Signal Labeler — オーディオ ファイルとフォルダーをインポートする (Audio Toolbox™ のライセンスが必要です)。

サポートされている信号タイプ

信号ラベラー アプリは、実数値または複素数値のベクトル、行列、MATLAB® の timetable、labeledSignalSet オブジェクト、および signalDatastore オブジェクトを処理します。アプリは MAT ファイルと CSV ファイルもサポートしています。

メモ

信号ラベラーは、以下をサポートしていません。

  • InfNaN の値をもつ信号、多次元配列、スパース行列

  • 複素数値ラベルか、"table" または "timetable" として指定された LabelDataType のラベルを含む labeledSignalSet オブジェクト

  • 例:数値配列

    num = cos(pi./[4;2]*(0:159))'+randn(160,2);
    ホワイト ノイズに組み込まれた正弦波で構成される 2 チャネル信号を指定します。指定しない限り、信号には時間情報が含まれません。信号ラベラーで、サンプルの信号をインポートしたり、インポート時に時間情報を追加したりすることができます。

  • 例:MATLAB timetable

    tt1 = timetable(num,'SampleRate',100);
    tt2 = timetable(seconds((0:159)'/100),num);
    どちらも、ノイズを含む 2 チャネルの正弦波を 100 Hz でサンプリングすることを指定します。詳細については、timetable のドキュメンテーションを参照してください。

  • 例:labeledSignalSet オブジェクト

    lss = labeledSignalSet(num);
    ノイズを含む正弦波がサンプル内にあることを指定します。

  • 例:時間情報をもつ labeledSignalSet オブジェクト

    lst1 = labeledSignalSet(num,'SampleRate',100);
    lst2 = labeledSignalSet(timetable(seconds((0:159)'/100),num));
    どちらも、ノイズを含む正弦波を 100 Hz でサンプリングすることを指定します。

  • 例:多重信号のメンバー

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

    mst = labeledSignalSet({{timetable(seconds(1:10)',randn(10,3))}, ...
        {timetable(seconds(1:7)',randn(7,2)), ...
        timetable(randn(30,1),'SampleRate',100)}});
    2 つのメンバーがあります。最初のメンバーには、1 Hz で 10 秒間サンプリングされた信号が 3 つ含まれています。2 番目のメンバーには、1 Hz で 7 秒間サンプリングされた信号が 2 つと、100 Hz でサンプリングされた 30 サンプルの信号が 1 つ含まれています。

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

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

    folder = fullfile(matlabroot,"toolbox","matlab","audiovideo");
    lst = dir(append(folder,"/*.mat"));
    nms = {lst(:).name}'
    nms = 7x1 cell
        {'chirp.mat'   }
        {'gong.mat'    }
        {'handel.mat'  }
        {'laughter.mat'}
        {'mtlb.mat'    }
        {'splat.mat'   }
        {'train.mat'   }
    
    

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

    sds = signalDatastore(folder,"SampleRateVariableName","Fs");
    sdss = subset(sds,~strcmp(nms,"mtlb.mat"));

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

    lss = labeledSignalSet(sdss)
    lss = 
      labeledSignalSet with properties:
    
                 Source: [1x1 signalDatastore]
             NumMembers: 6
        TimeInformation: "inherent"
                 Labels: [6x0 table]
            Description: ""
    
     Use labelDefinitionsHierarchy to see a list of labels and sublabels.
     Use setLabelValue to add data to the set.
    
    

配色の選択

信号ラベラーにインポートするラベルと信号の配色を選択できます。インポート ダイアログで、[ラベルと信号の配色] リストからオプションを選択します。

  • 異なる色を使用 — ラベルと信号を異なる色で表示します。

  • 同じ色を使用 —ラベルと信号を同じ色で表示します。

  • メンバー全体で同じ色を使用 — マルチチャネル メンバー内のすべての信号を同じ色で表示し、ラベルは別の色で表示します。

インポート後に色の選択を変更できます。変更するには、[ラベル付き信号セット ブラウザー] でメンバー名を右クリックし、コンテキスト メニューから Change ColorUse Different Colors、または Use Same Colors を選択します。[値] 列のカラー値をクリックして [色の選択] メニューを開くこともできます。ここでは、標準またはカスタムのライン色を選択できます。

時間情報の指定

信号ラベラーにインポートする信号は、サンプルまたは時間でラベル付けできます。この指定は、一貫したラベル付けを確実にするために固定されます。同じセッションで、サンプルの信号と時間情報のある信号を混在させることはできません。

時間情報をもたない信号セットの時間情報を指定する場合は、[インポート] ダイアログ ボックスで [時間指定] オプションを選択します。

時間指定オプション説明
サンプルこのオプションでは、サンプル レートまたはサンプル時間を指定せずに信号を調査し、ラベル付けすることができます。これは、MATLAB で x 軸の情報がない状態で信号をプロットすることと同じです。
サンプル レート信号がサンプリングされたレートがわかっている場合には、このオプションを使用します。サンプル レートは、Hz、kHz、MHz または GHz で表すことができます。サンプル レートを指定するには、数値、MATLAB ワークスペースのスカラー変数の名前、または任意の有効な MATLAB 式を使用できます。メンバーが時間単位でプロットされるようにサンプル レートを設定します。
ファイルからのサンプル レート変数インポートするファイルにサンプル レートを変数として保存する場合には、このオプションを使用します。
サンプル時間サンプル間の時間間隔がわかっている場合には、このオプションを使用します。サンプル時間は、秒、年、日、時、分、ミリ秒、マイクロ秒またはナノ秒で表すことができます。サンプル時間を指定するには、数値、MATLAB ワークスペースのスカラー変数の名前、または任意の有効な MATLAB 式を使用できます。メンバーが時間単位でプロットされるようにサンプル時間を設定します。
ファイルからのサンプル時間変数インポートするファイルにサンプル時間を変数として保存する場合には、このオプションを使用します。
時間値

各サンプルに対応する時間値がわかっている場合には、このオプションを使用します。有効な MATLAB 式または MATLAB ワークスペースの変数の名前を使用して時間値を指定します。時間値は、実際の時間値を秒単位で表して数値または duration ベクトルに格納できます。値は一意で、NaN にすることはできませんが、その間隔は均一である必要はありません。時間配列はメンバーと同じ長さでなければなりません。

すべての場合で、アプリは時間値からサンプル レートを派生させ、[ラベル付き信号セット ブラウザー][時間] 列に表示します。サンプル レートの前に表示されるアスタリスクは、メンバーのサンプリングが等間隔でないことを示します。

ファイルからの時間値変数インポートするファイルに時間値を変数として保存する場合には、このオプションを使用します。

ひとたび信号または信号セットが信号ラベラーにインポートされると、選択した時間指定は、ラベル付けセッション全体を通じて固定されます。

MATLAB ワークスペースからの信号のインポート

MATLAB ワークスペースから信号ラベラーに信号をインポートするには、[ラベラー] タブで [インポート] をクリックし、[メンバー] リストの [ワークスペースから] を選択します。ダイアログ ボックスで、インポートする信号を選択します。

Import Members from Workspace dialog box

各信号変数がラベル付き信号セットのメンバーとして扱われ、個別にラベル付けできます。異なるラベル付き信号セットの複数の信号変数にラベル付けする場合は、以下の手順に従うこともできます。

  • 最初に数値配列をインポートしてサンプルで指定した場合、または labeledSignalSet オブジェクトをサンプルで最初にインポートした場合は、その後サンプルの信号のみを選択できます。数値配列を選択した場合、信号ラベラーはそれをインポートしてサンプルで扱います。

  • 最初に数値配列をインポートして時間情報を指定した場合、または時間情報をもつ MATLAB timetable や labeledSignalSet オブジェクトを最初にインポートした場合は、その後時間情報をもつ信号のみを選択できます。数値配列を選択した場合は、インポート時に時間情報を設定しなければなりません。

メモ

labeledSignalSet オブジェクトの時間情報は、信号ラベラーから変更できません。ラベル付き信号セットに時間情報がない場合、アプリはそのメンバーをサンプル内にあるものとして扱います。ラベル付き信号セットに時間情報がある場合、アプリは信号をインポートするときにこの情報を組み込みます。詳細については、labeledSignalSet のドキュメンテーションを参照してください。

正常にインポートするには、ラベル付き信号セットが次の追加ルールに従わなければなりません。

  • 選択に 2 つ以上のラベル付き信号セットが含まれる場合、ラベル付き信号セットは固有の信号ラベル定義をもっていなければなりません。2 つ以上のセットがラベル定義を共有する場合、その定義はすべてのセットでタイプとデータ型が同じでなければなりません。詳細については、信号ラベル定義の作成またはインポートを参照してください。

  • 選択に 2 つ以上のラベル付き信号セットが含まれる場合、ラベル付き信号セットは固有のメンバー名をもっていなければなりません。信号ラベラーの内部からメンバー名を変更することはできません。ラベル付き信号セットのメンバー名を変更するには、コマンド ラインで setMemberNames を使用します。

  • ラベル付けで 2 つ以上の labeledSignalSet オブジェクトを選択する場合、信号ラベラーはそれらをマージして、入力セットのすべてのメンバーとラベル値を含む単一のラベル付き信号セットを作成します。このアクションはコマンド ラインで merge を使用することと同じです。

  • labeledSignalSet オブジェクト内のラベル値はスカラーでなければなりません。信号ラベラーはスカラー値を持たないラベルを無視します。

ファイルからの信号のインポート

ファイルから信号ラベラーに信号をインポートするには、[ラベラー] タブで [インポート] をクリックし、[メンバー] リストの [ファイルから] を選択します。ダイアログ ボックスで、インポートする信号を含むファイルを参照して選択します。

Import Members from Files dialog box

メモ

  • 信号ラベラーは、MAT ファイルと CSV ファイルをサポートします。ヘッダー以外の CSV ファイルのすべての値は数値でなければなりません。

  • Audio Toolbox ライセンスがある場合は、[オーディオ ファイルから] または [オーディオ フォルダーから] を使用して、互換性のあるオーディオ ファイル拡張子をもつファイルから信号ラベラーに信号をインポートできます。

  • ファイルから labeledSignalSet オブジェクトをインポートすることはサポートされていません。labeledSignalSet オブジェクトをインポートするには、MATLAB ワークスペースに読み込んで、そこからインポートします。

1 つのフォルダー内にある複数のファイルから信号をインポートするには、[ラベラー] タブで [インポート] をクリックし、[メンバー] リストの [フォルダーから] を選択します。ダイアログ ボックスで、インポートする信号を含むファイルが格納されているフォルダーを参照して選択します。サブフォルダーを含むように選択することもできます。

Import Members from Folders dialog box

各ファイルがラベル付き信号セットのメンバーとして扱われます。ファイルに含まれるすべての信号が 1 つのメンバーに属し、まとめてラベル付けされます。同じ信号変数をもつ他のファイルを同じラベル付き信号セットのメンバーとしてインポートすることもできます。

  • インポートするすべてのメンバーは、同じ拡張子と同じ変数をもっていなければなりません。

  • 信号ラベラーは、インメモリ データとファイルからのデータの同時操作をサポートしていません。

    • 最初に MATLAB ワークスペースからインメモリのメンバーをインポートした場合、[ラベラー] タブの [インポート] メニューでは [ファイルから] オプションと [フォルダーから] オプションが無効になります。

    • 最初にファイルからデータをインポートした場合、MATLAB ワークスペースからインポートできるワークスペース変数は labeledSignalSet オブジェクトのみであり、その入力データ ソースはファイルを指す signalDatastore オブジェクトです。例については、サポートされている信号タイプを参照してください。

既定では、信号ラベラーは各ファイルの最初の信号変数を読み取ります。ファイルの最初の変数名を決めるために、signalDatastore は以下の手順に従います。

  • MAT ファイルの場合:

    s = load(fileName);
    varNames = fieldnames(s);
    firstVar = s.(varNames{1});

  • CSV ファイルの場合:

    opts = detectImportOptions(fileName,'PreserveVariableNames',true);
    varNames = opts.VariableNames;
    firstVar = string(varNames{1});

読み取る信号変数を指定するには、[指定] をクリックし、信号変数名のコンマ区切りリストを入力します。

ヒント

CSV ファイルのヘッダー行に指定された変数名がない場合、変数は最初の列で Var1、2 番目の列で Var2 などと呼ばれます。

参考

アプリ

関数

関連する例

詳細