Friday 7 July 2017

ชี้แจง เคลื่อนไหว เฉลี่ย กรอง การออกแบบ


ฟิลเตอร์ Exponential หน้านี้อธิบายถึงการกรองแบบ exponential ซึ่งเป็นตัวกรองที่ง่ายและเป็นที่นิยมมากที่สุด นี่เป็นส่วนหนึ่งของส่วนการกรองซึ่งเป็นส่วนหนึ่งของคู่มือการตรวจหาและวินิจฉัยข้อบกพร่องข้อมูลภาพรวมค่าคงที่ตลอดเวลาและหน่วยความจำแบบอนาล็อกตัวกรองที่ง่ายที่สุดคือตัวกรองเลขลำดับ มีพารามิเตอร์จูนเดียว (นอกเหนือจากช่วงเวลาตัวอย่าง) ต้องเก็บข้อมูลตัวแปรเดียว - เอาต์พุตก่อนหน้านี้ เป็นตัวกรอง IIR (autoregressive) - ผลกระทบของการเปลี่ยนแปลงการเปลี่ยนแปลงการป้อนข้อมูลแบบทวีคูณจนถึงขีด จำกัด ของการแสดงผลหรือการคำนวณทางคณิตศาสตร์ของคอมพิวเตอร์ซ่อนไว้ ในสาขาต่างๆการใช้ตัวกรองนี้เรียกว่า 8220exponential smoothing8221 ในบางสาขาวิชาเช่นการวิเคราะห์การลงทุนตัวกรองเลขยกกำลังเรียกว่า 8220Exeptably Weighted Moving Average8221 (EWMA) หรือเพียง 8220Exponential Moving Average8221 (EMA) การดำเนินการนี้ละเมิดหลักเกณฑ์ ARMA 8220 โดยทั่วไปในการวิเคราะห์การวิเคราะห์อนุกรมเวลาเนื่องจากไม่มีประวัติการเข้าที่ใช้งานเพียงแค่ข้อมูลปัจจุบันเท่านั้น มันเป็นเวลาที่ไม่ต่อเนื่องเทียบเท่า 8220 ลำดับแรก lag8221 ใช้กันทั่วไปในการสร้างแบบจำลองอนาล็อกของระบบควบคุมเวลาต่อเนื่อง ในวงจรไฟฟ้าตัวกรอง RC (ตัวกรองที่มีตัวเก็บประจุหนึ่งตัวและตัวเก็บประจุหนึ่งตัว) เป็นลัดแรก เมื่อเน้นความคล้ายคลึงกับวงจรแอนะล็อกพารามิเตอร์การปรับค่าเดียวคือค่าคงที่ 8220 ตลอดเวลาโดยปกติจะเขียนเป็นตัวพิมพ์เล็กตัวอักษรกรีก Tau () ในความเป็นจริงค่าในช่วงเวลาตัวอย่างที่ไม่ต่อเนื่องตรงกับเวลาลัดเวลาต่อเนื่องที่เท่ากันโดยมีค่าคงที่ในเวลาเดียวกัน ความสัมพันธระหวางการใชงานแบบดิจิตอลและคาคงที่เวลาจะแสดงไวในสมการตอไปนี้ สมการของตัวกรองแบบเรียงซ้อนและการเตรียมใช้งานตัวกรองเลขยกกำลังเป็นชุดค่าผสมของการประมาณค่าก่อนหน้า (เอาท์พุท) ที่มีข้อมูลป้อนเข้าใหม่ล่าสุดโดยมีผลรวมของน้ำหนักเท่ากับ 1 เพื่อให้เอาต์พุตตรงกับอินพุทในสภาวะคงที่ ตามสัญกรณ์ตัวกรอง: y (k) ay (k-1) (1-a) x (k) โดยที่ x (k) เป็นข้อมูลดิบที่ระยะเวลา ky (k) เป็นผลลัพธ์ที่ผ่านการกรองในขั้นตอนเวลา ka เป็นค่าคงที่ระหว่าง 0 ถึง 1 โดยปกติระหว่าง 0.8 ถึง 0.99 (a-1) หรือบางครั้งเรียกว่า 8220smoothing constant8221 สำหรับระบบที่มีขั้นตอนเวลาคงที่ T ระหว่างตัวอย่างค่าคงที่ 8220a8221 จะคำนวณและจัดเก็บไว้เพื่อความสะดวกเฉพาะเมื่อนักพัฒนาแอ็พพลิเคชันระบุค่าใหม่ของค่าคงที่เวลาที่ต้องการ สำหรับระบบที่มีการสุ่มตัวอย่างข้อมูลในช่วงเวลาที่ผิดปกติต้องใช้ฟังก์ชันเลขชี้กำลังข้างต้นกับแต่ละขั้นตอนเวลาโดยที่ T คือเวลาตั้งแต่ตัวอย่างก่อนหน้านี้ เอาท์พุทตัวกรองมักจะถูกเตรียมใช้งานเพื่อให้ตรงกับการป้อนข้อมูลครั้งแรก เมื่อเวลาคงที่เข้าใกล้ 0 เป็น a ไปเป็นศูนย์ดังนั้นจึงไม่มีการกรองผลลัพธ์ 8211 เท่ากับการป้อนข้อมูลใหม่ เป็นเวลาคงที่จะมีขนาดใหญ่มากวิธีที่ 1 เพื่อให้ใส่ใหม่เกือบจะละเลย 8211 มากกรองหนัก สมการของตัวกรองด้านบนสามารถจัดเรียงใหม่ลงในตัวทำนาย - corrector equivalent: รูปแบบนี้ทำให้เห็นได้ชัดว่าค่าประมาณตัวแปร (เอาท์พุทของตัวกรอง) คาดว่าจะไม่เปลี่ยนแปลงจากค่าประมาณก่อนหน้า y (k-1) บวกคำที่ใช้แก้ไข ที่ไม่คาดคิด 8220innovation8221 - ความแตกต่างระหว่างการป้อนข้อมูลใหม่ x (k) และการทำนาย y (k-1) แบบฟอร์มนี้เป็นผลมาจากการหาตัวกรองแบบ exponential เป็นกรณีพิเศษแบบพิเศษของตัวกรองคาลมาน ซึ่งเปนทางออกที่ดีที่สุดในการประมาณคาโดยใชสมมติฐานเฉพาะ การตอบสนองขั้นตอนวิธีหนึ่งในการมองเห็นการทำงานของตัวกรองเลขยกกำลังคือการพล็อตการตอบสนองของมันในช่วงเวลาหนึ่งไปยังอินพุตขั้นตอน นั่นคือเริ่มต้นด้วยการป้อนข้อมูลตัวกรองและเอาท์พุทที่ 0 ค่าอินพุตจะเปลี่ยนไปเป็น 1 โดยอัตโนมัติค่าที่ได้จะถูกวางแผนไว้ด้านล่าง: ในพล็อตด้านบนเวลาจะถูกหารด้วยเวลาตัวกรอง tau คงที่เพื่อให้คุณคาดการณ์ได้ง่ายขึ้น ผลลัพธ์สำหรับช่วงเวลาใด ๆ สำหรับค่าใด ๆ ของค่าคงที่ของตัวกรอง หลังจากเวลาเท่ากับเวลาที่กำหนดเอาต์พุตตัวกรองจะเพิ่มขึ้นเป็น 63.21 ของค่าสุดท้าย หลังจากเวลามีค่าเท่ากับ 2 ค่าคงที่ค่าจะเพิ่มขึ้นเป็น 86.47 ของค่าสุดท้าย ผลลัพธ์ตามเวลาที่เท่ากับ 3,4 และ 5 ค่าคงที่คือ 95.02, 98.17 และ 99.33 ของค่าสุดท้ายตามลำดับ เนื่องจากตัวกรองเป็นแบบเส้นตรงนั่นหมายความว่าเปอร์เซ็นต์เหล่านี้สามารถใช้สำหรับขนาดของการเปลี่ยนแปลงขั้นตอนไม่ใช่เฉพาะสำหรับค่าที่ใช้ 1 ที่นี่ แม้ว่าการตอบสนองขั้นตอนในทฤษฎีจะใช้เวลาที่ไม่มีที่สิ้นสุดจากมุมมองเชิงปฏิบัติให้คิดเกี่ยวกับตัวกรองเลขยกกำลังเป็น 98 ถึง 99 8220done8221 ที่ตอบสนองหลังจากเวลานั้นเท่ากับ 4 ถึง 5 ช่วงเวลาของตัวกรอง มีการเปลี่ยนแปลงของตัวกรองเลขทศนิยมที่เรียกว่าตัวกรองเลข 8220nnonear อย่างละเอียด 8221 Weber, 1980 มีจุดมุ่งหมายเพื่อกรองสัญญาณรบกวนภายในขอบเขต 8220typical8221 อย่างมาก แต่จะตอบสนองต่อการเปลี่ยนแปลงที่มีขนาดใหญ่กว่า ลิขสิทธิ์© 2010 - 2013, Greg Stanley แบ่งปันหน้านี้: เอกสารตัวอย่างตัวอย่างนี้แสดงวิธีการใช้ตัวกรองเฉลี่ยแบบเคลื่อนไหวและการสุ่มตัวอย่างใหม่เพื่อแยกผลกระทบขององค์ประกอบตามช่วงเวลาของวันในการอ่านอุณหภูมิรายชั่วโมงตลอดจนลบเสียงรบกวนจากช่องเปิดที่ไม่พึงประสงค์ วัดแรงดันไฟฟ้าลัดวงจร ตัวอย่างนี้ยังแสดงวิธีทำให้ระดับสัญญาณนาฬิกาลดลงในขณะที่รักษาขอบโดยใช้ตัวกรองค่ามัธยฐาน ตัวอย่างยังแสดงวิธีการใช้ตัวกรอง Hampel เพื่อลบค่าดีเอ็นเอที่มีขนาดใหญ่ การทำให้เรียบเนียนเป็นสิ่งที่เราค้นพบรูปแบบที่สำคัญในข้อมูลของเราขณะออกจากสิ่งที่ไม่สำคัญ (เช่นเสียง) เราใช้การกรองเพื่อทำการเรียบนี้ เป้าหมายของการราบเรียบคือการผลิตการเปลี่ยนแปลงที่ช้าลงในคุณค่าเพื่อให้เห็นแนวโน้มในข้อมูลของเราได้ง่ายขึ้น บางครั้งเมื่อคุณตรวจสอบข้อมูลการป้อนข้อมูลที่คุณอาจต้องการทำให้ข้อมูลมีความราบรื่นเพื่อดูแนวโน้มของสัญญาณ ในตัวอย่างของเราเรามีชุดของการอ่านอุณหภูมิในเซลเซียสที่ถ่ายทุกชั่วโมงที่สนามบิน Logan ตลอดเดือนมกราคม 2011 โปรดทราบว่าเราสามารถมองเห็นผลกระทบที่ช่วงเวลาของวันมีค่าการอ่านอุณหภูมิ หากคุณสนใจเฉพาะความแปรผันของอุณหภูมิรายวันในช่วงเดือนความผันผวนรายชั่วโมงมีส่วนทำให้เกิดเสียงรบกวนเท่านั้นซึ่งจะทำให้รูปแบบรายวันดูยากขึ้น หากต้องการลบผลกระทบของเวลาในวันนี้ตอนนี้เราต้องการให้ข้อมูลของเราราบรื่นโดยใช้ตัวกรองค่าเฉลี่ยเคลื่อนที่ ตัวกรองค่าเฉลี่ยเคลื่อนที่ (Moving Average Filter) ในรูปแบบที่ง่ายที่สุดตัวกรองค่าเฉลี่ยเคลื่อนที่ที่มีความยาว N ใช้ค่าเฉลี่ยของทุกๆตัวอย่าง N ต่อเนื่องของรูปคลื่น หากต้องการใช้ตัวกรองเฉลี่ยที่เคลื่อนที่ไปยังจุดข้อมูลแต่ละจุดเราจะสร้างค่าสัมประสิทธิ์ของตัวกรองของเราเพื่อให้แต่ละจุดมีการถ่วงน้ำหนักอย่างเท่าเทียมกันและมีส่วนทำให้ค่าเฉลี่ยรวม 124 ค่า ซึ่งจะทำให้เรามีอุณหภูมิเฉลี่ยตลอดช่วงเวลา 24 ชั่วโมง Filter Delay โปรดทราบว่าผลลัพธ์ที่กรองออกจะล่าช้าประมาณ 12 ชั่วโมง เนื่องจากตัวกรองค่าเฉลี่ยเคลื่อนที่ของเรามีความล่าช้า ตัวกรองสมมาตรใด ๆ ที่มีความยาว N จะมีความล่าช้าของ (N-1) 2 ตัวอย่าง เราสามารถบัญชีสำหรับความล่าช้านี้ด้วยตนเอง การแยกความแตกต่างเฉลี่ยนอกจากนี้เรายังสามารถใช้ตัวกรองค่าเฉลี่ยเคลื่อนที่เพื่อให้ได้ค่าประมาณที่ดีขึ้นว่าช่วงเวลาของวันมีผลต่ออุณหภูมิโดยรวมอย่างไร เมื่อต้องการทำเช่นนี้ขั้นแรกให้ลบข้อมูลที่ราบเรียบออกจากการวัดอุณหภูมิรายชั่วโมง จากนั้นแบ่งส่วนข้อมูลที่แตกต่างออกเป็นวันและใช้เวลาเฉลี่ยมากกว่า 31 วันในเดือน Extracting Peak Envelope บางครั้งเราก็อยากจะมีการประมาณการที่แตกต่างกันอย่างราบรื่นว่าเสียงสูงและต่ำของสัญญาณอุณหภูมิของเรามีการเปลี่ยนแปลงทุกวัน ในการทำเช่นนี้เราสามารถใช้ฟังก์ชันซองจดหมายเพื่อเชื่อมต่อเสียงสูงและต่ำสุดที่ตรวจพบได้ในเซตย่อยของช่วงเวลา 24 ชั่วโมง ในตัวอย่างนี้เรามั่นใจว่าจะมีอย่างน้อย 16 ชั่วโมงระหว่างแต่ละระดับที่สูงมากและต่ำสุด นอกจากนี้เรายังสามารถรับรู้ได้ว่าเสียงสูงและต่ำมีแนวโน้มอย่างไรโดยการใช้ค่าเฉลี่ยระหว่างสองสุดขั้ว ตัวกรองเฉลี่ยถ่วงน้ำหนักแบบอื่นตัวเก็บประจุแบบอื่น ๆ ที่มีค่าเฉลี่ยเคลื่อนที่ไม่ได้มีน้ำหนักเท่ากัน ตัวกรองอื่น ๆ ตามการขยายตัวของสอง (12,12) n ตัวกรองชนิดนี้จะประมาณเส้นโค้งปกติสำหรับค่าที่มีขนาดใหญ่ของ n เป็นประโยชน์สำหรับการกรองเสียงรบกวนความถี่สูงสำหรับ n ขนาดเล็ก ในการหาค่าสัมประสิทธิ์สำหรับตัวกรองแบบทวินามให้หมุนตัว 12 12 ด้วยตัวเองแล้วค่อยๆหมุนวนเอาท์พุทด้วย 12 12 จำนวนครั้งที่กำหนด ในตัวอย่างนี้ใช้การวนซ้ำทั้งหมดห้าครั้ง ตัวกรองอื่นที่คล้ายกับตัวกรองการขยายตัวของ Gaussian คือตัวกรองค่าเฉลี่ยเลขยกกำลัง ตัวกรองค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักชนิดนี้ใช้งานง่ายและไม่ต้องใช้ขนาดหน้าต่างที่ใหญ่ คุณสามารถปรับตัวกรองเฉลี่ยถ่วงน้ำหนักที่ถ่วงน้ำหนักด้วยค่าพารามิเตอร์เลขคณิตตามพารามิเตอร์ alpha ระหว่างศูนย์และหนึ่ง ค่าอัลฟาจะสูงขึ้น ขยายการอ่านสำหรับหนึ่งวัน เลือกประเทศของคุณคุณสามารถใช้ค่าเฉลี่ยเคลื่อนที่ใน C โดยไม่จำเป็นต้องมีหน้าต่างของตัวอย่าง Ive พบว่าฉันสามารถเพิ่มประสิทธิภาพได้เล็กน้อยโดยการเลือกขนาดหน้าต่าง thats พลังของสองเพื่อให้สามารถขยับบิตแทนการหาร แต่ ไม่จำเป็นต้องบัฟเฟอร์จะดี มีวิธีแสดงผลลัพธ์เฉลี่ยเคลื่อนที่ใหม่ตามผลการค้นหาเดิมและตัวอย่างใหม่กำหนดค่าเฉลี่ยเคลื่อนที่ตัวอย่างเช่นข้ามหน้าต่างตัวอย่าง 4 ตัวอย่าง: เพิ่มตัวอย่างใหม่ e: ค่าเฉลี่ยเคลื่อนที่สามารถใช้งานได้แบบ recursively , แต่สำหรับการคำนวณที่แน่นอนของค่าเฉลี่ยเคลื่อนที่คุณต้องจำตัวอย่างการป้อนข้อมูลที่เก่าแก่ที่สุดในผลรวม (เช่นในตัวอย่างของคุณ) สำหรับค่าเฉลี่ยเคลื่อนที่ N ที่คำนวณโดย: yn คือสัญญาณขาออกและ xn เป็นสัญญาณขาเข้า อีคิว (1) สามารถเขียน recursively เป็นดังนั้นคุณจำเป็นต้องจำตัวอย่าง xn-N เพื่อคำนวณ (2) ที่ระบุโดย Conrad Turner คุณสามารถใช้หน้าต่างแทนยาวได้ (ไม่ จำกัด ) แทนซึ่งจะช่วยให้คุณสามารถคำนวณเอาท์พุทได้เฉพาะจากผลลัพธ์ที่ผ่านมาและอินพุทปัจจุบัน: แต่นี่ไม่ใช่ค่าเฉลี่ยเคลื่อนที่ (unweighted) แต่เป็นค่าชี้แจง (อย่างน้อยที่สุดในทางทฤษฎี) คุณจะไม่มีวันลืมอะไรเลย (น้ำหนักเพียงเล็กน้อยและเล็กลงสำหรับตัวอย่างที่ไกลเกินกว่าที่ผ่านมา) ฉันใช้ค่าเฉลี่ยเคลื่อนที่โดยไม่มีหน่วยความจำรายการสำหรับโปรแกรมติดตาม GPS ที่ฉันเขียน ฉันเริ่มต้นด้วย 1 ตัวอย่างและหารด้วย 1 เพื่อให้ได้ค่าเฉลี่ยปัจจุบัน จากนั้นผมจะเพิ่มตัวอย่าง anothe และหารด้วย 2 เป็นค่าเฉลี่ยปัจจุบัน นี้ยังคงจนกว่าฉันจะได้รับความยาวเฉลี่ย ทุกครั้งหลังจากนั้นฉันเพิ่มในตัวอย่างใหม่ให้ได้ค่าเฉลี่ยและลบค่าเฉลี่ยดังกล่าวออกจากยอดรวม ฉันไม่ใช่นักคณิตศาสตร์ แต่ดูเหมือนจะเป็นวิธีที่ดีที่จะทำ ฉันคิดว่ามันจะเปิดท้องของคนที่แต่งตัวประหลาดคณิตศาสตร์จริง แต่ก็จะเปิดออกเป็นหนึ่งในวิธีที่ได้รับการยอมรับในการทำมัน และทำงานได้ดี เพียงแค่จำไว้ว่ายิ่งความยาวของคุณยิ่งใหญ่เท่าไรก็ยิ่งช้าลงตามสิ่งที่คุณต้องการทำ นั่นอาจไม่สำคัญตลอดเวลา แต่เมื่อไปตามดาวเทียมถ้าคุณช้าเส้นทางอาจอยู่ไกลจากตำแหน่งจริงและจะดูไม่ดี คุณอาจมีช่องว่างระหว่างจุดเริ่มต้นและจุดต่อท้าย ฉันเลือกความยาวของ 15 ปรับปรุง 6 ครั้งต่อนาทีเพื่อให้ได้อย่างราบรื่นเพียงพอและไม่ได้รับไกลจากตำแหน่งนั่งจริงกับจุดเส้นทางที่ราบรื่น ตอบ 16 พค. 16 ที่ 23:03 เริ่มต้นทั้งหมด 0, นับ 0 (ทุกครั้งที่เห็นค่าใหม่จากนั้นหนึ่งอินพุท (scanf) หนึ่งเพิ่ม totalnewValue, หนึ่งที่เพิ่มขึ้น (นับ) หนึ่งหารเฉลี่ย (totalcount) นี่จะเป็นค่าเฉลี่ยเคลื่อนที่มากกว่า input ทั้งหมดในการคํานวณคาเฉลี่ยโดยใชเพียง 4 อินพุทตอไปเทานั้นจะตองใช4 inputvariables อาจคัดลอก input แตละ input ไปยัง inputvariable ที่สูงกวาจากนั้นคา new moving average เปน sum ของ inputvariables 4 หารดวย 4 (right shift 2) ดีถ้าทุกปัจจัยการผลิตเป็นบวกเพื่อให้การคำนวณเฉลี่ยตอบกุมภาพันธ์ 3 15 ที่ 4:06 ที่จริงจะคำนวณค่าเฉลี่ยรวมและไม่เฉลี่ยเคลื่อนไหวตามนับได้รับผลกระทบขนาดใหญ่ของตัวอย่างการป้อนข้อมูลใหม่ ๆ กลายเป็น vanishingly ขนาดเล็ก ndash Hilmar Feb ตอบสนองความถี่ของระบบ LTI คือ DTFT ของการตอบสนองของอิมพัลส์, การตอบสนองของแรงเสียดทานของค่าเฉลี่ยเคลื่อนที่แบบแอลเอสมีตั้งแต่ ตัวกรองค่าเฉลี่ยเคลื่อนที่คือ FIR การตอบสนองต่อความถี่จะลดลงเป็นจำนวน จำกัด แน่นอนเราสามารถใช้ตัวระบุที่เป็นประโยชน์ในการเขียนการตอบสนองตามความถี่ที่เราได้ให้ e minus jomega N 0 และ M L ลบ 1. เราอาจสนใจขนาดของฟังก์ชั่นนี้เพื่อหาความถี่ที่จะได้รับผ่านตัวกรองที่ไม่มีการลดทอนและจะถูกลดทอนลง ด้านล่างเป็นพล็อตของขนาดของฟังก์ชั่นนี้สำหรับ L 4 (สีแดง), 8 (สีเขียว) และ 16 (สีฟ้า) แกนแนวนอนมีตั้งแต่ศูนย์ถึง pi radian ต่อตัวอย่าง สังเกตได้ว่าในทั้งสามกรณีการตอบสนองต่อความถี่มีลักษณะ lowpass คอมโพเนนต์คงที่ (ความถี่เป็นศูนย์) ในอินพุตจะผ่านตัวกรองที่ไม่มีการลดทอน ความถี่ที่สูงขึ้นบางอย่างเช่น pi 2 จะถูกกำจัดออกโดยตัวกรอง อย่างไรก็ตามหากมีเจตนาในการออกแบบตัวกรองสัญญาณ Lowpass เราก็ยังไม่ได้ผลดีนัก บางส่วนของความถี่ที่สูงขึ้นจะลดทอนลงได้เพียงประมาณ 110 (สำหรับค่าเฉลี่ยเคลื่อนที่ 16 จุด) หรือ 13 (สำหรับค่าเฉลี่ยเคลื่อนที่สี่จุด) เราสามารถทำได้ดีกว่าที่ พล็อตข้างต้นถูกสร้างขึ้นโดยรหัส Matlab ต่อไปนี้: omega 0: pi400: pi H4 (14) (1-exp (-iomega4)) (1-exp (-iomega)) H8 (18) (1-exp (- (1-exp (-iomega16)) (1-exp (-iomega)) พล็อต (โอเมก้า, abs (H4) abs (H8) abs ( H16)) แกน (0, pi, 0, 1) สำเนาลิขสิทธิ์ 2000- - University of California, Berkeley

No comments:

Post a Comment