Main Content

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

timescope

Mostrar señales en el dominio del tiempo

Desde R2020a

Descripción

El objeto timescope muestra señales en el dominio del tiempo.

The scope window shown with data cursors.

Características del alcance:

  • Cursores de datos — Mide los valores de la señal usando cursores verticales y horizontales.

  • Estadísticas de señal : muestra los valores máximo, mínimo, de diferencia pico a pico, media, mediana y RMS de una señal seleccionada.

  • Buscador de picos — Encuentra máximos, mostrando los valores del eje x en los que ocurren.

  • Mediciones binivel : mide las transiciones, los excesos, los insuficientes y los ciclos.

  • Desencadenantes : configura activadores para sincronizar señales repetidas y pausar la visualización cuando ocurren eventos.

Utilice Funciones de objeto para mostrar, ocultar y determinar la visibilidad de la ventana de alcance.

Puede habilitar estas medidas mediante programación o en la interfaz de usuario del alcance. Para obtener más detalles, consulte Mediciones.

Creación

Descripción

ejemplo

scope = timescope devuelve un objeto timescope , scope. Este objeto muestra señales de punto fijo y flotantes de valor real y complejo en el dominio del tiempo.

scope = timescope(Name=Value) devuelve un timescope establece propiedades usando argumentos Name=Value . Puede especificar los argumentos de nombre-valor en cualquier orden.

Propiedades

expandir todo

La mayoría de las propiedades se pueden cambiar desde la interfaz de usuario timescope .

Usado frecuentemente

Frecuencia de muestreo de la señal de entrada, en hercios, especificada como un escalar numérico finito o un vector de escalares.

La inversa de la frecuencia de muestreo determina el espaciado del eje x(eje de tiempo) entre puntos en la señal mostrada. Cuando el valor de NumInputPorts es mayor que 1 y la frecuencia de muestreo es escalar, el objeto utiliza la misma frecuencia de muestreo para todas las entradas. Para especificar diferentes frecuencias de muestreo para cada entrada, utilice un vector.

Solo puede establecer esta propiedad al crear el objeto o después de llamar a release.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del alcance del tiempo, en Data and Axes, especifique la frecuencia de muestreo en el cuadro Sample Rate .

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Fuente del intervalo de tiempo para señales de entrada basadas en cuadros, especificada como una de las siguientes:

  • "property" : el objeto deriva los límites del eje x de las propiedades TimeDisplayOffset y TimeSpan .

  • "auto" : los límites del eje x se derivan de la propiedad TimeDisplayOffset , la propiedad SampleRate y el número de filas en cada señal de entrada (FrameSize en las ecuaciones siguientes). Los límites se calculan como:

    • Límite mínimo del eje de tiempo = TimeDisplayOffset

    • Límite máximo del eje de tiempo = TimeDisplayOffset + max(1/SampleRate.*FrameSize)

Dependencia

Cuando configura la propiedad TimeSpan , TimeSpanSource se establece automáticamente en "property".

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración de alcance de tiempo, en Data and Axes, seleccione Auto o especifique el intervalo de tiempo en el cuadro Time Span .

Tipos de datos: char | string

Intervalo de tiempo, en segundos, especificado como un valor escalar numérico positivo. Los límites del eje de tiempo se calculan como:

  • Límite mínimo del eje de tiempo = TimeDisplayOffset

  • Límite máximo del eje de tiempo = TimeDisplayOffset + TimeSpan

Dependencias

Para habilitar esta propiedad, establezca TimeSpanSource en "property".

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del ámbito de tiempo, en Data and Axes, especifique el intervalo de tiempo en el cuadro Time Span .

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Especifique cómo el alcance muestra nuevos datos más allá del período de tiempo visible como:

  • "scroll" : en este modo, el osciloscopio desplaza los datos antiguos hacia la izquierda para dejar espacio para los nuevos datos a la derecha de la pantalla del osciloscopio. Este modo es beneficioso para depurar y monitorear señales que varían en el tiempo.

  • "wrap" : en este modo, el alcance agrega datos a la izquierda del gráfico después de sobrepasar la derecha del gráfico.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del alcance del tiempo, en Data and Axes, seleccione el comportamiento de desbordamiento en Overrun Action.

