Friday 18 August 2017

บท 15 เฉลี่ยเคลื่อนที่ กรอง


การย้ายตัวกรองเฉลี่ย 1 CHAPTER 15 การย้ายตัวกรองเฉลี่ยค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองที่พบได้บ่อยที่สุดใน DSP ส่วนใหญ่เนื่องจากเป็นตัวกรองดิจิตอลที่ง่ายที่สุดในการทำความเข้าใจและใช้งาน แม้จะมีความเรียบง่ายก็ตามตัวกรองค่าเฉลี่ยเคลื่อนที่จะเหมาะสำหรับงานทั่วไป: ลดเสียงรบกวนสุ่มในขณะที่ยังรักษาระดับการตอบสนองที่คมชัด นี่เป็นตัวกรองชั้นนำสำหรับสัญญาณเข้ารหัสโดเมนเวลา อย่างไรก็ตามค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองที่เลวร้ายที่สุดสำหรับสัญญาณที่เข้ารหัสด้วยความถี่ในโดเมนซึ่งมีความสามารถเพียงเล็กน้อยในการแยกย่านความถี่หนึ่งจากอีกแถบหนึ่ง ญาติของตัวกรองเฉลี่ยเคลื่อนที่ ได้แก่ Gaussian, Blackman และ multipappedass moving average ประสิทธิภาพเหล่านี้มีประสิทธิภาพดีขึ้นเล็กน้อยในโดเมนความถี่ซึ่งมีค่าใช้จ่ายในการคำนวณเวลาที่เพิ่มขึ้น การดำเนินการตามการชักนำ (Convolution) ตัวกรองค่าเฉลี่ยเคลื่อนที่จะทำงานโดยเฉลี่ยจำนวนจุดจากสัญญาณอินพุทเพื่อให้แต่ละจุดในสัญญาณเอาท์พุท ในรูปแบบสมการนี้จะถูกเขียน: EQUATION 15-1 สมการของตัวกรองเฉลี่ยเคลื่อนที่ ในสมการนี้ x คือสัญญาณอินพุท y คือสัญญาณเอาท์พุทและ M คือจำนวนจุดที่ใช้ในค่าเฉลี่ยเคลื่อนที่ สมการนี้ใช้เฉพาะจุดที่ด้านใดด้านหนึ่งของผลลัพธ์ที่ได้จากการคำนวณ yi 1 M Mamp1 j j x ij สัญญาณอินพุทคือสัญญาณเอาต์พุตและ M คือจำนวน x y ของค่าเฉลี่ย ตัวอย่างเช่นในตัวกรองเฉลี่ย 5 จุดจุด 8 ในสัญญาณเอาท์พุทจะได้จาก: y 8 x 8 x 81 x 82 x 83 x 84 5 277 2 278 นักวิทยาศาสตร์และวิศวกรผู้ให้คำแนะนำในการประมวลผลสัญญาณดิจิทัลเป็นทางเลือกหนึ่ง, กลุ่มของจุดจากสัญญาณเข้าสามารถเลือก symmetrically รอบจุด output: y8 x78 x79 x8 x81 x82 5 นี้สอดคล้องกับการเปลี่ยนยอดใน Eq จาก: j ไป Mamp1 เพื่อ: jamp (mamp1) 2 ถึง (Mamp1) 2 . ยกตัวอย่างเช่นในตัวกรองเฉลี่ย 11 จุดดัชนี j จะวิ่งจาก 11 (เฉลี่ยด้านหนึ่ง) หรือ -5 ถึง 5 (ค่าเฉลี่ยสมมาตร) สมมุติฐานเฉลี่ยสมมาตรต้องการให้ M เป็นเลขคี่ การเขียนโปรแกรมทำได้ง่ายกว่าเล็กน้อยเมื่อใช้จุดบนด้านเดียว แต่จะทำให้เกิดการเปลี่ยนระหว่างสัญญาณอินพุตและเอาต์พุต คุณควรตระหนักว่าตัวกรองค่าเฉลี่ยเคลื่อนที่เป็น convolution โดยใช้เคอร์เนลกรองที่ง่ายมาก ตัวอย่างเช่นตัวกรอง 5 จุดมีเคอร์เนลตัวกรอง: thorn 15, 15, 15, 15, 15 หนาม นั่นคือตัวกรองค่าเฉลี่ยเคลื่อนที่เป็นสัญญาณของสัญญาณอินพุตที่มีรูปสี่เหลี่ยมผืนผ้ามีพื้นที่หนึ่ง ตารางที่ 15-1 แสดงโปรแกรมที่จะใช้ตัวกรองค่าเฉลี่ยเคลื่อนที่ 1 โปรแกรมกรองภาพเคลื่อนไหว 11 โปรแกรมนี้กรอง 5 ตัวอย่างที่มีตัวกรองความถี่ 11 ตัวย้าย 12 รอบซึ่งส่งผลให้มีการกรองข้อมูล 49 ตัวอย่าง 13 14 DIM X4999 X ถือคาสัญญาณเขา 15 DIM Y4999 Y เก็บสั - า ณ เอาตพุต 16 17 GOSUB XXXX ซับรูทีนที่เปนเทอมเพื่อโหลด X 18 19 FOR I 5 ถึง 4949 ลูปสําหรับแตละจุดในสัญญาณขาออก 2 YI Zero ดังนั้นจึงสามารถใชงาน เป็นตัวสะสม 21 FOR J -5 TO 5 คำนวณยอดรวม 22 YI YI X (IJ 23 NEXT J 24 YI YI11 ให้ค่าเฉลี่ยโดยการหาร 25 NEXT I 26 27 END ตาราง 15-1 การลดเสียงรบกวนและการตอบสนองขั้นตอน รู้สึกผิดเกี่ยวกับการใช้ตัวกรองค่าเฉลี่ยเคลื่อนที่เพราะมันง่ายมากที่ตัวกรองค่าเฉลี่ยเคลื่อนที่มักเป็นสิ่งแรกที่ได้รับเมื่อต้องเผชิญกับปัญหาแม้ว่าปัญหาจะได้รับการแก้ไขอย่างสมบูรณ์ แต่ก็ยังมีความรู้สึกว่า ทำสถานการณ์นี้เป็นจริงแดกดันไม่เพียง แต่กรองเฉลี่ยเคลื่อนที่ดีมากสำหรับการใช้งานมากเป็นที่เหมาะสมสำหรับปัญหาทั่วไปลดเสียงรบกวนสีขาวแบบสุ่มในขณะที่การรักษาขั้นตอนการตอบสนองคมชัด 3 บทที่ 15 - ย้ายตัวกรองเฉลี่ย a. Original สัญญาณ 2 ข. 11 POI nt moving average ความแปรปรวนรูปที่ 15-1 ตัวอยางของแผนกรองเฉลี่ยเคลื่อนที่ ใน (a) ชีพจรรูปสี่เหลี่ยมถูกฝังอยู่ในเสียงสุ่ม ใน (b) และ (c) สัญญาณนี้จะถูกกรองด้วยตัวกรองค่าเฉลี่ยเคลื่อนที่ 11 และ 51 จุดตามลำดับ เนื่องจากจำนวนจุดในฟิลเตอร์จะเพิ่มขึ้นเสียงจะลดลง แต่ขอบจะมีความคมน้อยลง ตัวกรองค่าเฉลี่ยเคลื่อนที่เป็นทางออกที่ดีที่สุดสำหรับปัญหานี้โดยให้เสียงต่ำที่สุดสำหรับความคมชัดของขอบที่กำหนด Amplitude Amplitude c. ค่าเฉลี่ยเคลื่อนที่ 51 จุดภาพที่ 15-1 แสดงตัวอย่างของวิธีการทำงาน สัญญาณใน (a) เป็นชีพจรฝังอยู่ในเสียงสุ่ม ใน (b) และ (c) การปรับให้เรียบของตัวกรองค่าเฉลี่ยเคลื่อนที่ช่วยลดความกว้างของเสียงสุ่ม (ดี) แต่ยังลดความคมชัดของขอบ (ไม่ดี) ตัวกรองเชิงเส้นทั้งหมดที่เป็นไปได้ที่สามารถใช้ค่าเฉลี่ยเคลื่อนที่จะสร้างเสียงต่ำสุดสำหรับความคมชัดของขอบที่กำหนด จำนวนการลดเสียงรบกวนเท่ากับรากที่สองของจำนวนจุดเฉลี่ย ตัวอย่างเช่นตัวกรองค่าเฉลี่ยเคลื่อนที่ 1 จุดช่วยลดเสียงรบกวนลงได้ถึง 1 จุดเพื่อให้เข้าใจว่าทำไมค่าเฉลี่ยเคลื่อนที่ถ้าเป็นทางออกที่ดีที่สุดให้ลองจินตนาการว่าเราต้องการออกแบบตัวกรองที่มีความคมชัดของขอบคงที่ ตัวอย่างเช่นสมมติว่าเรากำหนดความคมชัดของขอบด้วยการระบุว่ามีการเพิ่มขึ้นของการตอบสนองขั้นตอนสิบเอ็ดจุด นี่ต้องการให้เคอร์เนลของตัวกรองมีจุดที่สิบเอ็ด คำถามการเพิ่มประสิทธิภาพคือเราจะเลือกค่าสิบเอ็ดในเคอร์เนลตัวกรองเพื่อลดสัญญาณรบกวนในสัญญาณเอาต์พุตเนื่องจากสัญญาณรบกวนที่เรากำลังพยายามลดเป็นแบบสุ่มไม่มีจุดอินพุทใดที่พิเศษมากพอ ๆ กับเสียงดังของเพื่อนบ้าน . ดังนั้นจึงไม่มีประโยชน์ที่จะให้การรักษาพิเศษกับจุดเข้าใด ๆ โดยการกำหนดค่าสัมประสิทธิ์ใหญ่ในเคอร์เนลตัวกรอง เสียงต่ำสุดจะได้รับเมื่อตัวอย่างอินพุททั้งหมดได้รับการปฏิบัติอย่างเท่าเทียมกันนั่นคือตัวกรองค่าเฉลี่ยเคลื่อนที่ (ต่อมาในบทนี้เราแสดงให้เห็นว่าตัวกรองอื่น ๆ เป็นหลักเป็นสิ่งที่ดีจุดคือไม่มีตัวกรองจะดีกว่าค่าเฉลี่ยเคลื่อนที่ที่เรียบง่าย) 4 28 นักวิทยาศาสตร์และวิศวกรคู่มือการประมวลผลสัญญาณดิจิตอลการตอบสนองต่อความถี่รูปภาพ 15-2 แสดงการตอบสนองความถี่ของตัวกรองค่าเฉลี่ยเคลื่อนที่ มันเป็นคำอธิบายทางคณิตศาสตร์โดยการแปลงฟูริเยร์ของชีพจรสี่เหลี่ยมดังที่กล่าวไว้ในบทที่ 11: การคำนวณ 15-2 การตอบสนองความถี่ของตัวกรองค่าเฉลี่ย M point moving ความถี่ f ทำงานระหว่างและ. สำหรับ f ให้ใช้: H f 1 H f sin (bf M) M sin (bf) การม้วนออกช้ามากและการลดทอนของ Stopband เป็นเรื่องน่ากลัว เห็นได้ชัดว่าตัวกรองค่าเฉลี่ยเคลื่อนที่ไม่สามารถแยกย่านความถี่หนึ่งจากอีกแถบหนึ่งได้ โปรดจำไว้ว่าประสิทธิภาพที่ดีในโดเมนเวลาทำให้ประสิทธิภาพในโดเมนความถี่ต่ำและในทางกลับกัน ในระยะสั้นค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองความราบเรียบที่ดีเยี่ยม (การทำงานในโดเมนเวลา) แต่เป็นตัวกรองความถี่ต่ำที่ไม่ดี (การกระทำในโดเมนความถี่) 1.2 รูปที่ 15-2 การตอบสนองความถี่ของตัวกรองค่าเฉลี่ยเคลื่อนที่ ค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองความถี่ต่ำที่ต่ำมากเนื่องจากการลดทอนความเบาบางและการหยุดชะงักของ stopband ที่ช้า เส้นโค้งเหล่านี้ถูกสร้างขึ้นโดย Eq Amplitude จุด 31 จุด 3 จุดความถี่ญาติของตัวกรองเฉลี่ยเคลื่อนที่ในโลกที่สมบูรณ์แบบนักออกแบบตัวกรองจะต้องจัดการกับโดเมนเวลาหรือโดเมนข้อมูลที่เข้ารหัสเท่านั้น แต่ไม่เคยมีส่วนผสมของทั้งสองในแบบเดียวกัน สัญญาณ. แต่น่าเสียดายที่มีบางโปรแกรมที่ทั้งสองโดเมนมีความสำคัญในเวลาเดียวกัน ตัวอย่างเช่นสัญญาณโทรทัศน์ตกอยู่ในประเภทที่น่ารังเกียจนี้ ข้อมูลวิดีโอถูกเข้ารหัสในโดเมนเวลานั่นคือรูปร่างของรูปคลื่นตรงกับรูปแบบของความสว่างในภาพ อย่างไรก็ตามในระหว่างการส่งสัญญาณสัญญาณภาพจะได้รับการปฏิบัติตามองค์ประกอบความถี่เช่นแบนด์วิธรวมถึงการเพิ่มคลื่นผู้ให้บริการสำหรับการเพิ่มสีแอมป์แอมป์การกู้คืนแอมป์ของส่วนประกอบ DC ฯลฯ ตัวอย่างเช่นสัญญาณรบกวนจากคลื่นแม่เหล็กไฟฟ้าจะดีที่สุด เข้าใจในโดเมนความถี่แม้ว่า 5 บทที่ 15- ตัวกรองค่าเฉลี่ยเคลื่อนที่ 281 Amplitude Amplitude.2.1 a. กรอง kernel 2 pass 1 pass 4 pass ข. การตอบสนองขั้นตอนที่ 1 pass 2 pass 4 pass ความถี่ FFT รวม 2 Log () d. การตอบสนองต่อความถี่ (db) 2 pass 4 pass 1 pass Frequency รูปที่ 15-3 ลักษณะเฉพาะของตัวกรองค่าเฉลี่ยเคลื่อนที่แบบ multiple-pass รูปที่ (a) แสดงไส้กรองที่เป็นผลจากการผ่านตัวกรองเฉลี่ย 7 จุดผ่านข้อมูลหนึ่งครั้งสองถึงสี่ครั้ง (b) แสดงการตอบสนองขั้นตอนที่สอดคล้องกันในขณะที่ (c) และ (d) แสดงการตอบสนองความถี่ที่สอดคล้องกัน แอมพลิจูด (db) Amplitude c. การตอบสนองต่อความถี่ 1 pass 2 pass 4 pass ข้อมูลสัญญาณจะถูกเข้ารหัสในโดเมนเวลา ตัวอย่างเช่นจอแสดงผลอุณหภูมิในการทดลองทางวิทยาศาสตร์อาจปนเปื้อนกับเฮิรตซ์ 6 สายจากสายไฟ 3 กิกะซอนจากแหล่งจ่ายไฟสลับหรือ 132 กิโลเฮิรตซ์จากสถานีวิทยุ AM ในพื้นที่ ญาติของตัวกรองเฉลี่ยเคลื่อนที่มีประสิทธิภาพโดเมนความถี่ที่ดีขึ้นและมีประโยชน์ในการใช้งานโดเมนผสมเหล่านี้ ตัวกรองค่าเฉลี่ยเคลื่อนที่แบบพหุคูณจำนวนมากเกี่ยวข้องกับการส่งผ่านสัญญาณอินพุทผ่านตัวกรองค่าเฉลี่ยเคลื่อนที่สองครั้งหรือมากกว่า รูปที่ 15-3a แสดงเคอร์เนลของตัวกรองทั้งหมดที่เกิดจากการผ่านหนึ่งสองและสี่ สองผ่านจะเทียบเท่ากับการใช้เคอร์เนลตัวกรองรูปสามเหลี่ยม (เคอร์เนลตัวกรองรูปสี่เหลี่ยมที่พันด้วยตัวเอง) หลังจากผ่านสี่หรือมากกว่าเคอร์เนลตัวกรองที่เหมือนกันดูเหมือน Gaussian (เรียกคืนทฤษฎีบท จำกัด กลาง) ดังที่แสดงไว้ใน (b) การส่งผ่านหลาย ๆ ครั้งจะทำให้เกิดการตอบสนองขั้นตอนเป็นรูปสี่เหลี่ยมผืนผ้าเมื่อเทียบกับเส้นตรงของบัตรผ่านเดี่ยว การตอบสนองต่อความถี่ใน (c) และ (d) ให้โดย Eq คูณด้วยตัวเองสำหรับแต่ละครั้ง นั่นคือทุกครั้งที่เกิดการบิดตัวของโดเมนในการคูณสเปกตรัมความถี่ 6 282 นักวิทยาศาสตร์และวิศวกรคู่มือการประมวลผลสัญญาณดิจิตอลรูปที่ 15-4 แสดงการตอบสนองต่อความถี่ของญาติสนิทอีกสองคนของตัวกรองค่าเฉลี่ยเคลื่อนที่ เมื่อ Gaussian บริสุทธิ์ถูกใช้เป็นเคอร์เนลของตัวกรองการตอบสนองต่อความถี่ยังเป็น Gaussian ตามที่กล่าวไว้ในบทที่ 11 Gaussian มีความสำคัญเนื่องจากเป็นระบบตอบสนองแรงดึงดูดของระบบธรรมชาติและมนุษย์หลายระบบ ตัวอย่างเช่นชีพจรสั้น ๆ ของแสงที่ป้อนเส้นใยยาวสายส่งจะออกเป็นชีพจร Gaussian เนื่องจากเส้นทางที่แตกต่างกันโดยโฟตอนภายในเส้นใย แก่นกรองแบบเกาส์ (Gaussian filter kernel) ยังใช้ในการประมวลผลภาพอย่างมากเนื่องจากมีคุณสมบัติเฉพาะที่ช่วยให้เกิดการหมุนสองมิติได้อย่างรวดเร็ว (ดูบทที่ 24) การตอบสนองความถี่ที่สองใน Fig สอดคล้องกับการใช้หน้าต่าง Blackman เป็นเคอร์เนลตัวกรอง (หน้าต่างคำว่าไม่มีความหมายนี่เป็นเพียงส่วนหนึ่งของชื่อที่ยอมรับของเส้นโค้งนี้เท่านั้น) รูปร่างที่แท้จริงของหน้าต่าง Blackman จะได้รับในบทที่ 16 (สมการ 16-2, รูป 16-2) อย่างไรก็ตามลักษณะนี้ดูเหมือน Gaussian มาก ตัวกรองเหล่านี้มีความสัมพันธ์กันอย่างไรดีกว่าตัวกรองเฉลี่ยที่เคลื่อนที่ได้สามวิธี: ประการแรกและที่สำคัญที่สุดตัวกรองเหล่านี้มีการลดทอนสัญญาณ stopband ที่ดีกว่าตัวกรองเฉลี่ยที่เคลื่อนที่ได้ ประการที่สองฟิลเตอร์ตัวกรองจะลดลงจนมีขนาดเล็กลงใกล้ปลาย จำได้ว่าแต่ละจุดในสัญญาณขาออกเป็นผลรวมถ่วงน้ำหนักของกลุ่มตัวอย่างจากอินพุท หากเคอร์เนลกรองลดลงตัวอย่างในสัญญาณอินพุตที่อยู่ไกลออกไปจะมีน้ำหนักน้อยกว่าที่อยู่ใกล้ ๆ ประการที่สามการตอบสนองขั้นตอนคือเส้นโค้งที่เรียบมากกว่าเส้นตรงที่ฉับพลันของค่าเฉลี่ยเคลื่อนที่ ทั้งสองข้อนี้มักได้รับประโยชน์อย่าง จำกัด แม้ว่าคุณอาจพบแอพพลิเคชันที่เป็นข้อดีของแท้ ตัวกรองค่าเฉลี่ยเคลื่อนที่และญาติสนิทมีความใกล้เคียงกันในการลดสัญญาณรบกวนแบบสุ่มในขณะที่ยังรักษาระดับการตอบสนองที่คมชัด ความกำกวมอยู่ในวิธีการที่ risetime ของการตอบสนองขั้นตอนที่มีการวัด ถ้า risetime วัดจาก 1 ขั้นตอนตัวกรองค่าเฉลี่ยเคลื่อนที่จะดีที่สุดเท่าที่จะทำได้ตามที่แสดงไว้ก่อนหน้านี้ ในการเปรียบเทียบการวัด risetime ตั้งแต่ 1 ถึง 9 ทำให้หน้าต่าง Blackman ดีกว่าตัวกรองเฉลี่ยเคลื่อนที่ ประเด็นคือนี่เป็นการโต้เถียงทางทฤษฎีเพียงพิจารณาตัวกรองเหล่านี้เท่ากันในพารามิเตอร์นี้ ความแตกต่างที่ใหญ่ที่สุดในตัวกรองเหล่านี้คือความเร็วในการประมวลผล การใช้อัลกอริทึมแบบเรียกซ้ำ (อธิบายต่อไป) ตัวกรองค่าเฉลี่ยเคลื่อนที่จะทำงานเหมือนกับฟ้าผ่าในคอมพิวเตอร์ของคุณ ในความเป็นจริงมันเป็นตัวกรองดิจิตอลที่เร็วที่สุดที่มีอยู่ ค่าเฉลี่ยเคลื่อนที่หลายครั้งจะช้ากว่า แต่ก็ยังเร็วมาก เมื่อเทียบกับตัวกรอง Gaussian และ Blackman จะช้ามากเนื่องจากต้องใช้ convolution คิดเป็นสิบเท่าของจำนวนจุดในเคอร์เนลของตัวกรอง (ขึ้นอยู่กับการคูณจะช้ากว่าการเติมประมาณ 1 เท่า) ตัวอย่างเช่นคาดว่า Gaussian 1 จุดจะช้ากว่าค่าเฉลี่ยที่เคลื่อนที่โดยใช้ recursion 1 ครั้ง Recursive Implementation ประโยชน์ที่ยิ่งใหญ่ของตัวกรองเฉลี่ยเคลื่อนที่คือสามารถนำมาใช้กับอัลกอริทึมที่รวดเร็วมาก เพื่อทำความเข้าใจเรื่องนี้ 7 บทที่ 15 - ตัวกรองค่าเฉลี่ยเคลื่อนที่รูปที่ 15-4 การตอบสนองต่อความถี่ของหน้าต่าง Blackman และ Gaussian filter waters ตัวกรองทั้งสองนี้ให้อัตราการลดทอนสัญญาณ stopband ที่ดีกว่าตัวกรองเฉลี่ยที่เคลื่อนที่ได้ ไม่ได้มีประโยชน์ในการลบสัญญาณรบกวนแบบสุ่มออกจากสัญญาณเข้ารหัสโดเมนเวลา แต่อาจมีประโยชน์ในปัญหาโดเมนผสม ข้อเสียของตัวกรองเหล่านี้คือต้องใช้ convolution ซึ่งเป็นอัลกอริธึมช้าชะมัด Amplitude (db) Blackman Gaussian Frequency อัลกอริธึมลองจินตนาการผ่านสัญญาณอินพุท x ผ่านตัวกรองเฉลี่ย 7 จุดเพื่อสร้างสัญญาณเอาท์พุท y คำนวณว่า y5 และ y51 คำนวณว่า y5 x47 x48 x49 x5 x51 x51 x53 x53 x 53 x 53 x 53 x53 x53 x54 จุดเหล่านี้เกือบจะเหมือนจุดคำนวณ x48 ถึง x53 จะต้องเพิ่มสำหรับ y5 และอีกครั้ง สำหรับ y51 ถ้า y5 ถูกคำนวณแล้ววิธีที่มีประสิทธิภาพที่สุดในการคำนวณ y51 คือ y51 y5 x54amp x47 เมื่อ y51 ถูกค้นพบโดยใช้ y5 แล้ว y52 สามารถคำนวณได้จากตัวอย่าง y51 และอื่น ๆ หลังจากที่จุดแรกถูกคำนวณใน y แล้วจุดอื่น ๆ ทั้งหมดสามารถพบได้โดยมีเพียงการบวกและการลบต่อจุดเท่านั้น ซึ่งสามารถแสดงออกได้ในสมการดังนี้: EQUATION 15-3 การใช้งานแบบไขว่คว้าของตัวกรองค่าเฉลี่ยเคลื่อนที่ ในสมการนี้ x คือสัญญาณอินพุท y คือสัญญาณเอาท์พุท M คือจำนวนจุดในค่าเฉลี่ยเคลื่อนที่ (เป็นเลขคี่) ก่อนสมการนี้สามารถใช้จุดแรกในสัญญาณต้องคำนวณโดยใช้ค่ามาตรฐาน สังเกตว่าสมการนี้ใช้ข้อมูลสองแหล่งในการคำนวณแต่ละจุดในเอาท์พุท: จุดจากอินพุทและจุดที่คำนวณได้ก่อนหน้านี้จากเอาท์พุท นี่เรียกว่าสมการ recursive ซึ่งหมายความว่าผลของการคำนวณหนึ่ง 8 284 นักวิทยาศาสตร์และวิศวกรคู่มือการประมวลผลสัญญาณดิจิตอลจะใช้ในการคำนวณในอนาคต (คำ quotrecursivequot ยังมีความหมายอื่น ๆ โดยเฉพาะอย่างยิ่งในวิทยาการคอมพิวเตอร์) บทที่ 19 กล่าวถึงตัวกรองแบบ recursive ในรายละเอียดเพิ่มเติม โปรดทราบว่าตัวกรอง recursive ค่าสัมบูรณ์ที่เคลื่อนที่แตกต่างจากตัวกรองแบบ recursive ทั่วไป โดยเฉพาะอย่างยิ่งตัวกรอง recursive ส่วนใหญ่มีการตอบสนองแรงดึงดูดอันยาวนาน (IIR) อนันต์ประกอบด้วย sinusoids และ exponentials การตอบสนองต่ออิมพัลส์ของค่าเฉลี่ยเคลื่อนที่เป็นรูปสี่เหลี่ยมผืนผ้า (pulse impulse response หรือ FIR) อัลกอริธึมนี้เร็วกว่าตัวกรองสัญญาณดิจิตอลอื่น ๆ ด้วยเหตุผลหลายประการ ขั้นแรกมีการคำนวณเพียง 2 จุดต่อจุดโดยไม่คำนึงถึงความยาวของเคอร์เนลตัวกรอง ประการที่สองการบวกและการลบคือการดำเนินงานทางคณิตศาสตร์เพียงอย่างเดียวที่ต้องการในขณะที่ตัวกรองดิจิทัลส่วนใหญ่ต้องการการคูณที่ใช้เวลานาน ประการที่สามรูปแบบการจัดทำดัชนีเป็นเรื่องง่ายมาก แต่ละดัชนีใน Eq สามารถหาได้โดยการบวกหรือลบค่าคงที่จำนวนเต็มซึ่งสามารถคำนวณได้ก่อนที่การกรองจะเริ่มต้น (เช่น p และ q) ขั้นตอนทั้งหมดสามารถดำเนินการได้ด้วยการแทนจำนวนเต็ม ขึ้นอยู่กับฮาร์ดแวร์ที่ใช้จำนวนเต็มสามารถมากกว่าลำดับความสำคัญได้เร็วกว่าจุดลอยตัว น่าแปลกที่การแทนจำนวนเต็มจะทำงานได้ดีกว่าจุดลอยตัวด้วยอัลกอริทึมนี้นอกจากจะเร็วกว่า ข้อผิดพลาดในการปัดเศษทศนิยมจากเลขคณิตลอยตัวสามารถให้ผลลัพธ์ที่ไม่คาดคิดได้หากคุณไม่ระมัดระวัง ตัวอย่างเช่นสมมติว่า 1 ตัวอย่างสัญญาณถูกกรองด้วยวิธีนี้ ตัวอย่างสุดท้ายในสัญญาณที่กรองมีข้อผิดพลาดที่สะสม 1, การเพิ่มและ 1 การลบ นี้จะปรากฏในสัญญาณเอาท์พุทเป็นออฟเซ็ทลอย จำนวนเต็มไม่มีปัญหานี้เนื่องจากไม่มีข้อผิดพลาดในการคำนวณ หากคุณต้องใช้จุดลอยตัวด้วยอัลกอริทึมนี้โปรแกรมในตาราง 15-2 จะแสดงวิธีใช้เครื่องวัดความแม่นยำแบบคู่เพื่อลดการลอยตัวนี้ 1 ตัวกรองถานคาเฉลี่ยยอยที่ดําเนินการโดย RECURSION 11 โปรแกรมนี้กรอง 5 ตัวอยางโดยใชตัวกรองเฉลี่ย 11 จุดเปน 12 ตัวทําใหมีการกรองขอมูล 49 ชุด 13 ใช้ตัวสะสมความแม่นยำแบบคู่เพื่อป้องกันการลอยตัวแบบกลม 14 15 DIM X4999 X ถือคาสัญญาณเขา 16 DIM Y4999 Y เก็บสัญญาณเอาตพุต 17 DEFDBL ACC กําหนดตัวแปร ACC ใหมีความแม่นยำสอง 18 19 GOSUB XXXX ลําโพงที่เปนเทอมเพื่อโหลด X 2 21 ACC หา Y5 โดยใหคะแนนเฉลี่ย X ถึง X1 22 FOR I TO 1 23 ACC ACC XI 24 NEXT I 25 Y5 ACC11 26 ตัวกรองค่าเฉลี่ยเคลื่อนที่แบบ recursive (สมการ 15-3) 27 สำหรับ I 51 TO ACC ACC XI5 - XI-51 29 YI ACC 3 NEXT I 31 32 END ตาราง 15-2 นักวิทยาศาสตร์และวิศวกรนำการประมวลผลสัญญาณดิจิตอลโดย Steven W. Smith, Ph. D. ข้อดีอย่างมากของตัวกรองค่าเฉลี่ยเคลื่อนที่คือสามารถนำมาใช้กับอัลกอริทึมที่รวดเร็วมาก เพื่อทำความเข้าใจกับอัลกอริธึมนี้ลองจินตนาการผ่านสัญญาณอินพุต x ผ่านตัวกรองเฉลี่ย 7 จุดเพื่อสร้างสัญญาณเอาท์พุท y ตอนนี้ดูว่ามีการคำนวณจำนวนจุดส่งออกที่อยู่ติดกันสองจุดคือ y 50 และ y 51 อย่างไร: ต้องมีการคำนวณจุดการคำนวณเดียวกัน x 48 ถึง x 53 สำหรับ y 50 และอีกครั้งสำหรับ y 51 ถ้า y 50 ถูกคำนวณแล้ว วิธีที่มีประสิทธิภาพที่สุดในการคำนวณ y 51 คือเมื่อ y 51 ถูกค้นพบโดยใช้ y 50 แล้ว y 52 สามารถคำนวณได้จากตัวอย่าง y 51 และอื่น ๆ หลังจากที่จุดแรกถูกคำนวณใน y แล้วจุดอื่น ๆ ทั้งหมดสามารถพบได้โดยมีเพียงการบวกและการลบต่อจุดเท่านั้น นี่สามารถแสดงออกได้ในสมการ: สังเกตว่าสมการนี้ใช้ข้อมูลสองแหล่งในการคำนวณแต่ละจุดในเอาท์พุท: จุดจากอินพุทและจุดที่คำนวณก่อนหน้านี้จากเอาต์พุต นี้เรียกว่าสมการ recursive ซึ่งหมายความว่าผลของการคำนวณจะใช้ในการคำนวณในอนาคต (คำ recursive ยังมีความหมายอื่นโดยเฉพาะในวิทยาการคอมพิวเตอร์) บทที่ 19 กล่าวถึงตัวกรองแบบ recursive ในรายละเอียดเพิ่มเติม โปรดทราบว่าตัวกรอง recursive ค่าสัมบูรณ์ที่เคลื่อนที่แตกต่างจากตัวกรองแบบ recursive ทั่วไป โดยเฉพาะอย่างยิ่งตัวกรอง recursive ส่วนใหญ่มีการตอบสนองแรงดึงดูดอันยาวนาน (IIR) อนันต์ประกอบด้วย sinusoids และ exponentials การตอบสนองต่ออิมพัลส์ของค่าเฉลี่ยเคลื่อนที่เป็นรูปสี่เหลี่ยมผืนผ้า (pulse impulse response หรือ FIR) อัลกอริธึมนี้เร็วกว่าตัวกรองสัญญาณดิจิตอลอื่น ๆ ด้วยเหตุผลหลายประการ ขั้นแรกมีการคำนวณเพียง 2 จุดต่อจุดโดยไม่คำนึงถึงความยาวของเคอร์เนลตัวกรอง ประการที่สองการบวกและการลบคือการดำเนินงานทางคณิตศาสตร์เพียงอย่างเดียวที่ต้องการในขณะที่ตัวกรองดิจิทัลส่วนใหญ่ต้องการการคูณที่ใช้เวลานาน ประการที่สามรูปแบบการจัดทำดัชนีเป็นเรื่องง่ายมาก แต่ละดัชนีในสมการ 15-3 ได้ด้วยการเพิ่มหรือลบค่าจำนวนเต็มจำนวนเต็มซึ่งสามารถคำนวณได้ก่อนที่การกรองจะเริ่มต้น (เช่น p และ q) ขั้นตอนทั้งหมดสามารถดำเนินการได้ด้วยการแทนจำนวนเต็ม ขึ้นอยู่กับฮาร์ดแวร์ที่ใช้จำนวนเต็มสามารถมากกว่าลำดับความสำคัญได้เร็วกว่าจุดลอยตัว น่าแปลกที่การแทนจำนวนเต็มจะทำงานได้ดีกว่าจุดลอยตัวด้วยอัลกอริทึมนี้นอกจากจะเร็วกว่า ข้อผิดพลาดในการปัดเศษทศนิยมจากเลขคณิตลอยตัวสามารถให้ผลลัพธ์ที่ไม่คาดคิดได้หากคุณไม่ระมัดระวัง ตัวอย่างเช่นสมมติว่ามีการกรองตัวอย่างสัญญาณ 10,000 รายการด้วยวิธีนี้ ตัวอย่างสุดท้ายในสัญญาณที่ผ่านการกรองมีข้อผิดพลาดสะสม 10,000 ครั้งและการลบออก 10,000 ครั้ง นี้จะปรากฏในสัญญาณเอาท์พุทเป็นออฟเซ็ทลอย จำนวนเต็มไม่มีปัญหานี้เนื่องจากไม่มีข้อผิดพลาดในการคำนวณ หากคุณต้องใช้จุดลอยตัวด้วยอัลกอริทึมนี้โปรแกรมในตาราง 15-2 จะแสดงวิธีใช้เครื่องวัดความแม่นยำสองครั้งเพื่อลดการล่องลอยนี้ทุกครั้งและอีกสักครู่หนึ่งฉันใช้ค่าเฉลี่ยที่เคลื่อนที่ผ่าน low-pass filter ข้อมูล ตัวกรองค่าเฉลี่ยเคลื่อนที่ง่ายและใช้งานง่ายในแบบเรียลไทม์ ถ้าคุณตัดสินใจที่จะให้คะแนนข้อมูลโดยเฉลี่ย 5 จุดร่วมกัน (M 5) ข้อมูลที่กรองจะถูกคำนวณโดย yi (xi-2 xi-1 xi xi1 xi2) 5. คุณสามารถใช้ recursively นี้ได้เพื่อให้การคำนวณแต่ละครั้งต่อไปต้องใช้เลขคณิตสองตัวเท่านั้น หากการคำนวณครั้งแรกของคุณคือ y3 (x1 x2 x3 x4 x5) 5 แล้วการคำนวณครั้งต่อไปจะเป็นแบบง่ายๆ y4 y3 8211 x1 x6 สิ่งที่ฉันไม่รู้จนกระทั่งเมื่อไม่นานมานี้คือวิธีการคำนวณการตอบสนองความถี่ของตัวกรองเฉลี่ยที่เคลื่อนที่ การตอบสนองต่อความถี่ Hf สามารถคํานวณโดย sin (pifM) (M sin (pif)) โดยที่ M คือความยาวของค่าเฉลี่ยเคลื่อนที่และ f อยู่ระหว่าง 0 ถึง 0.5 (0.5 แทนครึ่งหนึ่งของความถี่ตัวอย่าง) ด้านล่างเป็นกราฟของการตอบสนองความถี่สำหรับความยาวของ 4, 8 และ 16 (โดยมีความถี่ตัวอย่างที่ 500 Hz) สังเกตว่าตัวกรองมีแถบการเปลี่ยนที่รัดกุมและราบรื่น (จุดเริ่มต้นของเส้นโค้งจากความกว้าง 1 ถึง 0) และแถบหยุดที่น่าสยดสยอง (ระลอกซ้ำ) นี่ทำให้ค่าเฉลี่ยเคลื่อนที่ 8220 ตัวกรองการปรับความเรียบที่ดีเยี่ยม (การกระทำในโดเมนเวลา) แต่เป็นตัวกรองความถี่ต่ำที่ไม่ดี (การกระทำในโดเมนความถี่) 8221 (The Scientist and Engineer8217s Guide to Digital Signal Processing, บทที่ 15) . ต่อไปนี้คือตัวอย่างของวิธีการกรองเสียงเฉลี่ยเคลื่อนที่ที่จะลบเสียงสุ่มออกจากชีพจรรูปสี่เหลี่ยมผืนผ้า คุณสามารถเห็นชีพจรรูปสี่เหลี่ยมถูกเก็บไว้ค่อนข้างสูงชันโดยแถบการเปลี่ยนผ่านทีละขั้นขณะที่ลบเสียงออก ถ้าคุณต้องการลบเสียงรบกวน 60 Hz ความยาว 8 จะทำงานได้ดี (เส้นสีเขียวในกราฟแรก) คุณสามารถปรับปรุงวงหยุดที่ราคาแพงของแถบการเปลี่ยนแปลงที่สูงชันโดยใช้ตัวกรองหลาย ๆ ครั้ง ด้านล่างคือกราฟของการตอบสนองความถี่ของค่าเฉลี่ยเคลื่อนที่ของความยาว 8 หลังจากถูกกรองหนึ่งสองหรือสี่ครั้ง เหล่านี้ถูกคำนวณโดยการคูณฟังก์ชันตอบสนองความถี่ด้วยตัวเองสำหรับการส่งแต่ละครั้ง (dual-pass hf hf) ถ้าคุณต้องการลบเสียงรบกวน 60 Hz ด้วยตัวกรองแบบดูอัลแชนแนลคุณสามารถใช้ความยาว 7 แทน 8 โดยใช้ตัวกรองแบบ Single Pass

No comments:

Post a Comment