En MATLAB, seleccionar correctamente un intervalo de tiempo permite limitar los datos que se visualizan, definir los instantes de muestreo, analizar una respuesta dinámica y controlar la posición temporal de las mediciones.
La forma adecuada depende de si se trabaja con gráficos, objetos timescope, series temporales, horarios o respuestas de sistemas dinámicos.
Definir un vector de tiempo
Cuando se dispone de un vector de datos y y de otro vector que contiene los instantes en los que se obtuvo cada valor, se puede representar y frente a t escribiendo plot(t,y).
Los valores de t deben corresponder punto por punto con los valores de y.
Los tiempos pueden expresarse en microsegundos, milisegundos, horas o cualquier otra unidad temporal.
Para crear una secuencia de tiempo con valores uniformemente espaciados, se puede utilizar una función que genere los puntos del intervalo requerido.
Por ejemplo, para calcular 200 puntos de datos entre 1 y 3 segundos se utiliza:
[y,t] = impulse(H,linspace(1,3,200));
En este caso, el vector t contiene 200 instantes comprendidos entre 1 y 3 segundos.
Seleccionar un intervalo mediante linspace
La función linspace permite especificar el inicio, el final y el número de puntos del intervalo.
La sintaxis utilizada en el ejemplo es:
linspace(1,3,200)
- 1: tiempo inicial.
- 3: tiempo final.
- 200: número de puntos.
Esta estrategia es especialmente útil cuando se necesita controlar con precisión la cantidad de muestras que se utilizarán para una representación o un cálculo.
Si no se especifica el vector de tiempo, impulse puede seleccionar automáticamente un intervalo de tiempo.
Representar datos dentro de un intervalo de tiempo
Si t contiene los tiempos y y contiene los datos correspondientes, la representación básica es:
plot(t,y)
Para representar únicamente una parte del intervalo, se pueden seleccionar los elementos de t y y que correspondan a la región temporal deseada.
Al trabajar con dos señales que tienen la misma longitud, ambas pueden combinarse en un arreglo rectangular.
Para representar la diferencia entre dos señales se puede escribir:
plot(a-b)
Para representar el cociente entre dos señales se puede escribir:
plot(a./b)
El operador ./ divide elemento por elemento y .* multiplica elemento por elemento.
Si las señales están asociadas con un vector de tiempo, las operaciones pueden representarse frente a ese vector:
plot(t,a-b)
plot(t,a./b)
Definir límites temporales en un gráfico
Cuando se desea controlar explícitamente la región visible de un gráfico, se puede establecer el límite inferior y superior del eje temporal.
El eje temporal suele corresponder al eje X, por lo que sus límites determinan el intervalo de tiempo que se muestra.
El intervalo seleccionado debe ser compatible con los valores disponibles en el vector de tiempo.
Si el intervalo gráfico es más amplio que los datos, las zonas sin muestras permanecen vacías.
Si el intervalo gráfico es más estrecho que los datos, solo se visualiza la parte comprendida entre los límites establecidos.
Seleccionar intervalos de tiempo en una respuesta de sistema
Este ejemplo muestra cómo obtener datos de respuesta al impulso y escalón, así como gráficas de respuesta al impulso y escalón, a partir de un modelo de sistema dinámico.
Cree un modelo de función de transferencia y represente gráficamente su respuesta a una entrada de escalón t = 0.
step(H);
Cuando se llama a step sin argumentos de salida, este representa la respuesta al escalón en la pantalla.
A menos que especifique un intervalo de tiempo para representar, step escoge automáticamente un intervalo de tiempo que ilustra la dinámica del sistema.
Para calcular los datos de la respuesta al escalón desde t = 0, que corresponde a la aplicación de la entrada de escalón, hasta t = 8 s, se puede especificar el intervalo de tiempo.
Cuando se llama a step con argumentos de salida, el comando devuelve los datos de respuesta al escalón y.
El vector t contiene los valores temporales correspondientes.
La respuesta del sistema puede representarse utilizando los vectores obtenidos:
plot(t,y)
También se puede representar la respuesta de H a una entrada de impulso aplicada a t = 0.
Para representar la respuesta con una cuadrícula, se puede añadir una cuadrícula al gráfico.
Calcule 200 puntos de datos de respuesta al impulso desde t = 1, un segundo después de la aplicación de la entrada del impulso, hasta t = 3 s.
[y,t] = impulse(H,linspace(1,3,200));
En cuanto a step, puede omitir el vector de tiempo para permitir que impulse seleccione automáticamente un intervalo de tiempo.