Tipos de datos: char | string

Tipo de parcela, especificada como:

  • "line" — Gráfico de líneas, similar a la función line o plot .

  • "stairs" — Gráfico de escalones, similar a la función stairs . Los gráficos escalonados son útiles para dibujar gráficos de historia temporal de datos muestreados digitalmente.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del alcance del tiempo, en Data and Axes, seleccione el tipo de trazado en Plot Type.

Tipos de datos: char | string

Cuando esta propiedad se establece en:

  • "onceatstop" –– Los límites se actualizan una vez al final de la simulación (cuando se llama a release ).

  • "auto" –– El osciloscopio intenta mantener siempre los datos en la pantalla mientras minimiza el número de actualizaciones de los límites de los ejes.

  • "manual" –– El alcance no realiza ninguna acción a menos que lo especifique el usuario.

  • "updates" –– El alcance escala los ejes una vez después de un número determinado de actualizaciones visuales. El número de actualizaciones está determinado por el valor de la propiedad AxesScalingNumUpdates .

Puede establecer esta propiedad solo al crear el objeto.

Tipos de datos: char | string

Especifique el número de actualizaciones antes de escalar como un entero escalar positivo real.

Dependencia

Para habilitar esta propiedad, establezca AxesScaling en "updates".

Tipos de datos: double

Avanzado

Especifique las dimensiones de la cuadrícula de diseño como un vector de dos elementos: [numberOfRows,numberOfColumns]. La cuadrícula puede tener un máximo de 4 filas y 4 columnas.

Si crea una cuadrícula de múltiples ejes, para modificar la configuración de ejes individuales, use el ActiveDisplay.

Ejemplo: scope.LayoutDimensions = [2,4]

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Display Grid () y seleccione un número específico de filas y columnas en la cuadrícula.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Especifique las unidades utilizadas para describir el eje x (eje de tiempo). Puede seleccionar una de las siguientes opciones:

  • "seconds" —El osciloscopio siempre muestra las unidades en el eje x como segundos. El alcance muestra la palabra Time(s) en el eje x.

  • "none" : el osciloscopio no muestra ninguna unidad en el eje x. El alcance solo muestra la palabra Time en el eje x.

  • "metric" : el osciloscopio muestra las unidades en el eje x como Time (s) cambiando las unidades a día, semanas, meses o años a medida que traza más puntos de datos.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración de alcance de tiempo, en Data and Axes, especifique las unidades de eje x en Time Units.

Tipos de datos: char | string

Especifique, en segundos, hasta qué punto mover los datos en el eje x. El valor de la señal no cambia, solo cambian los límites mostrados en el eje x.

Si especifica esta propiedad como escalar, entonces ese valor es el desplazamiento de visualización de tiempo para todos los canales. Si especifica esta propiedad como un vector, cada canal de entrada puede tener un desplazamiento de visualización de tiempo diferente.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del alcance del tiempo, en Data and Axes, especifique el desplazamiento del eje x en Time Offset.

Etiquetas del eje de tiempo, especificadas como:

  • "all" : las etiquetas del eje de tiempo aparecen en todas las pantallas.

  • "bottom" : las etiquetas del eje de tiempo aparecen en la pantalla inferior de cada columna.

  • "none" : no aparecen etiquetas en ninguna pantalla.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración de alcance de tiempo, en Data and Axes, seleccione qué etiqueta de eje x mostrar en Time Labels.

Tipos de datos: char | string

Especifique si se mostrará el alcance en el modo de ejes maximizados. En este modo, los ejes se expanden para caber en toda la pantalla. Para ahorrar espacio, las etiquetas no aparecen en cada pantalla. En cambio, las marcas y sus valores aparecen encima de los datos trazados. Puede seleccionar una de las siguientes opciones:

  • "auto" : los ejes aparecen maximizados en todas las pantallas solo si las propiedades Title y YLabel están vacías para cada pantalla. Si ingresa cualquier valor en cualquier visualización para cualquiera de estas propiedades, los ejes no se maximizan.

  • "on" — Los ejes aparecen maximizados en todas las pantallas. Todos los valores ingresados ​​en las propiedades Title y YLabel están ocultos.

  • "off" — Ninguno de los ejes aparece maximizado.

