กลับไปหน้าบทความ

อ่าน 6 นาที

ไม่มีชื่อบทความ

การออกแบบตัวกรอง คือกระบวนการออกแบบ ตัวกรองประมวลผลสัญญาณ ที่ตรงตามข้อกำหนดหลายประการ ซึ่งบางข้ออาจขัดแย้งกัน...

การออกแบบตัวกรอง

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

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

การออกแบบตัวกรองดิจิทัลเป็นหัวข้อที่ซับซ้อน[ 1 ]แม้ว่าตัวกรองจะเข้าใจและคำนวณได้ง่าย แต่ความท้าทายในทางปฏิบัติของการออกแบบและการใช้งานนั้นมีนัยสำคัญและเป็นหัวข้อของการวิจัยขั้นสูง

ข้อกำหนดการออกแบบทั่วไป

ข้อกำหนดทั่วไปที่อาจนำมาพิจารณาในกระบวนการออกแบบ ได้แก่:

ฟังก์ชันความถี่

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

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

นอกจากนี้ อาจมี ฟังก์ชัน ถ่วงน้ำหนัก ประกอบอยู่ด้วย ซึ่งอธิบายถึงความสำคัญของการที่ฟังก์ชันความถี่ที่ได้จะใกล้เคียงกับฟังก์ชันความถี่ที่ต้องการ สำหรับแต่ละความถี่

ตัวอย่างทั่วไปของฟังก์ชันความถี่ ได้แก่:

  • ตัวกรองความถี่ต่ำใช้เพื่อตัดสัญญาณความถี่สูงที่ไม่ต้องการ
  • ตัวกรองความถี่สูงจะยอมให้ความถี่สูงผ่านไปได้ค่อนข้างดี มีประโยชน์ในฐานะตัวกรองเพื่อตัดส่วนประกอบความถี่ต่ำที่ไม่ต้องการออกไป
  • ตัวกรองแบบผ่านย่านความถี่ ( band -pass filter)จะยอมให้ความถี่ในช่วงจำกัดผ่านได้
  • ตัวกรองแบบ แบนด์สต็อปจะยอมให้ความถี่ที่อยู่เหนือและต่ำกว่าช่วงความถี่ที่กำหนดผ่านไปได้ ตัวกรองแบบแบนด์สต็อปที่มีช่วงความถี่แคบมากเรียกว่าตัวกรองแบบน็อตช์
  • ตัวกรองแบบออลพาส (All-pass filter)จะส่งผ่านความถี่ทั้งหมดด้วยอัตราขยายเท่ากัน สิ่งที่เปลี่ยนแปลงไปมีเพียงการเลื่อนเฟส ซึ่งส่งผลต่อค่าความหน่วงของกลุ่ม (Group delay) ด้วย
  • วงจรดิฟเฟอเรนชิเอเตอร์มีการตอบสนองของแอมพลิจูดที่แปรผันตรงกับความถี่
  • ตัวกรองความถี่ต่ำ (low-shelf filter) ยอมให้ความถี่ทั้งหมดผ่านไปได้ แต่จะเพิ่มหรือลดความถี่ที่ต่ำกว่าความถี่ระดับนั้นตามปริมาณที่กำหนด
  • ตัวกรองแบบไฮเชลฟ์ (high-shelf filter) ยอมให้ความถี่ทั้งหมดผ่านไปได้ แต่จะเพิ่มหรือลดความถี่ที่สูงกว่าความถี่เชลฟ์ตามปริมาณที่กำหนด
  • ฟิลเตอร์ Peak EQ จะสร้างจุดสูงสุดหรือจุดต่ำสุดในกราฟการตอบสนองความถี่ ซึ่งมักใช้ในอีควอไลเซอร์แบบพาราเมตริก

