Signal Labeler
Etiquetar atributos de señal, regiones y puntos de interés
Descripción
La app Signal Labeler es una herramienta interactiva que le permite etiquetar señales para realizar análisis o para utilizarla en aplicaciones de machine learning y deep learning. Utilizando Signal Labeler, puede:
Etiquetar atributos de señal, regiones y puntos de interés
Etiquetar las regiones de tiempo-frecuencia de interés del espectrograma (desde R2025a)
Utilizar etiquetas lógicas, categóricas, numéricas o con valores de cadena
Etiquetar de forma automática picos de señal o regiones de señales acotadas
Aplicar funciones de etiquetado personalizadas
Importar, etiquetar y reproducir señales de audio
Utilizar vistas de frecuencia y tiempo-frecuencia para ayudar al etiquetado en el dominio de tiempo
Utilizar la vista temporal para facilitar el etiquetado en el dominio de tiempo-frecuencia (desde R2025a)
Crear conjuntos de datos que incluyan señales, espectrogramas y máscaras de etiquetas (desde R2025a)
Agregar, editar y eliminar etiquetas o subetiquetas
Mostrar los subconjuntos de señales y etiquetas seleccionados
Signal Labeler guarda los datos como objetos labeledSignalSet
. También puede exportar objetos labeledSignalSet
a MATLAB® o Diagnostic Feature Designer (Predictive Maintenance Toolbox). Puede crear conjuntos de datos como archivos para entrenar una red o un clasificador, o analizar datos y elaborar informes estadísticos.
Para obtener más información, consulte Use Signal Labeler App.
Necesita una licencia de Audio Toolbox™ para importar, reproducir y etiquetar señales de audio.
La reproducción de audio no es compatible con MATLAB Online.
Necesita una licencia de Predictive Maintenance Toolbox™ para exportar conjuntos de etiquetas de señal a Diagnostic Feature Designer.
Signal Labeler ya no es compatible con el modo de extracción de características, que ahora está disponible como app. Para extraer características de señales, abra Signal Feature Extractor desde la barra de herramientas o la ventana de comandos de MATLAB.