Uso de la ventana de alcance

En la ventana de alcance, haga clic en para maximizar los ejes, ocultar todas las etiquetas e insertar los valores de los ejes.

Tipos de datos: char | string

Especifique la longitud del búfer utilizado para cada señal de entrada como un número entero positivo.

Puede establecer esta propiedad solo al crear el objeto.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del alcance del tiempo, en Data and Axes, especifique la longitud del búfer en el cuadro Buffer Length .

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Mediciones

Canal para el cual obtener mediciones, especificado como un número entero positivo en el rango [1 N], donde N es el número de canales de entrada.

Uso de la ventana de alcance

En la pestaña Measurements , seleccione un Channel.

Tipos de datos: double

Mediciones binivel para medir transiciones, aberraciones y ciclos de señales binivel, especificadas como un objeto BilevelMeasurementsConfiguration .

Todas las propiedades BilevelMeasurementsConfiguration son ajustables.

Uso de la ventana de alcance

En la pestaña Measurements , en la sección Measurements , haga clic en Bilevel Settings para modificar las medidas binivel.

Mediciones de cursor para mostrar cursores de pantalla o de forma de onda, especificados como un objeto CursorMeasurementsConfiguration .

Todas las propiedades CursorMeasurementsConfiguration son ajustables.

Uso de la ventana de alcance

En la pestaña Measurements , en la sección Measurements , seleccione Data Cursors para habilitar los cursores en la pantalla. Haga clic en Data Cursors para modificar la configuración del cursor.

Mediciones del buscador de picos para calcular y mostrar los valores de pico calculados más grandes, especificados como un objeto PeakFinderConfiguration .

Todas las propiedades PeakFinderConfiguration son ajustables.

Uso de la ventana de alcance

En la pestaña Measurements , en la sección Measurements , seleccione Peak Finder para habilitar el buscador de picos. Haga clic en Peak Finder para modificar la configuración del buscador de picos.

Mediciones de estadísticas de señal para calcular y mostrar estadísticas de señal, especificadas como un objeto SignalStatisticsConfiguration .

Todas las propiedades SignalStatisticsConfiguration son ajustables.

Uso de la ventana de alcance

En la pestaña Measurements , en la sección Measurements , seleccione Signal Statistics. Haga clic en Signal Statistics para elegir las estadísticas a calcular.

Mediciones de activación, especificadas como un objeto TriggerConfiguration . Defina un evento de activación para identificar el tiempo de simulación de las características de la señal de entrada especificadas. Puede utilizar eventos de activación para estabilizar señales periódicas, como una onda sinusoidal, o capturar señales no periódicas, como un pulso que se produce de forma intermitente.

Todas las propiedades TriggerConfiguration son ajustables.

Uso de la ventana de alcance

En la pestaña Measurements , en la sección Trigger , seleccione Enable Trigger y haga clic en Settings para modificar el configuración del disparador.

Visualización

Especifique el nombre del ámbito como un vector de caracteres o una cadena escalar. Este nombre aparece como título de la ventana de la figura del osciloscopio. Para especificar un título de un gráfico de alcance, utilice la propiedad Title .

Tipos de datos: char | string

Posición de la ventana de alcance en píxeles, especificada por el tamaño y la ubicación de la ventana de alcance como un vector de cuatro elementos de la forma [left bottom width height]. Puede colocar la ventana de alcance en una posición específica en su pantalla modificando los valores de esta propiedad.

De forma predeterminada, la ventana aparece en el centro de la pantalla con un ancho de 800 píxeles y un alto de 500 píxeles. Los valores exactos de la posición dependen de la resolución de su pantalla.

Especifique los nombres de los canales de entrada como un arreglo de celdas de vectores de caracteres o un arreglo de cadenas. Los nombres de los canales aparecen en la leyenda y en la pestaña Measurements debajo de Select Channel. Si no especifica nombres, los canales se etiquetan como Channel 1, Channel 2, etc.