ความล่าช้าของเฟสและกลุ่ม

  • ฟิลเตอร์แบบออลพาส (All-pass filter) จะส่งผ่านความถี่ทั้งหมดโดยไม่เปลี่ยนแปลง แต่จะเปลี่ยนเฟสของสัญญาณ ฟิลเตอร์ประเภทนี้สามารถใช้เพื่อปรับสมดุลค่าหน่วงเวลาของกลุ่ม (Group delay) ของฟิลเตอร์แบบวนซ้ำ (Recursive filter) นอกจากนี้ยังใช้ในเอฟเฟ็กต์เฟเซอร์ (Phazer effects ) อีกด้วย
  • ตัวแปลงฮิลเบิร์ต (Hilbert transformer)เป็นตัวกรองแบบผ่านทั้งหมดชนิดพิเศษที่ยอมให้สัญญาณไซน์ผ่านไปได้โดยที่แอมพลิจูดไม่เปลี่ยนแปลง แต่จะเลื่อนเฟสของแต่ละสัญญาณไซน์ไป ±90°
  • ตัวกรองหน่วงเวลาแบบเศษส่วน (Fractional delay filter)คือตัวกรองแบบผ่านทุกความถี่ (all-pass filter) ที่มีค่าหน่วงเวลาแบบกลุ่มหรือเฟสที่กำหนดไว้และคงที่สำหรับทุกความถี่

การตอบสนองต่อแรงกระตุ้น

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

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

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

ความเป็นเหตุเป็นผล

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

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

ความเสถียร

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

ท้องถิ่น

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

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

ความซับซ้อนในการคำนวณ

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

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

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

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

ข้อพิจารณาอื่นๆ

นอกจากนี้ยังต้องตัดสินใจว่าจะนำตัวกรองไปใช้งานอย่างไร:

ตัวกรองอนาล็อก

การออกแบบตัวกรองอนาล็อกเชิงเส้นส่วนใหญ่จะกล่าวถึงในส่วนของตัวกรองเชิงเส้น แล้ว

ตัวกรองดิจิทัล

ตัวกรองดิจิทัลแบ่งออกเป็นสองรูปแบบพื้นฐาน ตามวิธีการตอบสนองต่อสัญญาณพัลส์หน่วย :

  • ตัวกรองแบบ ตอบสนองอิมพัลส์จำกัดหรือFIR (Finite Impulse Response ) แสดงตัวอย่างเอาต์พุตแต่ละตัวเป็นผลรวมถ่วงน้ำหนักของตัวอย่างอินพุตN ตัวสุดท้าย โดยที่ Nคือลำดับของตัวกรอง ตัวกรอง FIR โดยปกติจะไม่เป็นแบบเรียกซ้ำ หมายความว่าไม่ใช้ฟีดแบ็ก และด้วยเหตุนี้จึงมีความเสถียรโดยธรรมชาติ ตัวกรองค่า เฉลี่ยเคลื่อนที่หรือตัวกรอง CICเป็นตัวอย่างของตัวกรอง FIR ที่โดยปกติจะเป็นแบบเรียกซ้ำ (ที่ใช้ฟีดแบ็ก) หากสัมประสิทธิ์ของ FIR สมมาตร (ซึ่งมักจะเป็นเช่นนั้น) ตัวกรองดังกล่าวจะเป็นเฟสเชิงเส้นดังนั้นจึงหน่วงสัญญาณทุกความถี่อย่างเท่าเทียมกัน ซึ่งมีความสำคัญในหลายแอปพลิเคชัน นอกจากนี้ยังง่ายต่อการหลีกเลี่ยงการโอเวอร์โฟลว์ในตัวกรอง FIR ข้อเสียหลักคืออาจต้องการ ทรัพยากร การประมวลผลและ หน่วย ความจำมากกว่าตัวกรอง IIR ที่ออกแบบมาอย่างชาญฉลาด ตัวกรอง FIR โดยทั่วไปออกแบบได้ง่ายกว่าตัวกรอง IIR - อัลกอริทึมการออกแบบตัวกรอง Parks-McClellan (อิงตามอัลกอริทึม Remez ) เป็นวิธีการที่เหมาะสมวิธีหนึ่งสำหรับการออกแบบตัวกรองที่ดีพอสมควรแบบกึ่งอัตโนมัติ (ดูวิธีการ )
  • ตัวกรองแบบตอบสนองอิมพัลส์อนันต์ หรือIIR ( Infinite Impulse Response)เป็นตัวกรองดิจิทัลที่เทียบเท่ากับตัวกรองอนาล็อก ตัวกรองดังกล่าวมีสถานะภายใน และเอาต์พุตและสถานะภายในถัดไปจะถูกกำหนดโดยการรวมกันเชิงเส้นของอินพุตและเอาต์พุตก่อนหน้า (กล่าวคือ ใช้การป้อนกลับซึ่งตัวกรอง FIR โดยทั่วไปไม่ได้ใช้) ในทางทฤษฎี การตอบสนองอิมพัลส์ของตัวกรองดังกล่าวจะไม่หายไปอย่างสมบูรณ์ จึงเป็นที่มาของชื่อ IIR แม้ว่าในทางปฏิบัติจะไม่เป็นเช่นนั้นเนื่องจากความละเอียดที่จำกัดของการคำนวณทางคณิตศาสตร์ของคอมพิวเตอร์ ตัวกรอง IIR โดยทั่วไปต้องการ ทรัพยากร การคำนวณ น้อย กว่าตัวกรอง FIR ที่มีประสิทธิภาพใกล้เคียงกัน อย่างไรก็ตาม เนื่องจากการป้อนกลับ ตัวกรอง IIR ลำดับสูงอาจมีปัญหาเรื่อง ความ ไม่เสถียรการล้นทางคณิตศาสตร์และวงจรจำกัดและต้องออกแบบอย่างระมัดระวังเพื่อหลีกเลี่ยงข้อผิดพลาดดังกล่าว นอกจากนี้ เนื่องจากเฟสชิฟต์เป็นฟังก์ชันที่ไม่เป็นเชิงเส้นของความถี่โดยธรรมชาติ ความล่าช้าของเวลาผ่านตัวกรองดังกล่าวจึงขึ้นอยู่กับความถี่ ซึ่งอาจเป็นปัญหาในหลายสถานการณ์ ตัวกรอง IIR อันดับที่ 2 มักเรียกว่า ' biquad ' และการใช้งานตัวกรองอันดับสูงกว่าที่นิยมใช้กันคือการต่อ biquad เข้าด้วยกัน หนังสืออ้างอิงที่มีประโยชน์สำหรับการคำนวณค่าสัมประสิทธิ์ของ biquad คือRBJ Audio EQ Cookbook

