ตัวกรองการตอบสนองแรงกระตุ้นลำดับที่หนึ่ง ฟิลเตอร์ดิจิตอลพร้อมการตอบสนองอิมพัลส์จำกัด ได้รับการตอบสนองต่อแรงกระตุ้น
ทุกอย่างเริ่มต้นเมื่อเพื่อนของเพื่อนของเพื่อนต้องการความช่วยเหลือเกี่ยวกับตัวกรองเดียวกันนี้ ตามแนวทางของเจได ข่าวลือเกี่ยวกับเรื่องนี้มาถึงฉัน ฉันยกเลิกการสมัครรับความคิดเห็นในโพสต์ที่ลิงก์ ดูเหมือนว่าจะช่วยได้ ฉันหวังเช่นนั้น
เรื่องราวนี้ปลุกเร้าความทรงจำเกี่ยวกับเรื่องที่สามหรืออะไรประมาณนั้นในหัวฉัน ตอนที่ฉันรับ DSP และกระตุ้นให้ฉันเขียนบทความสำหรับทุกคนที่สนใจวิธีการทำงานของตัวกรองดิจิทัล แต่โดยธรรมชาติแล้วกลับรู้สึกหวาดกลัวกับตัวกรองดิจิทัล - สุดยอดสูตรและภาพวาดหลอนๆ (ฉันไม่ได้พูดถึงตำราเรียนอยู่แล้ว)
โดยทั่วไปจากประสบการณ์ของฉัน สถานการณ์ในหนังสือเรียนอธิบายได้ด้วยวลีที่รู้จักกันดีว่าบางครั้งคุณไม่สามารถมองเห็นป่าสำหรับต้นไม้ได้ และกล่าวคือ เมื่อพวกเขาเริ่มทำให้คุณกลัวทันทีด้วยการแปลงรูป Z และสูตรสำหรับการหารพหุนาม ซึ่งมักจะยาวกว่าสองกระดาน ความสนใจในหัวข้อนี้ก็จะหมดไปอย่างรวดเร็วมาก เราจะเริ่มต้นด้วยสิ่งง่ายๆ โชคดีที่จะเข้าใจสิ่งที่เกิดขึ้น ไม่จำเป็นต้องอธิบายสำนวนที่ซับซ้อนยาวๆ เลย
ก่อนอื่น แนวคิดพื้นฐานง่ายๆ บางประการ
1. การตอบสนองแบบแรงกระตุ้น
สมมติว่าเรามีกล่องที่มีสี่พิน เราไม่รู้ว่ามีอะไรอยู่ข้างใน แต่เรารู้แน่ว่าอาคารผู้โดยสารด้านซ้ายสองแห่งคือทางเข้า และอีกสองแห่งทางด้านขวาคือทางออก ลองใช้พัลส์สั้นมากที่มีแอมพลิจูดขนาดใหญ่มากกับมันแล้วดูว่าเกิดอะไรขึ้นที่เอาท์พุต ยังไม่ชัดเจนว่ามีอะไรอยู่ในจตุรัสนี้ เพราะไม่รู้จะอธิบายอย่างไร แต่อย่างน้อยเราก็จะได้เห็นอะไรบางอย่าง
ในที่นี้ต้องบอกว่าพัลส์ขนาดสั้น (โดยทั่วไปคือสั้นอนันต์) ที่มีแอมพลิจูดขนาดใหญ่ (โดยทั่วไปคืออนันต์) ในทางทฤษฎีเรียกว่าฟังก์ชันเดลต้า อย่างไรก็ตาม สิ่งที่ตลกก็คืออินทิกรัลของสิ่งนี้ ไม่มีที่สิ้นสุดฟังก์ชั่นมีค่าเท่ากับหนึ่ง นี่คือการทำให้เป็นมาตรฐาน
ดังนั้นสิ่งที่เราเห็นที่เอาต์พุตของเครือข่ายควอดริโพลซึ่งใช้ฟังก์ชันเดลต้ากับอินพุตเรียกว่า การตอบสนองแรงกระตุ้นสี่เหลี่ยมนี้ อย่างไรก็ตาม ในตอนนี้ยังไม่ชัดเจนว่าจะช่วยเราได้อย่างไร แต่ให้เราจำผลลัพธ์ที่ได้รับและไปยังแนวคิดที่น่าสนใจถัดไป
2. การบิดตัว
กล่าวโดยสรุป การบิดเป็นการดำเนินการทางคณิตศาสตร์ที่มาจากการรวมผลคูณของฟังก์ชัน:
อย่างที่คุณเห็นมีเครื่องหมายดอกจันกำกับไว้ นอกจากนี้คุณยังสามารถเห็นได้ว่าในระหว่างการบิด ฟังก์ชันหนึ่งจะเรียงลำดับ "ไปข้างหน้า" และเราจะดำเนินการฟังก์ชันที่สอง "กลับไปด้านหน้า" แน่นอนว่าในกรณีที่ไม่ต่อเนื่องซึ่งมีคุณค่ามากกว่าสำหรับมนุษยชาติ การบิดงอก็เหมือนกับอินทิกรัลอื่น ๆ ที่จะเข้าสู่ผลรวม:
ดูเหมือนเป็นนามธรรมทางคณิตศาสตร์ที่น่าเบื่อ อย่างไรก็ตาม ในความเป็นจริง มัดอาจเป็นปรากฏการณ์ที่มีมนต์ขลังที่สุดในโลกนี้ รองลงมาคือความอัศจรรย์ต่อการเกิดของบุคคล โดยมีความแตกต่างเพียงอย่างเดียวที่คนส่วนใหญ่ค้นพบว่าเด็กมาจากไหนอย่างน้อยก็ตอนอายุสิบแปด ในขณะที่เกี่ยวกับ การบิดเบี้ยวคืออะไร และเหตุใดมันจึงมีประโยชน์และน่าทึ่ง แต่ประชากรส่วนใหญ่ของโลกไม่มีความรู้เลยตลอดชีวิต
ดังนั้นพลังของการดำเนินการนี้อยู่ที่ว่าถ้า f เป็นสัญญาณอินพุตใด ๆ และ g คือการตอบสนองแบบอิมพัลส์ของเครือข่ายสี่พอร์ตผลลัพธ์ของการบิดของฟังก์ชันทั้งสองนี้จะคล้ายกับสิ่งที่เราจะทำ ได้รับโดยการส่งสัญญาณ f ผ่านเครือข่ายสี่พอร์ตนี้
นั่นคือการตอบสนองแบบอิมพัลส์นั้นเป็นคุณสมบัติที่สมบูรณ์ของเครือข่ายสี่เทอร์มินัลที่เกี่ยวข้องกัน อิทธิพลอินพุตและการบิดงอ สัญญาณอินพุตช่วยให้คุณสามารถกู้คืนสัญญาณเอาท์พุตที่เกี่ยวข้องได้
ในความคิดของฉัน นี่มันน่าทึ่งมาก!
3. ตัวกรอง
คุณสามารถทำสิ่งที่น่าสนใจได้มากมายด้วยการตอบสนองแบบกระตุ้นและการบิดตัว ตัวอย่างเช่น หากสัญญาณเป็นเสียง คุณสามารถจัดระเบียบเสียงก้อง เสียงก้อง คอรัส แฟลงเจอร์ และอื่นๆ อีกมากมาย คุณสามารถแยกแยะและบูรณาการ... โดยทั่วไป คุณสามารถสร้างอะไรก็ได้ สำหรับเราตอนนี้ สิ่งที่สำคัญที่สุดคือ แน่นอนว่า ตัวกรองสามารถหาได้อย่างง่ายดายโดยใช้การบิด
ตัวกรองดิจิทัลนั้นเป็นการบิดของสัญญาณอินพุตพร้อมการตอบสนองแบบอิมพัลส์ที่สอดคล้องกับตัวกรองที่ต้องการ แต่แน่นอนว่าต้องได้รับการตอบสนองแบบกระตุ้น แน่นอนว่าเราได้คิดวิธีการวัดค่าข้างต้นแล้ว แต่ในงานดังกล่าวไม่มีเหตุผลในเรื่องนี้ - ถ้าเราประกอบตัวกรองแล้วทำไมต้องวัดอย่างอื่นเราสามารถใช้มันตามที่เป็นอยู่ได้ และอีกอย่างคือคุณค่าที่สำคัญที่สุดตัวกรองดิจิตอล
คืออาจมีลักษณะเฉพาะที่ไม่สามารถบรรลุได้ (หรือบรรลุได้ยาก) ในความเป็นจริง เช่น เฟสเชิงเส้น ตรงนี้ไม่มีวิธีวัดเลย คุณแค่ต้องนับ
เมื่อมาถึงจุดนี้ ในสิ่งพิมพ์ส่วนใหญ่ในหัวข้อนี้ ผู้เขียนเริ่มทิ้งการแปลงรูป Z และเศษส่วนจากพหุนามจำนวนมากลงบนผู้อ่าน ทำให้เขาสับสนอย่างสิ้นเชิง ฉันจะไม่ทำเช่นนี้ ฉันจะอธิบายสั้น ๆ ว่าทั้งหมดนี้เกี่ยวกับอะไร และเหตุใดในทางปฏิบัติจึงไม่จำเป็นสำหรับสาธารณชนที่ก้าวหน้ามากนัก
สมมติว่าเราได้ตัดสินใจว่าเราต้องการอะไรจากตัวกรองและสร้างสมการที่อธิบายตัวกรองนั้น ถัดไป เพื่อค้นหาการตอบสนองแบบอิมพัลส์ คุณสามารถแทนที่ฟังก์ชันเดลต้าลงในสมการที่ได้รับแล้วได้ค่าที่ต้องการ ปัญหาเดียวคือต้องทำอย่างไร เนื่องจากฟังก์ชันเดลต้าตรงเวลา โอภูมิภาคนี้มอบให้โดยระบบอันชาญฉลาด และโดยทั่วไปแล้วจะมีอนันต์ทุกประเภท ดังนั้นในขั้นตอนนี้ทุกอย่างจึงกลายเป็นเรื่องยากลำบากมาก
นี่คือที่ที่พวกเขาจำได้ว่ามีสิ่งที่เรียกว่าการแปลงลาปลาซ โดยตัวมันเองมันไม่ใช่ลูกเกดหนึ่งปอนด์ เหตุผลเดียวที่ยอมรับได้ในวิศวกรรมวิทยุก็คือความจริงที่ว่าในพื้นที่ของการโต้แย้งว่าการเปลี่ยนแปลงนี้เป็นการเปลี่ยนแปลง บางสิ่งจะง่ายขึ้นจริงๆ โดยเฉพาะอย่างยิ่ง ฟังก์ชันเดลต้าแบบเดียวกันที่ทำให้เรามีปัญหาอย่างมากในโดเมนเวลานั้นสามารถแสดงออกมาได้อย่างง่ายดายมาก - มีเพียงฟังก์ชันเดียวเท่านั้น!
การแปลงรูป Z (หรือที่เรียกว่าการแปลงรูป Laurent) เป็นเวอร์ชันหนึ่งของการแปลงรูป Laplace สำหรับระบบแยก
นั่นคือโดยการใช้การแปลงลาปลาซ (หรือการแปลง Z ตามความจำเป็น) กับฟังก์ชันที่อธิบายตัวกรองที่ต้องการ โดยแทนที่ตัวกรองหนึ่งเป็นผลลัพธ์แล้วเปลี่ยนกลับ เราจะได้การตอบสนองแบบอิมพัลส์ ฟังดูง่ายใครๆ ก็ลองดูได้ ฉันจะไม่เสี่ยงเพราะดังที่ได้กล่าวไปแล้ว การแปลงลาปลาซเป็นสิ่งที่รุนแรง โดยเฉพาะอย่างยิ่งในทางกลับกัน ปล่อยให้เป็นทางเลือกสุดท้ายแล้วเราจะมองหาเพิ่มเติม วิธีง่ายๆได้รับสิ่งที่คุณกำลังมองหา มีหลายคน
ประการแรก เราสามารถนึกถึงข้อเท็จจริงที่น่าทึ่งอีกประการหนึ่งของธรรมชาติได้ - คุณลักษณะของแอมพลิจูด-ความถี่และแรงกระตุ้นมีความสัมพันธ์ซึ่งกันและกันโดยการแปลงฟูริเยร์ที่ดีและคุ้นเคย ซึ่งหมายความว่าเราสามารถดึงการตอบสนองความถี่ใดๆ มาใช้กับรสนิยมของเรา นำการแปลงฟูริเยร์ผกผันของมัน (ไม่ว่าจะต่อเนื่องหรือต่อเนื่องกัน) และรับการตอบสนองแบบอิมพัลส์ของระบบที่ใช้มัน นี่มันน่าทึ่งมาก!
อย่างไรก็ตามเรื่องนี้จะไม่มีปัญหา ประการแรก การตอบสนองแบบกระตุ้นที่เราได้รับนั้นน่าจะไม่มีที่สิ้นสุด (ฉันจะไม่อธิบายว่าเหตุใด นั่นคือวิธีการทำงานของโลก) ดังนั้นเราจะต้องตัดสินใจโดยสมัครใจที่จะตัดมันทิ้งไป ณ จุดใดจุดหนึ่ง (การตั้งค่า มันเท่ากับศูนย์เลยจุดนั้น) แต่สิ่งนี้จะไม่เกิดขึ้นเช่นนั้น - ผลที่ตามมาจากสิ่งนี้อย่างที่คาดไว้คือการบิดเบือนการตอบสนองความถี่ของตัวกรองที่คำนวณได้ - มันจะกลายเป็นคลื่นและจุดตัดความถี่จะเบลอ
เพื่อลดผลกระทบเหล่านี้ ฟังก์ชันหน้าต่างการปรับให้เรียบต่างๆ จะถูกนำไปใช้กับการตอบสนองของอิมพัลส์ที่สั้นลง เป็นผลให้การตอบสนองความถี่มักจะเบลอมากยิ่งขึ้น แต่การสั่นที่ไม่พึงประสงค์ (โดยเฉพาะในพาสแบนด์) จะหายไป
จริงๆ แล้ว หลังจากการประมวลผลดังกล่าว เราได้รับการตอบสนองแบบอิมพัลส์ที่ใช้งานได้ และสามารถสร้างตัวกรองดิจิทัลได้
วิธีการคำนวณที่สองนั้นง่ายกว่า - การตอบสนองแบบกระตุ้นของตัวกรองยอดนิยมนั้นแสดงออกมาในรูปแบบการวิเคราะห์มานานแล้วสำหรับเรา สิ่งที่เหลืออยู่คือการทดแทนค่าของคุณและใช้ฟังก์ชันหน้าต่างกับผลลัพธ์ตามที่คุณต้องการ คุณจึงไม่ต้องพิจารณาการแปลงใดๆ ด้วยซ้ำ
และแน่นอนว่า หากเป้าหมายคือการจำลองพฤติกรรมของวงจรใดวงจรหนึ่ง คุณสามารถรับการตอบสนองแบบอิมพัลส์ได้ในเครื่องจำลอง:
ที่นี่ฉันใช้พัลส์ 1,00500 โวลต์ (ใช่ 100.5 kV) ด้วยระยะเวลา 1 μs กับอินพุตของวงจร RC และได้รับการตอบสนองแบบอิมพัลส์ เป็นที่ชัดเจนว่าสิ่งนี้ไม่สามารถทำได้ในความเป็นจริง แต่ในเครื่องจำลองวิธีนี้อย่างที่คุณเห็นว่าใช้งานได้ดี
5. หมายเหตุ
ข้างต้นเกี่ยวกับการทำให้สั้นลง การตอบสนองแรงกระตุ้นแน่นอนว่าเป็นของคนที่เรียกว่า ตัวกรองการตอบสนองแรงกระตุ้นจำกัด (ตัวกรอง FIR/FIR) พวกมันมีคุณสมบัติที่มีคุณค่ามากมาย รวมถึงเฟสเชิงเส้น (ภายใต้เงื่อนไขบางประการสำหรับการสร้างการตอบสนองแบบอิมพัลส์) ซึ่งช่วยให้มั่นใจว่าไม่มีการบิดเบือนสัญญาณในระหว่างการกรอง รวมถึงความเสถียรที่สมบูรณ์ นอกจากนี้ยังมีตัวกรองการตอบสนองแบบอิมพัลส์ที่ไม่มีที่สิ้นสุด (ตัวกรอง IIR/IIR) มีการใช้ทรัพยากรน้อยกว่าในแง่ของการคำนวณ แต่ไม่มีข้อได้เปรียบที่ระบุไว้อีกต่อไป
ในบทความถัดไป ฉันหวังว่าจะได้ดูตัวอย่างง่ายๆ ของการใช้งานตัวกรองดิจิทัลในทางปฏิบัติ
ฟิลเตอร์ดิจิตอล 48 ตัวพร้อมการตอบสนองอิมพัลส์จำกัด การคำนวณตัวกรอง kih
ตัวกรองการตอบสนองแรงกระตุ้นจำกัด (ตัวกรองแบบไม่เรียกซ้ำ, ตัวกรองเฟอร์) หรือตัวกรอง FIR (FIR ย่อมาจาก การตอบสนองแรงกระตุ้นอัน จำกัด - การตอบสนองแรงกระตุ้นอัน จำกัด ) - หนึ่งในประเภทของตัวกรองดิจิทัลเชิงเส้นซึ่งเป็นคุณลักษณะเฉพาะซึ่งเป็นการ จำกัด เวลาของการตอบสนองแรงกระตุ้น (จากจุดใดจุดหนึ่งมันจะเท่ากับทุกประการ ศูนย์). ตัวกรองดังกล่าวเรียกอีกอย่างว่าไม่เรียกซ้ำเนื่องจากขาดคำติชม ตัวหารของฟังก์ชันการถ่ายโอนของตัวกรองดังกล่าวคือค่าคงที่ที่แน่นอน
สมการผลต่างที่อธิบายความสัมพันธ์ระหว่างสัญญาณอินพุตและเอาต์พุตของตัวกรอง: โดยที่ ป- ลำดับการกรอง x(n) - สัญญาณอินพุต ย(n) คือสัญญาณเอาท์พุต และ ข ฉัน- ค่าสัมประสิทธิ์การกรอง กล่าวอีกนัยหนึ่ง ค่าของตัวอย่างสัญญาณเอาท์พุตใดๆ จะถูกกำหนดโดยผลรวมของค่าที่ปรับขนาดได้ ปการอ่านครั้งก่อน คุณสามารถพูดได้แตกต่างออกไป: ค่าของเอาต์พุตตัวกรอง ณ เวลาใดก็ได้คือค่าของการตอบสนองต่อค่าทันทีของอินพุตและผลรวมของการตอบสนองที่ค่อยๆ ลดลงทั้งหมด ปตัวอย่างสัญญาณก่อนหน้าที่ยังคงส่งผลต่อเอาท์พุต (หลัง ป-นับ ฟังก์ชั่นการเปลี่ยนพัลส์จะเท่ากับศูนย์ดังที่ได้กล่าวไปแล้ว ดังนั้นเงื่อนไขทั้งหมดหลังจากนั้น ป-th ก็จะเท่ากับศูนย์ด้วย) มาเขียนสมการก่อนหน้าในรูปแบบที่มีความจุมากขึ้น:
เพื่อค้นหาเคอร์เนลตัวกรองที่เราใส่
x(n) = δ( n)
โดยที่ δ( n) - ฟังก์ชันเดลต้า จากนั้นการตอบสนองแบบอิมพัลส์ของตัวกรอง FIR สามารถเขียนได้เป็น:
การแปลงรูป Z ของการตอบสนองแบบอิมพัลส์ทำให้เรามีฟังก์ชันการถ่ายโอนของตัวกรอง FIR:
]คุณสมบัติ
ตัวกรอง FIR มีคุณสมบัติที่เป็นประโยชน์หลายประการ ซึ่งทำให้บางครั้งควรใช้ตัวกรองมากกว่าตัวกรอง IIR นี่คือบางส่วนของพวกเขา:
ตัวกรอง FIR มีความทนทาน
ตัวกรอง FIR ไม่ต้องการผลตอบรับเมื่อนำไปใช้งาน
เฟสของตัวกรอง FIR สามารถทำให้เป็นเส้นตรงได้
รูปแบบตรงของตัวกรอง FIR
ตัวกรอง FIR สามารถนำมาใช้ได้โดยใช้องค์ประกอบสามประการ ได้แก่ ตัวคูณ ตัวบวก และบล็อกการหน่วงเวลา ตัวเลือกที่แสดงในรูปคือการใช้งานตัวกรอง FIR ประเภท 1 โดยตรง
การใช้รูปแบบโดยตรงของตัวกรอง FIR
ตัวอย่างโปรแกรม
ด้านล่างนี้เป็นตัวอย่างโปรแกรมกรอง FIR ที่เขียนด้วยภาษา C:
/* ฟิลเตอร์ FIR 128 ก๊อก */
float fir_filter (อินพุตลอย)
ตัวอย่างลอยคงที่
ตามมาตรฐาน = 0.0f; /* แบตเตอรี่ */
/* คูณและสะสม */
สำหรับ (i = 0; i< 128; i++) {
ตามมาตรฐาน += (h[i] * ตัวอย่าง[i]);
/* ออก */
/* เลื่อนสัญญาณดีเลย์ */
สำหรับ (i = 127; i > 0; i--)
ตัวอย่าง[i] = ตัวอย่าง;
49 การปรับข้อมูลให้เรียบ ค่าเฉลี่ยเคลื่อนที่
50 การปรับข้อมูลให้เรียบ การปรับให้เรียบแบบพาราโบลา
51 การปรับข้อมูลให้เรียบ สเปนเซอร์ ปรับให้เรียบ
52 การปรับข้อมูลให้เรียบ การกรองค่ามัธยฐาน
ค่าเฉลี่ยเคลื่อนที่, การปรับให้เรียบแบบพาราโบลา, การปรับให้เรียบของสเปนเซอร์, การกรองค่ามัธยฐาน
เมื่อพัฒนาวิธีการกำหนดพารามิเตอร์ของกระบวนการทางกายภาพที่เปลี่ยนแปลงอย่างช้าๆ เมื่อเวลาผ่านไป งานสำคัญคือการขจัดอิทธิพลของเสียงรบกวนหรือการรบกวนแบบสุ่มที่ซ้อนทับบนสัญญาณประมวลผลที่ได้รับที่เอาต์พุตของตัวแปลงหลัก
หากต้องการกำจัดผลกระทบนี้ คุณสามารถใช้การปรับข้อมูลให้เรียบได้ วิธีที่ง่ายที่สุดวิธีหนึ่งในการปรับให้เรียบคือการหาค่าเฉลี่ยเลขคณิต เมื่อใช้งาน แต่ละค่าของฟังก์ชันแยก (อาร์เรย์ข้อมูลที่ประมวลผล) จะถูกคำนวณตามนิพจน์:
โดยที่จำนวนคะแนนสำหรับการหาค่าเฉลี่ยเลขคณิต (จำนวนเต็มคี่)
ค่าของฟังก์ชันก่อนการประมวลผล
มีวิธีการอื่น ๆ ที่ค่อนข้างมีประสิทธิภาพในการปรับให้เรียบ ตัวอย่างเช่น ด้วยพาราโบลาของระดับที่สองที่ห้า, เจ็ด, เก้าและสิบเอ็ดจุดตามนิพจน์:
หรือพาราโบลาระดับที่สี่ที่เจ็ด เก้า สิบเอ็ด และสิบสามจุด:
ในการใช้งานจริง วิธีการที่มีประสิทธิภาพอื่นๆ เช่น การปรับให้เรียบ Spencer 15 แต้ม ให้ผลลัพธ์ที่ดี:
โดยการแทนที่เลขชี้กำลังเชิงซ้อน ซึ่งในนิพจน์เหล่านี้ เราสามารถกำหนดฟังก์ชันถ่ายโอนของการแปลงที่สอดคล้องกันได้
สำหรับการหาค่าเฉลี่ยเลขคณิต
นิพจน์ในวงเล็บแสดงถึงความก้าวหน้าทางเรขาคณิตที่มีตัวส่วน ดังนั้นนิพจน์นี้สามารถแสดงได้เป็น:
.
สูตรนี้แสดงถึงคุณลักษณะการถ่ายโอนของตัวกรองความถี่ต่ำผ่าน และแสดงให้เห็นว่า ยิ่งมีเงื่อนไขที่เกี่ยวข้องกับการหาค่าเฉลี่ยมากเท่าใด การปราบปรามส่วนประกอบสัญญาณรบกวนความถี่สูงในสัญญาณก็จะยิ่งมากขึ้นเท่านั้น (ดูรูปที่ 6.1)
อย่างไรก็ตาม แนวคิดเชิงความหมายของความถี่ในการประมวลผลแนวโน้มเวลาแตกต่างจากแนวคิดที่คล้ายกันในการประมวลผลสัญญาณ สิ่งนี้อธิบายได้จากข้อเท็จจริงที่ว่าเมื่อศึกษาแนวโน้มของเวลา ไม่ใช่องค์ประกอบความถี่ที่น่าสนใจ แต่เป็นประเภทของการเปลี่ยนแปลง (เพิ่มขึ้น ลดลง ความคงที่ วงจร ฯลฯ )
การใช้สิ่งที่เรียกว่าอัลกอริธึมฮิวริสติกยังค่อนข้างมีประสิทธิภาพในการปรับข้อมูลให้เรียบ
หนึ่งในนั้นคือการกรองค่ามัธยฐาน ในระหว่างการนำไปใช้ในหน้าต่างเวลาเลื่อนของมิติ โดยที่จำนวนเต็มเป็นเลขคี่ องค์ประกอบกลางจะถูกแทนที่ด้วยองค์ประกอบตรงกลางของลำดับ ซึ่งเรียงลำดับจากน้อยไปมากของค่า องค์ประกอบของอาร์เรย์ข้อมูลของการเรียบ สัญญาณตกภายในกรอบเวลา ข้อดีของการกรองค่ามัธยฐานคือความสามารถในการกำจัดสัญญาณรบกวนแบบอิมพัลส์ ซึ่งมีระยะเวลาไม่เกิน โดยแทบไม่มีการบิดเบือนของสัญญาณที่เปลี่ยนแปลงอย่างราบรื่น วิธีการลดเสียงรบกวนนี้ไม่มีเหตุผลทางคณิตศาสตร์ที่เข้มงวด แต่ความเรียบง่ายของการคำนวณและประสิทธิผลของผลลัพธ์ที่ได้ได้นำไปสู่การใช้อย่างแพร่หลาย
รูปที่ 6.1 - กราฟคุณลักษณะการถ่ายโอน
การดำเนินการหาค่าเฉลี่ยเลขคณิตสำหรับ m=5, 7, 9, 11
อัลกอริธึมการปรับให้เรียบที่น่าสนใจอีกประการหนึ่งคือค่ามัธยฐานเฉลี่ย สาระสำคัญของมันมีดังนี้ ในหน้าต่างเวลาเลื่อนของมิติ (-จำนวนเต็มคี่) องค์ประกอบของอาร์เรย์ข้อมูลจะถูกเรียงลำดับจากน้อยไปมาก จากนั้นองค์ประกอบแรกและสุดท้ายจะถูกลบออกจากลำดับการสั่งซื้อ (<). Центральный элемент временного окна из последовательности сглаживаемых данных заменяется значением, вычисляемым как
วิธีนี้ช่วยให้คุณระงับการรบกวนของพัลส์และความถี่วิทยุ รวมถึงทำให้สัญญาณมีความราบรื่นดี
" |
มหาวิทยาลัยเทคนิคแห่งรัฐโนโวซีบีร์สค์
คณะอัตโนมัติและวิศวกรรมคอมพิวเตอร์
กรมระบบรวบรวมและประมวลผลข้อมูล
วินัย "ทฤษฎีและการประมวลผลสัญญาณ"
งานห้องปฏิบัติการเลขที่10
ฟิลเตอร์ดิจิตอล
ด้วยลักษณะเฉพาะของแรงกระตุ้นอันจำกัด
กลุ่ม:เอที-33
ตัวเลือก: 1 ครู:
นักเรียน: Shadrina A.V. รศ. Shchetinin Yu.I.
วัตถุประสงค์ของงาน: การศึกษาวิธีการวิเคราะห์และการสังเคราะห์ตัวกรองการตอบสนองแบบไฟไนต์อิมพัลส์โดยใช้ฟังก์ชันหน้าต่างการปรับให้เรียบ
การทำงานให้สำเร็จ:
1. แผนการตอบสนองแบบอิมพัลส์ของตัวกรอง FIR แบบ low-pass พร้อมความถี่ตัดหน้าต่างสี่เหลี่ยมสำหรับค่าความยาวตัวกรองและ
การตอบสนองแบบแรงกระตุ้นของตัวกรอง FIR แบบแยกส่วนในอุดมคติมีความยาวไม่สิ้นสุดและไม่เป็นศูนย์สำหรับค่าลบของ :
.
เพื่อให้ได้ตัวกรองที่เป็นไปได้ทางกายภาพ ควรจำกัดการตอบสนองแบบอิมพัลส์ให้เป็นจำนวนจำกัด จากนั้นจึงเลื่อนการตอบสนองแบบตัดทอนไปทางขวาตามจำนวน
ค่าคือความยาว (ขนาด) ของตัวกรอง – ลำดับการกรอง
สคริปต์ Matlab (labrab101.m)
N = input("ป้อนความยาวตัวกรอง N = ");
h = บาป(wc.*(n-(N-1)/2))./(pi.*(n-(N-1)/2));
xlabel("หมายเลขอ้างอิง, n")
>> โครงเรื่องย่อย (2,1,1)
>> ลาบราบ101
ป้อนความยาวตัวกรอง N = 15
>> title("การตอบสนองแบบอิมพัลส์ของตัวกรอง FIR สำหรับ N=15")
>> โครงเรื่องย่อย (2,1,2)
>> ลาบราบ101
ป้อนความยาวตัวกรอง N = 50
>> title("การตอบสนองแบบอิมพัลส์ของตัวกรอง FIR สำหรับ N=50")
รูปที่ 1. แผนการตอบสนองแบบอิมพัลส์ของตัวกรอง FIR แบบ low-pass พร้อมความถี่ตัดหน้าต่างสี่เหลี่ยมสำหรับค่าความยาวตัวกรองและ
ความคิดเห็น:หากเราพิจารณาการตอบสนองความถี่ของตัวกรองดิจิทัลเป็นอนุกรมฟูเรียร์: จากนั้นค่าสัมประสิทธิ์ของซีรีย์นี้จะแสดงค่าของการตอบสนองแบบอิมพัลส์ของตัวกรอง ในกรณีนี้ อนุกรมฟูริเยร์ถูกตัดทอนในกรณีแรกเป็น และในกรณีที่สอง - ถึง จากนั้นคุณลักษณะที่ถูกตัดทอนจะถูกเลื่อนไปตามแกนตัวอย่างไปทางขวาเพื่อให้ได้ตัวกรองเชิงสาเหตุ เมื่อความกว้างของกลีบหลักคือ 2 และเมื่อ - 1 นั่นคือ เมื่อความยาวของตัวกรองเพิ่มขึ้น กลีบหลักของการตอบสนองแบบอิมพัลส์จะแคบลง หากเราพิจารณาระดับของกลีบด้านข้าง (โดยใช้ ) เมื่อเพิ่มขึ้นก็จะเพิ่มค่าสัมบูรณ์จาก เป็น . ดังนั้น เราสามารถสรุปได้ว่าเมื่อใช้การประมาณการตอบสนองความถี่ในอุดมคติของตัวกรองที่มีหน้าต่างสี่เหลี่ยม มันเป็นไปไม่ได้ที่จะจำกัดกลีบหลักให้แคบลงพร้อมกัน (และลดขอบเขตการเปลี่ยนแปลง) และลดระดับของกลีบด้านข้าง (ลด ระลอกคลื่นใน passband และ stopband ของตัวกรอง) พารามิเตอร์ที่ควบคุมได้เพียงอย่างเดียวของหน้าต่างสี่เหลี่ยมคือขนาดของมัน ซึ่งสามารถใช้เพื่อกำหนดความกว้างของกลีบหลักได้ อย่างไรก็ตาม มันไม่ได้มีผลกระทบต่อกลีบด้านข้างมากนัก
2. การคำนวณ DVFT ของคุณลักษณะอิมพัลส์จากขั้นตอนที่ 1 โดยใช้ฟังก์ชัน กราฟการตอบสนองความถี่ในระดับเชิงเส้นและเป็นเดซิเบลสำหรับ 512 ตัวอย่างความถี่ Passband, แถบเปลี่ยนผ่าน และแถบหยุดของตัวกรอง อิทธิพลของลำดับตัวกรองต่อความกว้างของแถบการเปลี่ยนผ่านและระดับของการกระเพื่อมการตอบสนองความถี่ในแถบผ่านและหยุด
ฟังก์ชัน Matlab (DTFT.m)
ฟังก์ชัน = DTFT(x,M)
N = สูงสุด(M, ความยาว(x));
% ลด FFT เหลือขนาด 2^m
N = 2^(ceil(บันทึก(N)/log(2)));
% คำนวณ fft
% เวกเตอร์ความถี่
w = 2*pi*((0:(N-1))/N);
w = w - 2*pi*(w>=pi);
% Shift FFT เป็นช่วงจาก -pi ถึง +pi
X = fftshift(X);
w = fftshift(w);
สคริปต์ Matlab (labrab102.m)
h1 = บาป(wc.*(n1-(N1-1)/2))./(pi.*(n1-(N1-1)/2));
h2 = บาป(wc.*(n2-(N2-1)/2))./(pi.*(n2-(N2-1)/2));
DTFT(h1,512);
DTFT(h2,512);
พล็อต(w./(2*pi),abs(H1)./max(abs(H1)),,"r")
xlabel("f, Hz"), ylabel("|H1|/max(|H1|)"), ตาราง
พล็อต(w./(2*pi),abs(H2)./max(abs(H2)),"b")
xlabel("f, Hz"), ylabel("|H2|/max(|H2|)"), ตาราง
พล็อต(w./(2*pi),20*log10(abs(H1)),,"r")
title("การตอบสนองความถี่ของตัวกรอง FIR แบบ low-pass พร้อมหน้าต่างสี่เหลี่ยมสำหรับ N = 15")
xlabel("f, Hz"), ylabel("20lg(|H1|), dB"), ตาราง
พล็อต(w./(2*pi),20*log10(abs(H2)),"b")
title("การตอบสนองความถี่ของตัวกรอง FIR แบบ low-pass พร้อมหน้าต่างสี่เหลี่ยมสำหรับ N = 50")
xlabel("f, Hz"), ylabel("20lg(|H2|), dB"), ตาราง
รูปที่ 2. แผนการตอบสนองความถี่ของตัวกรอง FIR แบบ low-pass พร้อมความถี่ตัดหน้าต่างสี่เหลี่ยมสำหรับค่าความยาวตัวกรองและในระดับเชิงเส้น
รูปที่ 3 แผนการตอบสนองความถี่ของตัวกรอง FIR แบบ low-pass พร้อมความถี่ตัดหน้าต่างสี่เหลี่ยมสำหรับค่าความยาวตัวกรองและในระดับลอการิทึม
ความคิดเห็น:
ตารางที่ 1. ช่วงของพาสแบนด์ ขอบเขตการเปลี่ยน และแถบหยุดสำหรับความยาวตัวกรองและ
ความยาวตัวกรอง |
แบนด์วิดท์, เฮิรตซ์ |
ภูมิภาคการเปลี่ยนผ่าน, Hz |
แถบหยุด, Hz |
|