Dependencia

Para habilitar esta propiedad, establezca ShowLegend en true.

Tipos de datos: char

Pantalla activa utilizada para establecer propiedades, especificadas por el número de pantalla entero. El número de una pantalla corresponde al índice de ubicación por filas de la pantalla. Establecer esta propiedad controla qué pantalla se utiliza para las siguientes propiedades: YLimits, YLabel, ShowLegend, ShowGrid, Title, y PlotAsMagnitudePhase.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del alcance del tiempo, en Display and Labels, especifique la visualización activa usando Active Display.

Especifique el título de visualización como un vector de caracteres o una cadena escalar.

Dependencia

Cuando establece esta propiedad, ActiveDisplay controla la visualización que se actualiza.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del ámbito de tiempo, en Display and Labels, especifique el título para mostrar en el cuadro Title .

Tipos de datos: char | string

Especifique el texto para que el alcance se muestre a la izquierda del eje y.

Dependencias

Esta propiedad se aplica solo cuando PlotAsMagnitudePhase es false. Cuando PlotAsMagnitudePhase es true, las dos etiquetas de eje y son valores de solo lectura "Magnitude" y "Phase", para el gráfico de magnitud y el gráfico de fase, respectivamente.

Cuando establece esta propiedad, ActiveDisplay controla la visualización que se actualiza.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del ámbito de tiempo, en Display and Labels, especifique una etiqueta para el eje y en el cuadro Y-Label .

Tipos de datos: char | string

Especifique los límites del eje y como un vector numérico de dos elementos, [ymin, ymax].

  • Si PlotAsMagnitudePhase es false, el valor predeterminado es [-10,10].

  • Si PlotAsMagnitudePhase es true, el valor predeterminado es [0,10]. Esta propiedad especifica los límites del eje y sólo del gráfico de magnitud. Los límites del eje y del gráfico de fase son siempre [-180,180]

Dependencia

Cuando establece esta propiedad, ActiveDisplay controla la visualización que se actualiza.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del alcance del tiempo, en Display and Labels, especifique los límites para el eje y en el cuadro Y-Axis Limits .

Para mostrar una leyenda con los nombres de las entradas, establezca esta propiedad en true.

Desde la leyenda puedes controlar qué señales son visibles. En la leyenda del osciloscopio, haga clic en el nombre de una señal para ocultar la señal en el osciloscopio. Para mostrar la señal, haga clic nuevamente en el nombre de la señal.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del ámbito de tiempo, en Display and Labels, seleccione Show Legend.

Tipos de datos: logical

Establezca esta propiedad en true para mostrar las líneas de la cuadrícula en el gráfico.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del ámbito de tiempo, en Display and Labels, seleccione Show Grid.

Trazar la señal como magnitud y fase, especificada como:

  • true : el osciloscopio traza la magnitud y la fase de la señal de entrada en dos ejes separados dentro de la misma pantalla activa.

  • false : el osciloscopio traza las partes real e imaginaria de la señal de entrada en dos ejes separados dentro de la misma pantalla activa.

Esta propiedad es útil para señales de entrada de valores complejos. Activar esta propiedad afecta la fase de las señales de entrada de valor real. Cuando la amplitud de la señal de entrada no es negativa, la fase es 0 grados. Cuando la amplitud de la señal de entrada es negativa, la fase es de 180 grados.

Uso de la ventana de alcance

En la pestaña Scope , haga clic en Settings. En el cuadro de diálogo Configuración del ámbito de tiempo, en Display and Labels, seleccione Magnitude Phase Plot.

Funciones del objeto

Para utilizar una función de objeto, especifique el objeto como primer argumento de entrada.

hideOcultar ventana de alcance
showMostrar ventana de alcance
isVisibleDeterminar la visibilidad del alcance.
generateScriptGenere el script MATLAB para crear un alcance con la configuración actual
printToFigureImprimir ventana de alcance en MATLAB figura
stepEjecutar el algoritmo System object
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Si desea reiniciar la simulación desde el principio, llame a reset para borrar las visualizaciones de la ventana de alcance. No llames a reset después de llamar a release.