อัตราการสุ่มตัวอย่าง

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

การลดรอยหยัก

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

พื้นฐานทางทฤษฎี

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

  • หลักการความไม่แน่นอนระหว่างโดเมนเวลาและโดเมนความถี่
  • ทฤษฎีบทการขยายความแปรปรวน
  • พฤติกรรมเชิงอะซิมโทติกของโดเมนหนึ่งเมื่อเทียบกับความไม่ต่อเนื่องในอีกโดเมนหนึ่ง

หลักการความไม่แน่นอน

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

ทฤษฎีบทการขยายความแปรปรวน

อนุญาตσ2{\displaystyle \sigma _{s}^{2}}ให้ เป็นค่าความแปรปรวนของสัญญาณอินพุต และให้σเอฟ2{\displaystyle \sigma _{f}^{2}}ให้ค่าความแปรปรวนของตัวกรองเป็นค่าความแปรปรวนของการตอบสนองของตัวกรองσ2{\displaystyle \sigma _{r}^{2}}จากนั้นจึงกำหนดโดย

σ2{\displaystyle \sigma _{r}^{2}}=σ2{\displaystyle \sigma _{s}^{2}}+σเอฟ2{\displaystyle \sigma _{f}^{2}}

หมายความว่าσ>σเอฟ{\displaystyle \sigma _{r}>\sigma _{f}}และนั่นหมายความว่า การระบุตำแหน่งของคุณลักษณะต่างๆ เช่น พัลส์หรือขั้นบันไดในผลตอบสนองของตัวกรองนั้น ถูกจำกัดด้วยความกว้างของตัวกรองในโดเมนสัญญาณ หากต้องการการระบุตำแหน่งที่แม่นยำ เราจำเป็นต้องใช้ตัวกรองที่มีความกว้างน้อยในโดเมนสัญญาณ และตามหลักการความไม่แน่นอน ความกว้างของตัวกรองในโดเมนความถี่จึงไม่สามารถเล็กได้ตามอำเภอใจ

