วิธีที่ดีในการตรวจจับสัญญาณที่ถูกตัดออกในการบันทึกคืออะไร?


32

เมื่อได้รับการบันทึกฉันต้องตรวจสอบว่ามีการคลิปเกิดขึ้นหรือไม่

ฉันสามารถสรุปได้อย่างปลอดภัยว่ามีการตัดหากตัวอย่างใด (หนึ่ง) ถึงค่าตัวอย่างสูงสุดหรือฉันควรมองหาชุดตัวอย่างที่ตามมาที่ระดับสูงสุดหรือไม่

การบันทึกอาจจะนำมาจาก 16 หรือ 24 บิต A / D แปลงและจะถูกแปลงเป็นค่าจุดตั้งแต่ลอย 1 หากการแปลงนี้ใช้รูปแบบของการหารด้วยหรือจากนั้นสันนิษฐานว่าพีคเชิงลบอาจต่ำกว่า -1 และตัวอย่างที่มีค่า -1 ไม่ถูกตัด?2 15 - 1 2 23 - 11...121512231

เห็นได้ชัดว่ามีใครสามารถสร้างสัญญาณโดยเฉพาะเพื่อเอาชนะอัลกอริทึมการตรวจจับการคลิป แต่ฉันกำลังดูการบันทึกคำพูด, เพลง, คลื่นไซน์หรือเสียงสีชมพู / สีขาว


8
โปรดทราบว่าระดับการคลิปอาจไม่ใช่ค่าสูงสุดของดิจิทัล หากวงจรแอนะล็อก (หรือแม้แต่ด้านอะนาล็อกของ ADC) มีระดับการตัดที่ต่ำกว่าแม็กซ์ดิจิตอลเล็กน้อยก็จะเริ่มเร็วขึ้น หากคลิปเป็นแบบอะนาล็อกแล้วผ่านการกรองบางอย่างมันจะไม่เป็นเส้นตรง สถานการณ์ใดที่คุณต้องการตรวจจับ
endolith

1
การบันทึกจะทำด้วยพีซีอุปกรณ์เสียง (มักเชื่อมต่อผ่าน USB) ส่วนใหญ่พวกเขาจะตอบสนองต่อการกระตุ้นหรือกวาด MLS และใช้ในการคำนวณการตอบสนองแรงกระตุ้นห้อง ฉันไม่ได้ควบคุมฮาร์ดแวร์ดังนั้นการตัดอาจเกิดขึ้นที่ผลลัพธ์การกระตุ้น ไม่เคยคิดมาก่อนหน้านี้ แต่ฉันดีใจที่คุณคิด
ฮัน

คำตอบ:


30

ผมอยู่ในช่วงกลางของการพิมพ์คำตอบสวยมากเหมือนYoda ของ เขาน่าจะน่าเชื่อถือที่สุด แต่ฉันจะเสนอวิธีแก้ปัญหาที่แตกต่างกันเพื่อให้คุณมีตัวเลือกบางอย่าง


หากคุณใช้ฮิสโตแกรมของสัญญาณคุณจะมีลักษณะเป็นรูประฆังหรือสามเหลี่ยมขึ้นอยู่กับชนิดของสัญญาณ สัญญาณที่สะอาดจะมีแนวโน้มที่จะทำตามรูปแบบนี้ สตูดิโอบันทึกเสียงหลายแห่งเพิ่มเอฟเฟ็กต์ "ความดัง" ที่ทำให้เกิดการกระแทกเล็กน้อยที่ด้านบน แต่ก็ยังดูค่อนข้างเรียบ นี่คือตัวอย่างจากเพลงจริงจากนักดนตรีคนสำคัญ:

histogram

นี่คือฮิสโตแกรมของสัญญาณที่โยดาให้ไว้ในคำตอบของเขา:

ฮิสโตแกรมที่ไม่มีการคลิป

และตอนนี้กรณีของการถูกตัด:

ฮิสโตแกรมพร้อมรูปวาด

บางครั้งวิธีนี้อาจถูกหลอกได้ แต่อย่างน้อยก็มีบางอย่างที่ต้องใส่ในกระเป๋าเครื่องมือของคุณสำหรับสถานการณ์ที่วิธี FFT ดูเหมือนจะไม่เหมาะกับคุณหรือมีการคำนวณมากเกินไปสำหรับสภาพแวดล้อมของคุณ


2
นั่นคือผลกระทบที่ยอดเยี่ยมอย่างบ้าคลั่ง น่าสนใจมาก.
Kortuk

