Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Etiquetador de señales

Señales de etiquetas para análisis o aplicaciones de aprendizaje automático y profundo

Descripción

es una herramienta interactiva que le permite etiquetar señales para análisis o para su uso en aplicaciones de aprendizaje automático y aprendizaje profundo.Etiquetador de señales Usando , puedeEtiquetador de señales

  • Etiquetar señales con atributos, regiones y puntos de interés

  • Utilice etiquetas lógicas, categóricas, numéricas o con valores de cadena

  • Etiquetar automáticamente los picos de señal o aplicar funciones de etiquetado personalizadas

  • Añadir, editar y eliminar etiquetas o subetiquetas

  • Mostrar subconjuntos seleccionados de señales y etiquetas

guarda los datos como objetos.Etiquetador de señalesAnalizador de señaleslabeledSignalSet Puede utilizar objetos para entrenar una red, clasificador o analizar datos y estadísticas de informes.labeledSignalSet

Abrir Etiquetador de señales

En la aplicación, en la pestaña, haga clic en .Analizador de señalesAnalyzerLabel

Ejemplos

expandir todo

Las grabaciones de canciones de ballenas contienen trinos y gemidos. suenan como series de clics. son gritos de baja frecuencia similares al sonido hecho por la bocina de un barco.TrinosGemidos Desea ver cada señal y etiquetarla para identificar el tipo de ballena, las regiones de trino y las regiones de gemidos. Para cada región de trino, también desea etiquetar algunos picos de señal seleccionados.

Cargar datos sin etiquetar

Comience cargando un conjunto de datos que incluye dos grabaciones de canciones de ballenas. Las señales se llaman y se muestrean a 4 kHz. consiste en un trino seguido de tres gemidos. consta de dos gemidos, un trino y otro gemido.whale1whale2whale1whale2

load labelwhalesignals  % To hear, type soundsc(whale1,Fs), pause(22), soundsc(whale2,Fs)

Traiga las señales a:Etiquetador de señales

  1. Inicie y arrastre las señales a la tabla Signal.Analizador de señales

  2. Seleccione las señales y agregue información de tiempo. En la pestaña, haga clic en , seleccione , e introduzca la frecuencia de muestreo, .AnalizadorValores de tiempoSample Rate and Start TimeFs

  3. Con las señales seleccionadas, haga clic en la pestaña.EtiquetaAnalizador

Agregar definiciones de etiquetas de señal

Defina las etiquetas que desea adjuntar a las señales. Las etiquetas pueden ser de tres tipos:

  • las etiquetas definen las características de la señal.Atributo

  • (ROI) definen las características de la señal sobre las regiones de interés.Región de interés

  • las características de la señal sobre los puntos de interés.Punto

Cada etiqueta puede tener uno de los cuatro tipos de datos:

  • las etiquetas pueden ser verdaderas o falsas.Lógica

  • etiquetas pueden pertenecer a cualquiera de un conjunto de categorías que especifique.Categórico

  • las etiquetas pueden tener cualquier valor numérico.Numérico

  • las etiquetas pueden tener cualquier valor representado por una cadena.Cadena

Cualquier etiqueta puede tener cualquier número de .subetiquetas Las subetiquetas no pueden tener subetiquetas.

Para las señales de la canción de ballena:

  1. Defina una etiqueta de atributo categórico para almacenar tipos de ballena. Llámalo .WhaleType Las categorías posibles son ballena azul, ballena jorobada y ballena blanca.

  2. Defina una etiqueta de región de interés (ROI) lógica que sea verdadera para las regiones de gemidos. Llámalo .MoanRegions

  3. Defina una etiqueta de ROI lógica que sea verdadera para las regiones de trino. Llámalo .TrillRegions

  4. Defina una etiqueta de punto numérico para capturar picos de trino. Llámalo .TrillPeaks Establezca esta etiqueta como una subetiqueta de la etiqueta.TrillRegions

Para definir cada etiqueta, haga clic en la pestaña.Añadir definiciónEtiqueta Para definir la subetiqueta, seleccione la etiqueta en el navegador, haga clic en , y seleccione .TrillRegionsDefiniciones de etiquetasAñadir definiciónAdd sublabel definition

Introduzca los siguientes valores en los campos del cuadro de diálogo que aparece para cada etiqueta de señal o definición de subetiqueta. Deje el campo vacío en cada caso.Predeterminado

