Можно создать равномерные и неоднородные временные векторы для использования в расчетах с временными рядами.
Используйте оператор двоеточия, если вы знаете частоту дискретизации. Если ваша система дискретизирует время со скоростью 15 Гц в течение одной секунды, вы получаете 16 показаний, включая тот, что в нуле.
Fs = 15; Ts = 1/Fs; ts = 0:Ts:1;
Использование linspace
если вы знаете начало и конец временного интервала и количество выборок. Предположим, вы запустите секундомер и остановите его на секунду позже. Если вы знаете, что ваш инструмент взял 15 показаний, можно сгенерировать временной вектор.
tl = linspace(0,1,15);
Можно вычислить частоту дискретизации непосредственно из выборок и использовать ее, чтобы восстановить временной вектор.
sf = 1/(tl(2)-tl(1)); TL = (0:length(tl)-1)/sf; ErrorTL = max(abs(tl-TL))
ErrorTL = 0
Можно также восстановить ts
использование linspace
.
lts = length(ts); TS = linspace(ts(1),ts(lts),lts); ErrorTS = max(abs(ts-TS))
ErrorTS = 1.1102e-16
linspace
и оператор двоеточия создает векторы-строки по умолчанию. Транспонируйте их, чтобы получить векторы-столбцы.
tcol = tl'; ttrans = ts';
Объедините linspace
и оператор двоеточия для генерации неоднородных временных векторов произвольных характеристик.
Предположим, у вас есть синусоидальный импульс с Гауссовой модуляцией, который вы должны дискретизировать. Импульс изменяется быстро во время интервала в одну секунду, но медленно в течение предыдущего и следующего секунд.
Дискретизируйте необходимую область при 100 Гц и возьмите только пять выборок до и после. Объедините векторы с помощью квадратных скобок.
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)];
Сгенерируйте 20001 выборки функции для симуляции импульса непрерывного времени. Наложите график выборок, заданный tsf
.
Tcont = linspace(0,3,20001)'; plot(Tcont,gpl(Tcont),tdisc,gpl(tdisc),'o','markersize',5)