ฉันดีใจที่คุณแนะนำวิธีนี้ ฉันควรจะรวมมันไว้ด้วยตัวเอง ...
PearsonArtPhoto

ฉันบอกว่าโดยเฉพาะเพราะนี่ดูเหมือนจะเป็นวิธีที่ปฏิบัติได้มากที่สุด มันเป็นรูปแบบการใช้งานของตัวเลือกอื่น ๆ ที่ได้รับ แต่ดูเหมือนว่าสัญญาณ "ผิดพลาด" จะชัดเจนยิ่งขึ้น
Kortuk

1
อาจใช้ค่าสัมบูรณ์ของสัญญาณก่อนและรับฮิสโตแกรมด้านเดียวที่นุ่มนวลขึ้น
endolith

นิ้วของฉันอยากลองใช้สัญญาณของฉัน ขอบคุณ
ฮัน

20

คำตอบที่ง่ายที่สุดหากคุณกำลังเผชิญกับการบันทึกสั้น ๆ คือการฟังและตรวจจับ "pops" (เสียงแหลมสั้น) ในการเล่น อย่างไรก็ตามวิธีแก้ปัญหาที่แข็งแกร่งกว่าคือการวิเคราะห์สเปกตรัมความถี่ของการบันทึก

โปรดจำไว้ว่าเมื่อสัญญาณถูกตัดที่จุดเริ่มต้นมันจะคล้ายกับรูปคลื่นในพื้นที่ที่ถูกตัด สิ่งนี้นำเสนอฮาร์โมนิกที่สูงขึ้นในสเปกตรัมความถี่ซึ่งจะไม่เคยมีมาก่อน หากสัญญาณของคุณคือ bandlimited (สัญญาณส่วนใหญ่ในโลกแห่งความเป็นจริง) และคุณสุ่มตัวอย่างได้ดีกว่าอัตรา Nyquist นี่ก็ชัดเจนว่าเป็นวัน

นี่เป็นตัวอย่างสั้น ๆ ใน MATLAB ที่แสดงสิ่งนี้ ที่นี่ฉันสร้างสัญญาณไม่ จำกัด ระยะเวลา 1 วินาทีตัวอย่างที่ 1000Hz แล้วคลิปไปที่ระหว่าง±0.8(ดูพล็อตด้านบนในรูปด้านล่าง)

time = 0:0.001:1;
cleanSignal = sin(2*pi*75*time).*chirp(time,50,1,200);
clippedSignal = min(abs(cleanSignal),0.8).*sign(cleanSignal);

ป้อนคำอธิบายรูปภาพที่นี่

คุณสามารถเห็นได้อย่างชัดเจนว่าคลื่นความถี่ของรูปคลื่นดั้งเดิมที่ยังไม่ได้คัดลอกนั้นสะอาดและไปที่ศูนย์นอกแบนด์วิธ (ซ้ายล่าง) ในขณะที่สัญญาณที่ถูกตัดมีความผิดเพี้ยนเล็กน้อยทั่วไปของคลื่นความถี่ (คาดว่าหากถูกตัด) สิ่งสำคัญคือการมีส่วนร่วมของ harmonics / spikes / non-zero ในสเปกตรัมนอกแบนด์วิธของสัญญาณ (ล่างขวา)

ซึ่งโดยทั่วไปอาจเป็นวิธีที่ดีกว่าเนื่องจากการตรวจจับการตัดโดยการดูค่าโดยทั่วไปนั้นไม่ถูกต้องเว้นแต่ว่าคุณออกแบบอุปกรณ์ด้วยตัวเองและรู้คุณค่าของเกณฑ์อย่างแม่นยำ


1
สัญญาณของฉันบางส่วน (โดยเฉพาะ MLS) ขึ้นไปจนถึงความถี่ Nyquist ดังนั้นวิธีนี้อาจไม่เหมาะกับฉันเสมอไป
ฮัน

@yoda ด้วยสเปคตรัมในมือคุณจะบอกได้อย่างไรว่าสเปกตรัมนั้น 'สกปรก' ตามที่คุณระบุไว้? การทดสอบแบบใดที่สามารถทำได้?
Spacey

9

สิ่งนี้ขึ้นอยู่กับวิธีการบันทึก ดูเหมือนว่าคุณใช้ตัวแปลงเพียง 1 ตัวเท่านั้นซึ่งจะทำให้สิ่งต่าง ๆ ง่ายขึ้น

