ฉันจะไปที่รายการของ "ตัวกรองที่ไม่ทำเลย" ฉันหวังว่าคุณจะพบคำตอบบางส่วนดีกว่าไม่มีคำตอบเลย หวังว่าคนที่กำลังมองหา "ตัวกรองที่ไม่ทำเลย" จะพบว่ารายการตัวกรองดังกล่าวมีประโยชน์ บางทีหนึ่งในตัวกรองเหล่านี้จะทำงานอย่างเพียงพอในแอปพลิเคชันของคุณแม้ว่าเรายังไม่พบตัวกรองที่เหมาะสมที่สุดในเชิงคณิตศาสตร์
ลำดับตัวกรองสาเหตุ 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)" เมื่อป้อนข้อมูลแบบเป็นขั้นตอนจะมีระลอกคลื่นในโดเมนจำนวนมาก แต่ไม่เคยเกินกว่าจุดตัดสินขั้นสุดท้าย เหนือมุมความถี่สูงของสามเหลี่ยมนั้นมันให้การหยุดย่านความถี่ที่สมบูรณ์แบบ (การลดทอนแบบไม่มีที่สิ้นสุด) ดังนั้นในย่านแถบหยุดมันจึงตอบสนองความถี่ได้ดีกว่าตัวกรองเกาส์เซียน
ดังนั้นฉันสงสัยว่าตัวกรองแบบเกาส์จะให้ "การตอบสนองความถี่ที่เหมาะสมที่สุด"
ในชุดของ "ตัวกรองที่เป็นไปได้ทั้งหมดที่ไม่ทำเลยเกินจริง" ฉันสงสัยว่าไม่มี "การตอบสนองความถี่ที่เหมาะสมที่สุด" เดียว - บางตัวมีการปฏิเสธการหยุดแบนด์ที่ดีกว่าในขณะที่คนอื่น ๆ