<math display="block">
<mrow>
<mspace width="3.6em"></mspace>
<mtable rowlines="none solid solid none">
<mtr>
<mtd>
<mrow>
<mrow>
<msub>
<mrow>
<mspace width="0.2777777777777778em"></mspace>
</mrow>
<mrow></mrow>
</msub>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mtable rowlines="none solid none none none">
<mtr>
<mtd>
<mrow>
<msub>
<mrow>
<mstyle mathvariant="bold">
<mrow>
<mi>L</mi>
<mi>a</mi>
<mi>b</mi>
<mi>e</mi>
<mi>l</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>N</mi>
<mi>a</mi>
<mi>m</mi>
<mi>e</mi>
</mrow>
</mstyle>
</mrow>
<mrow></mrow>
</msub>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="bold">
<mrow>
<mi>L</mi>
<mi>a</mi>
<mi>b</mi>
<mi>e</mi>
<mi>l</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>T</mi>
<mi>y</mi>
<mi>p</mi>
<mi>e</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="bold">
<mrow>
<mi>L</mi>
<mi>a</mi>
<mi>b</mi>
<mi>e</mi>
<mi>l</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>D</mi>
<mi>e</mi>
<mi>s</mi>
<mi>c</mi>
<mi>r</mi>
<mi>i</mi>
<mi>p</mi>
<mi>t</mi>
<mi>i</mi>
<mi>o</mi>
<mi>n</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="bold">
<mrow>
<mi>D</mi>
<mi>a</mi>
<mi>t</mi>
<mi>a</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>T</mi>
<mi>y</mi>
<mi>p</mi>
<mi>e</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="bold">
<mrow>
<mi>C</mi>
<mi>a</mi>
<mi>t</mi>
<mi>e</mi>
<mi>g</mi>
<mi>o</mi>
<mi>r</mi>
<mi>i</mi>
<mi>e</mi>
<mi>s</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>W</mi>
<mi>h</mi>
<mi>a</mi>
<mi>l</mi>
<mi>e</mi>
<mi>T</mi>
<mi>y</mi>
<mi>p</mi>
<mi>e</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>A</mi>
<mi>t</mi>
<mi>t</mi>
<mi>r</mi>
<mi>i</mi>
<mi>b</mi>
<mi>u</mi>
<mi>t</mi>
<mi>e</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>W</mi>
<mi>h</mi>
<mi>a</mi>
<mi>l</mi>
<mi>e</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>t</mi>
<mi>y</mi>
<mi>p</mi>
<mi>e</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>c</mi>
<mi>a</mi>
<mi>t</mi>
<mi>e</mi>
<mi>g</mi>
<mi>o</mi>
<mi>r</mi>
<mi>i</mi>
<mi>c</mi>
<mi>a</mi>
<mi>l</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mo>{</mo>
<mtable>
<mtr>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>b</mi>
<mi>l</mi>
<mi>u</mi>
<mi>e</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>h</mi>
<mi>u</mi>
<mi>m</mi>
<mi>p</mi>
<mi>b</mi>
<mi>a</mi>
<mi>c</mi>
<mi>k</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>w</mi>
<mi>h</mi>
<mi>i</mi>
<mi>t</mi>
<mi>e</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>M</mi>
<mi>o</mi>
<mi>a</mi>
<mi>n</mi>
<mi>R</mi>
<mi>e</mi>
<mi>g</mi>
<mi>i</mi>
<mi>o</mi>
<mi>n</mi>
<mi>s</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>R</mi>
<mi>O</mi>
<mi>I</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>R</mi>
<mi>e</mi>
<mi>g</mi>
<mi>i</mi>
<mi>o</mi>
<mi>n</mi>
<mi>s</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>w</mi>
<mi>h</mi>
<mi>e</mi>
<mi>r</mi>
<mi>e</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>m</mi>
<mi>o</mi>
<mi>a</mi>
<mi>n</mi>
<mi>s</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>o</mi>
<mi>c</mi>
<mi>c</mi>
<mi>u</mi>
<mi>r</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>l</mi>
<mi>o</mi>
<mi>g</mi>
<mi>i</mi>
<mi>c</mi>
<mi>a</mi>
<mi>l</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="normal">
<mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>T</mi>
<mi>r</mi>
<mi>i</mi>
<mi>l</mi>
<mi>l</mi>
<mi>R</mi>
<mi>e</mi>
<mi>g</mi>
<mi>i</mi>
<mi>o</mi>
<mi>n</mi>
<mi>s</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>R</mi>
<mi>O</mi>
<mi>I</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>R</mi>
<mi>e</mi>
<mi>g</mi>
<mi>i</mi>
<mi>o</mi>
<mi>n</mi>
<mi>s</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>w</mi>
<mi>h</mi>
<mi>e</mi>
<mi>r</mi>
<mi>e</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>t</mi>
<mi>r</mi>
<mi>i</mi>
<mi>l</mi>
<mi>l</mi>
<mi>s</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>o</mi>
<mi>c</mi>
<mi>c</mi>
<mi>u</mi>
<mi>r</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>l</mi>
<mi>o</mi>
<mi>g</mi>
<mi>i</mi>
<mi>c</mi>
<mi>a</mi>
<mi>l</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="normal">
<mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>T</mi>
<mi>r</mi>
<mi>i</mi>
<mi>l</mi>
<mi>l</mi>
<mi>P</mi>
<mi>e</mi>
<mi>a</mi>
<mi>k</mi>
<mi>s</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>P</mi>
<mi>o</mi>
<mi>i</mi>
<mi>n</mi>
<mi>t</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>T</mi>
<mi>r</mi>
<mi>i</mi>
<mi>l</mi>
<mi>l</mi>
<mspace width="0.2777777777777778em"></mspace>
<mi>p</mi>
<mi>e</mi>
<mi>a</mi>
<mi>k</mi>
<mi>s</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="monospace">
<mrow>
<mi>n</mi>
<mi>u</mi>
<mi>m</mi>
<mi>e</mi>
<mi>r</mi>
<mi>i</mi>
<mi>c</mi>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mrow>
<mstyle mathvariant="normal">
<mrow>
<mo>-</mo>
<mo>-</mo>
<mo>-</mo>
</mrow>
</mstyle>
</mrow>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<msub>
<mrow>
<mspace width="0.2777777777777778em"></mspace>
</mrow>
<mrow></mrow>
</msub>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mspace width="0.2777777777777778em"></mspace>
</mrow>
</mtd>
</mtr>
</mtable>
</mrow>
</math>

Puede exportar las definiciones de señal que ha creado a un archivo MAT haciendo clic en .exportar Aparece un cuadro de diálogo que le solicita un nombre de archivo. En cualquier momento puede importar definiciones de señal almacenadas en un archivo MAT haciendo clic en .Importación

Atributos de señal de etiqueta

Las canciones en los datos son de dos ballenas azules. Establezca los valores para ambas señales:WhaleType

  1. Seleccione en el navegador.WhaleTypeDefiniciones de etiquetas

  2. Haga clic en el botón de selección y seleccione .Etiqueta Label Signals

  3. En el cuadro de diálogo que aparece, compruebe que ambos y están seleccionados y que el campo está establecido en .whale1whale2Valorblue (Si no especifica un valor predeterminado en una definición de etiqueta de señal categórica, establece la etiqueta en la primera categoría especificada en la definición.)Etiquetador de señales

  4. Haga clic.De acuerdo

Trazar la señal seleccionando la casilla de verificación junto a su nombre.whale1 Los atributos de señal aparecen tanto en el navegador como en la gráfica de tiempo.Conjunto de señales etiquetadas

Regiones de señal de etiqueta

Visualiza las canciones de ballenas y etiqueta las regiones de trino y gemidos.

  • Las regiones trillas tienen ráfagas distintas de sonido marcados por el silencio. tiene un trino centrado en unos 2 segundos.whale1

  • Las regiones de moan son lamentos sostenidos de baja frecuencia. tiene gemidos centrados en unos 7 segundos, 12 segundos y 17 segundos.whale1

Etiquete las señales de una en una:

  1. En la columna del navegador, marque la casilla junto al nombre de la señal para trazar la señal.conspirarConjunto de señales etiquetadas

  2. Para etiquetar un gemido, en el navegador, seleccione la definición de etiqueta.Definiciones de etiquetasMoanRegions

  3. Haga clic en el botón de selección y seleccione .Etiqueta Label Plotted Aparece una región sombreada, enmarcada por una línea discontinua animada. (El fotograma animado indica que la región es .)Activo Mueva y cambie el tamaño de la región activa hasta que encierre una región de gemidos. Para una mejor colocación de la etiqueta, puede ir a la pestaña y elegir una acción de zoom o activar el panoramizador.Monitor

  4. Haga clic en la marca de verificación situada junto al botón, pulse o haga doble clic para etiquetar el ROI.EtiquetaEntrar La región cambia a un degradado del color de la señal. Si no especifica un valor predeterminado en una definición de etiqueta lógica, establezca la etiqueta en .Etiquetador de señalestrue

  5. Repita el procedimiento para los otros dos gemidos.

  6. Para etiquetar un trino, en el navegador, seleccione la definición de etiqueta.Definiciones de etiquetasTrillRegions Etiquete la región del trino mediante los pasos 3 y 4.

  7. Antes de etiquetar la segunda señal de canción de ballena, retire la primera señal de canción de ballena de la trama desactivando la casilla de verificación junto a su nombre en el navegador.Conjunto de señales etiquetadas Si tiene las dos señales trazadas al etiquetar una región o un punto, asocia la etiqueta con ambas señales.Etiquetador de señales

Los ejes del visor de etiquetas muestran las ubicaciones y anchuras de las regiones de interés. También muestran el valor asignado a cada región.

Puntos de señal de etiqueta

Las regiones trill tienen picos distintos que corresponden a ráfagas de sonido. Etiquete tres picos en cada región de trino. Dado que los picos de trino son subetiquetas, cada uno debe estar asociado a una etiqueta determinada.TrillRegions

Etiquete las señales de una en una:

  1. En la columna del navegador, marque la casilla junto al nombre de la señal para trazar la señal.conspirarConjunto de señales etiquetadas Marque también la casilla correspondiente a la región de trino cuyos picos desea etiquetar.

  2. En el navegador, seleccione .Definiciones de etiquetasTrillPeaks

  3. En la tira de herramientas, debajo de , escriba , correspondiente al primer pico.Valor1

  4. En el explorador, seleccione la región de trino.Conjunto de señales etiquetadas La región del trino se activa y está enmarcada por una línea animada discontinua.

  5. Haga clic en el botón de selección y seleccione .Etiqueta Label Plotted La región del trino está enmarcada por una línea sólida y aparece una línea discontinua (activa) animada para el punto que se está etiquetando.

  6. Mueva la línea activa hasta que cruce la señal en el pico de su elección. Para una mejor colocación de la etiqueta, puede ir a la pestaña y elegir una acción de zoom o activar el panoramizador.Monitor

  7. Haga clic en la marca de verificación situada junto al botón, pulse o haga doble clic para etiquetar el pico.EtiquetaEntrar La línea discontinua cambia a una línea sólida del mismo color que la señal.

  8. Repita para dos picos más, entrando e identificándolos.23

  9. Antes de etiquetar los picos de trinos para la segunda señal de canción de ballena, elimine la primera señal de canción de ballena de la trama desactivando la casilla de verificación junto a su nombre en el navegador.Conjunto de señales etiquetadas

Los ejes del visor de etiquetas muestran las ubicaciones de los puntos de interés y el valor asignado a cada punto.

Trazar las dos señales para ver un resumen de sus etiquetas en el archivo .Visor de etiquetas Expanda la jerarquía del conjunto de señales etiquetadas en el navegador para ver los detalles de todas las etiquetas.Conjunto de señales etiquetadas (Para expandir la jerarquía, haga clic con el botón derecho en cualquier señal del navegador y seleccione .)Expand All Para cada señal, trace la primera región de gemido y el tercer pico de trino que etiquete.

Editar valores de etiqueta de señal

En cualquier momento, puede editar cualquier etiqueta de señal utilizando el navegador.Conjunto de señales etiquetadas Para editar una etiqueta de atributo, selecciónela, haga clic con el botón derecho y seleccione .Editar Por ejemplo, si descubre que la segunda ballena es en realidad una ballena blanca, puede seleccionar el atributo para , haga clic con el botón derecho, seleccione y, en el cuadro de diálogo que aparece, seleccione en el menú desplegable.WhaleTypewhale2Editarwhite

Si desea editar el valor de una etiqueta de ROI o una etiqueta de punto, puede modificar el valor en el cuadro de diálogo. Para modificar la ubicación de una etiqueta de ROI o una etiqueta de punto, puede modificar los campos de ubicación en el cuadro de diálogo. Alternativamente, puede:

  1. Trazar la etiqueta marcando la casilla junto a su nombre.

  2. Seleccione la etiqueta.

  3. Mueva la región o el punto en el trazado de tiempo cuando se active.

Conjunto de señales etiquetadas de exportación

Exporte señales etiquetadas guardando el etiquetado y exportando el nuevo objeto.labeledSignalSet Haga clic en el botón de la tira de herramientas.Guardar etiquetas En el cuadro de diálogo que aparece, asigne el nombre al conjunto de señales etiquetadas.whalesongs Al hacer clic en el botón, volverá a .De acuerdoAnalizador de señales Consulte para obtener más información sobre cómo las exportaciones etiquetan conjuntos de señales.Comportamiento de importación y exportación de signal LabelerEtiquetador de señales

En la tabla Señal, seleccione y haga clic con el botón derecho para exportarla a un archivo llamado .whalesongsWhale_Songs.mat

Cargue en el espacio de trabajo MATLAB® el archivo MAT que creó en el ejemplo.Atributos de señal de etiqueta, regiones de interés y puntos Compruebe que el conjunto de señales etiquetado contiene las definiciones que agregó mediante .Etiquetador de señales

load Whale_Songs  labelDefinitionsSummary(whalesongs)
ans=3×9 table
      LabelName        LabelType     LabelDataType     Categories     ValidationFunction    DefaultValue             Sublabels             Tag            Description         
    ______________    ___________    _____________    ____________    __________________    ____________    ___________________________    ___    ____________________________

    "WhaleType"       "attribute"    "categorical"    {3x1 string}       {["N/A"   ]}       {0x0 double}    {0x0 double               }    ""     "Whale type"                
    "MoanRegions"     "roi"          "logical"        {["N/A"   ]}       {0x0 double}       {0x0 double}    {0x0 double               }    ""     "Regions where moans occur" 
    "TrillRegions"    "roi"          "logical"        {["N/A"   ]}       {0x0 double}       {0x0 double}    {1x1 signalLabelDefinition}    ""     "Regions where trills occur"

Compruebe que es una subetiqueta de .TrillPeaksTrillRegions

labelDefinitionsHierarchy(whalesongs)
ans =      'WhaleType        Sublabels: []      MoanRegions        Sublabels: []      TrillRegions        Sublabels: TrillPeaks      '  

Recuperar el segundo miembro del conjunto. Recuperar los nombres de las variables de calendario.

song = getSignal(whalesongs,2);  summary(song)
RowTimes:      Time: 76579x1 duration         Values:             Min           0 sec                    Median        9.5722 sec               Max           19.144 sec               TimeStep      0.00025 sec   Variables:      whale2: 76579x1 double          Values:              Min       -0.37326             Median           0             Max        0.37914 

Traza la señal.

t = song.Time; sng = song.whale2;  plot(t,sng)

Visualizar regiones etiquetadas

Muestre e identifique las regiones de interés que ha etiquetado. Para obtener más información, consulte el código de la función al final del ejemplo.labelIntervals

mvals = getLabelValues(whalesongs,2,'MoanRegions'); tvals = getLabelValues(whalesongs,2,'TrillRegions');  cmap = lines;  hold on  tmoan = mvals.ROILimits; for kj = 1:size(tmoan,1)     tv = find(seconds(t)>tmoan(kj,1) & seconds(t)<tmoan(kj,2));     plot(t(tv),sng(tv),'Color',cmap(2,:)) end  ttrill = tvals.ROILimits; for kj = 1:size(ttrill,1)     tv = find(seconds(t)>ttrill(kj,1) & seconds(t)<ttrill(kj,2));     plot(t(tv),sng(tv),'Color',cmap(3,:)) end  labelIntervals(mvals,tvals,cmap(4,:))  hold off

Visualizar puntos etiquetados

Muestre e identifique los picos de trino que etiquete.

pk = getLabelValues(whalesongs,2,{'TrillRegions','TrillPeaks'});  locs  = zeros(size(pk,1),1); for kj = 1:length(locs)     locs(kj) = find(seconds(t) == pk.Location(kj)); end  hold on plot(t(locs),sng(locs)+0.01,'v','MarkerSize',8,'Color',[0.929,0.694,0.125]) text(t(locs)+seconds(0.2),sng(locs)+0.05,int2str(cell2mat(pk.Value)), ...     'HorizontalAlignment','center') hold off

Esta función auxiliar muestra e identifica las regiones de interés.

function labelIntervals(mvals,tvals,clr)     [X,Y] = meshgrid(seconds([mvals.ROILimits;tvals.ROILimits]),ylim);     plot(X,Y,':k')     topts = {'HorizontalAlignment','center','FontWeight','bold', ...         'FontSize',12,'Color',clr};     text((X(1,1:4)+X(1,5:end))/2,Y(2,5:end)-0.1, ...         ["moan" "moan" "moan" "trill"],topts{:}) end

Este ejemplo muestra cómo utilizar funciones de etiquetado automatizadas personalizadas para etiquetar complejos QRS y picos R de señales de electrocardiograma (ECG).Etiquetador de señales Una función personalizada utiliza una red de aprendizaje profundo recurrente previamente entrenada para identificar y localizar los complejos QRS. Otra función personalizada utiliza un simple buscador de picos para localizar los picos R. En el ejemplo, la red etiqueta los complejos QRS de dos señales que son completamente independientes del proceso de entrenamiento y prueba de la red.

El complejo QRS, que consta de tres desviaciones en la forma de onda ECG, refleja la despolarización de los ventrículos derecho e izquierdo del corazón. El QRS es también el segmento de mayor amplitud de los latidos humanos humanos. El estudio del complejo QRS puede ayudar a evaluar la salud general del corazón de una persona y la presencia de anomalías [ ].1 En particular, al localizar picos R dentro de los complejos QRS y examinar los intervalos de tiempo entre picos consecutivos, un diagnóstico puede calcular la variabilidad de la frecuencia cardíaca de un paciente y detectar arritmias cardíacas.

La red de aprendizaje profundo en este ejemplo se introdujo en , donde se entrenó utilizando señales ecec (ECG) de la base de datos QT disponible públicamente [ ] [ ].Segmentación de forma de onda mediante aprendizaje profundo23 Los datos consisten en aproximadamente 15 minutos de registros de ECG de un total de 105 pacientes, muestreados a 250 Hz. Para obtener cada grabación, los examinadores colocaron dos electrodos en diferentes lugares en el pecho de un paciente, lo que resultó en una señal de dos canales. La base de datos proporciona etiquetas de región de señal generadas por un sistema experto automatizado [ ].1 Las etiquetas añadidas permiten utilizar los datos para entrenar una red profunda. Consulte para obtener más detalles.Segmentación de forma de onda mediante aprendizaje profundo

Cargar, remuestrear e importar datos en Signal Labeler

Las señales etiquetadas en este ejemplo provienen de la base de datos de arritmia MIT-BIH [ ].4 Cada señal de la base de datos fue muestreada a 360 Hz y fue anotada por dos cardiólogos, lo que permitió la verificación de los resultados.

Cargue dos de las señales de base de datos del MIT, correspondientes a los registros 200 y 203. Remuestrear las señales a 250 Hz, la frecuencia de muestreo de los datos de la base de datos QT.

load mit200 y200 = resample(ecgsig,25,36);  load mit203 y203 = resample(ecgsig,25,36);

Inicie y arrastre las señales a la tabla Signal.Analizador de señales Seleccione las señales. Añadir información de tiempo: en la pestaña, haga clic en , seleccione y especifique una frecuencia de muestreo de 250 Hz.AnalizadorValores de tiempoSample Rate and Start Time En la pestaña, haga clic en .AnalizadorEtiqueta Las señales aparecen en el navegador.Conjunto de señales etiquetadas

Definir etiquetas

Defina las etiquetas que desea adjuntar a las señales.

  1. Defina una etiqueta categórica de región de interés (ROI) para los complejos QRS. Haga clic en la pestaña.Añadir definiciónEtiqueta Especifique as , seleccione a de , escriba el valor como y agregue dos y , cada uno en su propia línea.Nombre de la etiquetaQRSregionsLabelTypeROITipo de datoscategoricalCategoríasQRSn/a

  2. Defina una etiqueta de punto numérico para los picos R y establézcala como una subetiqueta de .QRSregions Haga clic en el navegador para seleccionarlo.QRSregionsDefiniciones de etiquetas Haga clic en el botón de selección y seleccione .Añadir definiciónAdd sublabel definition Especifique as , seleccione a de , e introduzca as .Nombre de la etiquetaRpeaksLabelTypePointTipo de datosnumeric

Crear funciones de etiquetado automático personalizadas

Crea dos funciones personalizadas, una para localizar y etiquetar los complejos QRS y otra para localizar y etiquetar el pico R dentro de cada complejo QRS. (Código para el findQRS, computeFSST, p2qrsY findRpeaks funciones aparece más adelante en el ejemplo.) Para crear cada función, en la pestaña, haga clic en . muestra un cuadro de diálogo que pide el nombre, la descripción y el tipo de etiqueta de la función que se va a agregar.AnalizadorAutomatizar el valorAñadir función personalizadaEtiquetador de señales

  1. Para la función que localiza los complejos QRS, introduzca en el campo y seleccione como archivo .findQRSNombreROITipo de etiqueta Puede dejar el campo vacío o puede introducir su propia descripción.Descripción

  2. Para la función que localiza los picos R, introduzca en el campo y seleccione como .findRpeaksNombrePointTipo de etiqueta Puede dejar el campo vacío o puede introducir su propia descripción.Descripción

Si ya ha escrito las funciones y las funciones están en la carpeta actual o en la ruta DE ® MATLAB, añade las funciones a la galería.Etiquetador de señales Si no ha escrito las funciones, abre plantillas en blanco en el Editor para que escriba o pegue el código.Etiquetador de señales Guarde los archivos. Las funciones aparecen en la galería.

Etiquetar Complejos QRS y Picos R

Busque y etiquete los complejos QRS de las señales de entrada.

  1. En el explorador, active la casilla de verificación situada junto a .Conjunto de señales etiquetadasy200

  2. Seleccione en el navegador.QRSregionsDefiniciones de etiquetas

  3. En la galería, seleccione .Automatizar el valorfindQRS

  4. Haga clic y haga clic en el cuadro de diálogo que aparece.Auto-EtiquetaDe acuerdo

localiza y etiqueta los complejos QRS para todas las señales, pero muestra solo las de la señal cuya casilla de verificación ha seleccionado.Etiquetador de señales Los complejos QRS aparecen como regiones sombreadas en el trazado y en los ejes del visor de etiquetas. Active el panoramizador haciendo clic en la pestaña y acerque una región de la señal etiquetada.PannerMonitor

Encuentre y etiquete los picos R correspondientes a los complejos QRS.

  1. Seleccione en el navegador.RpeaksDefiniciones de etiquetas

  2. Vuelve a la pestaña.Etiqueta En la galería, seleccione .Automatizar el valorfindRpeaks

  3. Haga clic y haga clic en el cuadro de diálogo que aparece.Auto-EtiquetaDe acuerdo

Las etiquetas y sus valores numéricos aparecen en el trazado y en los ejes del visor de etiquetas.

Exportar señales etiquetadas y calcular la variabilidad de la frecuencia cardíaca

Exporte las señales etiquetadas para comparar la variabilidad de la frecuencia cardíaca para cada paciente. En la pestaña, haga clic en .EtiquetaGuardar etiquetas En el cuadro de diálogo que aparece, asigne el nombre al conjunto de señales etiquetadas.heartrates Haga clic para volver a .De acuerdoAnalizador de señales En la tabla Señal, seleccione y haga clic con el botón derecho para exportarlo a un archivo llamado .heartratesHeartRates.mat

Cargue el conjunto de señales etiquetadas. Para cada señal del conjunto, calcule la variabilidad de la frecuencia cardíaca como la desviación estándar de las diferencias de tiempo entre latidos cardíacos consecutivos. Trazar un histograma de diferencias y mostrar la variabilidad de la frecuencia cardíaca.

load HeartRates  nms = getMemberNames(heartrates);  for k = 1:heartrates.NumMembers          v = getLabelValues(heartrates,k,{'QRSregions','Rpeaks'});          hr = diff(cellfun(@(x)x.Location,v));          subplot(2,1,k)     histogram(hr,0.5:.025:1.5)     legend(['hrv = ' num2str(std(hr))])     ylabel(nms(k))     ylim([0 6])  end

Función:findQRS Encontrar Complejos QRS

La función encuentra y etiqueta los complejos QRS de las señales de entrada.findQRS

La función utiliza dos funciones auxiliares y .computeFSSTp2qrs (El código para ambas funciones auxiliares aparece más adelante en el ejemplo.) Puede almacenar las funciones en archivos independientes en el mismo directorio o anidarlas dentro insertándolas antes de la instrucción final.findQRSend

Entre llamadas a y , utiliza la función y la red profunda entrenada para identificar las regiones QRS.computeFSSTp2qrsfindQRSclassifynet Antes de llamar , convierte los datos al formato esperado por , como se explica en :classifyfindQRSnetSegmentación de forma de onda mediante aprendizaje profundo

  • Cada señal debe ser muestreada a 250 Hz y particionada en una pila de matrices de 2 por celda, donde cada fila corresponde a un canal y es un múltiplo de 5000.NN El particionamiento y apilamiento real se realiza en la función.computeFSST

  • Cada una de las señales remuestreadas del MIT tiene 6945 muestras, un número que no es un múltiplo de 5000. Para mantener todos los datos en cada señal, acolche la señal con números aleatorios. Más adelante en el proceso, la función etiqueta los números aleatorios como no pertenecientes a los complejos QRS y los descarta.p2qrs

function [labelVals,labelLocs] = findQRS(x,t,parentLabelVal,parentLabelLoc,varargin) % This is a template for creating a custom function for automated labeling % %  x is a matrix where each column contains data corresponding to a %  channel. If the channels have different lengths, then x is a cell array %  of column vectors. % %  t is a matrix where each column contains time corresponding to a %  channel. If the channels have different lengths, then t is a cell array %  of column vectors. % %  parentLabelVal is the parent label value associated with the output %  sublabel or empty when output is not a sublabel. %  parentLabelLoc contains an empty vector when the parent label is an %  attribute, a vector of ROI limits when parent label is an ROI or a point %  location when parent label is a point. % %  labelVals must be a column vector with numeric, logical or string output %  values. %  labelLocs must be an empty vector when output labels are attributes, a %  two column matrix of ROI limits when output labels are ROIs, or a column %  vector of point locations when output labels are points.  labelVals = []; labelLocs = [];  Fs = 250;  load('trainedQTSegmentationNetwork','net')  for kj = 1:size(x,2)      sig = x(:,kj);          % Create 10000-sample signal expected by the deep network          sig = [sig;randn(10000-length(sig),1)/100]';          % Resize input and compute synchrosqueezed Fourier transforms      mitFSST = computeFSST(sig,Fs);          % Use trained network to predict which points belong to QRS regions          netPreds = classify(net,mitFSST,'MiniBatchSize',50);          % Convert stack of cell arrays into a single vector          Location = [1:length(netPreds{1}) length(netPreds{1})+(1:length(netPreds{2}))]';     Value = [netPreds{1} netPreds{2}]';          % Label QRS complexes as regions of interest and discard non-QRS data          [Locs,Vals] = p2qrs(table(Location,Value));          labelVals = [labelVals;Vals];     labelLocs = [labelLocs;Locs/Fs];  end  % Insert computeFSST and p2qrs here if you want to nest them inside % queryQRS instead of including them as separate functions in the folder.  end

Función:computeFSST Cambiar el tamaño de las transformaciones de Fourier sincrosqueezed de entrada y cómputo

Esta función remodela los datos de entrada en el formulario esperado y, a continuación, utiliza la función para calcular la transformación sincronizada de Fourier (FSST) de la entrada.netfsst En , la red funciona mejor cuando se da como entrada un mapa de frecuencia de tiempo de cada señal de entrenamiento o prueba.Segmentación de forma de onda mediante aprendizaje profundo El FSST da como resultado un conjunto de características especialmente útiles para redes recurrentes porque la transformación tiene la misma resolución de tiempo que la entrada original. La función:

  • Especifica una ventana Kaiser de longitud 128 para proporcionar una resolución de frecuencia adecuada.

  • Extrae datos en el rango de frecuencias de 0,5 Hz a 40 Hz.

  • Resta la media de cada señal y divide por la desviación estándar.

  • Trate las partes reales e imaginarias del FSST como características separadas.

function signalsFsst = computeFSST(xd,Fs)  targetLength = 5000; signalsOut = {};  for sig_idx = 1:size(xd,1)      current_sig = xd(sig_idx,:)';      % Compute the number of targetLength-sample chunks in the signal     numSigs = floor(length(current_sig)/targetLength);      % Truncate to a multiple of targetLength     current_sig = current_sig(1:numSigs*targetLength);      % Create a matrix with as many columns as targetLength signals     xM = reshape(current_sig,targetLength,numSigs);      % Vertically concatenate into cell arrays     signalsOut = [signalsOut; mat2cell(xM.',ones(numSigs,1))];  end  signalsFsst = cell(size(signalsOut));  for idx = 1:length(signalsOut)     [s,f] = fsst(signalsOut{idx},Fs,kaiser(128));     % Extract data over the frequency range from 0.5 Hz to 40 Hz    f_indices = (f > 0.5) & (f < 40);    signalsFsst{idx}= [real(s(f_indices,:)); imag(s(f_indices,:))];     signalsFsst{idx} = (signalsFsst{idx}-mean(signalsFsst{idx},2)) ...        ./std(signalsFsst{idx},[],2);  end  end

