Main Content

Crear vectores temporales uniformes y no uniformes

Puede crear vectores temporales uniformes y no uniformes para utilizarlos en cálculos que impliquen series temporales.

Vectores temporales uniformes

Utilice el operador de dos puntos si conoce la tasa de muestreo. Si su sistema muestrea el tiempo a una velocidad de 15 Hz durante un segundo, obtendrá 16 lecturas, incluida la de cero.

Fs = 15;
Ts = 1/Fs;
ts = 0:Ts:1;

Utilice linspace si conoce el principio y el final del intervalo de tiempo y el número de muestras. Supongamos que pone en marcha un cronómetro y lo detiene un segundo después. Si sabe que su instrumento realizó 15 lecturas, puede generar el vector de tiempo.

tl = linspace(0,1,15);

Puede calcular la tasa de muestreo directamente a partir de las muestras y utilizarla para reconstruir el vector temporal.

sf = 1/(tl(2)-tl(1));

TL = (0:length(tl)-1)/sf;

ErrorTL = max(abs(tl-TL))
ErrorTL = 0

También puede reconstruir ts utilizando linspace.

lts = length(ts);
TS = linspace(ts(1),ts(lts),lts);

ErrorTS = max(abs(ts-TS))
ErrorTS = 1.1102e-16

linspace y el operador de dos puntos crean vectores fila por defecto. Transpóngalos para obtener vectores columna.

tcol = tl';
ttrans = ts';

NoteTo import an evenly spaced time vector into Simulink(R), use an expression of the formtimeVector=timeStep*(startTime/timeStep:endTime/timeStep)rather thantimeVector=(startTime:timeStep:endTime).For more information, see "Load Data to Root-Level Input Ports" in the Simulink documentation.

Vectores temporales no uniformes

Combine linspace con el operador de dos puntos para generar vectores temporales no uniformes de características arbitrarias.

Supongamos que tiene un pulso sinusoidal modulado gaussiano que ha de muestrear. El pulso cambia rápidamente durante un intervalo de un segundo, pero lentamente durante los segundos anteriores y posteriores.

Muestree la región de interés a 100 Hz y tome solo cinco muestras antes y después. Concatene los vectores utilizando corchetes.

gpl = @(x) 2.1*gauspuls(x-1.5,5,0.4);

Ffast = 100;
Tf = 1/Ffast;
Nslow = 5;
tdisc = [linspace(0,1,Nslow) 1+Tf:Tf:2-Tf linspace(2,3,Nslow)];

Genere 20001 muestras de la función para simular el pulso de tiempo continuo. Superponga una gráfica de las muestras definidas por tsf.

Tcont = linspace(0,3,20001)';

plot(Tcont,gpl(Tcont),tdisc,gpl(tdisc),'o','markersize',5)

Figure contains an axes object. The axes object contains 2 objects of type line.

Consulte también