Tôi sẽ thực hiện tự động chuẩn hóa để xác định định kỳ. Nếu đó là định kỳ với chu kỳ bạn sẽ thấy các đỉnh ở mọi mẫu P trong kết quả. Một kết quả được chuẩn hóa của "1" ngụ ý tính tuần hoàn hoàn hảo, "0" ngụ ý không có tính tuần hoàn ở giai đoạn đó và các giá trị ở giữa ngụ ý tính chu kỳ không hoàn hảo. Trừ trung bình của chuỗi dữ liệu khỏi chuỗi dữ liệu trước khi thực hiện tự động tương quan vì nó sẽ làm sai lệch kết quả.PP
Các đỉnh sẽ có xu hướng giảm dần ra xa trung tâm mà chúng nhận được chỉ vì có ít mẫu chồng chéo hơn. Bạn có thể giảm thiểu hiệu ứng đó bằng cách nhân kết quả với tỷ lệ nghịch của tỷ lệ phần trăm mẫu chồng lấp.
Trong đóU(n)là tự động tương quan không thiên vị,A(n)là tự động tương quan chuẩn hóa,nlà phần bù vàNlà số lượng mẫu trong chuỗi dữ liệu mà bạn đang kiểm tra tính định kỳ.
Bạn( N ) = A ( n ) * N| N- n |
Bạn( n )Một ( n )nN
EDIT: Đây là một ví dụ về cách nhận biết các chuỗi có định kỳ hay không. Sau đây là mã 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'))
Tham số "không thiên vị" cho hàm xcorr bảo nó thực hiện chia tỷ lệ được mô tả trong phương trình của tôi ở trên. Tuy nhiên, mối tương quan tự động không được chuẩn hóa, đó là lý do tại sao đỉnh ở trung tâm là khoảng 0,25 thay vì 1. Tuy nhiên, điều đó không quan trọng, miễn là chúng ta nhớ rằng đỉnh trung tâm là tương quan hoàn hảo. Chúng ta thấy rằng không có các đỉnh tương ứng khác ngoại trừ ở các cạnh ngoài cùng. Những điều đó không quan trọng bởi vì chỉ có một mẫu chồng chéo, vì vậy điều đó không có ý nghĩa.
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'))
Ở đây chúng ta thấy rằng chuỗi là định kỳ vì có nhiều đỉnh tự tương quan không thiên vị với cùng độ lớn với đỉnh trung tâm.