IIR กรองความหมายของอนันต์อย่างไร


11

ฉันมีปัญหาในการทำความเข้าใจว่า "อนันต์" ใน IIR หมายถึงอะไรในทางปฏิบัติ .. ในทางทฤษฎีแล้วการตอบสนองแบบอิมพัลส์นั้นใช้สำหรับข้อเสนอแนะ

คำตอบ:


18

ในการตอบคำถามนั้นคุณต้องรู้ว่า "แรงกระตุ้น" และ "การตอบสนอง" หมายถึงอะไร ...

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

"การตอบสนอง" คือผลลัพธ์ของตัวกรอง (หรืออย่างอื่น) ได้รับแรงกระตุ้น

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

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

ตอนนี้ตัวกรอง FIR (Finite Impulse Response) มี จำกัด เนื่องจากเวลาตอบสนองต่อแรงกระตุ้นถูก จำกัด โดยคณิตศาสตร์ มันเป็นไปไม่ได้ในทางคณิตศาสตร์เป็นครั้งกระตุ้นการตอบสนองการขยายเกินจำนวนก๊อกใน filter-- ที่จึงเป็นที่แน่นอน

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


ขอบคุณสำหรับคำอธิบายที่ดี! ข้อเสนอแนะเกิดขึ้นที่ไหนใน IIR
GorillaApe

2
@Parhs: ข้อเสนอแนะจะเกิดขึ้นเพราะเอาท์พุทปัจจุบันจะได้รับมาจากค่าอินพุต และ เอาต์พุตก่อนหน้านี้ในขณะที่สำหรับตัวกรอง FIR การส่งออกที่ได้รับมาจากค่าอินพุตก่อนหน้าเท่านั้น
Paul R

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

ระบบ IIR มีสถานะภายในที่ 'จดจำ' อินพุตก่อนหน้านี้ตลอดเวลา วิธีที่คุณสร้างแบบจำลองนี้คือการป้อนข้อมูลผลลัพธ์ก่อนหน้ากลับไปยังเอาต์พุตปัจจุบันเช่นรูปแบบโดยตรง 1 biquad หรือลูปข้อเสนอแนะที่ป้อนเข้าเช่นอินพุตแบบบัญญัติ2 รูปแบบนี้โดยตรง
Eryk Sun

11

การตอบสนองต่อแรงกระตุ้นเป็นลายเซ็นของตัวกรอง ในกรณีของตัวกรอง FIR การตอบสนองแบบอิมพัลส์จะให้ภาพโดยตรงของค่าสัมประสิทธิ์ของตัวกรอง แรงกระตุ้นเป็นตัวอย่างเดียวที่มีแอมพลิจูดสูงสุดตัวอย่างทั้งหมดก่อนและหลังเป็นศูนย์ (นี่คือดิจิตอลเทียบเท่าของชีพจร Dirac)
ในช่วงเวลาของชีพจรค่าของมันจะถูกคูณด้วย (ดูแผนภาพด้านล่าง) ตัวอย่างอื่นเป็นศูนย์ดังนั้นผลลัพธ์เท่ากับ (ฉันถือว่าค่าสูงสุดสำหรับพัลส์ 1) หนึ่งตัวอย่างในภายหลังชีพจรได้ย้ายหนึ่งบล็อกและคูณด้วยb_1อีกครั้งค่าอื่น ๆ ทั้งหมดเป็นศูนย์ดังนั้นผลลัพธ์คือ y b 0 z - 1 b 1 b 1 b ib0yb0z1b1b1. และอื่น ๆ ในขณะที่พัลส์เลื่อนผ่านตัวกรองคุณจะได้รับค่าต่อเนื่องสำหรับที่เอาต์พุต หลังจากตัวอย่าง N ชีพจรจะถูกเลื่อนออกจากตัวกรองและผลลัพธ์จะกลายเป็นศูนย์อีกครั้ง สำหรับตัวกรอง IIR ไม่ชัดเจนว่าจะได้ค่าสัมประสิทธิ์ตัวกรองจากการตอบสนองแบบอิมพัลส์ bi

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

ป้อนคำอธิบายรูปภาพที่นี่

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

ป้อนคำอธิบายรูปภาพที่นี่


1
การวนซ้ำที่ไม่ปลอดภัยจะให้ผลลัพธ์ที่ไม่พึงประสงค์ในบางกรณีหรือไม่
GorillaApe

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

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

