การตอบสนองความถี่ที่คมชัดที่สุดสำหรับตัวกรอง low-pass ที่ไม่ใช่สาเหตุซึ่งการตอบสนองแบบขั้นตอนไม่เกินขนาดคืออะไร


13

Butterworth, Bessel, Chebychev และ sinc low-pass filters ถูกใช้ในหลาย ๆ กรณีที่มีการแลกเปลี่ยนที่แตกต่างกันระหว่างการตอบสนองความถี่ที่ลดลงอย่างสม่ำเสมอสม่ำเสมอการตอบสนองแบบเฟสการตัดที่ชันหรือการตอบสนอง "กำแพงอิฐ" ฉันเชื่อว่าตัวกรองดังกล่าวทั้งหมดในบางกรณีสามารถมีส่วนเกินในการตอบสนองขั้นตอนของพวกเขาซึ่งหมายความว่าการตอบสนองต่อแรงกระตุ้นของพวกเขาอยู่ในบางสถานที่เชิงลบ

อะไรจะเป็นการตอบสนองความถี่ที่ดีที่สุดหรือชนิดของการตอบสนองความถี่ที่มีอยู่ในตัวกรองที่มีข้อ จำกัด เพียงอย่างเดียวคือการตอบสนองต่อแรงกระตุ้นไม่สามารถลบได้ทุกที่? แน่นอนว่าเป็นไปได้ที่จะมีการ จำกัด ตัวกรอง low-pass ซึ่งเป็นข้อ จำกัด เนื่องจากตัวกรอง RC พื้นฐานจะทำเช่นนั้น (แม้ว่าการตอบสนองของตัวกรองดังกล่าวจะค่อนข้างหยาบ) การตอบสนองต่อแรงกระตุ้นที่เหมาะสมที่สุดจะเป็นเส้นโค้งการแจกแจงแบบปกติหรืออย่างอื่นหรือไม่?


1
@supercat ถ้าคุณมีตัวกรองดิจิทัลมันน่าอัศจรรย์มากที่กำแพงอิฐตอบสนองคุณจะได้รับโดยไม่เกินขนาด
Kortuk

2
@Kortuk: จริงเหรอ? ฉันคิดว่ามันคงยากที่จะหลีกเลี่ยงการถูกเหยียดหยามเนื่องจากคลื่นสี่เหลี่ยมที่กรองด้วยกำแพงอิฐมีหนามเล็ก ๆ น้อย ๆ ซึ่งความกว้างเข้าใกล้ศูนย์เมื่อความถี่การตัดเพิ่มขึ้น แต่แอมพลิจูดไม่ได้ อะไรคือการอ้างอิงที่ดี?
supercat

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

1
@endolith: สิ่งที่จะเป็นตัวกรองที่ดีที่สุดสมมติว่ามันไม่จำเป็นต้องเป็นสาเหตุ
supercat

1
@Kortuk: การตัดสัญญาณที่ศูนย์จะเป็นการทำลายประโยชน์ของการกรองโดยสิ้นเชิง และในขณะที่ฉันโพสต์ใน DSP ฉันยังอยากรู้อยากเห็นเกี่ยวกับสิ่งต่าง ๆ เช่นเครื่องบันทึกภาพยนตร์เสียง (จากทางปัญญามากกว่าแง่มุมที่ยอมรับได้) ซึ่งใคร ๆ ก็สามารถทำสิ่งที่ฟังก์ชั่นแรงกระตุ้นที่ไม่เป็นลบได้ตามที่ต้องการ
supercat

คำตอบ:


6

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

ลำดับตัวกรองสาเหตุ LTI อันดับที่หนึ่งและสอง

การตอบสนองขั้นตอนของตัวกรองคำสั่งแรก ("ตัวกรอง RC") ไม่เคยมีค่าเกินจริง