Función:p2qrs Etiquetar los complejos QRS como regiones de interés

La red profunda genera una matriz categórica que etiqueta cada punto de la señal de entrada como una región P, un complejo QRS, una región T o ninguna de esas. Esta función convierte esas etiquetas de punto en etiquetas de región de interés QRS.

  • Para realizar la conversión, la función asigna valores numéricos enteros a las categorías y utiliza la función para buscar los puntos donde la matriz numérica cambia de valor.findchangepts

  • Cada uno de esos puntos de cambio es el punto de conexión izquierdo de una región categórica y el punto que la precede en la matriz es el punto de conexión derecho de la región anterior.

  • El algoritmo se agrega a los puntos de conexión correctos para evitar que las regiones de una muestra tengan una duración cero.1e-6

  • El parámetro selecciona como regiones de interés solo aquellos complejos QRS cuya duración es mayor que las muestras.dfdf

function [locs,vals] = p2qrs(k)  fc = 1e-6; df = 20;  ctgs = categories(k.Value); levs = 1:length(ctgs); for jk = levs    cat2num(k.Value == ctgs{jk}) = levs(jk); end chpt = findchangepts(cat2num,'MaxNumChanges',length(cat2num)); locs = [[1;chpt'] [chpt'-1;length(cat2num)]+fc];  vals = categorical(cat2num(locs(:,1))',levs,ctgs); locs = locs+round(k.Location(1))-1;  qrs = find(vals=='QRS' & diff(locs,[],2)>df);  vals = categorical(string(vals(qrs)),["QRS" "n/a"]);  locs = locs(qrs,:);  end

Función:findRpeaks Encontrar R Peaks

Esta función localiza el pico más prominente de las regiones QRS de interés encontradas por .findQRS La función aplica la función MATLAB® al valor absoluto de la señal en los intervalos localizados por .islocalmaxfindQRS

function [labelVals,labelLocs] = findRpeaks(x,t,parentLabelVal,parentLabelLoc,varargin)  Fs = 250;  if isempty(t)     t = (0:length(x)-1)'/Fs; end  labelVals = zeros(size(parentLabelLoc,1),1); labelLocs = zeros(size(parentLabelLoc,1),1);  for kj = 1:size(parentLabelLoc,1)     tvals = t>=parentLabelLoc(kj,1) & t<=parentLabelLoc(kj,2);     ti = t(tvals);     xi = x(tvals);     lc = islocalmax(abs(xi),'MaxNumExtrema',1);     labelVals(kj) = xi(lc);     labelLocs(kj) = ti(lc); end  end

Referencias

[1] Laguna, Pablo, Raimon Jané y Pere Caminal. "Detección automática de límites de onda en señales ECG multilead: Validación con la base de datos CSE." Vol. 27, No 1, 1994, págs. 45–60.Computadoras e Investigación Biomédica.

[2] Goldberger, Ary L., Luis A. N. Amaral, Leon Glass, Jeffery M. Hausdorff, Plamen Ch. Ivanov, Roger G. Mark, Joseph E. Mietus, George B. Moody, Chung-Kang Peng y H. Eugene Stanley. "PhysioBank, PhysioToolkit y PhysioNet: Componentes de un nuevo recurso de investigación para señales fisiológicas complejas." Vol. 101, No. 23, 2000, pp. e215–e220. [Páginas electrónicas de circulación: ].Circulación.http://circ.ahajournals.org/content/101/23/e215.full

[3] Laguna, Pablo, Roger G. Mark, Ary L. Goldberger y George B. Moody. "A Database for Evaluation of Algorithms for Measurement of QT and Other Waveform Intervals in the ECG.Vol. 24, 1997, págs. 673–676."Computers in Cardiology.

[4] Moody, George B., y Roger G. Mark. "El impacto de la base de datos de arritmias del MIT-BIH." .IEEE Engineering in Medicine and Biology Magazine Vol. 20, No. 3, mayo–junio de 2001, págs. 45–50.

En este ejemplo se muestra cómo etiquetar palabras habladas en .Etiquetador de señales En el ejemplo se utiliza el software IBM® Watson Speech to Text API y Audio Toolbox™. Consulte las instrucciones sobre:Speech-to-Text Transcription (Audio Toolbox)

  1. Descarga de Audio Toolbox speech2text funcionalidad ampliada, disponible en MATLAB® Central.

  2. Configuración de IBM Watson Speech API, ofrecida a través de IBM Cloud Services. Debe crear una cuenta de IBM Cloud, una instancia de servicio Speech to Text e ir al panel de servicio y copiar sus credenciales: clave de API y valores de URL. Consulte la documentación de IBM para obtener más detalles.Tutorial de introducción

Cargar datos de voz

Cargue un archivo de datos de audio que contenga la frase "Oak is strong, and also gives shade" hablado por una voz masculina. La señal se muestrea a 44.100 Hz.

[y,fs] = audioread('oak.m4a');  % To hear, type soundsc(y,fs)
  1. Inicie y arrastre la señal a la tabla Signal.Analizador de señales Seleccione la señal.

  2. Añadir información de tiempo: en la pestaña, haga clic en , seleccione y especifique como la frecuencia de muestreo.AnalizadorValores de tiempoSample Rate and Start Timefs

  3. En la pestaña, haga clic en .AnalizadorEtiqueta La señal aparece en el navegador.Conjunto de señales etiquetadas

Definir etiqueta

Defina una etiqueta para adjuntar a la señal. Haga clic en la pestaña.Añadir definiciónEtiqueta Especifique as , seleccione a de , e introduzca as .Nombre de la etiquetaWordsTipo de etiquetaROITipo de datosstring

Crear función de etiquetado automático personalizada

Cree una función personalizada para etiquetar las palabras pronunciadas en el archivo de audio. (Código para el stt función aparece más adelante en el ejemplo.)

  1. Vaya al directorio donde ha almacenado los archivos de código P y el archivo JSON que almacena las credenciales de IBM Coud.speech2text

  2. Para crear la función, en la pestaña, haga clic en . muestra un cuadro de diálogo en el que se le pide que introduzca el nombre, la descripción y el tipo de etiqueta de la función que desea agregar.AnalizadorAutomatizar el valorAñadir función personalizadaEtiquetador de señales Introduzca en el campo y seleccione como .sttNombreROITipo de etiqueta Puede dejar el campo vacío o puede introducir su propia descripción.Descripción

  3. Copie el código de función y péguelo en la plantilla vacía que aparece. Guarde el archivo. La función aparece en la galería.

Localizar e identificar palabras habladas

Localice e identifique las palabras pronunciadas en la señal de entrada.

  1. En el explorador, active la casilla de verificación situada junto a .Conjunto de señales etiquetadasy

  2. Seleccione en el navegador.WordsDefiniciones de etiquetas

  3. En la galería, seleccione .Valor automatizadostt

  4. Haga clic y haga clic en el cuadro de diálogo que aparece.Auto-EtiquetaDe acuerdo

localiza y etiqueta las palabras habladas.Etiquetador de señales

Exportar señal etiquetada

Exporte la señal etiquetada. En la pestaña, haga clic en .EtiquetaGuardar etiquetas En el cuadro de diálogo que aparece, asigne el nombre al conjunto de señales etiquetadas.transcribedAudio Al hacer clic, se devuelve a .De acuerdoAnalizador de señales En la tabla Señal, seleccione y haga clic con el botón derecho para exportarla a un archivo llamado .transcribedAudioTranscription.mat

Cargue el conjunto de señales etiquetadas. El conjunto solo tiene un miembro. Obtenga los nombres de las etiquetas y use el nombre para obtener y mostrar las palabras transcritas.

load Transcription  ln = getLabelNames(transcribedAudio);  v = getLabelValues(transcribedAudio,1,ln)
v=7×2 table
     ROILimits       Value  
    ____________    ________

    0.09    0.56    "oak"   
    0.59    0.97    "is"    
       1    1.78    "strong"
    1.94    2.19    "and"   
    2.22    2.67    "also"  
    2.67    3.22    "gives" 
    3.25    3.91    "shade" 

Reorganice las palabras para que la frase diga "El roble da sombra, y también es fuerte". Trazar la señal utilizando un color diferente para cada palabra.

k = v([1 6:7 4:5 2:3],:);  s = getSignal(transcribedAudio,1);  sent = []; sgs = NaN(height(s),height(k)); lgd = [];  for kj = 1:height(k)     lm = length(sent);     word = s.y(timerange(seconds(k.ROILimits(kj,1)),seconds(k.ROILimits(kj,2))));     sent = [sent;word];     sgs(lm+(1:length(word)),kj) = word;     lgd = [lgd;(length(sent)-length(word)/2)/fs]; end  sgs(length(sent)+1:end,:) = [];  % To hear, type soundsc(sent,fs)  plot((0:length(sgs)-1)/fs,sgs) text(lgd,-0.7*ones(size(lgd)),k.Value,'HorizontalAlignment',"center") axis tight

Función:stt Localizar e identificar palabras habladas

Esta función utiliza IBM Watson Speech API y Audio Toolbox speech2text funcionalidad ampliada para extraer palabras habladas de un archivo de audio.

function [labelVals,labelLocs] = stt(x,t,parentLabelVal,parentLabelLoc,varargin)  aspeechObjectIBM = speechClient('IBM','timestamps',true,'model','en-US_NarrowbandModel');  fs = 1/(t(2)-t(1));  tixt = speech2text(aspeechObjectIBM,x,fs);  numLabels = numel(tixt.TimeStamps{:}); labelVals = strings(numLabels,1); labelLocs = zeros(numLabels,2);  for idx =1:numLabels     labelVals(idx) = tixt.TimeStamps{:}{idx}{1};     labelLocs(idx,1) = tixt.TimeStamps{:}{idx}{2};     labelLocs(idx,2) = tixt.TimeStamps{:}{idx}{3}; end  end

Sugerencias

  • Al guardar etiquetas, convierte todas las señales con información de tiempo en horarios.Etiquetador de señales Esta conversión da como resultado una jerarquía más profunda de canales anidados en el archivo .labeledSignalSet Consulte para obtener más detalles.Comportamiento de importación y exportación de signal Labeler

  • promedia los colores del canal cuando representa las etiquetas correspondientes a las señales multicanal.Etiquetador de señales Para obtener los mejores resultados, personalice el color de la línea para que sea el mismo para todos los canales de una señal determinada. Realice la personalización antes de escribir .Analizador de señalesEtiquetador de señales

    Comparar el color de la etiqueta para , una señal cuyos canales tienen diferentes colores, con el color de la etiqueta para , una señal cuyos canales todos tienen el mismo color.diffrequal Las etiquetas para se representan en el tono de azul que comparten todos los canales.equal Las etiquetas para se representan en un tono de marrón que no coincide con ninguno de los colores del canal.diffr

  • Al reducir el ancho de la ventana, la tabla de atributos debajo del trazado de tiempo muestra una barra de desplazamiento horizontal.Etiquetador de señales En Apple macOS sistemas, la barra de desplazamiento está oculta de forma predeterminada. Si tiene un trackpad y se desplaza horizontalmente, aparecerá la barra de desplazamiento. Si utiliza un ratón y desea que la barra de desplazamiento esté siempre visible, puede modificar el comportamiento del sistema en las Preferencias del sistema.

Introducido en R2019a