Abrir la aplicación Signal Labeler
Barra de herramientas de MATLAB: En la pestaña Apps, en Signal Processing and Communications, haga clic en el icono de la app.
Línea de comandos de MATLAB: Introduzca la función
signalLabeler
.
Ejemplos
Este ejemplo muestra cómo realizar un seguimiento del progreso del etiquetado y evaluar la calidad de las etiquetas con el panel. En este modo, se puede determinar rápidamente cuántos miembros están etiquetados e inspeccionar las duraciones y distribuciones de valores de etiqueta en un conjunto de datos. Este paso facilita el proceso de obtención de conjuntos de datos completos y precisos para machine learning.
Descargar y preparar los datos
Utilice la función QTdownload
para descargar señales de un electrocardiograma (ECG) de la base de datos QT de acceso público [1] [2] en un nuevo directorio temporal folder
. El código de esta función se encuentra al final del ejemplo.
folder = QTdownload;
Cada archivo contiene una señal de ECG ecgSignal
, una tabla de etiquetas de región signalRegionLabels
y la variable de tasa de muestreo Fs
. Todas las señales tienen una tasa de muestreo de 250 Hz. Las etiquetas de las regiones corresponden a tres morfologías de latido:
Onda P
Complejo QRS
Onda T
Cree un almacén de datos de señales que apunte a folder
. Especifique el nombre de la variable de la señal ecgSignal
y la variable de tasa de muestreo Fs
.
sds = signalDatastore(folder,SignalVariableNames="ecgSignal", ... SampleRateVariableName="Fs");
Cree un subconjunto del almacén de datos que contenga los veinte primeros archivos. Utilice este subconjunto como la fuente de un objeto labeledSignalSet
.
subsds = subset(sds,1:20); lss = labeledSignalSet(subsds);
Etiquetar regiones de interés
Abra la app Signal Labeler e importe el conjunto de señales etiquetadas del área de trabajo. Represente la primera señal del conjunto de datos. En la pestaña Display, seleccione el panoramizador y haga zoom sobre una región más pequeña de la señal para visualizarla mejor.
En la pestaña Labeler, defina una etiqueta categórica de la región de interés (ROI) con las categorías P, QRS y T. Nombre la etiqueta BeatMorphologies
.
Cree una función de etiquetado personalizada labelECGregions
para localizar y etiquetar las tres regiones de interés diferentes. El código de la función personalizada aparece más adelante en el ejemplo. Puede guardar la función en la carpeta actual, en la ruta de MATLAB, o añadirla a la app seleccionando Add Custom Function
en la galería Automate Value. Para obtener más información, consulte Custom Labeling Functions.
Seleccione BeatMorphologies
en el navegador Label Definitions y elija la función labelECGregions
de la galería Automate Value. Seleccione Auto-Label
y, luego, Auto-Label and Inspect Plotted
. Haga clic en Run. En la pestaña Display, amplíe una región de la señal etiquetada y utilice el panoramizador para navegar en el tiempo. Si el etiquetado es satisfactorio, haga clic en Save Labels para aceptar las etiquetas y cerrar la pestaña Autolabel. Puede ver las etiquetas y sus valores de ubicación en el explorador Labeled Signal Set Members.
Visualizar el progreso del etiquetado y las estadísticas
Seleccione el panel en la barra de herramientas de la pestaña Labeler. La barra de progreso muestra que el 5% de los miembros están etiquetados con al menos una etiqueta de la ROI. Esto corresponde a 1/20 miembros del conjunto de datos. La gráfica circular de distribución de etiquetas muestra el número de instancias de cada categoría para la definición de etiqueta seleccionada.
Cierre el panel y siga etiquetando. Seleccione Auto-Label
y, luego, Auto-Label All Signals
para etiquetar las cuatro señales siguientes de la lista. Marque la casilla situada junto a los nombres de las señales que desea etiquetar y, luego, haga clic en OK.
Seleccione de nuevo el panel. La barra de progreso muestra ahora que el 25% de los miembros están etiquetados. Compruebe que la distribución de cada categoría (P, QRS o T) es la esperada. La gráfica circular Label Distribution
muestra que cada categoría representa aproximadamente un tercio de todas las instancias de etiquetas. Seleccione la gráfica de histogramas Time Distribution
de la galería Plots para ver la duración media de las ondas P y T y los complejos QRS, incluidos los valores atípicos. Observe que las ondas T duran más que las ondas P y que los complejos QRS.
Muestre la gráfica Member Count
para visualizar mejor la distribución de etiquetas entre los miembros y el número de instancias. La mayoría de los miembros del conjunto de datos tienen entre 0 y 500 instancias de las regiones P, QRS y T.
Haga clic en la gráfica de la barra de progreso y ajuste Threshold
en la barra de herramientas para contar solo los miembros con al menos 5000
etiquetas. Ahora solo se incluyen en el recuento tres de los cinco miembros etiquetados. Ajuste el umbral de recuento para diferenciar mejor entre miembros etiquetados y no etiquetados, en función de sus requisitos de etiquetado.
Función labelECGregions
La función labelECGregions
utiliza una red de deep learning preentrenada para identificar morfologías de latido P, QRS y T en señales de ECG.
function [labelVals,labelLocs] = labelECGregions(x,t,parentLabelVal,parentLabelLoc,varargin) labelVals = cell(2,1); labelLocs = cell(2,1); if nargin < 5 Fs = 250; else Fs = varargin{1}; end % Download the pretrained network netfil = matlab.internal.examples.downloadSupportFile("SPT", ... "data/QTDatabaseECGSegmentationNetworks.zip"); %#ok<*UNRCH> unzip(netfil,fullfile(tempdir,"ECGnet")) load(fullfile(tempdir,"ECGnet","trainedNetworks.mat")) for kj = 1:size(x,2) sig = x(:,kj)'; predTest = classify(rawNet,sig,MiniBatchSize=50); msk = signalMask(predTest); msk.SpecifySelectedCategories = true; msk.SelectedCategories = find(msk.Categories ~= "n/a"); labels = roimask(msk); labelVals{kj} = labels.Value; labelLocs{kj} = labels.ROILimits/Fs; end labelVals = vertcat(labelVals{:}); labelLocs = cell2mat(labelLocs); end
Función QTdownload
Puede descargar los archivos de datos de https://www.mathworks.com/supportfiles/SPT/data/QTDatabaseECGData.zip o utilizar la función unzip
para crear una carpeta en un directorio temporal con 210 archivos MAT.
function folder = QTdownload localfile = matlab.internal.examples.downloadSupportFile("SPT", ... "data/QTDatabaseECGData1.zip"); unzip(localfile,tempdir) folder = fullfile(tempdir,"QTDataset"); end
Referencias
[1] 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, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals." Circulation. Vol. 101, núm. 23, 2000, págs. e215–e220. [Circulation Electronic Pages; http://circ.ahajournals.org/content/101/23/e215.full].
[2] 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." Computers in Cardiology. Vol. 24, 1997, págs. 673–676.
Ejemplos relacionados
- Label Signal Attributes, Regions of Interest, and Points
- Examine Labeled Signal Set
- Automate Signal Labeling with Custom Functions
- Label Spoken Words in Audio Signals
- Label Radar Signals with Signal Labeler (Radar Toolbox)
- Export Labeled Data from Signal Labeler for AI-Based Spectrum Sensing Applications
Uso programático
signalLabeler
abre la app Signal Labeler.
Historial de versiones
Introducido en R2019aPuede etiquetar señales en el dominio de tiempo-frecuencia utilizando la app Signal Labeler.
Cree definiciones de etiquetas de región de interés de tiempo-frecuencia.
Especifique las opciones del espectrograma para calcular la representación de la señal de tiempo-frecuencia que desea etiquetar.
Etiquete las regiones de tiempo-frecuencia en los espectrogramas de señal de forma manual o automática definiendo sus funciones de autoetiquetado.
Cree conjuntos de datos que incluyan espectrogramas y máscaras de etiquetas, y utilícelos para entrenar modelos de deep learning de detección y segmentación.
Exporte los conjuntos de señales etiquetadas en tiempo-frecuencia y las definiciones de etiquetas a un archivo o al área de trabajo de MATLAB.
Signal Labeler ya no es compatible con el modo de extracción de características, que ahora está disponible como app. Para extraer características de señales, abra Signal Feature Extractor desde la barra de herramientas o la ventana de comandos de MATLAB.
Signal Feature Extractor no admite la importación de conjuntos de señales etiquetadas con etiquetas de características creadas en Signal Labeler. Si ha utilizado Signal Labeler para crear conjuntos de señales etiquetadas con características, deberá regenerar las características en Signal Feature Extractor a partir de miembros de señal o de un conjunto de señales etiquetadas sin etiquetas de características.
Puede exportar conjuntos de señales etiquetados utilizando Signal Labeler directamente en Diagnostic Feature Designer (Predictive Maintenance Toolbox). Debe tener una licencia de Predictive Maintenance Toolbox para utilizar Diagnostic Feature Designer.
Disfrute de una mayor flexibilidad cuando calcule espectros o espectrogramas en Signal Labeler. Controle la longitud y forma de la ventana, el número de puntos de la transformada discreta de Fourier y el ancho de banda de la resolución.
La navegación por miembros está en la app principal. No es necesario acceder a un modo especializado.
Entre otros cambios de comportamiento, encontramos los siguientes:
Mostrar u ocultar una señal en la visualización haciendo clic en su nombre en la leyenda de la vista del dominio de tiempo. Mover la leyenda haciendo clic y arrastrando.
Redimensionar el visor de etiquetas y de las vistas de dominio de tiempo, dominio de frecuencia y tiempo-frecuencia de las señales a las que está asignando una etiqueta.
Las opciones Show Markers y Normalize Y Axis no son compatibles.
Para acercar o alejar la imagen o cambiar al modo de dibujo, utilice la barra de herramientas de los ejes. La única acción para acercar o alejar que admite el menú contextual y los accesos directos es Zoom to label.
Para seleccionar etiquetas en el visor de etiquetas, debe estar en modo de selección.
Cuando asigne etiquetas a regiones de interés o puntos en el modo de dibujo, utilice el ratón para ajustar la ubicación o el tamaño, o escriba un valor de ubicación. No se admite ajustar el valor de ubicación mediante accesos directos.
Clasifique y etiquete sonidos en señales de audio utilizando la red preentrenada YAMNet. Debe tener Audio Toolbox y Deep Learning Toolbox™ para usar esta función.
Localice y etiquete las regiones de señal con valores superiores o inferiores a un umbral dado o dentro o fuera de un conjunto determinado de intervalos.
Consulte también
Apps
Funciones
Temas
- Use Signal Labeler App
- Import Data into Signal Labeler
- Import and Play Audio File Data in Signal Labeler
- Create or Import Signal Label Definitions
- Label Signals Interactively or Automatically
- Custom Labeling Functions
- Customize Labeling View
- Spectrogram Computation in Signal Labeler
- Dashboard
- Export Data and Create Data Sets
- Signal Labeler Usage Tips
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)