ฉันต้องการทราบวิธีลบเสียงรบกวนจากการบันทึกเสียงพูด
ฉันได้ทำการวิจัยแล้วและฉันสังเกตว่าวิธีการส่วนใหญ่ที่เสนอนั้นใช้การแปลงฟูริเยร์ที่รวดเร็ว แต่ทำไมคุณไม่สามารถใช้ตัวกรองอิเล็กทรอนิกส์แบบคลาสสิกเพื่อลบความถี่เสียงได้ ทำไมต้องกังวลกับการทำ FFT
ฉันต้องการทราบวิธีลบเสียงรบกวนจากการบันทึกเสียงพูด
ฉันได้ทำการวิจัยแล้วและฉันสังเกตว่าวิธีการส่วนใหญ่ที่เสนอนั้นใช้การแปลงฟูริเยร์ที่รวดเร็ว แต่ทำไมคุณไม่สามารถใช้ตัวกรองอิเล็กทรอนิกส์แบบคลาสสิกเพื่อลบความถี่เสียงได้ ทำไมต้องกังวลกับการทำ FFT
คำตอบ:
ฉันต้องการทราบวิธีลบเสียงรบกวนจากการบันทึกเสียงพูด
ตอนนี้มันถูกจัดเก็บแบบดิจิทัลใช่ไหม? คุณวางแผนที่จะวางไมโครโฟนไว้ถัดจากลำโพงหลังจากตัวกรองแอนะล็อกเพื่อบันทึกใหม่หรือไม่
พอล้อเล่นฉันจะจริงจัง
เพื่อที่จะทำให้ฟิลเตอร์ลดทอนความถี่ในช่วงที่น้อยลงอาคาจะทำให้เส้นโค้งการตอบสนองความถี่เป็นแนวดิ่งมากขึ้นจากนั้นคุณเพียงแค่ต้องเพิ่มลำดับของฟิลเตอร์
นั่นเป็นสิ่งที่ง่ายต่อการทำใน Matlab นอกจากนี้ยังเป็นสิ่งที่เป็นไปได้ที่จะทำการโพสต์ นอกจากนี้ยังเกี่ยวกับความสามารถในการทำซ้ำหากคุณใช้ตัวกรองในวันที่มีแดดวันนี้คุณคาดหวังให้ตัวกรองทำงานเหมือนกันในวันพรุ่งนี้เมื่อฝนตก คุณคาดหวังให้มันทำงานเหมือนเดิมใช่มั้ย
ในวงจรอะนาล็อกคุณมี "ตัวต้านทาน 5%" เหล่านี้ "ตัวเก็บประจุ 1%" และสิ่งอื่น ๆ ทั้งหมด ดังนั้นหากคุณต้องการทำสิ่งที่แน่นอนคุณจะต้องตัดวงจรในภายหลังเพื่อให้ตรงกับตัวกรองที่คุณต้องการอย่างสมบูรณ์ หากคุณต้องการเพิ่มลำดับของตัวกรอง ... ถ้าอย่างนั้นเศร้า .. มันจะทำให้ตัวกรองใหญ่ขึ้นเรื่อย ๆ แทนที่จะใช้ขนาดของบัตรเครดิตมันจะใช้ขนาดของฉันไม่รู้ขึ้นอยู่กับลำดับตัวกรองและสิ่งที่คุณตกลง
เกี่ยวกับความสามารถในการทำซ้ำทำอะไรวันนี้ .. อบอุ่น .. ในวันพรุ่งนี้ .. ความหนาวเย็น ... ความต้านทานจะเปลี่ยนไปเล็กน้อยการตอบสนองความถี่จะเปลี่ยนไปสองเท่าของเฮิร์ตซ์ที่นั่นบางส่วนที่นั่นส่วนประกอบเพิ่มเติมที่คุณมีในวงจร มีโอกาสมากกว่าที่องค์ประกอบของคุณจะเปลี่ยนค่าได้ แล้วคุณมีความชื้นออกซิไดซ์ ...
และนี่คือมุกที่ฉันควรจะพูดก่อนอื่นคุณไม่สามารถทำการโพสต์มันได้เว้นแต่คุณจะได้เทปคาสเซ็ท ฉันไม่แน่ใจ 100% สื่อดนตรีอะนาล็อกที่ใช้ในการบันทึก / ลบอย่างง่ายดาย แผ่น LP จะเป็นฝันร้าย ...
และอย่าลืมราคา หนึ่งคือซอฟต์แวร์ถ้าคุณเขียนด้วยตัวคุณเองมันเป็นฟรีส่วนอื่น ๆ ต้องการส่วนประกอบชิ้นส่วนทางกายภาพ
แต่อย่าคิดว่าฟิลเตอร์แบบอะนาล็อกไม่ดีพวกมันใช้งานได้เช่นการลบฮาร์โมนิกที่น่ารังเกียจในมอเตอร์กระแสตรงขนาดใหญ่หรือทำมอเตอร์สเต็ปเงียบเป็นพิเศษสำหรับเครื่องพิมพ์ 3 มิติโดยทำให้กระแสในปัจจุบันราบรื่น และการใช้งานอื่น ๆ อีกมากมาย - หากคุณจะแก้ปัญหาด้วยตัวกรองแอนะล็อกไม่มีใครคิดว่ามันจะเป็นทางออกที่ไม่ดี
ฉันเชื่อว่าฉันตอบทางอ้อมว่าทำไม FFT เป็นวิธีที่ดีกว่าในการประมวลผลที่ชาญฉลาด บรรทัดล่างคือมันมากถูกกว่าจะทำ คุณสามารถใช้ตัวกรองรอยก็ได้หากคุณรู้ว่ามีสัญญาณรบกวนอยู่ที่ใด หรือตัวกรอง bandstop aka ที่กว้างขึ้น
และสิ่งสุดท้ายที่ฉันต้องการเพิ่ม ... คำตอบนี้ยาวเกินไปฉันขอโทษ แต่ถ้าคุณใช้ตัวกรองแบบแอนะล็อกและคุณ ... ยุ่งกับการคำนวณของคุณแล้วคิดว่ามันดีและสวยงามและใช้มันในบางกรณีที่ร้ายแรงเช่นการสัมภาษณ์ราชาแห่งสวีเดน (Knugen) และคุณยุ่งกับขนาดของตัวเก็บประจุแทนที่จะกรองสัญญาณรบกวน 16kHz คุณกำลังกรอง "เสียง" 4kHz หากคุณจัดการกับมันแบบดิจิทัลแทนที่จะเป็นเรื่องของการเปลี่ยนแปลงตัวแปรบางอย่างคุณไม่จำเป็นต้องยกเลิก -> ประสานองค์ประกอบอื่น อีกทั้งการสัมภาษณ์ก็ถูกทำลาย
แต่ทำไมคุณไม่สามารถใช้ตัวกรองอิเล็กทรอนิกส์แบบคลาสสิกเพื่อลบความถี่เสียงได้
ใครบอกว่าคุณทำไม่ได้ มันเป็นสิ่งที่เกิดขึ้นในไม่กี่วันก่อนการประมวลผลสัญญาณดิจิตอล ปัญหาคือการกรองสัญญาณรบกวนนั้นเป็นการประนีประนอมระหว่างการรักษาสัญญาณที่คุณต้องการ (คำพูด, เพลง) โดยไม่มีการแตะต้องในขณะที่ลดเสียงรบกวนลง
สำหรับเทปคาสเซ็ตและระบบบันทึกเทปแบบแอนะล็อกอื่น ๆ เช่น DNL และ Dolby ถูกใช้ซึ่งกรองเฉพาะเมื่อสัญญาณอ่อนซึ่งหมายความว่าเสียงจะดังขึ้น จากนั้นเมื่อสัญญาณแรงขึ้นฟิลเตอร์ก็จะจางหายไป ดู:บทความ Wikipedia เกี่ยวกับการลดเสียงรบกวน
คำพูดนั้นสามารถ จำกัด ได้เฉพาะย่านความถี่แคบเช่น 300 Hz ถึง 3 kHz ในขณะที่ยังเข้าใจได้อย่างสมบูรณ์ คุณสามารถสร้างตัวกรองแอนะล็อกแบบง่าย ๆ สำหรับวงดนตรีนั้น แต่นั่นจะ จำกัด จำนวนเสียงที่ถูกยับยั้ง หากต้องการกรองความถี่ที่มีประสิทธิภาพยิ่งขึ้นนอกแถบนี้จะต้องใช้ตัวกรองแอนะล็อกที่ซับซ้อน ตัวกรองดังกล่าวนั้นยากที่จะออกแบบสร้างและผลิต
นี่คือที่มาของการประมวลผลสัญญาณดิจิทัลในโดเมนดิจิทัลจะง่ายกว่ามากในการนำตัวกรองที่ซับซ้อนมาใช้กับเสาและศูนย์จำนวนมาก นอกจากนี้เนื่องจากตำแหน่ง (ในโดเมนความถี่) ของเสาและศูนย์เหล่านี้เชื่อมโยงกับนาฬิกาของ DSP (Digital Signal Processor) ซึ่งเป็นนาฬิกาที่แม่นยำ (คริสตัล) นาฬิกาตัวกรองจะแม่นยำมากขึ้นเมื่อเทียบกับการใช้งานแบบอะนาล็อก .
ขั้นตอนแรกในการทำความเข้าใจว่าทำไมเราต้องใช้ FFT คือการเข้าใจว่าตัวกรองดิจิทัลทำงานอย่างไร
โดยพื้นฐานแล้วคุณมีโครงสร้างเช่น shift register ที่มีองค์ประกอบหน่วยความจำจำนวนหนึ่งอินพุตและเอาต์พุต ค่าตัวอย่างจะเข้าสู่อินพุตรับการเลื่อนผ่านรีจิสเตอร์และย้ายไปยังเอาต์พุต ในแต่ละขั้นตอนของการลงทะเบียนจะถูกคูณด้วยตัวเลขที่เรียกว่าสัมประสิทธิ์การกรอง
ความคิดนี้ใช้งานได้ดีเมื่อคุณมีการลงทะเบียนอย่างรวดเร็วทำการคูณอย่างรวดเร็วและคุณมีตัวอย่างมาทีละช้า
ในชีวิตจริงแทนที่จะเป็นเช่นนั้นคุณมักจะได้เฟรมที่ประกอบด้วยกลุ่มตัวอย่างจำนวนหนึ่ง เมื่อคุณต้องการกรองสิ่งนั้นคุณจะโน้มน้าวตัวอย่างด้วยสัมประสิทธิ์การกรอง นั่นเหมือนกับการทำตามวิธีก่อนหน้านี้ แต่ดูเหมือนแตกต่างกันเล็กน้อย
ตอนนี้ส่วน FFT มา ปรากฎว่าการบิดเพิ่มขึ้นในความซับซ้อนของตัวเลขอย่างรวดเร็วด้วยจำนวนตัวอย่าง ในทางตรงกันข้าม FFT นั้นเริ่มมีความซับซ้อนเชิงตัวเลข แต่จำนวนของการปฏิบัติการที่ต้องการนั้นเพิ่มขึ้นช้ากว่ามากเมื่อเทียบกับค่าสัมประสิทธิ์การกรองที่เพิ่มขึ้นเมื่อเทียบกับการโน้มน้าวใจ
สิ่งที่หมายถึงข้างต้นคือมีตัวอย่างจำนวนหนึ่งซึ่งจะเร็วกว่ามากในการแปลงสัญญาณเป็นโดเมนความถี่โดยใช้ FFT กรองสัญญาณในโดเมนความถี่แล้วแปลงกลับมาโดยใช้ IFFT เคล็ดลับที่เราใช้เป็นหนึ่งในคุณสมบัติของการสนทนานั่นคือการสนทนาในโดเมนเวลาสามารถในบางสถานการณ์ได้รับการจำลองแบบการคูณในโดเมนความถี่
ดังนั้นหากสรุปจำนวนสัมประสิทธิ์ตัวกรองของคุณมีขนาดใหญ่พอ FFT จะเร็วขึ้น "ใหญ่" อาจมีขนาดเล็กเท่ากับหนึ่งร้อยหรือมากกว่านั้น
วิธีการที่ใช้ FFT (คุณจะต้องทำงานกับการปรับเปลี่ยนหน้าต่างและซ้อนทับหรือเพิ่มหรือทับซ้อนกะ) มีข้อได้เปรียบหลักที่การออกแบบนั้นอยู่ในโดเมนความถี่และตัวกรอง Wiener หรือการลบสเปกตรัมหรือจำนวน ระบบอื่น ๆ ที่ใช้สถิติสัญญาณและตัวแบบจำลองนั้นใช้งานได้จริงในโดเมนความถี่
ในทางตรงกันข้ามการยกเลิกเสียงก้องและตัวแปรต่างๆไม่ได้ขึ้นอยู่กับรูปแบบของเสียงรบกวน แต่ในการบันทึกที่ไม่สมบูรณ์มีความสัมพันธ์อย่างมากกับเสียงรบกวน สิ่งเหล่านี้ทำโดยใช้ตัวกรองที่แตกต่างกัน (โดยทั่วไปคือ FIR) เพื่อลบการประมาณสัญญาณรบกวนจากสัญญาณและอัปเดตตัวกรองเพื่อรักษาความสัมพันธ์ของสัญญาณที่เหลือกับช่องสัญญาณเสียงให้เหลือน้อยที่สุด สำหรับเทคนิคเหล่านั้น FFT ไม่ใช่สิ่งที่มีประโยชน์ (เมื่อเกิดความล่าช้ามากของสัญญาณที่เกิดขึ้นและการอัพเดทตัวกรองจะได้รับอนุญาตพวกเขาสามารถใช้เป็นส่วนประกอบใน blackbox FIR ที่มีความล่าช้าด้วยเหตุผลด้านประสิทธิภาพ ความสามารถในการแสดงโดเมนความถี่)
ตัวกรองแบบอะนาล็อกนั้นง่ายพอที่จะออกแบบได้ แต่ข้อ จำกัด คือคุณต้องทำการเพิ่มองค์ประกอบตัวกรองแบบกายภาพเพื่อให้ได้การกรองแบบแบนด์ - หยุดของความถี่ที่กำหนด และคุณต้องปรับค่าองค์ประกอบหากคุณต้องการเลื่อนรอยหยัก opamp เดียวสามารถทำรอยสักแบนด์หนึ่งวงได้ดังนั้นคุณต้องเพิ่มแอมพลิฟายเออร์อื่นสำหรับรอยแต่ละอันที่คุณต้องการ สำหรับรอยบากที่เลือกได้มากขึ้นคุณจะต้องใช้แอมพลิฟายเออร์สองตัวต่อรอย
ในแง่การปฏิบัติคุณน่าจะได้รับบริการที่ดีที่สุดโดยตัวกรอง low-pass ลำดับที่ 3 ที่คุณสามารถทำได้ด้วย opamp เดี่ยวหรือตัวกรอง low pass ลำดับที่ห้าที่ต้องใช้สองตัว ใช้ฟิลเตอร์กรองความถี่ต่ำเพื่อลดทอนความถี่เหนือความถี่ Nyquist (1/2 ความถี่การสุ่มตัวอย่าง) ด้วยระยะขอบและคุณจะมีตัวอย่างดิจิทัลคุณภาพสูงในกระบวนการหลังการทำงาน ด้วยการบันทึกแบบใหม่ทั้งหมดคุณสามารถใช้ตัวกรอง FFT เพื่อสร้างตัวกรอง high-pass, band-pass และ band-stop ได้ตามต้องการ
การกรองเวลาแบบไม่คงที่เป็นเส้นตรงซึ่ง "ตัวกรองอิเล็กทรอนิกส์แบบคลาสสิก" ทำเพียงแค่การคูณ "โง่" ในโดเมนฟูริเยร์ แต่ข้อมูลที่คุณค้นหาใน FFT จะบอกรายละเอียดให้คุณมากกว่าการตอบสนองของตัวกรองเดียวซึ่งเป็นเพียงการรวมกันเชิงเส้นของส่วนประกอบเหล่านั้น การใช้ข้อมูลนั้นคุณสามารถคัดท้ายการประมวลผลข้อมูลและปรับให้เข้ากับข้อมูล เสียงรบกวนมีลักษณะบางอย่างที่เสียงร้องที่ชัดเจนและโทนเสียงดนตรีไม่ได้เช่นความสัมพันธ์ระหว่างเสียงหวือหวานั้นไม่เหมือนกันสำหรับเสียงหรือเสียงดนตรี
ดังนั้นหากเราสามารถระบุความสัมพันธ์ระหว่างส่วนประกอบความถี่ - เช่นการหา "เสียงพื้น" อย่างใดเราสามารถคัดกรองและทำให้มันปรับให้เข้ากับข้อมูล