การตอบสนองขั้นตอนของตัวกรองลำดับที่สอง ("biquad") สามารถออกแบบได้โดยที่ไม่เคยมีค่าเกินราคา มีวิธีที่เทียบเท่ากันหลายวิธีในการอธิบายตัวกรองลำดับที่สองนี้ซึ่งไม่เกินระดับขั้นตอนในการป้อนข้อมูล:

  • มันเป็นช่วงวิกฤตหรือเกินกำหนด
  • มันไม่ได้ underdamped
  • อัตราส่วนการทำให้หมาด ๆ (ซีต้า) คือ 1 หรือมากกว่า
  • ปัจจัยด้านคุณภาพ (Q) คือ 1/2 หรือน้อยกว่า
  • พารามิเตอร์อัตราการสลายตัว (อัลฟา) เป็นอย่างน้อยความถี่เชิงมุมธรรมชาติที่ยังไม่ได้ปันส่วน (omega_0) หรือมากกว่า

โดยเฉพาะอย่างยิ่งความสามัคคีได้รับโทโพโลยี Sallen – Key ที่มีตัวเก็บประจุที่เท่ากันและตัวต้านทานที่เท่ากันนั้นได้รับการลดลงอย่างยิ่ง: Q = 1/2 และดังนั้นจึงไม่เกินขนาดของอินพุตขั้นตอน

ตัวกรอง Bessel ลำดับที่สองนั้นมีการ underdamped เล็กน้อย: Q = 1 / sqrt (3) ดังนั้นจึงมีการใช้งานเกินจริงเล็กน้อย

ตัวกรองลำดับที่สองของ Butterworth นั้นด้อยกว่า: Q = 1 / sqrt (2) ดังนั้นจึงมีการโอเวอร์โหลดมากขึ้น

จากตัวกรอง LTI ลำดับที่หนึ่งและลำดับที่สองที่เป็นไปได้ทั้งหมดที่เป็นสาเหตุและไม่ทำเกินขนาดตัวกรองที่มีการตอบสนองความถี่ "ดีที่สุด" (สูงที่สุด) คือตัวกรองลำดับที่สองที่ "วิกฤต"

ลำดับตัวกรองสาเหตุ LTI ที่สูงกว่า

ตัวกรองสาเหตุอันดับสูงที่ใช้กันมากที่สุดที่มีการตอบสนองต่อแรงกระตุ้นที่ไม่เคยเป็นลบ (และดังนั้นจึงไม่เคยเลยในขั้นตอนการป้อนข้อมูล) คือ "ตัวกรองเฉลี่ยที่รันอยู่" หรือที่เรียกว่า "ตัวกรองแบบ boxcar" หรือ " ตัวกรองค่าเฉลี่ยเคลื่อนที่ "

บางคนต้องการเรียกใช้ข้อมูลผ่านตัวกรอง boxcar หนึ่งและผลลัพธ์จากตัวกรองนั้นไปยังตัวกรอง boxcar อื่น หลังจากตัวกรองดังกล่าวไม่กี่ผลที่ได้คือการประมาณที่ดีของตัวกรอง Gaussian (ยิ่งตัวกรองคุณเรียงซ้อนยิ่งผลลัพธ์สุดท้ายใกล้เคียงกับแบบเกาส์มากขึ้นไม่ว่าคุณจะเริ่มต้นด้วยตัวกรองแบบใด - boxcar, สามเหลี่ยม, RC ลำดับที่หนึ่งหรืออย่างอื่น - เนื่องจากทฤษฎีบทขีด จำกัด กลาง)

เกือบทุกฟังก์ชั่นหน้าต่างมีการตอบสนองต่อแรงกระตุ้นที่ไม่เคยเป็นลบและดังนั้นในหลักการสามารถใช้เป็นตัวกรอง FIR ที่ไม่เคยเกินระยะเวลาในการป้อนข้อมูลขั้นตอน โดยเฉพาะอย่างยิ่งฉันได้ยินสิ่งดีๆเกี่ยวกับหน้าต่าง Lanczosซึ่งเป็นกลีบกลาง (บวก) ของฟังก์ชัน sinc () (และศูนย์นอกกลีบนั้น) ตัวกรองการปรับรูปร่างแบบพัลส์บางตัวมีการตอบสนองแบบอิมพัลส์ที่ไม่เคยเป็นค่าลบและสามารถใช้เป็นตัวกรองที่ไม่เคยโอเวอร์โหลดในอินพุตขั้นตอน

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

ตัวกรองเชิงสาเหตุเชิงเส้น