Ejemplos

contraer todo

Crea una señal sinusoidal con dos tonos, uno a 0,3 kHz y otro a 3 kHz.

t = (0:1000)'/8e3;
xin = sin(2*pi*0.3e3*t)+sin(2*pi*3e3*t);

Cree un objeto timescope y vea la señal sinusoidal llamando al objeto de alcance de tiempo scope.

scope = timescope(SampleRate=8e3,...
    TimeSpanSource="property",...
    TimeSpan=0.1);
scope(xin)

Ejecute release para permitir cambios en los valores de propiedad y las características de entrada. El osciloscopio escala automáticamente los ejes.

release(scope);

Oculta la ventana de alcance.

if(isVisible(scope))
    hide(scope)
end

Muestra la ventana de alcance.

if(~isVisible(scope))
    show(scope)
end

Crear y mostrar señal de entrada de reloj

Cargue los datos del reloj, x y t. Encuentre el tiempo de muestra ts.

load clockex
ts = t(2)-t(1);

Cree un objeto timescope y llame al objeto para mostrar la señal. Para escalar automáticamente los ejes y permitir cambios en los valores de propiedad y las características de entrada, llame a release.

scope = timescope(SampleRate=1/ts,TimeSpanSource="auto");
scope(x);
release(scope);

Utilice el panel Medidas binivel para encontrar el tiempo de asentamiento

En la pestaña Medidas, en Configuración binivel, seleccione Aberraciones.

Inicialmente, el Time Scope no muestra la medición del Tiempo(s) de establecimiento. Esta ausencia se produce porque el valor predeterminado del parámetro Settle Seek es mayor que toda la duración de la simulación.

Para cambiar el valor del parámetro Settle Seek(s), haga clic en Configuración binivel, y en Nivel de referencia, establezca el valor de búsqueda de liquidación en 2e-6 y presione Enter.

Time Scope ahora muestra un valor de tiempo de establecimiento de flanco ascendente de 118.392 ns.

Este valor del tiempo de establecimiento es en realidad el promedio estadístico de los tiempos de establecimiento para los cinco flancos ascendentes. Para mostrar el tiempo de establecimiento de un solo flanco ascendente, puede ampliar esa transición.

Pase el cursor sobre la esquina superior derecha de los ejes del alcance y haga clic en el botón de zoom.

Haga clic y arrastre para acercar una de las transiciones. Establezca Settle Seek(s) en 2e-7 y presione Enter.

El ámbito de tiempo actualiza el valor del tiempo de establecimiento del flanco ascendente para reflejar la nueva ventana de tiempo.

Cree una onda sinusoidal y visualícela en el ámbito del tiempo. Calcule mediante programación las mediciones de dos niveles relacionadas con transiciones, aberraciones y ciclos de señales.

Inicialización

Cree la onda sinusoidal de entrada usando la función sin . Cree un objeto timescope MATLAB® para mostrar la señal. Establezca la propiedad TimeSpan en 1 segundo.

f = 100;
fs = 1000;
swv = sin(2.*pi.*f.*(0:1/fs:1-1/fs)).';
scope = timescope(SampleRate=fs,...
    TimeSpanSource="property",...
    TimeSpan=1);

Medidas de transición

Habilite el alcance para mostrar medidas de transición mediante programación estableciendo la propiedad ShowTransitions en true. Muestra la onda sinusoidal en el osciloscopio.

Las mediciones de transición, como el tiempo de subida, el tiempo de caída y la velocidad de aceleración, aparecen en el panel Transiciones en la parte inferior del osciloscopio.

scope.BilevelMeasurements.ShowTransitions = true;
scope(swv);
release(scope);

Medidas de aberración

Habilite el osciloscopio para mostrar mediciones de aberración mediante programación estableciendo la propiedad ShowAberrations en true. Muestra la onda sinusoidal en el osciloscopio.

