ฉันจะออกแบบตัวกรองที่แคบมากได้อย่างไร


15

สมมติว่าฉันได้รับสัญญาณเสียงที่ Hz และฉันต้องการออกแบบตัวกรอง low-pass ที่แยกทุกอย่างด้านล่าง ~ Hz ในโลกดิจิตอลนี้เป็น low-pass filter กับ passband ที่{400}] นอกจากนี้วงดนตรีการเปลี่ยนแปลงควรมีเหตุผลเช่นกัน การสร้างตัวกรอง FIR สำหรับสิ่งนี้สามารถมีก๊อกจำนวนมากซึ่งในระยะยาวมีผลต่อความแม่นยำ ตัวกรอง IIR นั้นไม่เหมาะอย่างยิ่งเพราะเสียงจะได้รับการตอบสนองที่ไม่ใช่เชิงเส้นเฟสในตัวกรองดังนั้นหากไม่มีการกรองสัญญาณจากนั้นย้อนกลับและกรองอีกครั้งจึงไม่ใช่ตัวเลือกจริงๆ60 [ - π4800060[-π400,π400]

การแปลงเวฟเล็ตจะดีกว่าการกรองแบบ in-one-go ปกติหรือไม่


มีเหตุผลที่คุณไม่ต้องการฆ่าทิ้งหรือไม่?
Lorem Ipsum

ไม่การทำลายล้างนั้นใช้ได้ตราบใดที่ฉันได้รับสิ่งที่ฉันต้องการ
Phonon

1
วงดนตรีการเปลี่ยนแปลง "สมเหตุสมผล" คืออะไร? นั่นจะเป็นตัวกำหนดลำดับของตัวกรองของคุณ ถ้า Stopband ของคุณเริ่มต้นที่ 300 Hz คุณอาจอยู่ในเกณฑ์ดีทีเดียว หากคุณต้องการการลดทอนเสียงสูงเช่น 60.1 Hz มันจะยาว ตัวกรอง FIR แบบยาวไม่จำเป็นว่าจะต้องเลวร้ายนัก
Jason R

5
คุณต้องการข้อมูลจำเพาะของตัวกรองที่แท้จริงมิฉะนั้นคำถามนั้นไม่มีความหมาย ระบุระลอกคลื่นความถี่ที่ยอมรับได้การปฏิเสธย่านความถี่ความกว้างของคลื่นวิทยุ ฯลฯ
Paul R

มีเหตุผล. จะทำ.
Phonon

คำตอบ:


20

หากคุณกำลังเพิ่มประสิทธิภาพสำหรับเวลาวิศวกรรมและอยู่บนแพลตฟอร์มที่สนับสนุน FFTs ขนาดใหญ่ดี (i..e ไม่ได้จุดคงที่) จากนั้นใช้ hotpaw2 ของคำแนะนำและการใช้บิดได้อย่างรวดเร็ว มันจะทำงานได้ดีกว่าการใช้ FIR ที่ไร้เดียงสาและควรจะใช้งานได้ง่าย

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

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

โดยทั่วไปแล้ว:

การแปลงลง:

ใช้ฟิลเตอร์ halfband, decimate-by-2 8 ขั้นตอนเพื่อแปลงสัญญาณ 48kHz ของคุณเป็นสัญญาณ 187.5 Hz ขั้นตอนแรกของการสุ่มตัวอย่างนี้สามารถมีช่วงการเปลี่ยนภาพกว้างมากช่วยให้พลังงานกับนามแฝงตราบเท่าที่มันไม่ได้ฉายากลับเข้าไปในช่วงย่อย 60 Hz เมื่อความคืบหน้าของขั้นตอนจำนวนของดอกต๊าปจำเป็นต้องเพิ่มขึ้น แต่จะใช้ในอัตราการสุ่มตัวอย่างที่ต่ำลงเรื่อย ๆ ดังนั้นค่าใช้จ่ายโดยรวมของแต่ละขั้นตอนจึงยังคงอยู่ในระดับต่ำ

กรอง:

ดำเนินการกรองแน่นของคุณประมาณ 60 Hz bw เพื่อให้พลังงานที่คุณจะต้องลบในที่สุด มีข้อได้เปรียบสองประการในการทำการกรองแบบ จำกัด ในอัตราที่ต่ำ:

  1. แบนด์วิดท์การเปลี่ยนแปลง 1Hz จะใหญ่กว่า 256 เท่าในแง่ของความถี่ดิจิทัลในอัตราที่ต่ำเมื่อเทียบกับอัตราเดิม ดังนั้นการแตะตัวกรองของคุณทุกครั้งจึงมีพลังมากถึง 256 เท่า
  2. สัญญาณอยู่ในอัตราที่ต่ำกว่าดังนั้นตัวกรองจึงต้องประมวลผลข้อมูล 1/256 เท่านั้น

Up-แปลง:

โดยพื้นฐานแล้วนี่คือสิ่งที่ตรงกันข้ามของขั้นตอนการทำลายล้าง ผู้สอดแทรก 8 แต่ละด่านมีอัตราเพิ่มเป็นสองเท่าโดยการประมาณตัวอย่างที่อยู่ระหว่างตัวอย่างอินพุตต่อเนื่อง ช่วงการเปลี่ยนภาพกว้างขึ้นเมื่ออัตราตัวอย่างสูงขึ้น

ลบ:

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


นี่คือคำตอบที่ยอดเยี่ยม ฉันสามารถแสดงความคิดเห็นในโพสต์นี้ได้ไหม dsp.stackexchange.com/questions/29655/…
richieqianle

6

ลองใช้ตัวกรองการเพิ่ม / บันทึกแบบซ้อนทับด้วย FFT / IFFT ที่ยาวที่สุดที่เหมาะกับเวลาในการตอบสนองและประสิทธิภาพการคำนวณของคุณ คุณสามารถออกแบบตัวกรอง FIR ที่ยาวมากได้เมื่อใช้วิธีนี้กับ FFT ที่ยาวขึ้น

หากคุณสามารถ FFT ทั้งเพลงหรือไฟล์สัญญาณเสียงทั้งหมดของคุณในหนึ่ง FFT + IFFT ที่ยาวมาก ๆ (มีอัลกอริทึม FFT พิเศษสำหรับเวกเตอร์ขนาดยาวที่ไม่พอดีกับ dcache หรือ RAM) คุณไม่จำเป็นต้องดำเนินการใด ๆ ทับซ้อนเพิ่ม / บันทึกการประมวลผลและคุณจะได้รับช่วงการเปลี่ยนภาพที่แคบมาก


4

มีสองทางเลือกอย่างชัดเจน: FIR & IIR ตามที่ระบุไว้ FIR นั้นต้องการการตอบสนองต่อแรงกระตุ้นยาวมาก (1000s ก๊อก) และมีราคาแพงในแง่ของหน่วยความจำ MIPS & เวลาแฝงที่มีการเพิ่ม / บันทึกทับซ้อนกันเป็นตัวเลือกที่มีประสิทธิภาพมากที่สุด อย่างไรก็ตามเวลาแฝงอาจเป็นปัญหาจริง หากคุณต้องการที่จะใช้เป็น High Pass สำหรับซับวูฟเฟอร์โฮมเธียเตอร์เวลาในการตอบสนองจะสูงมากจนคุณจะเสียการซิงค์ปากกับวิดีโอ

IIR เป็นคำสั่งหลายขนาดที่มีราคาถูกกว่าและใช้บ่อย แน่นอนว่ามันมีการตอบสนองระยะที่ไม่แบน แต่ในหลายกรณีนี่ไม่ใช่ปัญหาหรือสามารถแก้ไขได้ ตัวอย่างเช่นหากคุณต้องการตัวกรองผ่านความถี่สูงเพื่อปกป้องไดรเวอร์ในกล่องเสียงเบสการตอบสนองของเฟสไม่สำคัญมากเนื่องจากการตอบสนองของเฟสโดยรวมของระบบจะถูกควบคุมโดยคนขับกล่องหุ้มและอะคูสติกในห้อง ตัวกรองมีบทบาทเพียงเล็กน้อยที่นี่ ในหลายกรณีคุณต้องรักษาเฟส "สัมพัทธ์" ไม่ใช่เฟสสัมบูรณ์ สมมติว่าคุณต้องการใช้ highpass กับสัญญาณ A แต่ไม่ใช่สัญญาณ B คุณสามารถใส่การบายพาสที่ตรงกันบนสัญญาณ B เพื่อให้เฟสสัมพัทธ์ของ A และ B ยังคงเดิม ความล่าช้าโดยรวมและความล่าช้าของกลุ่มของวิธีการนี้ยังคงน้อยกว่าวิธีการ FIR

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