กรองแบ่งเป็นตัวกรองที่ไม่ใช่เชิงเส้นที่นิยมที่ไม่เคย overshoots ในการป้อนข้อมูลขั้นตอนการทำงาน

แก้ไข: ตัวกรองไม่ใช่ LTI

ฟังก์ชั่น sech (t) = 2 / (e ^ (- t) + e ^ t) เป็นการแปลงฟูริเยร์ของตัวเองและฉันคิดว่าสามารถใช้เป็นตัวกรอง LTI แบบ low-pass ที่ไม่ได้เป็นสาเหตุ ขั้นตอนการป้อนข้อมูล

ตัวกรอง LTI ที่ไม่ใช่สาเหตุที่มีการตอบสนองต่อแรงกระตุ้น (sinc (t / k)) ^ 2 มีการตอบสนองความถี่ "abs (k) * สามเหลี่ยม (k * w)" เมื่อป้อนข้อมูลแบบเป็นขั้นตอนจะมีระลอกคลื่นในโดเมนจำนวนมาก แต่ไม่เคยเกินกว่าจุดตัดสินขั้นสุดท้าย เหนือมุมความถี่สูงของสามเหลี่ยมนั้นมันให้การหยุดย่านความถี่ที่สมบูรณ์แบบ (การลดทอนแบบไม่มีที่สิ้นสุด) ดังนั้นในย่านแถบหยุดมันจึงตอบสนองความถี่ได้ดีกว่าตัวกรองเกาส์เซียน

ดังนั้นฉันสงสัยว่าตัวกรองแบบเกาส์จะให้ "การตอบสนองความถี่ที่เหมาะสมที่สุด"

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


ขอบคุณสำหรับการตอบกลับของคุณ. ฉันละเลยที่จะ จำกัด คำถามของฉันให้กับตัวกรองเชิงเส้น แต่แน่นอนว่าการกำหนดลักษณะการตอบสนองความถี่ของตัวกรองที่ไม่ใช่เชิงเส้นอาจเป็นข้อเสนอที่มืดมน ดังที่กล่าวไว้การเรียงลำดับตัวกรอง boxcar ทำให้มันเข้าหา Gaussian ฉันสงสัยว่าตัวกรอง Gaussian มีการตอบสนองความถี่ที่ดีที่สุดที่สามารถรับได้โดยไม่เกินขนาดหรือไม่ ในการเขียนคำถามฉันคิดเกี่ยวกับกระบวนการแบบอะนาล็อกหลายอย่างซึ่งทำอะไรบางอย่างเช่นตัวกรองการตอบสนองต่อแรงกระตุ้นที่กำหนดเช่นกล้องเบลอหรือพิกเซลที่แสดงเพื่อลดนามแฝง
supercat

เป็นไปได้ที่จะสร้างกล้องเพื่อให้แต่ละพิกเซลรับแสงที่แตกต่างกันจากจุดต่าง ๆ รอบจุดศูนย์กลาง ตามหลักการแล้วกล้องจะกรองทุกอย่างเหนือ Nyquist โดยไม่ทำให้ภาพเบลอด้านล่าง แต่ในทางปฏิบัติมันไม่น่าจะเกิดขึ้น
supercat

1
LTI? คุณไม่เคยกำหนดไว้ การเพิ่มว่ามันหมายถึง "linear time-invariant" อาจเป็นประโยชน์
Connor Wolf

1
ดังนั้น Q = 0.5 จึงเป็นช่วงวิกฤต? สำหรับการสั่งซื้อที่กำหนดจะมีหลายระบบที่เป็นช่วงวิกฤต? biquad กับ Q = 0.5 เรียกว่า LR2 กรอง Linkwitz-Riley ดูเหมือนว่าตัวกรอง LR รุ่นที่มีลำดับสูงกว่าจะดังขึ้นในการตอบสนองขั้นตอน
endolith

"ตัวกรองแบบวิกฤตที่มีการลดหลั่นจะส่งผลให้ตัวกรองแบบวิกฤตอื่น ๆ " ดังนั้นเพียงแค่ทิ้งเสาไว้ที่ -1 และมันจะเป็นช่วงวิกฤตหรือไม่? (และใกล้ถึงการตอบสนองของตัวกรองแบบเกาส์เมื่อจำนวนเพิ่มขึ้น?)
endolith