Las mediciones de aberración, como el disparo previo, el sobreimpulso, el insuficiente y el tiempo de establecimiento, aparecen en el panel Aberraciones en la parte inferior del osciloscopio.

scope.BilevelMeasurements.ShowAberrations = true;
scope(swv);
release(scope);

Mediciones de ciclo

Habilite el alcance para mostrar mediciones de ciclos mediante programación estableciendo la propiedad ShowCycles en true. Muestra la onda sinusoidal en el osciloscopio.

Las mediciones de ciclos, como el período, la frecuencia, el ancho del pulso y el ciclo de trabajo, aparecen en el panel Ciclos en la parte inferior del osciloscopio.

scope.BilevelMeasurements.ShowCycles = true;
scope(swv);
release(scope);

Cree una onda sinusoidal y visualícela en el ámbito del tiempo. Habilite el osciloscopio mediante programación para calcular las estadísticas de la señal.

El objeto admite estas estadísticas de señal:

  • Máximo

  • Mínimo

  • Significar

  • Mediana

  • RMS

  • Pico a pico

  • Diferencia

  • Desviación Estándar

  • Cuadrado medio

Inicialización

Cree la onda sinusoidal de entrada usando la función sin . Cree un objeto timescope MATLAB® para mostrar la señal. Establezca la propiedad TimeSpan en 1 segundo.

f = 100;
fs = 1000;
swv = sin(2.*pi.*f.*(0:1/fs:1-1/fs)).';
scope = timescope(SampleRate=fs,...
    TimeSpanSource="property",...
    TimeSpan=1);

Estadísticas de señal

Habilite el alcance para mostrar estadísticas de señal mediante programación configurando la propiedad SignalStatistics > Enabled en true.

scope.SignalStatistics.Enabled = true;

De forma predeterminada, el osciloscopio permite las siguientes mediciones.

scope.SignalStatistics
ans = 
  SignalStatisticsConfiguration with properties:

                  ShowMax: 1
                  ShowMin: 1
           ShowPeakToPeak: 1
                 ShowMean: 1
             ShowVariance: 0
    ShowStandardDeviation: 1
               ShowMedian: 1
                  ShowRMS: 1
           ShowMeanSquare: 0
                  Enabled: 1

Muestra la onda sinusoidal en el osciloscopio. Aparece un panel de Estadísticas en la parte inferior de la ventana del osciloscopio que muestra las estadísticas de la parte de la señal que puede ver en el osciloscopio.

Si utiliza las opciones de zoom en el osciloscopio, las estadísticas se ajustan automáticamente al rango de tiempo en la pantalla.

scope(swv);
release(scope);

Este ejemplo muestra cómo visualizar múltiples entradas con diferentes frecuencias de muestreo y trazar las señales en múltiples ejes.

Genere tres ondas sinusoidales diferentes y trácelas en Time Scope.

freq = 1/500;
t    = (0:100)'/freq;
t2   = (0:0.5:100)'/freq;
xin1 = sin(1/2*t);
xin2 = sin(1/4*t2);
xin  = sin(1/2*t2)+sin(1/4*t2);

scope = timescope(SampleRate=[freq freq/2 freq],...
    TimeSpanSource="property", ...
    TimeSpan=0.1,...
    LayoutDimensions=[2,1]);
scope(xin,xin1,xin2)

release(scope)

Este ejemplo muestra cómo agregar títulos, establecer límites del eje y y modificar propiedades cuando tiene varios ejes en su objeto timescope .

Utilice el objeto timescope para visualizar tres ondas sinusoidales con dos frecuencias de muestreo diferentes.

freq = 1;
t    = (0:100)'/freq;
t2   = (0:0.5:100)'/freq;
xin1 = sin(1/2*t);
xin2 = sin(1/4*t2);
xin  = sin(1/2*t2)+sin(1/4*t2);
    
scope = timescope(SampleRate=[freq freq/2 freq],...
     TimeSpanSource="property",...
     TimeSpan=100);
scope(xin, xin1, xin2)

Cambie el diseño para agregar un segundo eje. La segunda y tercera entradas se mueven automáticamente al nuevo segundo eje.

