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

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

Вычислите длины повторяющихся подпоследовательностей и количество повторений. Задайте абсолютную погрешность 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