2

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

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

หากคุณมี Matlab สำหรับการใช้งานคุณควรตรวจสอบเครื่องมือออกแบบตัวกรองบางส่วน นี่คือลิงค์พูดคุยเกี่ยวกับบัตเตอร์และBessel เครื่องมือออกแบบช่วยให้คุณระบุลักษณะบางอย่างของตัวกรอง ลักษณะเหล่านี้จะเปลี่ยนไปสำหรับตัวกรองแต่ละประเภท แต่ตัวอย่างบางอย่าง ได้แก่ Passband, stopband, ripple เป็นต้นหากคุณให้ข้อ จำกัด ที่นักออกแบบต้องการคุณจะได้รับข้อผิดพลาด (หมายถึงไม่สามารถสร้างตัวกรองนั้นด้วยประเภทตัวกรองนั้น ) หรือมันจะให้ตัวกรองแก่คุณโดยมีลำดับขั้นต่ำที่จำเป็นเพื่อให้ตรงตามข้อกำหนด


Gaussianเหมาะกับความต้องการสำหรับการกระตุ้นการตอบสนองที่ไม่เป็นลบ แต่ก็ไม่มากของผนังอิฐ ในทางกลับกัน Butterworth, Bessel และ Chebyshev มีการสั่นเหมือนซินในการตอบสนองต่อแรงกระตุ้นที่นำไปสู่การเลยเถิด ในบรรดาตัวกรอง Besselนั้นมีการโอเวอร์โหลดอย่างน้อยที่สุดเนื่องจากมันมีการหน่วงเวลาแบบกลุ่มเกือบแบน (เฟสเชิงเส้น) ใน passband
Eryk Sun

นอกเหนือจาก Gaussian ตัวกรองเหล่านี้เป็นสาเหตุ สำหรับการประมวลผลออฟไลน์ NNFIR เชิงเส้นเฟส (nonnegative FIR) จะทำงานได้ดีหรือคุณสามารถยกเลิกการบิดเบือนเฟสของตัวกรองแบบเรียกซ้ำสาเหตุโดยใช้เทคนิคการกรองแบบfiltfilt .... แน่นอนว่าคุณยังต้องการวิธีการออกแบบ NNIR LPF เพื่อ หลีกเลี่ยงการทำเกินขนาด / undershoot ข้อเสนอแนะใคร? อ้างอิง?
Eryk Sun

@eryksun เป็นหมายเหตุข้างเคียงถ้ามันจะแกว่งไปที่ 1.05 คูณค่า max เพียงแค่ชื้นที่หยุดที่ 1.00 และการตอบสนองขั้นตอนของคุณจะน้อยลงเล็กน้อยเช่น. 96 เมื่อเสถียร แก้ไขปัญหา.
Kortuk

@Kortuk: ปัญหาที่แก้ไขในโดเมนเวลา แต่การตัดภาพนั้นไม่เพียง แต่ไม่ใช่เชิงเส้น แต่ยังเปิดบางส่วนของโดเมนความถี่เพื่อส่งสัญญาณที่ไม่ได้ทำก่อนหน้านี้ เขาต้องการตัวกรอง pass / no pass ที่รัดกุมที่สุดเท่าที่จะทำได้โดยไม่ต้อง overhoot ในโดเมนเวลา ไม่มีโดเมนเวลาเลยกำหนดเลยเหมือนกันว่าการตอบสนองต่อแรงกระตุ้นไม่เคยลบ
Olin Lathrop

1
@Kortuk: ในบางโดเมนศูนย์จะอยู่ใกล้จุดกึ่งกลางระหว่างสูงสุดและต่ำสุดและการปรับขนาดสัญญาณไปยังจุดกึ่งกลางจะช่วยหลีกเลี่ยงปัญหาเกี่ยวกับการโอเวอร์โหลด ในโดเมนอื่นเช่นการสร้างภาพศูนย์มีค่าน้อยที่สุดและช่วงไดนามิกนั้นสำคัญที่สุด โดยทั่วไปจะดีกว่าถ้ามีตัวกรอง "fuzzier" ซึ่งไม่เกินกว่าตัวกรองที่คมชัดกว่า
supercat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.