scope.LayoutDimensions = [2,1];

Modifique las propiedades del primer eje.

scope.ActiveDisplay = 1;
scope.ShowGrid = false;
scope.Title = "Sine Wave 1";
scope.YLimits = [-2,2];

Repita este proceso para modificar el segundo eje.

scope.ActiveDisplay = 2;
scope.Title = "Sine Waves 2 & 3";
scope.YLimits = [-1,1];
release(scope)

Cree un objeto dsp.SineWave . Cree un objeto dsp.FIRDecimator para diezmar la onda sinusoidal en 2. Cree un objeto timescope con dos puertos de entrada.

Fs = 1000;  % Sample rate
sine = dsp.SineWave(Frequency=50,...
   SampleRate=Fs,...
   SamplesPerFrame=100);
decimate = dsp.FIRDecimator; % To decimate sine by 2
scope = timescope(SampleRate=[Fs Fs/2],...
   TimeDisplayOffset=[0 38/Fs],...
   TimeSpanSource="Property",...
   TimeSpan=0.25,...
   YLimits=[-1 1],...
   ShowLegend=true);

Llame al objeto dsp.SineWave para crear una señal de onda sinusoidal. Utilice el objeto dsp.FIRDecimator para crear una segunda señal que sea igual a la señal original y diezmarla por un factor de 2. Muestre las señales llamando al objeto timescope .

for ii = 1:2
     xsine = sine();
     xdec = decimate(xsine);
     scope(xsine,xdec)
end
release(scope)

Cierre la ventana Time Scope y borre las variables.

clear scope Fs sine decimate ii xsine xdec

Cree un vector que represente una señal sinusoidal de valor complejo y un objeto timescope . Llame al osciloscopio para mostrar la señal.

fs = 1000; 
t = (0:1/fs:10)';
CxSine = cos(2*pi*0.2*t) + 1i*sin(2*pi*0.2*t);
CxSineSum = cumsum(CxSine);
scope = timescope(SampleRate=fs,...
    TimeSpanSource="auto",ShowLegend=1);
scope(CxSineSum);
release(scope)

De forma predeterminada, cuando la entrada es una señal de valor complejo, Time Scope traza las porciones real e imaginaria en los mismos ejes. Estas partes aparecen como líneas de diferentes colores en los mismos ejes dentro de la misma pantalla activa.

Cambie la propiedad PlotAsMagnitudePhase a true y llame a release.

Time Scope ahora traza la magnitud y la fase de la señal de entrada en dos ejes separados dentro de la misma pantalla activa. Los ejes superiores muestran la magnitud y los ejes inferiores muestran la fase en grados.

scope.PlotAsMagnitudePhase = true;
scope(CxSineSum);
release(scope)

Este ejemplo muestra cómo el objeto timescope visualiza entradas que cambian de dimensiones a mitad de camino.

Cree un vector que represente una señal constante de dos canales. Cree otro vector que represente una señal constante de tres canales. Cree un objeto timescope y llame al osciloscopio con dos entradas para mostrar la señal.

fs = 10;
sigdim2 = [ones(5*fs,1) 1+ones(5*fs,1)];                   % 2-dim 0-5 s
sigdim3 = [2+ones(5*fs,1) 3+ones(5*fs,1) 4+ones(5*fs,1)];  % 3-dim 5-10 s
scope = timescope(SampleRate=fs,TimeSpanSource="property");
scope.PlotType = "stairs";
scope.TimeSpanOverrunAction = "scroll";
scope.TimeDisplayOffset = [0 5];
scope([sigdim2; sigdim3(:,1:2)], sigdim3(:,3));

El tamaño de la señal de entrada al Time Scope cambia a medida que avanza la simulación. Cuando el tiempo de simulación es inferior a 5 segundos, Time Scope traza solo la señal de dos canales sigdim2. Después de 5 segundos, el Time Scope también traza la señal de tres canales sigdim3.

Ejecute el método release para habilitar cambios en los valores de propiedad y las características de entrada. El osciloscopio escala automáticamente los ejes.

release(scope)

