Signal Analyzer
Visualizar y comparar múltiples señales y espectros
Descripción
La app Signal Analyzer es una herramienta interactiva que sirve para visualizar, preprocesar, medir, analizar y comparar señales en los dominios de tiempo, frecuencia y tiempo-frecuencia. Al utilizar esta app, puede:
Acceder con facilidad a todas las señales del área de trabajo de MATLAB®.
Rellenar datos faltantes (desde R2024a); suavizar, filtrar, remuestrear, eliminar tendencias, eliminar ruido, extraer y editar señales sin salir de la app.
Añadir y aplicar funciones de preprocesamiento personalizadas.
Reproducir señales de audio. (desde R2024a)
Visualizar y comparar simultáneamente múltiples representaciones de señales en forma de onda, espectro, persistencia, espectrograma y escalograma.
Medir datos y estadísticas de señal.
La app Signal Analyzer permite trabajar con muchas señales de distinta duración al mismo tiempo y en la misma vista.
Para obtener más información, consulte Cómo utilizar la app Signal Analyzer.
Para utilizar la vista de escalograma y aplicar la eliminación de ruido de wavelet a las señales se necesita una licencia de Wavelet Toolbox™.

Abrir la aplicación Signal Analyzer
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
signalAnalyzer
.
Ejemplos
Cargue una señal de voz muestreada a . El archivo contiene una grabación de una voz femenina diciendo la palabra "MATLAB®".
load mtlb
Para simular una situación en la que falta el 70% de los datos de audio, asigne aleatoriamente valores NaN
a la señal.
rng(2024) numToReplace = round(length(mtlb) * 0.70); missing = randperm(length(mtlb),numToReplace); mtlbMissing = mtlb; mtlbMissing(missing) = NaN;
Abra Signal Analyzer y arrastre las variables mtlb
y mtlbMissing
desde el panel Workspace Browser hasta la tabla Filter Signals. Seleccione las dos señales. En la pestaña Analyzer, haga clic en Time Values y seleccione Sample Rate and Start Time
. Especifique Sample Rate como Fs
Hz y Start Time como 0
s. Haga clic en Display Grid para crear dos visualizaciones, una al lado de la otra. Represente mtlb
en la visualización de la izquierda y mtlbMissing
en la visualización de la derecha. Para oír la señal de audio mtlb
, seleccione y haga clic en Play en la sección Playback de la barra de herramientas en la pestaña Display. Para repetir la señal, seleccione Play in Loop antes de reproducirla.
Seleccione la señal con datos faltantes y haga clic en Preprocess en la pestaña Analyzer para acceder al modo de preprocesamiento. A continuación, seleccione Fill Missing
en la lista de opciones de preprocesamiento. Utilice el panel Function Parameters para ajustar los parámetros Fill Missing
. Seleccione Autoregressive model
y haga clic en Apply para rellenar la señal faltante. Haga clic en Accept All para guardar los resultados de preprocesamiento y salir del modo. Para más información sobre funciones de relleno, consulte fillmissing
y fillgaps
.
Ahora puede reproducir la señal rellenada mediante el botón Play. Para ver el efecto de la falta de datos de relleno en el espectrograma, haga clic en Time-Frequency en la pestaña Display. En la pestaña Spectrogram, especifique una resolución de tiempo de 20 ms y un solapamiento de 80
% entre los segmentos contiguos. Establezca Power Limits en –50
dB y –10
dB. Haga clic en la visualización de la izquierda y repita los pasos.
Se puede ajustar el manchado espectral de la ventana de análisis para resolver sinusoides en Signal Analyzer.
Genere una señal de dos canales muestreada a 100 Hz durante 2 segundos.
El primer canal consta de un tono de 20 Hz y otro de 21 Hz. Ambos tonos tienen amplitud unitaria.
El segundo canal también tiene dos tonos. Un tono tiene amplitud unitaria y una frecuencia de 20 Hz. El otro tono tiene una amplitud de 1/100 y una frecuencia de 30 Hz.
fs = 100; t = (0:1/fs:2-1/fs)'; x = sin(2*pi*[20 20].*t)+[1 1/100].*sin(2*pi*[21 30].*t);
Inserte la señal en ruido blanco. Especifique una relación señal-ruido de 40 dB.
x = x + randn(size(x)).*std(x)/db2mag(40);
Abra Signal Analyzer y represente la señal. Con la señal seleccionada en la tabla Signal, en la pestaña Analyzer, haga clic en Time Values y seleccione Sample Rate and Start Time
. Especifique Sample Rate como fs
Hz y Start Time como 0
s. En la pestaña Display, haga clic en Spectrum para añadir una gráfica espectral a la visualización.
Haga clic en la pestaña Spectrum. El control deslizante que controla el manchado espectral se encuentra en la posición media, lo que corresponde a un ancho de banda de la resolución de unos 1,28 Hz. Los dos tonos del primer canal no se resuelven. El tono de 30 Hz en el segundo canal es visible, a pesar de ser mucho más débil que el otro.
Aumente el manchado de modo que el ancho de banda de la resolución sea aproximadamente 0,83 Hz. El tono débil del segundo canal está claramente resuelto.
Mueva el control deslizante hasta el valor máximo. El ancho de banda de la resolución es aproximadamente 0,5 Hz. Los dos tonos del primer canal se resuelven. El tono débil del segundo canal queda enmascarado por los grandes lóbulos laterales de la ventana.
Haga clic en la pestaña Display. Utilice el zoom horizontal para ampliar el eje de frecuencia. Añada dos cursores a la pantalla y arrastre los cursores del dominio de frecuencia para estimar las frecuencias de los tonos.
Lea una grabación de audio de un cepillo de dientes electrónico en MATLAB®. La señal se muestrea a 48 kHz. El cepillo se enciende en aproximadamente 1,75 segundos y permanece encendido unos 2 segundos.
[y,fs] = audioread("toothbrush.m4a");
Abra Signal Analyzer y arrastre la señal del navegador del área de trabajo a la tabla Signal. Añada información de tiempo a la señal seleccionándola en la tabla Signal y haciendo clic en Time Values en la pestaña Analyzer. Seleccione Sample Rate and Start Time
e introduzca fs
en la tasa de muestreo.
En la pestaña Display, haga clic en Display Grid para crear una cuadrícula de pantallas de dos por dos. Seleccione cada pantalla, haga clic en Spectrum para añadir una vista del espectro y en Time para eliminar la vista de tiempo. Arrastre la señal a las cuatro pantallas.
Haga clic en la pestaña Spectrum para modificar la vista del espectro de cada pantalla.
Haga clic en la pantalla superior izquierda para seleccionarla. Mueva el control deslizante de Leakage hasta obtener un valor de manchado de 32.
Haga clic en la pantalla superior derecha para seleccionarla. En la sección Resolution Type, seleccione Window Length. En la sección Window Length, seleccione Specify y especifique una longitud de ventana de 1500 muestras. En la sección Window Options, elija una ventana
Rectangular
y especifique un porcentaje de solapamiento de 20.Haga clic en la pantalla inferior izquierda para seleccionarla. En la sección Resolution Type, seleccione Window Length. En la sección Window Length, seleccione Specify y especifique una longitud de ventana de 500 muestras. En la sección Window Options, elija una ventana
Hamming
y especifique un porcentaje de solapamiento de 50. En la sección NFFT, especifique 550 puntos de la transformada discreta de Fourier.Haga clic en la pantalla inferior derecha para seleccionarla. En la sección Resolution Type, seleccione Window Length. En la sección Window Length, seleccione Specify y especifique una longitud de ventana de 5000 muestras. En la sección Window Options, elija una ventana
Chebyshev
y especifique una atenuación de los lóbulos laterales de 50 dB y un porcentaje de solapamiento de 90.
Puede observar que algunas vistas muestran una mayor resolución, pero un mayor manchado, mientras que otras vistas tienen un menor manchado a costa de la resolución.
Ejemplos relacionados
- Extract Voices from Music Signal
- Modulation and Demodulation Using Complex Envelope
- Find and Track Ridges Using Reassigned Spectrogram
- Declip Saturated Signals Using Your Own Function
- Compute Envelope Spectrum of Vibration Signal
- Find Delay Between Correlated Signals
- Find Interference Using Persistence Spectrum
- Denoise Noisy Doppler Signal
- Resample and Filter a Nonuniformly Sampled Signal
- Extraer regiones de interés del canto de una ballena
Uso programático
signalAnalyzer
abre la app Signal Analyzer.
signalAnalyzer(
abre la app Signal Analyzer e importa y representa la señal sig
)sig
. Si la app ya está abierta, representa sig
en la pantalla actual. Si sig
ya se ha representado, pero ha cambiado, la llamada a la función actualiza la representación.
sig
puede ser una variable del área de trabajo o una expresión de MATLAB. sig
puede ser:
un vector o una matriz con señales independientes en cada columna;
un
timetable
con valores de tiempo especificados como duraciones;Un objeto
timeseries
.
Para obtener más detalles, consulte Data Types Supported by Signal Analyzer.
Por defecto, la app representa la señal como una función del índice de la muestra. Si proporciona información de tiempo, o si la señal tiene información de tiempo inherente, la app representa la señal como una función de tiempo.
signalAnalyzer(
importa N vectores o matrices de señal y los representa en la pantalla actual. La app no es compatible con la importación de señales con información de tiempo inherente y señales sin información de tiempo inherente en la misma llamada de función.sig1,...,sigN
)
signalAnalyzer(___,'SampleRate',
especifica una tasa de muestreo, fs
)fs
, como un escalar positivo expresado en Hz. La app utiliza la tasa de muestreo para representar una o más señales en función del tiempo, asumiendo un tiempo inicial de cero. Puede especificar una tasa de muestreo para señales sin información de tiempo inherente.
signalAnalyzer(___,'SampleTime',
especifica un tiempo de muestreo, ts
)ts
, como un escalar positivo expresado en segundos. La app utiliza el tiempo de muestreo para representar una o más señales en función del tiempo, asumiendo un tiempo de inicio de cero. Puede especificar un tiempo de muestreo para señales sin información de tiempo inherente.
signalAnalyzer(___,'StartTime',
especifica un tiempo de inicio de la señal, st
)st
, como un escalar expresado en segundos. Si no especifica una tasa de muestreo o un tiempo de muestreo, la app asume una tasa de muestreo de 1 Hz. Puede especificar un tiempo de inicio para señales sin información de tiempo inherente.
signalAnalyzer(___,'TimeValues',
especifica un vector, tv
)tv
, con valores de tiempo correspondientes a los puntos de datos. tv
puede ser un vector numérico real con valores expresados en segundos. tv
también puede ser un arreglo de duration
. Los valores de tv
deben ser únicos y no pueden ser NaN
, pero no es necesario que estén espaciados uniformemente. Todas las señales de entrada deben tener la misma longitud que tv
. Puede especificar un vector de valores de tiempo para señales sin información de tiempo inherente.
El filtrado y la vista del escalograma no son compatibles con señales muestreadas de manera no uniforme.
Historial de versiones
Introducido en R2016aPreprocese las señales en la app Signal Analyzer buscando y rellenando huecos en los datos. Puede rellenar los datos faltantes con valores constantes, combinaciones de muestras vecinas o medias móviles. También puede interpolar o aplicar un modelo autorregresivo.
Reproduzca señales de audio en la app Signal Analyzer con controles de reproducción de audio.
Disfrute de una mayor flexibilidad al calcular espectros en Signal Analyzer. Controle la longitud de la ventana, el número de puntos de la transformada discreta de Fourier y el ancho de banda de la resolución.
Realice mediciones de picos de señales de dominio de tiempo. Visualice los valores pico de las señales en la tabla Measurements y como marcadores anotados en la pantalla.
Signal Analyzer ya no abre la herramienta Signal Labeler, que ahora se encuentra disponible a modo de app. Si desea etiquetar señales, abra Signal Labeler desde la barra de herramientas o la ventana de comandos de MATLAB.
Consulte también
Apps
Funciones
Temas
- Time-Frequency Gallery
- Utilizar la app Signal Analyzer
- Edit Sample Rate and Other Time Information
- Data Types Supported by Signal Analyzer
- Spectrum Computation in Signal Analyzer
- Persistence Spectrum in Signal Analyzer
- Spectrogram Computation in Signal Analyzer
- Scalogram Computation in Signal Analyzer
- Keyboard Shortcuts for Signal Analyzer
- Signal Analyzer Tips and Limitations
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)