# 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

collapse all

Generate a multichannel signal and determine the period of each column.

```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 ```

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 second repetition of the periodic sequence is incomplete.