Utilice el panel Peak Finder en Time Scope para medir la frecuencia cardíaca.

Crear y mostrar señal de ECG

Utilice la función personalizada ecg para generar una señal de electrocardiograma (ECG).

type ecg.m
function x = ecg(L)
a0 = [0,  1, 40,  1,   0, -34, 118, -99,   0,   2,  21,   2,   0,   0,   0];
d0 = [0, 27, 59, 91, 131, 141, 163, 185, 195, 275, 307, 339, 357, 390, 440];
a = a0 / max(a0);
d = round(d0 * L / d0(15));
d(15) = L;
for i = 1:14
    m = d(i) : d(i+1) - 1;
    slope = (a(i+1) - a(i)) / (d(i+1) - d(i));
    x(m+1) = a(i) + slope * (m - d(i));
end
x1 = 3.5*ecg(2700).';
y1 = sgolayfilt(kron(ones(1,13),x1),0,21);
n = (1:30000)';
del = round(2700*rand(1));
mhb = y1(n + del);
ts = 0.00025;

Cree un objeto timescope y llame al objeto para mostrar la señal. Para escalar automáticamente los ejes y permitir cambios en los valores de propiedad y las características de entrada, llame a release.

scope = timescope(SampleRate=1/ts);
scope(mhb);
release(scope)

Encontrar frecuencia cardíaca

Utilice las mediciones de Peak Finder para medir el tiempo entre latidos.

En la pestaña Medidas, seleccione Peak Finder para habilitar las mediciones del buscador de picos.

Haga clic en la flecha Peak Finder y establezca la propiedad Num Peaks en 10 y presione enter.

En el panel Picos en la parte inferior de la ventana, Time Scope muestra una lista de diez valores de amplitud de pico y los momentos en que ocurren.

La lista de valores máximos muestra una diferencia de tiempo constante de 0,675 segundos entre cada latido. Según esta ecuación, la frecuencia cardíaca de esta señal de ECG es de aproximadamente 89 latidos por minuto.

60 s/min0.675 s/beat=88.89 bpm

Cierre la ventana Ámbito de tiempo y elimine las variables que creó del espacio de trabajo.

clear scope x1 y1 n del mhb ts

Desde R2023b

Utilice la función printToFigure para imprimir la ventana de visualización del objeto timescope en una nueva figura de MATLAB® .

Vea una onda sinusoidal en Time Scope.

f = 100;
fs = 1000;
swv = sin(2.*pi.*f.*(0:1/fs:1-1/fs)).';
scope = timescope(SampleRate=fs,...
    TimeSpanSource="property", ...
    TimeSpan=1);
scope(swv);

Imprima la visualización de la onda sinusoidal en una nueva figura de MATLAB . La función devuelve un identificador a la figura.

scopeFig = printToFigure(scope);

Figure contains an axes object. The axes object contains an object of type image.

El identificador de la figura scopeFig permite modificar la apariencia y el comportamiento de la ventana de la figura.

Especifique un nombre de figura y cambie el tamaño de la figura a 400 por 250 píxeles.

scopeFig.Name="Sine Wave Signal";
scopeFig.NumberTitle="off";
scopeFig.Position=[1 1 400 250];

Figure Sine Wave Signal contains an axes object. The axes object contains an object of type image.

Al imprimir una figura, puede hacer que la figura sea invisible configurando el argumento Visible en false.

scopeFig = printToFigure(scope,Visible=false);

Limitaciones

  • No admite la generación de código C/C++ usando MATLAB® Coder™. Para generar una aplicación independiente, utilice MATLAB Compiler™.

  • Admite la generación de código MEX al tratar las llamadas al objeto como extrínsecas.

Sugerencias

  • Para cerrar la ventana de alcance y borrar sus datos asociados, use la función MATLAB clear .

  • Para ocultar o mostrar la ventana de alcance, use las funciones hide y show .

  • Utilice la función MATLAB mcc para compilar código que contenga un alcance. No puede abrir cuadros de diálogo de configuración del alcance si tiene más de un componente compilado en su aplicación.

Historial de versiones

Introducido en R2020a

expandir todo