Saya akan melakukan autokorelasi yang dinormalisasi untuk menentukan periodisitas. Jika periodik dengan periode Anda akan melihat puncak di setiap sampel P dalam hasil. Hasil normal dari "1" menyiratkan periodisitas sempurna, "0" tidak menyiratkan periodisitas sama sekali pada periode itu, dan nilai-nilai di antaranya menyiratkan periodisitas yang tidak sempurna. Kurangi rata-rata urutan data dari urutan data sebelum melakukan autokorelasi karena akan membiaskan hasilnya.PP
Puncak akan cenderung semakin jauh dari pusat yang mereka dapatkan hanya karena memiliki lebih sedikit sampel yang tumpang tindih. Anda dapat mengurangi efek itu dengan mengalikan hasilnya dengan kebalikan dari persentase sampel yang tumpang tindih.
U(n)=A(n)∗N|N−n|
U(n)A(n)nN
EDIT: Ini adalah contoh bagaimana cara mengetahui apakah urutannya periodik. Berikut ini adalah kode 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'))
Parameter "tidak bias" ke fungsi xcorr memberitahukannya untuk melakukan penskalaan yang dijelaskan dalam persamaan saya di atas. Korelasi otomatis tidak dinormalisasi, itulah sebabnya mengapa puncak di pusat sekitar 0,25 dan bukannya 1. Namun, itu tidak masalah, asalkan kita tetap ingat bahwa puncak pusat adalah korelasi sempurna. Kita melihat bahwa tidak ada puncak lain yang sesuai kecuali di ujung terluar. Itu tidak masalah karena hanya ada satu sampel yang tumpang tindih, sehingga tidak bermakna.
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'))
Di sini kita melihat bahwa urutannya periodik karena ada beberapa puncak autokorelasi yang tidak bias dengan besaran yang sama dengan puncak pusat.