คุณควรมองหาสิ่งที่อยู่เหนือเกณฑ์บางอย่างและโดยเฉพาะอย่างยิ่งสำหรับมากกว่าหนึ่งจุดที่อยู่ติดกัน โดยทั่วไปแล้วตัวแปลง A / D ไม่ได้อ่านค่าสูงสุดของพวกเขาเว้นแต่คุณจะทดสอบอย่างถูกต้องดังนั้นโปรดทราบว่าค่าสูงสุดอาจต่ำกว่าที่เป็นไปได้

ด้วยพารามิเตอร์ของคุณฉันจะมองหาสัญญาณติดต่อกันด้านบน. 98 หรือต่ำกว่า -.98 พร้อมกับการปรับแต่งเพื่อกำหนดเกณฑ์ที่เหมาะสมที่สุด (ฉันจะไม่นำมันลงมาด้านล่าง. 9) มันอาจเป็นการฉลาดที่จะตรวจจับสิ่งใดสิ่งหนึ่งที่สูงสุด

เหตุผลในการเพิกเฉยต่อการวัดที่เฉพาะเจาะจง 1 ประการคือเป็นเรื่องปกติที่หนามเกิดขึ้นที่ไม่มีอะไรเกี่ยวข้องกับสัญญาณเลย สิ่งนี้จะลดลงในกรณีที่คุณใช้ตัวแปลง A / D ที่รู้จักดี อาจเป็นไปได้ว่าหากคุณใช้อาร์เรย์ของเครื่องตรวจจับหรือรูปภาพเครื่องตรวจจับบางเครื่องอาจไม่ดีและอาจถูกตัดบ่อย


คำแนะนำการปฏิบัติมากที่นี่ เมื่อใช้ร่วมกับวิธีการของ @ Kellenjb สิ่งนี้จะให้ฉันมากพอที่จะทำงานเกี่ยวกับการปรับใช้
ฮัน

3

MLS (ลำดับความยาวสูงสุด) มีความยุ่งยากในการวิเคราะห์สำหรับการตัด ปัจจัยยอดของพวกเขา (= peak / rms) ใกล้เคียงกับ 1 มากซึ่งน้อยกว่าคลื่นไซน์ถึงสามเดซิเบล ตัวแปลง D / A หลายตัวได้รับการออกแบบให้ใช้คลื่นไซน์เป็นกรณีที่เลวร้ายที่สุดและ MLS ที่เล่นที่แอมพลิจูดแบบเต็มสามารถคลิปวงจรการแก้ไขเอาท์พุตของ D / A ได้อย่างง่ายดาย

ปัญหาต่อไปคือ MLS ที่ถูกตัดจะดูเกือบจะเหมือนกับที่ไม่ได้ถูกตัดเนื่องจากแอมพลิจูดนั้นเกือบ + -peak เกือบทั้งหมดในตอนแรก นอกจากนี้การวิเคราะห์ PDF ใช้งานไม่ได้เนื่องจาก PDF ของ MLS เป็นเพียงสองจุดยอดขนาดใหญ่ที่ขอบ

ในการวัดการตอบสนองของแรงกระตุ้นในห้องทั่วไปจุดที่น่าจะเป็นจริงที่สุดคือ D / A, แอมป์หรือลำโพง เมื่อผ่านเข้ามาในห้องมันจะดูเหมือน MLS น้อยกว่าและดังนั้นจึงง่ายต่อการประเมินการตัดด้วยวิธีการที่อธิบายไว้ข้างต้น

ในการวัดเสียงเกือบทั้งหมดพื้นเสียงถูกกำหนดโดยเสียงรบกวนของไมโครโฟนหรือเสียงพื้นหลังไม่ใช่ A / D ดังนั้นจึงไม่สำคัญมากที่จะปรับการรับสัญญาณเข้าสู่ A / D และออกจากห้องที่เหลือเฟือก่อนที่จะทำการตัด (10dB หรือมากกว่านั้น) ก็ดีมาก

โดยทั่วไปแล้วเป็นความคิดที่ดีที่จะวัดด้วยจำนวนระดับการกระตุ้นที่แตกต่างกันและดู SNR ของการวัด ในระดับต่ำเสียงรบกวนของพื้นหลังอคูสติกจะอยู่ในระดับสูงและบางสิ่งบางอย่างจะ จำกัด บีบอัดหรือคลิป เคล็ดลับในการสร้างการวัดที่ดีคือการหาจุดที่ดีในระหว่าง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.