Создание однородных и неоднородных временных векторов

Можно создать универсальные и неоднородные временные векторы для использования в расчетах, включающих временные ряды.

Универсальные временные векторы

Используйте оператор двоеточия, если вы знаете частоту дискретизации. Если ваше системное демонстрационное время на уровне 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';

NoteК импорт  равномерно расположенный с интервалами время вектор в Simulink(R), использование  выражение из  формаtimeVector=timeStep*(startTime/timeStep:endTime/timeStep)rather чемtimeVector=(startTime:timeStep:endTime).For больше информация, смотрите загрузка Данные к Корень-Уровень Входной параметр Порты" \in  Simulink документация.

Неоднородные временные векторы

Объедините 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)

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

Смотрите также