การออกแบบตัวกรอง
การออกแบบตัวกรองคือกระบวนการออกแบบตัวกรองประมวลผลสัญญาณที่ตรงตามข้อกำหนดหลายประการ ซึ่งบางข้ออาจขัดแย้งกัน จุดประสงค์คือการหาแนวทางการสร้างตัวกรองที่ตรงตามข้อกำหนดแต่ละข้อในระดับที่ยอมรับได้
กระบวนการออกแบบตัวกรองสามารถอธิบายได้ว่าเป็นปัญหาการหาค่าที่เหมาะสมที่สุด บางส่วนของกระบวนการออกแบบสามารถทำได้โดยอัตโนมัติ แต่บางครั้งอาจจำเป็นต้องมีนักออกแบบที่มีประสบการณ์เพื่อให้ได้ผลลัพธ์ที่ดี
การออกแบบตัวกรองดิจิทัลเป็นหัวข้อที่ซับซ้อน[ 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ซึ่งเป็นหลักการความไม่แน่นอน ผลคูณของความกว้างของฟังก์ชันความถี่และความกว้างของการตอบสนองแบบอิมพัลส์จะต้องไม่น้อยกว่าค่าคงที่เฉพาะค่าหนึ่ง นั่นหมายความว่า หากต้องการฟังก์ชันความถี่เฉพาะที่สอดคล้องกับความกว้างความถี่เฉพาะ ความกว้างขั้นต่ำของตัวกรองในโดเมนสัญญาณจะถูกกำหนด ในทางกลับกัน หากกำหนดความกว้างสูงสุดของการตอบสนองไว้ ค่านี้จะกำหนดความกว้างที่น้อยที่สุดที่เป็นไปได้ในความถี่ นี่เป็นตัวอย่างทั่วไปของข้อกำหนดที่ขัดแย้งกัน ซึ่งกระบวนการออกแบบตัวกรองอาจพยายามหาจุดลงตัวที่เหมาะสม
ทฤษฎีบทการขยายความแปรปรวน
อนุญาตให้ เป็นค่าความแปรปรวนของสัญญาณอินพุต และให้ให้ค่าความแปรปรวนของตัวกรองเป็นค่าความแปรปรวนของการตอบสนองของตัวกรองจากนั้นจึงกำหนดโดย
- =+
หมายความว่าและนั่นหมายความว่า การระบุตำแหน่งของคุณลักษณะต่างๆ เช่น พัลส์หรือขั้นบันไดในผลตอบสนองของตัวกรองนั้น ถูกจำกัดด้วยความกว้างของตัวกรองในโดเมนสัญญาณ หากต้องการการระบุตำแหน่งที่แม่นยำ เราจำเป็นต้องใช้ตัวกรองที่มีความกว้างน้อยในโดเมนสัญญาณ และตามหลักการความไม่แน่นอน ความกว้างของตัวกรองในโดเมนความถี่จึงไม่สามารถเล็กได้ตามอำเภอใจ
ความไม่ต่อเนื่องเทียบกับพฤติกรรมเชิงเส้นกำกับ
ให้f(t)เป็นฟังก์ชัน และให้เป็นการแปลงฟูริเยร์ของมัน มีทฤษฎีบทหนึ่งที่กล่าวว่า ถ้าอนุพันธ์อันดับแรกของFซึ่งไม่ต่อเนื่อง มีอันดับจากนั้นfจะมีการลดลงแบบเชิงเส้นกำกับดังนี้.
ผลที่ตามมาของทฤษฎีบทนี้คือ ฟังก์ชันความถี่ของตัวกรองควรมีความเรียบเนียนมากที่สุดเท่าที่จะเป็นไปได้ เพื่อให้การตอบสนองต่อแรงกระตุ้นลดลงอย่างรวดเร็ว และส่งผลให้มีความกว้างสั้นลง
ระเบียบวิธีวิจัย
วิธีการออกแบบตัวกรอง FIR ที่ใช้กันทั่วไปวิธีหนึ่งคืออัลกอริทึมการออกแบบตัวกรอง Parks-McClellanซึ่งอิงตามอัลกอริทึมการแลกเปลี่ยน Remez โดยผู้ใช้จะระบุการตอบสนองความถี่ ที่ต้องการ ฟังก์ชันถ่วงน้ำหนักสำหรับข้อผิดพลาดจากการตอบสนองนี้ และลำดับตัวกรองN [ 4 ] จากนั้นอัลกอริทึมจะค้นหาชุด สัมประสิทธิ์ Nที่ลดค่าเบี่ยงเบนสูงสุดจากอุดมคติให้น้อยที่สุด โดยสัญชาตญาณแล้ว วิธีนี้จะค้นหาตัวกรองที่ใกล้เคียงกับการตอบสนองที่ต้องการมากที่สุดเท่าที่จะเป็นไปได้ โดยที่สามารถใช้สัมประสิทธิ์ได้เพียงN ตัวเท่านั้น วิธีนี้ค่อนข้างง่ายในทางปฏิบัติ และอย่างน้อยหนึ่งตำรา[ 5 ]ก็มีโปรแกรมที่รับตัวกรองที่ต้องการและNแล้วส่งคืนสัมประสิทธิ์ที่เหมาะสมที่สุด ข้อเสียเปรียบที่เป็นไปได้ประการหนึ่งของตัวกรองที่ออกแบบด้วยวิธีนี้คือ ตัวกรองเหล่านี้จะมีระลอกคลื่นเล็กๆ จำนวนมากในย่านความถี่ผ่าน เนื่องจากตัวกรองดังกล่าวจะลดข้อผิดพลาดสูงสุดให้น้อยที่สุด
อีกวิธีหนึ่งในการหาตัวกรอง FIR แบบไม่ต่อเนื่องคือการปรับตัวกรองให้เหมาะสมที่สุดตามที่อธิบายไว้ในงานของ Knutsson et al. ซึ่งจะลดค่าอินทิกรัลของกำลังสองของข้อผิดพลาดให้เหลือน้อยที่สุด แทนที่จะเป็นค่าสูงสุด ในรูปแบบพื้นฐาน วิธีการนี้ต้องการฟังก์ชันความถี่ในอุดมคติของตัวกรองระบุร่วมกับฟังก์ชันถ่วงน้ำหนักความถี่และชุดพิกัดในโดเมนสัญญาณซึ่งเป็นที่ตั้งของสัมประสิทธิ์ตัวกรอง
ฟังก์ชันข้อผิดพลาดถูกกำหนดให้เป็น
ที่ไหนคือตัวกรองแบบไม่ต่อเนื่องและคือการแปลงฟูริเยร์แบบเวลาไม่ต่อเนื่องที่กำหนดบนชุดพิกัดที่ระบุ บรรทัดฐานที่ใช้ในที่นี้ ในเชิงรูปแบบ คือบรรทัดฐานปกติบนช่องว่าง หมายความว่าวัดค่าเบี่ยงเบนระหว่างฟังก์ชันความถี่ที่ร้องขอของตัวกรองและฟังก์ชันความถี่จริงของตัวกรองที่สร้างขึ้นอย่างไรก็ตาม ความเบี่ยงเบนนั้นยังขึ้นอยู่กับฟังก์ชันการถ่วงน้ำหนักด้วยก่อนที่จะคำนวณฟังก์ชันข้อผิดพลาด
เมื่อกำหนดฟังก์ชันความคลาดเคลื่อนแล้ว ตัวกรองที่เหมาะสมที่สุดจะถูกกำหนดโดยสัมประสิทธิ์ซึ่งช่วยลดให้น้อยที่สุดสามารถทำได้โดยการแก้ปัญหาการหาค่ากำลังสองน้อยที่สุดที่เกี่ยวข้อง ในทางปฏิบัติค่ามาตรฐานจะต้องได้รับการประมาณโดยใช้ผลรวมที่เหมาะสมเหนือจุดต่างๆ ในโดเมนความถี่ โดยทั่วไปแล้ว จุดเหล่านี้ควรมีจำนวนมากกว่าจำนวนสัมประสิทธิ์ในโดเมนสัญญาณอย่างมาก เพื่อให้ได้ค่าประมาณที่มีประโยชน์
การเพิ่มประสิทธิภาพพร้อมกันในทั้งสองโดเมน
วิธีการก่อนหน้านี้สามารถขยายเพื่อรวมพจน์ความคลาดเคลื่อนเพิ่มเติมที่เกี่ยวข้องกับการตอบสนองแบบอิมพัลส์ของตัวกรองที่ต้องการในโดเมนสัญญาณ พร้อมด้วยฟังก์ชันถ่วงน้ำหนักที่สอดคล้องกัน การตอบสนองแบบอิมพัลส์ในอุดมคติสามารถเลือกได้โดยอิสระจากฟังก์ชันความถี่ในอุดมคติ และในทางปฏิบัติจะใช้เพื่อจำกัดความกว้างที่มีประสิทธิภาพและเพื่อขจัดผลกระทบของการสั่นของตัวกรองที่ได้ในโดเมนสัญญาณ ทำได้โดยการเลือกฟังก์ชันการตอบสนองแบบอิมพัลส์ของตัวกรองในอุดมคติที่แคบ เช่น อิมพัลส์ และฟังก์ชันถ่วงน้ำหนักที่เติบโตอย่างรวดเร็วตามระยะห่างจากจุดกำเนิด เช่น ระยะทางยกกำลังสอง ตัวกรองที่เหมาะสมที่สุดยังคงสามารถคำนวณได้โดยการแก้ปัญหาแบบกำลังสองน้อยที่สุดอย่างง่าย และตัวกรองที่ได้จะเป็น "การประนีประนอม" ซึ่งมีความเหมาะสมที่สุดกับฟังก์ชันในอุดมคติในทั้งสองโดเมน พารามิเตอร์ที่สำคัญคือความแข็งแกร่งสัมพัทธ์ของฟังก์ชันถ่วงน้ำหนักทั้งสอง ซึ่งจะกำหนดว่าในโดเมนใดมีความสำคัญมากกว่าที่จะต้องมีความเหมาะสมที่ดีเมื่อเทียบกับฟังก์ชันในอุดมคติ
ดูเพิ่มเติม
ลิงก์ภายนอก
- บทความเกี่ยวกับการออกแบบตัวกรองและซอฟต์แวร์มากมายที่ Circuit Sage
- รายชื่อซอฟต์แวร์ออกแบบตัวกรองดิจิทัลที่ dspGuru
- การออกแบบตัวกรองอนาล็อกแบบเข้าใจง่าย
- คู่มือการประมวลผลเสียงดิจิทัลของเยฮาร์สำหรับคนสมองทึบ!เอกสารนี้อธิบายทฤษฎีการออกแบบฟิลเตอร์อย่างง่ายๆ (รวมถึงหัวข้ออื่นๆ ด้วย) และให้ตัวอย่างประกอบ