1
@supercat - ก็เพียงพอแล้วที่จะมีรูปแบบของความคิดเห็นที่จะมีตัวกรอง IIR คุณไม่จำเป็นต้องไปจากเอาต์พุตหรือไปยังอินพุตเนื่องจากและในตัวกรอง biquad แสดง - a 2a1a2
stevenvh

@stevenvh: ดังที่ฉันได้บันทึกไว้ในคำตอบของฉันมีชุดย่อยของตัวกรอง IIR ที่มีประโยชน์ที่สเตจสามารถฟีดกลับคืนสู่ตัวเอง แต่กลับไม่มีสเตจก่อนหน้า ฉันไม่รู้ว่าฉันได้อ่านคำเพื่ออธิบายตัวกรองดังกล่าว แต่พวกเขามีลักษณะที่ง่ายกว่าตัวกรอง IIR ทั่วไป แม้ว่าพวกเขาจะทำได้โดยใช้สัมประสิทธิ์ที่ถูกต้องในรูปแบบข้างต้นมันก็ยากที่จะจำตัวกรองดังกล่าว (มีคำสำหรับพวกเขา?) ในรูปแบบนั้น
supercat

4

มีตัวกรองดิจิทัลสองแบบกว้าง ๆ การตอบสนองแบบไม่ จำกัด โดยนัย (IIR) และการตอบสนองแบบ จำกัด แรงกระตุ้น (FIR) อีกครั้งในวงกว้างตัวกรอง IIR นั้นอิงจากสมการและตัวกรอง FIR ตามตาราง

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

เสาเดี่ยว low pass IIR filter ที่พบได้ทั่วไปสามารถแสดงเป็น:

FILT <- FILT + FF (ใหม่ - ตัวกรอง)

ซึ่งหมายความว่าแต่ละการส่งออกซ้ำถ้าย้ายเศษส่วนคงที่ (FF, "เศษส่วนตัวกรอง") ของระยะทางไปยังอินพุต นี่เป็นภาพที่มองเห็นได้ง่ายเมื่อ FF = 1/2 หากทุกอย่างเป็น 0 และอินพุตไปที่ 1 และอยู่ที่นั่น (ขั้นตอนต่อหน่วย) ผลลัพธ์จะเป็น 1/2, 3/4, 7/8, 15/16 เป็นต้นนี่เป็นอนุกรมที่ไม่มีที่สิ้นสุด ในที่สุดค่าจะใกล้เคียงกับ 1 จนแสดงเป็น 1 เนื่องจากค่าดิจิทัลในคอมพิวเตอร์ไม่มีความแม่นยำไม่สิ้นสุด

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

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


1

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

หากขั้นตอนในตัวกรอง IIR สามารถถูกจัดอันดับและหากขนาดรวมของสัมประสิทธิ์การตอบรับด้วยตนเองสำหรับระยะที่กำหนดนั้นน้อยกว่าหนึ่งขั้นตัวกรอง IIR จะรับประกันว่าจะเสถียร ตัวอย่างเช่นหากสเตจประกอบด้วยสัญญาณจำนวนหนึ่งจากสเตจก่อนหน้าบวกครึ่งหนึ่งของค่าก่อนหน้าของสเตจนั้นและ 1/4 ของค่าก่อนหน้านั้นลบ 1/8 ของค่าก่อนหน้านั้นขนาดทั้งหมดของตัวเอง ข้อเสนอแนะจะอยู่ที่ 7/8 ดังนั้นหากขาดข้อมูลเพิ่มเติมจากขั้นตอนล่างขนาดของการตอบรับจากการป้อนกลับด้วยตนเองจะลดลง 12.5% ​​ทุกการทำซ้ำ


0

FIR ทำคณิตศาสตร์ของมันบนองค์ประกอบจำนวน จำกัด ให้บอกว่า 32 หรือ 12 หรือบางจำนวน แต่นั่นคือสิ่งที่คณิตศาสตร์ทำใช้จำนวน จำกัด ขององค์ประกอบและดำเนินการกรองเฉพาะเหล่านั้น

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


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

นั่นคือสิ่งที่ฉันหมายถึงว่าแต่ละตัวอย่างมีผลกระทบเล็กน้อย แต่น้อยจากตัวอย่างทั้งหมดที่นำหน้ามันสำหรับ IIR
old_timer

องค์ประกอบอนันต์ vs จำนวน จำกัด ขององค์ประกอบในการคำนวณไม่แตกต่างกันระหว่าง IIR และ FIR IIR ที่ง่ายที่สุดใช้งานได้กับ 2 องค์ประกอบของข้อมูลเท่านั้น: 1 จากอินพุต, 1 จากเอาต์พุต
radagast

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