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 fácilmente a todas las señales del área de trabajo de MATLAB®
Suavizar, filtrar, remuestrear, eliminar tendencias, eliminar ruido, duplicar, extraer, modificar el nombre y editar señales sin salir de la app
Añadir y aplicar funciones de preprocesamiento personalizadas
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.
Más
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
Resolver tonos variando el manchado de las ventanas
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.
Calcular el espectro de una señal utilizando distintas ventanas
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
signalAnalyzer
abre la app Signal Analyzer.
signalAnalyzer(sig
)
sig
)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(sig1,...,sigN
)
sig1,...,sigN
)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',fs
)
fs
)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',ts
)
ts
)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',st
)
st
)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',tv
)
tv
)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 R2016aR2023b: Calcular y comparar más tipos de espectros
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.
R2023a: Encontrar y anotar los picos de señal
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.
R2020a: Se ha eliminado el botón Label de Signal Analyzer
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
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)