Configurar el intervalo temporal en timescope
Cuando utiliza el objeto timescope en MATLAB®, puede configurar muchos ajustes y herramientas desde la ventana.
El scope de tiempo establece el límite mínimo del eje x utilizando el valor de la propiedad TimeDisplayOffset.
Para cambiar Time Offset desde la ventana Time Scope, haga clic en Settings en la pestaña Scope.
En Data and Axes, configure Time Offset.
El scope de tiempo establece el límite máximo del eje x sumando el valor de la propiedad Time Offset con el intervalo de los valores del eje x.
Si Time Span se establece en Auto, el lapso del eje x es 10/SampleRate.
Los valores en el eje x de la pantalla del scope permanecen iguales durante toda la simulación.
Propiedades relacionadas con el intervalo
| Propiedad | Función |
|---|---|
| TimeDisplayOffset | Establece el límite mínimo del eje x. |
| Time Offset | Desplaza el intervalo temporal mostrado. |
| Time Span | Define el lapso del eje x. |
| SampleRate | Se utiliza para calcular el lapso cuando Time Span se establece en Auto. |
Personalizar la ventana del scope
La pestaña Scope personaliza y comparte el scope de tiempo.
Utilice el botón de anclar para mantener visible la barra de herramientas o el botón de flecha para barra de herramientas.
En la pestaña Scope, la sección Settings permite modificar el alcance.
El botón Settings abre la ventana de configuración que permite personalizar los datos, los ejes, la configuración de visualización, las etiquetas y la configuración de color.
El botón Display Grid permite seleccionar el diseño de visualización del scope.
Visualizar varias señales en un intervalo
De forma predeterminada, si la señal de entrada tiene varios canales, el scope utiliza un número de índice para identificar cada canal de esa señal.
Por ejemplo, la leyenda de una señal de dos canales mostrará los nombres predeterminados Channel 1, Channel 2.
Para mostrar la leyenda, en la pestaña Scope, haga clic en Settings.
En Display and Labels, seleccione Show Legend.
De forma predeterminada, el scope tiene un fondo de ejes negros y elige colores de línea para cada canal de manera similar al bloque Simulink® Scope.
Cuando el fondo de los ejes del scope es negro, asigna a cada canal de cada señal de entrada un color de línea en el orden que se muestra en la leyenda.
Si hay más de siete canales, el scope repite este orden para asignar colores de línea a los canales restantes.
Para elegir colores de línea o colores de fondo, en la pestaña Scope haga clic en Settings.
Utilice la paleta de colores Axes para cambiar el fondo del gráfico.
Haga clic en Line para elegir una línea para cambiar y en el menú desplegable Color para cambiar el color de la línea seleccionada.
Cuando muestra la leyenda, puede controlar qué señales se muestran.
Si hace clic en el nombre de una señal en la leyenda, la señal se oculta del gráfico y se muestra en gris en la leyenda.
Para volver a mostrar la señal, haga clic nuevamente en el nombre de la señal.
Medir valores dentro del intervalo seleccionado
Todas las mediciones se realizan para un canal específico.
De forma predeterminada, las mediciones se aplican al primer canal.
Para cambiar el canal que se está midiendo, utilice el menú desplegable Select Channel en la pestaña Measurements.
Cursores de datos
Utilice el botón Data Cursors para mostrar la pantalla y los cursores de forma de onda.
Cada cursor sigue una línea vertical a lo largo de la señal.
La diferencia entre los valores x y y de la señal en los dos cursores se muestra en el cuadro entre los cursores.
Estadísticas de señal
Utilice el botón Signal Statistics para mostrar estadísticas sobre la señal seleccionada en la parte inferior de la ventana del scope de tiempo.
Puede ocultar o mostrar el panel Statistics utilizando el botón de flecha en la parte inferior derecha del panel.
Para personalizar qué estadísticas mostrar y calcular, utilice la lista Signal Statistics.
Detector de picos
Utilice el botón Peak Finder para mostrar los valores pico de la señal seleccionada.
Los picos se definen como un máximo local donde están presentes valores más bajos a ambos lados de un pico.
Los puntos finales no se consideran picos.
Cuando activa las mediciones del detector de picos, aparece una flecha en el gráfico en cada máximo y aparece un panel Peaks en la parte inferior de la ventana timescope que muestra los valores x y y en cada pico.
- Etiquetas de picos: muestra las etiquetas P1, P2, … encima de las flechas en el gráfico.
- Número de picos: la cantidad de picos que se mostrarán. Debe ser un número entero escalar del 1 al 99.
- Altura mínima: la diferencia de altura mínima entre un pico y sus muestras vecinas.
- Distancia mínima: el número mínimo de muestras entre picos adyacentes.
- Umbral: el nivel por encima del cual se detectan los picos.
Mediciones binivel en un intervalo temporal
Con las mediciones de dos niveles, puede medir transiciones, aberraciones y ciclos.
Niveles de estado
Auto State Level: cuando esta casilla de verificación está seleccionada, el panel de mediciones de dos niveles detecta los niveles de estado alto y bajo de una forma de onda de dos niveles.
Cuando esta casilla de verificación está desactivada, puede ingresar valores para los niveles de estado alto y bajo manualmente.
- High: especifica manualmente el valor que denota una polaridad positiva o un nivel de estado alto.
- Low: especifica manualmente el valor que denota una polaridad negativa o un nivel de estado bajo.
- State Level Tol. (%): niveles de tolerancia dentro de los cuales deben estar los niveles inicial y final de cada transición para estar dentro de sus respectivos niveles de estado.
- Ref. superior. Nivel (%): se utiliza para calcular el final de la medición del tiempo de subida o el inicio de la medición del tiempo de bajada.
- Referencia media. Nivel (%): se utiliza para determinar cuándo ocurre una transición.
- Referencia inferior. Nivel (%): se utiliza para calcular el final de la medición del tiempo de caída o el inicio de la medición del tiempo de subida.
- Settle Seek (s): la duración después del instante del nivel de referencia medio cuando ocurre cada transición se utiliza para calcular un tiempo de estabilización válido.
Este valor se expresa como un porcentaje de la diferencia entre los niveles estatales alto y bajo.
En la siguiente figura, el nivel medio de referencia se muestra como una línea horizontal y su correspondiente instante del nivel medio de referencia se muestra como una línea vertical.
Transiciones
Seleccione Transitions para mostrar las mediciones calculadas asociadas con la señal de entrada que cambia entre sus dos posibles valores de nivel de estado, alto y bajo.
Las mediciones se muestran en el panel Transitions en la parte inferior de la ventana del scope.
La fila + Edges mide bordes ascendentes o una transición positiva.
La fila - Edges mide los flancos descendentes o una transición negativa.
Un flanco descendente en una forma de onda de dos niveles es una transición del nivel de estado alto al nivel de estado bajo con un valor de pendiente menor que cero.
Las mediciones de transición suponen que la amplitud de la señal de entrada está en unidades de voltios.
Para que las mediciones de transición sean válidas, debe convertir todas las señales de entrada a voltios.
Aberraciones
Seleccione Aberrations para mostrar mediciones calculadas que involucran la distorsión y la amortiguación de la señal de entrada, como preimpulso, sobreimpulso y subimpulso.
Sobreimpulso y subimpulso, respectivamente, se refieren a la cantidad en que una señal excede y cae por debajo de su valor final de estado estacionario.
Preshoot se refiere a la cantidad antes de una transición en que una señal varía de su valor de estado estacionario inicial.
Las mediciones se muestran en el panel Transitions en la parte inferior de la ventana del scope.
Esta figura muestra oscilación previa, sobreimpulso y subimpulso para una transición de flanco ascendente.
La siguiente figura muestra oscilación previa, sobreimpulso y subimpulso para una transición de flanco descendente.
Ciclos
Seleccionar Cycles calcula repeticiones o tendencias en la porción mostrada de la señal de entrada.
Las mediciones se muestran en el panel Cycles en la parte inferior de la ventana del scope en dos filas: + Pulses para los pulsos de polaridad positiva y - Pulses para los pulsos de polaridad negativa.
- Period: duración promedio entre bordes adyacentes de polaridad idéntica dentro de la porción mostrada de la señal de entrada.
- Frequency: recíproco del período promedio, medido en hercios.
- Count: número de pulsos de polaridad positiva o negativa contados.
- Width: duración promedio entre los flancos ascendentes y descendentes de cada pulso dentro de la porción mostrada de la señal de entrada.
- Duty Cycle: relación promedio entre el ancho de pulso y el período de pulso para cada pulso dentro de la porción mostrada de la señal de entrada.
Para calcular el período, timescope toma la diferencia entre los instantes del nivel de referencia medio de la transición inicial de cada pulso y la siguiente transición de polaridad idéntica.
Usar activadores para seleccionar el momento de captura
Defina un evento de activación para identificar el tiempo de simulación de las características de la señal de entrada especificadas.
- Auto: muestra datos del último evento activador. Si no ocurre ningún evento después de un período de tiempo, muestra los últimos datos disponibles.
- Normal: muestra datos del último evento activador. Si no ocurre ningún evento, la pantalla permanece en blanco.
- Once: muestra datos del último evento activador y congela la pantalla. Si no ocurre ningún evento, la pantalla permanece en blanco.
Haga clic en el botón Rearm Trigger para buscar el próximo evento activador.
Seleccione un tipo de activación, polaridad y cualquier otra propiedad.
Haga clic en Enable Trigger.
Puede configurar la posición del disparador para especificar la posición del puntero de tiempo a lo largo del eje y.
También puede arrastrar el puntero de tiempo hacia la izquierda o hacia la derecha para ajustar su posición.
Activador por flanco
Edge se activa cuando la señal cruza un umbral.
- Rising: se activa cuando la señal aumenta.
- Falling: se activa cuando el valor de la señal está disminuyendo.
- Either: se activa cuando la señal aumenta o disminuye.
- Level: ingrese un valor de umbral para una señal activada por flanco. Auto level es 50%.
- Hysteresis: ingrese un valor para una señal activada por flanco.
- Delay (s): desplaza el activador con un retraso fijo en segundos.
- Holdoff (s): establece el tiempo mínimo posible entre activaciones.
- Position (%): establece la posición horizontal del disparador en la pantalla.
Activador por ancho de pulso
Pulse Width se activa cuando la señal cruza un umbral bajo y un umbral alto dos veces dentro de un tiempo especificado.
- Positive: se activa con un pulso de polaridad positiva cuando el pulso cruza el umbral bajo por segunda vez.
- Negative: se activa con un pulso de polaridad negativa cuando el pulso cruza el umbral alto por segunda vez.
- Either: se activa en pulsos de polaridad positiva y negativa.
- High: ingrese un valor alto para una señal activada por ancho de pulso. Auto level es 90%.
- Low: ingrese un valor bajo para una señal activada por ancho de pulso. Auto level es 10%.
- Min Width (s): ingrese el ancho de pulso mínimo.
- Max Width (s): ingrese el ancho de pulso máximo.
- Delay (s): desplaza el activador con un retraso fijo en segundos.
- Holdoff (s): establece el tiempo mínimo posible entre activaciones.
- Position (%): establece la posición horizontal del disparador en la pantalla.
El ancho del pulso se mide entre el primer y segundo cruce del umbral medio.
Un disparador de falla es un tipo especial de disparador de ancho de pulso.
Se produce un desencadenante de falla para un pulso o pico cuya duración es menor que una cantidad específica.
Puede implementar un disparador de falla utilizando un disparador de ancho de pulso y configurando el parámetro Max Width en un valor pequeño.
Activador por transición
Transition se activa en el flanco ascendente o descendente de una señal que cruza los niveles alto y bajo dentro de un rango de tiempo específico.
- Rise Time: se activa con una señal creciente cuando la señal cruza el umbral alto.
- Fall Time: se activa con una señal decreciente cuando la señal cruza el umbral bajo.
- Either: se activa con una señal creciente o decreciente.
- High: ingrese un valor alto para una señal activada por transición. Auto level es 90%.
- Low: ingrese un valor bajo para una señal activada por transición.
Activador por ventana
Window se activa cuando una señal permanece dentro o fuera de una región definida por los umbrales alto y bajo durante un tiempo específico.
- Inside: se activa cuando una señal sale de una región entre los niveles bajo y alto.
- Outside: se activa cuando una señal ingresa a una región entre los niveles bajo y alto.
- Either: se activa cuando una señal sale o entra en una región entre los niveles bajo y alto.
- High: ingrese un valor alto para una señal de activación por ventana. Auto level es 90%.
- Low: ingrese un valor bajo para una señal de activación por ventana.
Trabajar con objetos timeseries
Las series temporales representan la evolución en el tiempo de una población o proceso dinámicos.
Se utilizan para identificar, modelar y pronosticar patrones y comportamientos de datos que se muestrean durante intervalos de tiempo discretos.
Se recomienda timetable en lugar de timeseries.
Crear una serie temporal
La sintaxis para crear un objeto timeseries es:
ts = timeseries(datavals)
Esta instrucción devuelve un objeto timeseries que contiene los datos en datavals.
Para especificar los tiempos de muestra se utiliza:
ts = timeseries(datavals,timevals)
Los datos de muestra se especifican como un escalar numérico o logical, un vector o un arreglo multidimensional.
Los tipos de datos pueden ser double, single, int8, int16, int32, int64, uint8, uint16, uint32, uint64 o logical.
Los tiempos de muestra se especifican como un escalar o vector numérico o un arreglo de celdas de vectores de caracteres de fecha.
Units es un vector de caracteres que especifica unidades de datos.
Interpolation es un objeto tsdata.interpolation que especifica el método de interpolación.
Alineación de los datos y el vector de tiempo
La alineación del vector de tiempo se devuelve como 1 o 0 del tipo de datos logical.
No puede establecer el valor de la propiedad IsTimeFirst.
Su valor se determina por el número de dimensiones del arreglo de datos.
Una o dos dimensiones, y la primera dimensión del arreglo de datos está alineada con el vector de tiempo.
Por ejemplo, ts = timeseries(rand(3,4),1:3) crea un objeto timeseries donde el tamaño del vector de tiempo es 3 por 1 y el valor de IsTimeFirst es 1.
Tres o más dimensiones, y la última dimensión del arreglo de datos está alineada con el vector de tiempo.
Cuando el valor del código de calidad es un vector, debe tener la misma longitud que el vector de tiempo.
Cada elemento se aplica a la muestra de datos correspondiente.
Propiedades del tiempo
Los valores de tiempo están representados como un vector.
Cuando TimeInfo.StartDate está vacío, los valores se miden en relación con 0.
Units especifica las unidades de tiempo y puede tener el valor 'weeks', 'days', 'hours', 'minutes', 'seconds', 'milliseconds', 'microseconds' o 'nanoseconds'.
- Start: hora de inicio.
- End: hora de finalización, solo de lectura.
- Increment: intervalo entre valores de tiempo subsiguientes, NaN cuando los tiempos no están muestreados de manera uniforme.
- Length: longitud del vector de tiempo, solo de lectura.
- Format: vector de caracteres que define la visualización de la fecha.
- StartDate: vector de caracteres de fecha que define la fecha de referencia.
Cuando los tiempos de muestra no están distribuidos uniformemente, la propiedad Increment toma el valor NaN.
Usar timetable para asociar tiempos con filas
Un timetable es un tipo de tabla que asocia una hora con cada fila.
Al igual que una table, el tipo de dato timetable puede almacenar variables de datos orientadas a columnas que tienen la misma cantidad de filas.
Todas las funciones de la tabla funcionan con horarios.
Además, los horarios proporcionan funciones específicas de tiempo para alinear, combinar y realizar cálculos con uno o más horarios.
Para buscar y etiquetar eventos en un horario, adjunte una tabla de eventos al horario.
Con la indexación en tablas con paréntesis, notación de puntos y llaves se accede a los datos de tablas de distintas formas.
El uso de timetable resulta adecuado cuando cada fila debe quedar asociada con un instante temporal y cuando es necesario alinear o combinar varias fuentes de datos.
Medir intervalos de tiempo de ejecución con tic y toc
La función tic registra el tiempo actual y la función toc utiliza el valor registrado para calcular el tiempo transcurrido.
La sintaxis es:
tic
toc
También se puede almacenar explícitamente el valor temporal:
timerVal = tic
Esto almacena el tiempo actual en timerVal para que pueda pasarlo de forma explícita a la función toc.
Pasar este valor resulta útil cuando hay múltiples llamadas a la función tic para cronometrar diferentes partes del mismo código.
tEnd = toc(tStart)
La variable tEnd especifica el tiempo transcurrido desde una llamada a la función tic al inicio del programa.
Las llamadas consecutivas a la función tic sobrescriben el tiempo de inicio registrado internamente.
La función clear no restablece el tiempo de inicio registrado por una llamada a la función tic.
En ocasiones, el programa se ejecuta demasiado rápido para que tic y toc proporcionen datos útiles.
Si el código es más rápido que 1/10 segundo, plantéese medirlo ejecutando un bucle y, después, realice la media para obtener el tiempo de una sola ejecución.
Puede utilizar tic y toc para cronometrar timeit.
Interpolación/extrapolación en series temporales estacionarias: ejemplo Matlab (Kriging)
Elegir el método adecuado
| Necesidad | Método |
|---|---|
| Crear puntos entre un tiempo inicial y uno final | linspace |
| Representar datos frente al tiempo | plot(t,y) |
| Controlar el intervalo visible de un scope | Time Offset y Time Span |
| Capturar señales según un evento | Triggers de timescope |
| Asociar muestras con instantes | timeseries o timetable |
| Medir tiempo de ejecución | tic y toc |
| Obtener una respuesta dinámica en un intervalo | step o impulse con vector de tiempo |
La selección del intervalo temporal debe realizarse de acuerdo con la estructura de los datos, la frecuencia de muestreo, la duración de la simulación y el objetivo del análisis.
tags: #como #seleccionar #intervalos #de #tiempo #en