นี่คือสิ่งที่เราเรียกว่าในพิซเซจพิตช์การตรวจจับพิซซาว่า " ปัญหาระดับแปดเสียง "
ก่อนอื่นฉันจะเปลี่ยน AMDF เป็น ASDF และฉันจะไม่ลดขนาดหน้าต่างเมื่อความล่าช้าเพิ่มขึ้น (นอกจากนี้ฉันกำลังเปลี่ยนสัญกรณ์เป็นสิ่งที่ฉันคิดว่าเป็นแบบแผนมากขึ้น "x[n]"เป็นสัญญาณไม่ต่อเนื่อง)
ฟังก์ชันความแตกต่างกำลังสองเฉลี่ย (ASDF) ของ x[n] ในละแวกของกลุ่มตัวอย่าง x[n0] คือ:
Qx[k,n0]≜1N∑n=0N−1(x[n+n0−⌊N+k2⌋] − x[n+n0−⌊N+k2⌋+k])2
⌊⋅⌋เป็นfloor()
ฟังก์ชั่นและถ้าเป็นเช่นนั้น{2}k⌊k2⌋=⌊k+12⌋=k2
ตอนนี้ขยายตารางนี้และพิจารณาว่า summations มีลักษณะเหมือนเป็น (ไม่ใช่ว่าจะไปอินฟินิตี้ แต่เพื่อให้คุณคิดว่าถ้าที่มีขนาดใหญ่) ASDF เกี่ยวข้องโดยตรงกับความสัมพันธ์อัตโนมัติ โดยพื้นฐานแล้วมันก็คือความสัมพันธ์อัตโนมัติหันกลับหัว ขั้นตอนเหล่านี้ฉันจะปล่อยให้คุณ ลองดูคำตอบนี้N→∞N N
ดังนั้นให้พิจารณา"autocorrelation" ที่มีความยาว จำกัด(ในละแวกของตัวอย่าง ) ที่กำหนดจาก ASDF:x[n0]
Rx[k,n0]=Rx[0,n0]−12Qx[k,n0]
ที่ไหน
Rx[0,n0]≜1N∑n=0N−1(x[n+n0−⌊N2⌋])2
ตั้งแต่และสำหรับ lags ทั้งหมดนั่นหมายความว่าสำหรับ lagsทั้งหมดQx[0,n0]=0Qx[k,n0]≥0kRx[k,n0]≤Rx[0,n0]k
สมมติว่าหนึ่งนาทีที่เป็นคาบที่มีจุด (และเกิดขึ้นเป็นจำนวนเต็ม) ดังนั้นx[n]PP
x[n+P]=x[n]∀n
และ และสำหรับจำนวนเต็มใด ๆ ของช่วงเวลา (คือจำนวนเต็ม) ดังนั้นคุณจะได้จุดสูงสุดที่และที่เท่ากับพหุคูณอื่น ๆ ของหากเป็นคาบ ถ้าคือไม่ได้เป็นระยะอย่างสมบูรณ์แบบในสิ่งที่เราอาจคาดหวังเป็นยอดเขาที่ใหญ่ที่สุดที่สูงสุดอีก ( แต่ขนาดเล็กกว่าเล็กน้อย) ที่ (ซึ่งเป็นเวลาที่เรากำลังมองหา) และยอดความก้าวหน้าขนาดเล็กสำหรับหลายขนาดใหญ่ของPQx[mP,n0]=0Rx[mP,n0]=Rx[0,n0]≥Rx[k,n0]mk=0kPx[n]x[n]k=0k=PP
ดังนั้นปัญหาระดับเสียงคู่จึงเกิดขึ้นเนื่องจากเหตุผลสองประการ ประการแรกไม่จำเป็นต้องเป็นจำนวนเต็ม นั่นคือปัญหาการแก้ไขไม่ใช่เรื่องใหญ่ P
เหตุผลที่สองและปัญหาที่ยากมากขึ้นเป็นที่ของsubharmonics พิจารณาว่าคุณกำลังฟังโทนเสียงเป็นระยะที่ดีที่ A-440 Hz และดูเหมือน A ที่มี 9 semitones อยู่ตรงกลาง C ตอนนี้สมมติว่ามีบางคนเพิ่มเสียงที่แอมพลิจูดขนาดเล็กมาก (เช่นลง 60 dB) A -220? สิ่งที่ดูเหมือนและทางคณิตศาสตร์ในช่วงเวลาที่ "เป็นจริง" คืออะไร?
การเลือกจุดสูงสุด"ที่เหมาะสม"สำหรับช่วงเวลานั้น
สมมติว่าคุณเรียกใช้บันทึกย่อของคุณผ่านตัวกรองปิดกั้น DC เพื่อให้ค่าเฉลี่ยของเป็นศูนย์ ปรากฎว่าทำให้ค่าเฉลี่ยของ autocorrelationสำหรับทุกเป็นศูนย์ (หรือใกล้กับถ้ามีขนาดใหญ่) นั่นหมายความว่าจะต้องรวม (มากกว่า ) ให้มีค่าประมาณศูนย์ซึ่งหมายความว่ามีพื้นที่มากเกินกว่าศูนย์ดังต่อไปนี้x[n]Rx[k,n0]n0NRx[k,n0]k
โอเคดังนั้นหมายถึงพลังของในบริเวณรอบ ๆและต้องไม่เป็นลบ ไม่เกินแต่สามารถมีขนาดใหญ่เท่าเมื่อเป็นระยะ ถ้า[N] ดังนั้นถ้ามีคาบเป็นคาบด้วยจุดและคุณมีจุดยอดหนึ่งอยู่ห่างกันโดยและคุณมีความคิดว่ายอดเขาเหล่านั้นสูงแค่ไหน และถ้าส่วนประกอบ DC ของเป็นศูนย์นั่นหมายความว่าอยู่ระหว่างยอดเขาจะต้องมีค่าลบRx[0,n0]x[n]n=n0Rx[k,n0]Rx[0,n0]x[n]Rx[P,n0]=Rx[0,n0]x[n+P]=x[n]x[n]PPRx[k,n0]
ถ้าเป็น "quasi-periodic" หนึ่งรอบของจะดูเหมือนวงจรที่อยู่ติดกัน แต่ไม่เหมือนวงจรของไกลออกไปตามสัญญาณ นั่นหมายถึงจุดสูงสุดครั้งแรกจะสูงกว่าสองที่หรือสามn_0] เราสามารถใช้กฎนี้เพื่อเลือกยอดสูงสุดและคาดว่ายอดสูงสุดจะเป็นยอดแรกเสมอ แต่เนื่องจากไม่สามารถได้ยินคำแปรญัตติบางครั้งก็ไม่เป็นเช่นนั้น บางครั้งครั้งที่สองหรืออาจจะเป็นยอดเขาที่สามคือโอ้ดังนั้นสูงกว่าเล็กน้อย นอกจากนี้เนื่องจากช่วงเวลาน่าจะไม่ใช่จำนวนตัวอย่างจำนวนเต็ม แต่มีในx[n]x[n]x[n]Rx[P,n0]Rx[2P,n0]Rx[3P,n0]PkRx[k,n0]อยู่เสมอจำนวนเต็มดังนั้นยอดที่แท้จริงมีแนวโน้มที่จะอยู่ในระหว่างค่าจำนวนเต็มของkแม้ว่าคุณจะทำการสอดแทรกที่จุดยอดที่ราบรื่น (ซึ่งฉันแนะนำและการแก้ไขกำลังสองนั้นดีพอ) และความสูงของมันอยู่ระหว่างจำนวนเต็มแก้ไขของคุณอาจทำให้จุดสูงสุดสูงขึ้นหรือต่ำกว่าที่เป็นจริงเล็กน้อย ดังนั้นการเลือกจุดสูงสุดที่สูงที่สุดอาจส่งผลให้เกิดการเลือกวินาทีที่สูงกว่าจุดสูงสุดแรก (หรือกลับกัน) เมื่อคุณต้องการอีกจุดหนึ่งkk
ดังนั้นอย่างใดคุณต้องแต้มต่อที่เพิ่มขึ้นเพื่อให้จุดสูงสุดแรกมีข้อได้เปรียบเล็กน้อยในช่วงที่สองและที่สองในสี่ (ถัดไปลงแปดคู่ถัดไป) ฯลฯ คุณจะทำอย่างไรk
คุณทำอย่างนั้นโดยการคูณพร้อมกับฟังก์ชั่นการลดลงของเพื่อให้สูงสุดที่จะลดลงโดยมีปัจจัยบางอย่างที่สัมพันธ์กับจุดสูงสุดเหมือนที่ P ปรากฎว่าฟังก์ชั่นพลังงาน (ไม่ใช่เลขชี้กำลัง) ทำเช่นนั้น คำนวณดังนั้นRx[k,n0]kk=2Pk=P
k−α Rx[k,n0]
ดังนั้นถ้าเป็นคาบอย่างสมบูรณ์แบบด้วยระยะเวลาและไม่สนใจประเด็นการแก้ไขสำหรับไม่ใช่จำนวนเต็มดังนั้นx[n]PP
Rx[2P,n0]=Rx[P,n0]
แต่
(2P)−αRx[2P,n0](2P)−αRx[P,n0]=<P−αRx[P,n0]
ปัจจัยที่จุดสูงสุดสำหรับระดับเสียงต่ำกว่าหนึ่งคู่จะลดลงคืออัตราส่วน
(2P)−αRx[2P,n0]P−αRx[P,n0]=(2P)−αP−α=2−α
ดังนั้นหากคุณต้องการเพิ่มยอดแรกของคุณ 1% จากยอดเขาที่สองซึ่งหมายความว่าคุณจะไม่เลือกระดับเสียงให้เป็นระดับเสียงต่ำกว่าระดับเสียงประสานเว้นแต่ว่าเสียงประสานระหว่างสนามมีความสอดคล้องกันอย่างน้อย 1% มากกว่าครั้งแรก สูงสุดคุณจะแก้หาจากα
2−α=0.99
นั่นคือวิธีที่สอดคล้องกับน้ำหนักหรือยกเลิกการเน้นหรือแต้มต่อสูงสุดที่สอดคล้องกับสนามเสียงต่ำหนึ่งคู่ด้านล่าง
มันยังทำให้คุณมีปัญหา thresholding คุณต้องเลือกอย่างดี แต่นี่เป็นวิธีที่สอดคล้องกันโดยเน้นจุดสูงสุดแรกในช่วงที่สองซึ่งอยู่ต่ำกว่าระดับแปดเสียง แต่ไม่มากนักถ้าโน้ตนั้นต่ำกว่าระดับเสียงคู่ แต่จริง ๆ แล้วพลังงานของฮาร์มอนิกทั้งหมดนั้นแข็งแกร่งเมื่อเทียบกับคี่ เสียงประสานนี้จะยังคงเป็นไปได้สำหรับการเลือกสูงสุดที่สองα