Thursday 13 July 2017

การย้าย ค่าเฉลี่ย Matlab


ใช้ MATLAB ฉันจะหาค่าเฉลี่ยเคลื่อนที่ 3 วันของคอลัมน์เฉพาะของเมทริกซ์ได้อย่างไรและเพิ่มค่าเฉลี่ยเคลื่อนที่ลงในเมตริกซ์นั้นฉันพยายามคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันจากด้านล่างจนถึงด้านบนของเมตริกซ์ที่ฉันได้ให้ไว้ code. Given ต่อไปนี้เมทริกซ์และหน้ากากฉันได้ลองใช้คำสั่ง conv แต่ฉันได้รับข้อผิดพลาดนี่คือคำสั่ง conv ฉันได้รับการพยายามที่จะใช้ในคอลัมน์ที่ 2 ของเมทริกซ์ผลผลิต a. The ฉันต้องการจะได้รับใน เมทริกซ์ต่อไปนี้ถ้าคุณมีข้อเสนอแนะใด ๆ ฉันจะขอบคุณมากขอขอบคุณสำหรับคอลัมน์ 2 ของเมทริกซ์ผมคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันดังต่อไปนี้และวางผลในคอลัมน์ 4 ของเมทริกซ์ฉันเปลี่ยนชื่อเมทริกซ์เป็น wantOutput สำหรับภาพประกอบค่าเฉลี่ย 3 วันของ 17, 14, 11 คือ 14 ค่าเฉลี่ย 3 วันของ 14, 11, 8 คือ 11 เฉลี่ย 3 วันจาก 11, 8, 5 คือ 8 และค่าเฉลี่ย 3 วันของ 8, 5, 2 คือ 5 ไม่มีค่าในแถวล่าง 2 แถวสำหรับคอลัมน์ที่ 4 เนื่องจากการคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันเริ่มต้นที่ ด้านล่างผลลัพธ์ที่ถูกต้องจะไม่ปรากฏจนกว่าอย่างน้อย 17, 14, และ 11 หวังว่านี่จะทำให้ Aaron รู้สึกว่า Jun 12 13 ที่ 1 28. โดยทั่วไปจะช่วยถ้าคุณจะแสดงข้อผิดพลาดในกรณีนี้คุณกำลังทำผิดพลาดสองประการ . ก่อน convolution ของคุณจะต้องหารด้วยสามหรือความยาวของค่าเฉลี่ยเคลื่อนที่. ประการที่สองสังเกตขนาดของ c คุณไม่สามารถเพียงแค่พอดีกับ c เป็นวิธีทั่วไปในการรับค่าเฉลี่ยเคลื่อนที่จะใช้ same. but ที่ doesn t ดูเหมือนว่าสิ่งที่คุณ want. Instead คุณถูกบังคับให้ใช้คู่ของเส้นกันยายน 29, 2013.Moving เฉลี่ยโดย convolution. What คือการย้ายเฉลี่ยและสิ่งที่เป็นสิ่งที่ดีสำหรับวิธีการย้ายเฉลี่ยทำโดยใช้ convolution. Moving เฉลี่ยคือ การดำเนินการง่ายๆที่ใช้โดยปกติเพื่อปราบปรามเสียงของสัญญาณที่เราตั้งค่าของแต่ละจุดให้ค่าเฉลี่ยของค่าในละแวกของมันโดยสูตรที่นี่ x เป็นอินพุทและ y เป็นสัญญาณเอาต์พุตในขณะที่ขนาดของหน้าต่างคือ w, ควรจะคี่สูตรข้างต้นอธิบายการทำงานสมมาตร s amples จะมาจากทั้งสองด้านของจุดที่เกิดขึ้นจริงข้างล่างนี้เป็นตัวอย่างชีวิตจริงจุดที่หน้าต่างถูกวางจริงเป็นค่าสีแดงด้านนอก x ควรจะ zeros เมื่อต้องการเล่นรอบและดูผลกระทบของค่าเฉลี่ยเคลื่อนที่มี มองไปที่การสาธิตแบบโต้ตอบนี้วิธีการทำโดย convolution. As คุณอาจได้รับการยอมรับการคำนวณค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายคล้ายกับ convolution ในทั้งสองกรณีหน้าต่างจะเลื่อนไปตามสัญญาณและองค์ประกอบในหน้าต่างจะสรุปดังนั้นให้ ลองใช้สิ่งที่เหมือนกันโดยใช้ convolution ใช้พารามิเตอร์ต่อไปนี้เอาต์พุตที่ต้องการเมื่อเป็นวิธีแรกให้เราลองทำสิ่งที่เราได้รับโดยการ convolving สัญญาณ x โดย kernel ต่อไปนี้ kernel ออกเป็นว่าสามครั้งใหญ่กว่า คาดว่าจะสามารถเห็นได้ว่าค่าที่ส่งออกเป็นสรุปของสามองค์ประกอบในหน้าต่างเป็นเพราะในระหว่างการแกว่งหน้าต่างจะเลื่อนพร้อมองค์ประกอบทั้งหมดในนั้นจะคูณด้วยหนึ่งและสรุปแล้ว yk 1 cdot x 1 cdot x 1 cdot x เพื่อให้ได้ค่าที่ต้องการของ y ผลลัพธ์จะหารด้วย 3. โดยสูตรรวมถึงการแบ่งส่วน แต่จะไม่เป็นการดีที่สุดในการแบ่งระหว่าง convolution นี่เป็นแนวคิดโดย rearranging สมการดังนั้นเราจะใช้ kernel k ต่อไปนี้ด้วยวิธีนี้เราจะได้รับเอาท์พุทที่ต้องการโดยทั่วไปถ้าเราต้องการที่จะทำค่าเฉลี่ยเคลื่อนที่โดย convolution ที่มีขนาดหน้าต่างของ w เราจะใช้ต่อไปนี้ k เคอร์เนลง่าย ฟังก์ชันการทำค่าเฉลี่ยเคลื่อนที่คือการใช้ตัวอย่างเช่นฉันจำเป็นต้องคำนวณค่าเฉลี่ยเคลื่อนที่ในชุดข้อมูลภายในลูปสำหรับฉันต้องได้รับค่าเฉลี่ยเคลื่อนที่เหนือ N 9 วันอาร์เรย์ที่ฉันคำนวณเป็นชุด 365 365 ค่า M ซึ่งเป็นค่าเฉลี่ยของชุดของข้อมูลอื่นที่ฉันต้องการพล็อตค่าเฉลี่ยของข้อมูลของฉันโดยมีค่าเฉลี่ยเคลื่อนที่ในพล็อตเดียวฉันใช้ Google Googled เล็กน้อยเกี่ยวกับการย้ายค่าเฉลี่ยและคำสั่ง conv และพบบางสิ่งที่ฉันพยายามนำมาใช้ รหัสของฉันดังนั้นโดยทั่วไปฉันคำนวณค่าเฉลี่ยของฉันและพล็อตมันด้วยการย้ายที่ไม่ถูกต้อง เฉลี่ยฉันเลือกค่า wts ขวาออกจากเว็บไซต์ mathworks เพื่อให้เป็นแหล่งที่ไม่ถูกต้องปัญหาของฉันว่าเป็นว่าฉันไม่เข้าใจสิ่งที่ wts นี้คือใครสามารถอธิบายหากมีสิ่งที่จะทำอย่างไรกับน้ำหนักของค่าที่ไม่ถูกต้องใน กรณีนี้ค่าทั้งหมดจะถูกถ่วงน้ำหนักเหมือนกันและถ้าฉันทำอย่างผิดพลาดทั้งหมดนี้ฉันขอความช่วยเหลือกับมันขอแสดงความนับถือขอบคุณ 23 กันยายนที่ 19 05.Using conv เป็นวิธีที่ดีที่จะใช้ค่าเฉลี่ยเคลื่อนที่ รหัสที่คุณใช้วัตต์คือเท่าใดคุณกำลังชั่งน้ำหนักแต่ละค่าตามที่คุณคาดเดาผลรวมของเวกเตอร์ที่ควรมีค่าเท่ากับหนึ่งถ้าคุณต้องการให้น้ำหนักแต่ละค่าเท่ากันและทำขนาด N ย้ายตัวกรองแล้วคุณจะต้องการทำ การใช้อาร์กิวเมนต์ที่ถูกต้องใน conv จะทำให้มีค่าน้อยกว่า Ms ที่คุณมีใน M ใช้เหมือนกันถ้าคุณไม่ทราบผลกระทบของ zero padding ถ้าคุณมีกล่องเครื่องมือในการประมวลผลสัญญาณคุณสามารถใช้ cconv ได้หากต้องการลองใช้ circular ค่าเฉลี่ยเคลื่อนที่ตัวอย่างเช่นคุณควรอ่านค่า Conv และ cconv สำหรับข้อมูลเพิ่มเติมหากคุณยังไม่ได้ใช้งานคุณสามารถใช้ตัวกรองเพื่อหาค่าเฉลี่ยในการทำงานได้โดยไม่ต้องใช้ loop สำหรับตัวอย่างนี้จะหาค่าเฉลี่ยของเวกเตอร์ 16 องค์ประกอบโดยใช้ขนาดหน้าต่าง 5.2 เรียบเป็นส่วนหนึ่งของ Curve ชุดเครื่องมือติดตั้งซึ่งมีให้เลือกใช้งานได้ในหลายกรณี y y เรียบราบรื่นข้อมูลในคอลัมน์เวกเตอร์ y โดยใช้ตัวกรองเฉลี่ยเคลื่อนที่ผลลัพธ์จะถูกส่งกลับในเวกเตอร์ของคอลัมน์ yy ช่วงค่าเริ่มต้นสำหรับค่าเฉลี่ยเคลื่อนที่คือ 5

No comments:

Post a Comment