seqperiod

Вычислите период последовательности

Описание

пример

p = seqperiod(x) возвращает целые числа, которые соответствуют периодам последовательностей в x. Период p вычисляется как минимальная длина подпоследовательности x(1:p) из x это повторяется постоянно каждый p выборки.

пример

p = seqperiod(x,tol) задает tol как абсолютный допуск, чтобы определить, когда два числа достаточно близки, чтобы быть обработанными как равные.

пример

[p,nr] = seqperiod(x) также возвращает количество повторений x(1:p) в x.

Примеры

свернуть все

Сгенерируйте многоканальный сигнал и определите период каждого столбца.

x = [4 0 1 6; 
     2 0 2 7; 
     4 0 1 5; 
     2 0 5 6];

p = seqperiod(x)
p = 1×4

     2     1     4     3

Первый столбец x имеет период 2. Второй столбец x имеет период 1. Третий столбец x не является периодическим, таким образом, p(3) только количество строк x. Четвертый столбец x имеет период 3, несмотря на то, что второе повторение периодической последовательности является неполным.

Вычислите число раз, что каждая периодическая последовательность повторяется.

[~,nr] = seqperiod(x)
nr = 1×4

    2.0000    4.0000    1.0000    1.3333

В первом столбце x, периодическая последовательность появляется дважды. Во втором столбце последовательность с одной выборкой повторяется так же много раз, как существуют выборки. В третьем столбце нет никакого повторения. Количество повторений в четвертом столбце один плюс часть длины последовательности, представленной остающейся выборкой.

Сгенерируйте двухканальную синусоиду, таким образом, что один канал имеет четыре периода в интервале выборки, и другой канал имеет два периода. Постройте синусоиду.

n = 0:31;
x = cos(2*pi./[8;16].*n)';

plot(n,x,'.-')
axis tight

Вычислите длины повторных подпоследовательностей и количество повторений. Задайте абсолютный допуск 1e-5.

[p,nr] = seqperiod(x,1e-5)
p = 1×2

     8    16

nr = 1×2

     4     2

Создайте массив, чей сначала две размерности имеют размер 1. По третьему измерению массив имеет повторяющуюся последовательность.

a = permute([5 4 3 5 4 3 5 4],[3 1 2])
a = 
a(:,:,1) =

     5


a(:,:,2) =

     4


a(:,:,3) =

     3


a(:,:,4) =

     5


a(:,:,5) =

     4


a(:,:,6) =

     3


a(:,:,7) =

     5


a(:,:,8) =

     4

Вычислите период повторяющейся последовательности и количество повторений, содержавшихся в массиве. Функция работает по третьему измерению, как ожидалось.

[p,nr] = seqperiod(a)
p = 3
nr = 2.6667

Входные параметры

свернуть все

Входной массив в виде вектора, матрицы или N-D массив.

  • Если x матрица, затем seqperiod проверки на периодичность вдоль каждого столбца x.

  • Если x многомерный массив, затем seqperiod проверки на периодичность вдоль первого измерения массива x с размером, больше, чем 1.

Длина x не должен быть кратным p, так, чтобы неполные повторения были разрешены в конце x.

Пример: sin(pi./[4;2]*(0:159))' задает двухканальную синусоиду. Второй канал имеет дважды частоту первого канала.

Типы данных: double

Абсолютный допуск, чтобы определить, когда два числа достаточно близки, чтобы быть обработанными как равные в виде положительного действительного скаляра.

Типы данных: double

Выходные аргументы

свернуть все

Период последовательности, возвращенный как скаляр, вектор, матрица или N-D массив. Если последовательность не является периодической, то p равняется длине x по выбранному измерению.

  • Если x матрица, затем p вектор-строка с одинаковым числом столбцов как x.

  • Если x многомерный массив, затем p многомерный массив целых чисел, первая размерность которых имеет размер 1. Остальные измерения p соответствуйте остальным измерениям x с размерами, больше, чем 1.

Количество повторений последовательности, возвращенных как скаляр, вектор, матрица или N-D массив. nr имеет те же размерности как p. Элементы nr не обязательно целые числа.

Представлено до R2006a