ความไม่ต่อเนื่องเทียบกับพฤติกรรมเชิงเส้นกำกับ

ให้f(t)เป็นฟังก์ชัน และให้เอฟ(ω){\displaystyle F(\omega )}เป็นการแปลงฟูริเยร์ของมัน มีทฤษฎีบทหนึ่งที่กล่าวว่า ถ้าอนุพันธ์อันดับแรกของFซึ่งไม่ต่อเนื่อง มีอันดับn0{\displaystyle n\geq 0}จากนั้นfจะมีการลดลงแบบเชิงเส้นกำกับดังนี้ทีn1{\displaystyle t^{-n-1}}.

ผลที่ตามมาของทฤษฎีบทนี้คือ ฟังก์ชันความถี่ของตัวกรองควรมีความเรียบเนียนมากที่สุดเท่าที่จะเป็นไปได้ เพื่อให้การตอบสนองต่อแรงกระตุ้นลดลงอย่างรวดเร็ว และส่งผลให้มีความกว้างสั้นลง

ระเบียบวิธีวิจัย

วิธีการออกแบบตัวกรอง FIR ที่ใช้กันทั่วไปวิธีหนึ่งคืออัลกอริทึมการออกแบบตัวกรอง Parks-McClellanซึ่งอิงตามอัลกอริทึมการแลกเปลี่ยน Remez โดยผู้ใช้จะระบุการตอบสนองความถี่ ที่ต้องการ ฟังก์ชันถ่วงน้ำหนักสำหรับข้อผิดพลาดจากการตอบสนองนี้ และลำดับตัวกรองN [ 4 ] จากนั้นอัลกอริทึมจะค้นหาชุด สัมประสิทธิ์ Nที่ลดค่าเบี่ยงเบนสูงสุดจากอุดมคติให้น้อยที่สุด โดยสัญชาตญาณแล้ว วิธีนี้จะค้นหาตัวกรองที่ใกล้เคียงกับการตอบสนองที่ต้องการมากที่สุดเท่าที่จะเป็นไปได้ โดยที่สามารถใช้สัมประสิทธิ์ได้เพียงN ตัวเท่านั้น วิธีนี้ค่อนข้างง่ายในทางปฏิบัติ และอย่างน้อยหนึ่งตำรา[ 5 ]ก็มีโปรแกรมที่รับตัวกรองที่ต้องการและNแล้วส่งคืนสัมประสิทธิ์ที่เหมาะสมที่สุด ข้อเสียเปรียบที่เป็นไปได้ประการหนึ่งของตัวกรองที่ออกแบบด้วยวิธีนี้คือ ตัวกรองเหล่านี้จะมีระลอกคลื่นเล็กๆ จำนวนมากในย่านความถี่ผ่าน เนื่องจากตัวกรองดังกล่าวจะลดข้อผิดพลาดสูงสุดให้น้อยที่สุด

อีกวิธีหนึ่งในการหาตัวกรอง FIR แบบไม่ต่อเนื่องคือการปรับตัวกรองให้เหมาะสมที่สุดตามที่อธิบายไว้ในงานของ Knutsson et al. ซึ่งจะลดค่าอินทิกรัลของกำลังสองของข้อผิดพลาดให้เหลือน้อยที่สุด แทนที่จะเป็นค่าสูงสุด ในรูปแบบพื้นฐาน วิธีการนี้ต้องการฟังก์ชันความถี่ในอุดมคติของตัวกรองเอฟฉัน(ω){\displaystyle F_{I}(\โอเมก้า )}ระบุร่วมกับฟังก์ชันถ่วงน้ำหนักความถี่(ω){\displaystyle W(\omega )}และชุดพิกัดxเค{\displaystyle x_{k}}ในโดเมนสัญญาณซึ่งเป็นที่ตั้งของสัมประสิทธิ์ตัวกรอง

ฟังก์ชันข้อผิดพลาดε{\displaystyle \varepsilon }ถูกกำหนดให้เป็น

ε=(เอฟฉันเอฟ{เอฟ})2{\displaystyle \varepsilon =\|W\cdot (F_{I}-{\mathcal {F}}\{f\})\|^{2}}

