seqperiod

Compute period of sequence

Syntax

p = seqperiod(x)
[p,num] = seqperiod(x)

Description

p = seqperiod(x) returns the integer p that corresponds to the period of the sequence in a vector x. The period p is computed as the minimum length of a subsequence x(1:p) of x that repeats itself continuously every p samples in x. The length of x does not have to be a multiple of p, so that an incomplete repetition is permitted at the end of x. If the sequence x is not periodic, then p = length(x).

  • If x is a matrix, then seqperiod checks for periodicity along each column of x. The resulting output p is a row vector with the same number of columns as x.

  • If x is a multidimensional array, then seqperiod checks for periodicity along the first nonsingleton dimension of x. In this case:

    • p is a multidimensional array of integers with a leading singleton dimension.

    • The lengths of the remaining dimensions of p correspond to those of the dimensions of x after the first nonsingleton one.

[p,num] = seqperiod(x) also returns the number num of repetitions of x(1:p) in x. num might not be an integer.

Examples

x = [4 0 1 6; 
     2 0 2 7; 
     4 0 1 5; 
     2 0 5 6];
p = seqperiod(x)
p =
     2     1     4     3

The result implies:

  • The first column of x has period 2.

  • The second column of x has period 1.

  • The third column of x is not periodic, so p(3) is just the number of rows of x.

  • The fourth column of x has period 3, although the last (second) repetition of the periodic sequence is incomplete.

Was this topic helpful?