Haría una autocorrelación normalizada para determinar la periodicidad. Si es periódico con el período , debería ver picos en cada muestra de P en el resultado. Un resultado normalizado de "1" implica una periodicidad perfecta, "0" no implica ninguna periodicidad en ese período, y los valores intermedios implican una periodicidad imperfecta. Reste la media de la secuencia de datos de la secuencia de datos antes de realizar la autocorrelación porque sesgará los resultados.PP
Los picos tenderán a disminuir a medida que se alejen del centro simplemente porque tienen menos muestras superpuestas. Puede mitigar ese efecto multiplicando los resultados por el inverso del porcentaje de muestras superpuestas.
U(n)=A(n)∗N|N−n|
U(n)A(n)nN
EDITAR: Este es un ejemplo de cómo saber si las secuencias son periódicas. El siguiente es el código de Matlab.
s1 = [1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 1];
s1n = s1 - mean(s1);
plot(xcorr(s1n, 'unbiased'))
El parámetro "imparcial" de la función xcorr le dice que haga la escala descrita en mi ecuación anterior. Sin embargo, la autocorrelación no está normalizada, por lo que el pico en el centro es de alrededor de 0.25 en lugar de 1. Sin embargo, eso no importa, siempre que tengamos en cuenta que el pico central es la correlación perfecta. Vemos que no hay otros picos correspondientes, excepto en los bordes más exteriores. Esos no importan porque solo hay una muestra superpuesta, por lo que no tiene sentido.
s2 = [1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0];
s2n = s2 - mean(s2);
plot(xcorr(s2n, 'unbiased'))
Aquí vemos que la secuencia es periódica porque hay múltiples picos de autocorrelación no sesgados con la misma magnitud que el pico central.