ฉันจะทำการหาค่าเฉลี่ยอัตโนมัติเพื่อหาค่าระยะเวลา หากเป็นคาบที่มีคาบคุณควรเห็นจุดสูงสุดในตัวอย่างPทุกอันในผลลัพธ์ ผลลัพธ์ปกติของ "1" หมายถึงช่วงเวลาที่สมบูรณ์แบบ "0" หมายถึงไม่มีช่วงเวลาเลยในช่วงเวลานั้นและค่าระหว่างระยะเวลาไม่สมบูรณ์ที่บอกเป็นนัย ลบค่าเฉลี่ยของลำดับข้อมูลออกจากลำดับข้อมูลก่อนที่จะทำการหาค่าสัมพันธ์โดยอัตโนมัติเพราะมันจะทำให้เกิดผลลัพธ์ที่มีอคติPP
ยอดเขาจะมีแนวโน้มที่จะลดลงห่างจากจุดศูนย์กลางที่พวกเขาได้รับเพียงเพราะมีตัวอย่างที่ทับซ้อนกันน้อยลง คุณสามารถลดผลกระทบนั้นได้โดยการคูณผลลัพธ์ด้วยค่าผกผันของเปอร์เซ็นต์ของตัวอย่างที่ทับซ้อนกัน
U(n)=A(n)∗N|N−n|
U(n)A(n)nN
แก้ไข: นี่คือตัวอย่างของวิธีการที่จะบอกว่าลำดับเป็นระยะ ต่อไปนี้เป็นรหัส 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'))
พารามิเตอร์ "ไม่เอนเอียง" ไปยังฟังก์ชัน xcorr บอกให้ทำมาตราส่วนที่อธิบายไว้ในสมการของฉันด้านบน ความสัมพันธ์แบบอัตโนมัตินั้นไม่ได้ทำให้เป็นมาตรฐาน แต่นั่นคือสาเหตุที่จุดสูงสุดที่จุดศูนย์กลางอยู่ที่ประมาณ 0.25 แทนที่จะเป็น 1 นั่นไม่สำคัญเลยตราบใดที่เราจำไว้ว่าจุดสูงสุดของศูนย์กลางนั้นสัมพันธ์กันอย่างสมบูรณ์แบบ เราเห็นว่าไม่มียอดเขาอื่นที่เกี่ยวข้องยกเว้นที่ขอบด้านนอกสุด สิ่งเหล่านั้นไม่สำคัญเพราะมีเพียงตัวอย่างเดียวที่ซ้อนทับกันดังนั้นจึงไม่มีความหมาย
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'))
ที่นี่เราจะเห็นว่าลำดับเป็นระยะ ๆ เนื่องจากมีจุดยอด autocorrelation หลายจุดที่เป็นกลางโดยมีขนาดเท่ากับจุดสูงสุดตรงกลาง