Можно создать универсальные и неоднородные временные векторы для использования в расчетах, включающих временные ряды.
Используйте оператор двоеточия, если вы знаете частоту дискретизации. Если ваше системное демонстрационное время на уровне 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)];
Сгенерируйте 20 001 выборку функции, чтобы симулировать импульс непрерывного времени. Наложите график выборок, заданных tsf
.
Tcont = linspace(0,3,20001)'; plot(Tcont,gpl(Tcont),tdisc,gpl(tdisc),'o','markersize',5)