Tuesday 11 July 2017

การย้าย ค่าเฉลี่ย ใน matlab กรอง


สร้างเมื่อวันพุธที่ 08 ตุลาคม 2551 เวลา 20:04 น. แก้ไขล่าสุดในวันพฤหัสบดีที่ 14 มีนาคม 2013 เวลา 01:29 น. เขียนโดย Batuhan Osmanoglu ผู้ชม: 41484 Moving Average ใน Matlab บ่อยครั้งฉันพบว่าตัวเองต้องใช้ข้อมูลเฉลี่ยที่ฉันต้องลดเสียงรบกวนเล็กน้อย บิต. ฉันเขียนฟังก์ชันคู่ที่จะทำสิ่งที่ฉันต้องการ แต่ MATLABs สร้างขึ้นในฟังก์ชั่นกรองทำงานได้ดีเช่นกัน ที่นี่ฉันเขียนเกี่ยวกับ 1D และ 2D เฉลี่ยของข้อมูล สามารถใช้ตัวกรองแบบ 1D ได้โดยใช้ตัวกรอง ฟังก์ชั่นการกรองจำเป็นต้องใช้พารามิเตอร์ป้อนข้อมูลอย่างน้อยสามตัว ได้แก่ ค่าสัมประสิทธิ์การนับสำหรับตัวกรอง (b) ค่าสัมประสิทธิ์ตัวหารสำหรับตัวกรอง (a) และข้อมูล (X) แน่นอน ตัวกรองค่าเฉลี่ยที่ใช้งานได้สามารถกำหนดได้โดย: สำหรับข้อมูล 2D เราสามารถใช้ฟังก์ชัน Matlabs filter2 ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของตัวกรองคุณสามารถพิมพ์ได้: นี่คือการใช้ตัวกรองเฉลี่ย 16 ถึง 16 ที่รวดเร็วและสกปรก ขั้นแรกเราต้องกำหนดตัวกรอง เนื่องจากสิ่งที่เราต้องการคือการมีส่วนร่วมเท่าเทียมกันของเพื่อนบ้านทั้งหมดเราจึงสามารถใช้ฟังก์ชันเหล่านี้ได้ เราแบ่งทุกอย่างด้วย 256 (1616) เนื่องจากเราไม่ต้องการเปลี่ยนระดับทั่วไป (amplitude) ของสัญญาณ ในการใช้ตัวกรองเราสามารถพูดได้ว่าด้านล่างนี้เป็นผลลัพธ์ของระยะ interferogram ของ SAR ในกรณีนี้ Range อยู่ในแกน Y และ Azimuth จะถูกแมปกับแกน X ตัวกรองมีความกว้าง 4 พิกเซลในช่วงและกว้าง 16 พิกเซลในตัวกรอง Azimuth. Moving Average (ตัวกรอง MA) กำลังโหลด ตัวกรองค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองแบบ FIR (Finite Impulse Response) แบบ Low Pass ที่ใช้กันโดยทั่วไปสำหรับการจัดเรียงข้อมูลตัวอย่างแบบสุ่มตัวอย่าง ใช้เวลา M ตัวอย่างของการป้อนข้อมูลในแต่ละครั้งและใช้ค่าเฉลี่ยของ M-samples เหล่านี้และสร้างจุดเอาต์พุตเดี่ยว เป็นโครงสร้าง LPF (Low Pass Filter) ที่เรียบง่ายซึ่งเป็นประโยชน์สำหรับนักวิทยาศาสตร์และวิศวกรในการกรององค์ประกอบเสียงรบกวนที่ไม่พึงประสงค์จากข้อมูลที่ต้องการ เมื่อความยาวของตัวกรองเพิ่มขึ้น (พารามิเตอร์ M) ความนุ่มนวลของเอาท์พุทจะเพิ่มขึ้นในขณะที่ความคมชัดของการเปลี่ยนข้อมูลจะเพิ่มมากขึ้น นี่หมายความว่าตัวกรองนี้มีการตอบสนองโดเมนเวลาที่ยอดเยี่ยม แต่มีการตอบสนองต่อความถี่ต่ำ ตัวกรอง MA ทำหน้าที่สำคัญ 3 ประการคือ 1) ต้องใช้ M Input Point, คำนวณค่าเฉลี่ยของ M-points เหล่านี้และสร้างจุดเอาต์พุตเดี่ยว 2) เนื่องจากมีการคำนวณการคำนวณ ตัวกรองแนะนำจำนวนครั้งที่แน่นอนของการหน่วงเวลา 3) ตัวกรองทำหน้าที่เป็นตัวกรองความถี่ต่ำ (มีการตอบสนองโดเมนความถี่ต่ำและการตอบสนองโดเมนที่ดี) รหัส Matlab: โค้ด MATLAB ดังต่อไปนี้จะจำลองการตอบสนองโดเมนเวลาของตัวกรองค่าเฉลี่ยเคลื่อนที่แบบ M-point และคำนวณการตอบสนองความถี่สำหรับความยาวของตัวกรองต่างๆ การตอบสนองโดเมนระยะเวลา: ในพล็อตแรกเรามีข้อมูลเข้าที่จะเข้าสู่ตัวกรองค่าเฉลี่ยเคลื่อนที่ การป้อนข้อมูลมีเสียงดังและวัตถุประสงค์ของเราคือการลดเสียงรบกวน ตัวเลขต่อไปคือการตอบสนองการส่งออกของตัวกรองการเคลื่อนที่เฉลี่ย 3 จุด สามารถอนุมานได้จากรูปที่ตัวกรอง 3 จุด Moving Average ไม่ได้ทำอะไรมากนักในการกรองเสียงรบกวน เราเพิ่มตัวกรองก๊อกเป็น 51 จุดและเราจะเห็นว่าเสียงในเอาต์พุตลดลงมากซึ่งแสดงในรูปถัดไป เราเพิ่มก๊อกต่อไปที่ 101 และ 501 และเราสามารถสังเกตได้ว่าถึงแม้จะมีสัญญาณรบกวนอยู่เกือบเป็นศูนย์การเปลี่ยนภาพจะลดลงอย่างเห็นได้ชัด (สังเกตความชันที่ด้านข้างของสัญญาณและเปรียบเทียบกับการเปลี่ยนแปลงของผนังอิฐที่เหมาะสมใน ข้อมูลของเรา) การตอบสนองต่อความถี่: จากการตอบสนองต่อความถี่คุณสามารถยืนยันได้ว่าการม้วนออกช้ามากและการลดทอนของแถบหยุดไม่ดี เมื่อพิจารณาการลดทอนแถบหยุดนี้อย่างชัดเจนตัวกรองค่าเฉลี่ยเคลื่อนที่จะไม่สามารถแยกย่านความถี่หนึ่งจากอีกความถี่หนึ่งได้ อย่างที่เราทราบดีว่าประสิทธิภาพที่ดีในโดเมนเวลาทำให้ประสิทธิภาพในโดเมนความถี่ต่ำและในทางกลับกัน ในระยะสั้นค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองความราบเรียบที่ดีเยี่ยม (การทำงานในโดเมนเวลา) แต่เป็นตัวกรองความถี่ต่ำที่ไม่ดี (การดำเนินการในโดเมนความถี่) External Links: หนังสือแนะนำ: Primary Sidebar การใช้ MATLAB ฉันจะทำอย่างไร หาค่าเฉลี่ยเคลื่อนที่ 3 วันของคอลัมน์เฉพาะของเมตริกซ์และต่อค่าเฉลี่ยเคลื่อนที่ไปยังเมตริกซ์นั้นฉันพยายามคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันจากด้านล่างจนถึงด้านบนของเมทริกซ์ ฉันได้ให้รหัสของฉัน: กำหนดเมทริกซ์ต่อไปนี้และหน้ากาก: ฉันได้ลองใช้คำสั่ง conv แต่ฉันได้รับข้อผิดพลาด นี่คือ conv คำสั่งฉันได้พยายามใช้ในคอลัมน์ที่ 2 ของ matrix a: เอาต์พุตฉันต้องการจะได้รับในเมทริกซ์ต่อไปนี้: ถ้าคุณมีคำแนะนำใด ๆ ฉันจะขอบคุณมากมัน ขอขอบคุณสำหรับคอลัมน์ 2 ของ matrix a ฉันคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันดังนี้และใส่ผลลัพธ์ในคอลัมน์ 4 ของ matrix a (เปลี่ยนชื่อเมทริกซ์เป็น 39desiredOutput39 เพื่อแสดงภาพประกอบ) ค่าเฉลี่ย 3 วันเฉลี่ย 17, 14, 11 คือ 14 เฉลี่ย 3 วันจาก 14, 11, 8 คือ 11 เฉลี่ย 3 วันที่ 11, 8, 5 คือ 8 และค่าเฉลี่ย 3 วันของ 8, 5, 2 คือ 5. ไม่มีค่าในแถวล่าง 2 แถวสำหรับคอลัมน์ที่ 4 เนื่องจากการคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันเริ่มต้นที่ด้านล่าง ผลลัพธ์ 39valid39 จะไม่ปรากฏขึ้นจนกว่าอย่างน้อย 17, 14, และ 11. หวังว่านี่จะทำให้เกิดความรู้สึก Aaron Aaron 12 มิถุนายน 13 เวลาโดยทั่วไปแล้วจะช่วยได้ถ้าคุณจะแสดงข้อผิดพลาด ในกรณีนี้คุณกำลังทำผิดพลาด 2 ประการประการแรกต้องแบ่งความสามัคคีเป็นสามส่วน (หรือความยาวของค่าเฉลี่ยเคลื่อนที่) ประการที่สองให้สังเกตขนาดของ c คุณไม่สามารถเพียงพอดีกับ c ใน a. วิธีทั่วไปในการรับค่าเฉลี่ยเคลื่อนที่จะใช้เหมือนกัน: แต่ที่ไม่ได้มีลักษณะเหมือนที่คุณต้องการ คุณจะถูกบังคับให้ใช้สองสามบรรทัด: การใช้ MATLAB ฉันจะหาค่าเฉลี่ยเคลื่อนที่ 3 วันของคอลัมน์เฉพาะของเมทริกซ์ได้อย่างไรและเพิ่มค่าเฉลี่ยเคลื่อนที่ลงในเมตริกซ์ที่ฉันกำลังคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วัน จากด้านล่างจนถึงด้านบนของเมทริกซ์ ฉันได้ให้รหัสของฉัน: กำหนดเมทริกซ์ต่อไปนี้และหน้ากาก: ฉันได้ลองใช้คำสั่ง conv แต่ฉันได้รับข้อผิดพลาด นี่คือ conv คำสั่งฉันได้พยายามใช้ในคอลัมน์ที่ 2 ของ matrix a: เอาต์พุตฉันต้องการจะได้รับในเมทริกซ์ต่อไปนี้: ถ้าคุณมีคำแนะนำใด ๆ ฉันจะขอบคุณมากมัน ขอขอบคุณสำหรับคอลัมน์ 2 ของ matrix a ฉันคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันดังนี้และใส่ผลลัพธ์ในคอลัมน์ 4 ของ matrix a (เปลี่ยนชื่อเมทริกซ์เป็น 39desiredOutput39 เพื่อแสดงภาพประกอบ) ค่าเฉลี่ย 3 วันเฉลี่ย 17, 14, 11 คือ 14 เฉลี่ย 3 วันจาก 14, 11, 8 คือ 11 เฉลี่ย 3 วันที่ 11, 8, 5 คือ 8 และค่าเฉลี่ย 3 วันของ 8, 5, 2 คือ 5. ไม่มีค่าในแถวล่าง 2 แถวสำหรับคอลัมน์ที่ 4 เนื่องจากการคำนวณค่าเฉลี่ยเคลื่อนที่ 3 วันเริ่มต้นที่ด้านล่าง ผลลัพธ์ 39valid39 จะไม่ปรากฏขึ้นจนกว่าอย่างน้อย 17, 14, และ 11. หวังว่านี่จะทำให้เกิดความรู้สึก Aaron Aaron 12 มิถุนายน 13 เวลาโดยทั่วไปแล้วจะช่วยได้ถ้าคุณจะแสดงข้อผิดพลาด ในกรณีนี้คุณกำลังทำผิดพลาด 2 ประการประการแรกต้องแบ่งความสามัคคีเป็นสามส่วน (หรือความยาวของค่าเฉลี่ยเคลื่อนที่) ประการที่สองให้สังเกตขนาดของ c คุณไม่สามารถเพียงพอดีกับ c ใน a. วิธีทั่วไปในการรับค่าเฉลี่ยเคลื่อนที่จะใช้เหมือนกัน: แต่ที่ไม่ได้มีลักษณะเหมือนที่คุณต้องการ แต่คุณต้องถูกบังคับให้ใช้สายคู่:

No comments:

Post a Comment