ที่ไหนเอฟ(x){\displaystyle f(x)}คือตัวกรองแบบไม่ต่อเนื่องและเอฟ{\displaystyle {\mathcal {F}}}คือการแปลงฟูริเยร์แบบเวลาไม่ต่อเนื่องที่กำหนดบนชุดพิกัดที่ระบุ บรรทัดฐานที่ใช้ในที่นี้ ในเชิงรูปแบบ คือบรรทัดฐานปกติบนแอล2{\displaystyle L^{2}}ช่องว่าง หมายความว่าε{\displaystyle \varepsilon }วัดค่าเบี่ยงเบนระหว่างฟังก์ชันความถี่ที่ร้องขอของตัวกรองเอฟฉัน{\displaystyle F_{I}}และฟังก์ชันความถี่จริงของตัวกรองที่สร้างขึ้นเอฟ{เอฟ}{\displaystyle {\mathcal {F}}\{f\}}อย่างไรก็ตาม ความเบี่ยงเบนนั้นยังขึ้นอยู่กับฟังก์ชันการถ่วงน้ำหนักด้วย{\displaystyle W}ก่อนที่จะคำนวณฟังก์ชันข้อผิดพลาด

เมื่อกำหนดฟังก์ชันความคลาดเคลื่อนแล้ว ตัวกรองที่เหมาะสมที่สุดจะถูกกำหนดโดยสัมประสิทธิ์เอฟ(x){\displaystyle f(x)}ซึ่งช่วยลดให้น้อยที่สุดε{\displaystyle \varepsilon }สามารถทำได้โดยการแก้ปัญหาการหาค่ากำลังสองน้อยที่สุดที่เกี่ยวข้อง ในทางปฏิบัติแอล2{\displaystyle L^{2}}ค่ามาตรฐานจะต้องได้รับการประมาณโดยใช้ผลรวมที่เหมาะสมเหนือจุดต่างๆ ในโดเมนความถี่ โดยทั่วไปแล้ว จุดเหล่านี้ควรมีจำนวนมากกว่าจำนวนสัมประสิทธิ์ในโดเมนสัญญาณอย่างมาก เพื่อให้ได้ค่าประมาณที่มีประโยชน์

การเพิ่มประสิทธิภาพพร้อมกันในทั้งสองโดเมน

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

ดูเพิ่มเติม

  • บทความเกี่ยวกับการออกแบบตัวกรองและซอฟต์แวร์มากมายที่ Circuit Sage
  • รายชื่อซอฟต์แวร์ออกแบบตัวกรองดิจิทัลที่ dspGuru
  • การออกแบบตัวกรองอนาล็อกแบบเข้าใจง่าย
  • คู่มือการประมวลผลเสียงดิจิทัลของเยฮาร์สำหรับคนสมองทึบ!เอกสารนี้อธิบายทฤษฎีการออกแบบฟิลเตอร์อย่างง่ายๆ (รวมถึงหัวข้ออื่นๆ ด้วย) และให้ตัวอย่างประกอบ

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ไม่มีชื่อบทความ

การออกแบบตัวกรอง คือกระบวนการออกแบบ ตัวกรองประมวลผลสัญญาณ ที่ตรงตามข้อกำหนดหลายประการ ซึ่งบางข้ออาจขัดแย้งกัน...

ข้อกำหนดการออกแบบทั่วไป

ข้อกำหนดทั่วไปที่อาจนำมาพิจารณาในกระบวนการออกแบบ ได้แก่:

ฟังก์ชันความถี่

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

ความล่าช้าของเฟสและกลุ่ม

ฟิลเตอร์แบบออลพาส (All-pass filter) จะส่งผ่านความถี่ทั้งหมดโดยไม่เปลี่ยนแปลง แต่จะเปลี่ยนเฟสของสัญญาณ ฟิลเตอร์ประเภทนี้สามารถใช้เพื่อปรับสมดุลค่าหน่วงเวลาของกลุ่ม (Group delay) ของฟิลเตอร์แบบวนซ้ำ (Recursive filter) นอกจากนี้ยังใช้ใน เอฟเฟ็กต์เฟเซอร์ (Phazer...