Tuesday 15 August 2017

การย้าย ค่าเฉลี่ย matlab เรียบ


วิธีง่ายๆ (แบบเฉพาะกิจ) คือการใช้ค่าเฉลี่ยถ่วงน้ำหนัก (ปรับได้โดย alpha) ในแต่ละจุดกับเพื่อนบ้าน: หรือการเปลี่ยนแปลงบางอย่าง ใช่จะซับซ้อนมากขึ้นคุณสามารถ Fourier แปลงข้อมูลของคุณก่อนจากนั้นตัดความถี่สูง มีบางอย่างเช่นนี้ตัดออกสูงสุด 20 ความถี่ ระมัดระวังการตัดออกสมมาตรถ้าการแปลงผกผันไม่เป็นจริงอีกต่อไป คุณจำเป็นต้องเลือกความถี่ตัดที่เหมาะสมสำหรับการทำให้เรียบ นี่คือการกรองแบบง่ายๆ (การกรองช่องในโดเมนความถี่) ดังนั้นคุณสามารถลองลดความถี่ในการสั่งซื้อได้อย่างนุ่มนวลหากการบิดเบือนไม่ได้รับการยอมรับ #: 31567 FFT ไม่ได้เป็นความคิดที่ไม่ดี แต่อาจ overkill นี่. การวิ่งหรือการเคลื่อนที่โดยทั่วไปให้ผลลัพธ์ที่ไม่ดีโดยทั่วไปและควรหลีกเลี่ยงสิ่งอื่นใดนอกจากการบ้านที่ล่าช้า (และเสียงสีขาว) ใช้รหัส Savitzky-Golay (ใน Matlab sgolayfilt (.)) นี้จะให้ผลลัพธ์ที่ดีที่สุดสำหรับสิ่งที่คุณกำลังมองหา - เรียบท้องถิ่นบางส่วนในขณะที่รักษารูปร่างของ curve. What เรียบและฉันจะทำมันฉันมีอาร์เรย์ใน Matlab ซึ่งเป็นสเปกตรัมขนาดของสัญญาณเสียงพูด ความแรงของ 128 จุดของ FFT) ฉันจะราบรื่นนี้โดยใช้ค่าเฉลี่ยเคลื่อนที่จากสิ่งที่ฉันเข้าใจฉันควรใช้ขนาดของหน้าต่างของจำนวนองค์ประกอบหนึ่งให้ใช้ค่าเฉลี่ยและนี่เป็นองค์ประกอบแรกที่ 1 จากนั้นเลื่อนหน้าต่างไปทางขวาโดยองค์ประกอบหนึ่งให้ใช้ค่าเฉลี่ยซึ่งจะกลายเป็นองค์ประกอบที่ 2 และอื่น ๆ เป็นจริงวิธีการทำงานฉันไม่แน่ใจตัวเองตั้งแต่ถ้าฉันว่าในผลสุดท้ายของฉันฉันจะมีน้อยกว่า 128 องค์ประกอบ ดังนั้นมันทำงานอย่างไรและจะช่วยให้เรียบจุดข้อมูลหรือมีวิธีอื่นที่ฉันสามารถทำเรียบข้อมูลที่ถาม 15 ตุลาคม 12 ที่ 6:30 ย้ายจาก stackoverflow 15 ตุลาคม 12 เวลา 14:51 คำถามนี้มาจาก ไซต์สำหรับนักเขียนโปรแกรมมืออาชีพและที่กระตือรือร้น สำหรับสเปกตรัมที่คุณอาจต้องการเฉลี่ยด้วยกัน (ในมิติเวลา) หลายสเปกตรัมแทนที่จะเป็นค่าเฉลี่ยในการวิ่งตามแกนความถี่ของคลื่นเดียวที่มีการตีความ endolith 16 ต. ค. 12 ที่ 1:04 endolith ทั้งสองเป็นเทคนิคที่ถูกต้อง ค่าเฉลี่ยในโดเมนความถี่ (บางครั้งเรียกว่า Danielle Periodogram) จะเหมือนกับการเว้นวรรคในโดเมนเวลา การประมาณค่า periodograms เป็นจำนวนมาก (quotspectraquot) เป็นความพยายามที่จะเลียนแบบค่าเฉลี่ยของวงดนตรีที่ต้องการโดยใช้ระยะเวลาจริง (เรียกว่า Welch Periodogram) ยังเป็นเรื่องของความหมายฉันจะยืนยันว่า quotsmoothingquot เป็น non - causual low - pass กรอง ดูการกรองแบบ Kalman กับ Kalman smoothing, การกรอง Wiener v การให้ความนุ่มนวลของ Wiener ฯลฯ มีความแตกต่างอย่างไม่มีข้อยกเว้นและขึ้นอยู่กับการใช้งาน ndash Bryan Dec 12 12 at 19:18 การเรียบสามารถทำได้หลายวิธี แต่ในแง่พื้นฐานและทั่วไปหมายความว่าคุณได้ออกสัญญาณโดยการผสมองค์ประกอบกับเพื่อนบ้านของพวกเขา คุณสเปรย์สัญญาณเล็กน้อยเพื่อกำจัดเสียงรบกวน ตัวอย่างเช่นเทคนิคการเรียบง่ายมากคือการคำนวณองค์ประกอบของสัญญาณ f (t) ทั้งหมดเป็น 0.8 ของค่าเดิมบวก 0.1 ของแต่ละประเทศเพื่อนบ้าน: โปรดทราบว่าปัจจัยการคูณหรือน้ำหนักเพิ่มขึ้นเท่าไหร่ ดังนั้นถ้าสัญญาณมีค่าคงที่อย่างสม่ำเสมอการปรับให้ราบเรียบไม่ได้เปลี่ยนไปเท่าไร แต่ถ้าสัญญาณมีการเปลี่ยนแปลงที่ฉับพลันฉับพลันแล้วการมีส่วนร่วมจากเพื่อนบ้านจะช่วยให้ชัดเจนขึ้นเสียงที่บิต น้ำหนักที่คุณใช้ในฟังก์ชันการคำนวณซ้ำนี้สามารถเรียกได้ว่าเป็นเคอร์เนล ฟังก์ชันแบบเกาส์เดียวหรือเคอร์เนลพื้นฐานอื่น ๆ ควรทำในกรณีของคุณ ตัวอย่างที่ดีของการเรียบ: ด้านบน: สัญญาณ unsmoothed ด้านล่าง: สัญญาณเรียบตัวอย่างของเมล็ดไม่กี่: นอกเหนือจากคำตอบที่ดีของ Junuxx ฉันต้องการจะลดลงไม่กี่บันทึก Smoothing เกี่ยวข้องกับการกรอง (บทความเกี่ยวกับ Wikipedia ค่อนข้างคลุมเครือ) - คุณควรเลือกคุณสมบัติที่เรียบขึ้นอยู่กับคุณสมบัติของมัน หนึ่งในรายการโปรดของฉันคือตัวกรองมัธยฐาน นี่เป็นตัวอย่างของตัวกรองที่ไม่ใช่เชิงเส้น มันมีคุณสมบัติที่น่าสนใจบางอย่างจะรักษาขอบและมีประสิทธิภาพมากภายใต้เสียงขนาดใหญ่ ถ้าคุณมีรูปแบบว่าสัญญาณของคุณมีลักษณะเป็นตัวกรองคาลมานจะคุ้มค่าอย่างไร การปรับให้เรียบของมันคือการประมาณความเป็นไปได้สูงสุดของสัญญาณ Bayesian จากการสังเกตการณ์ ตอบตุลาคม 15 12 เวลา 11:07 น. 1 สำหรับการกล่าวขวัญตัวกรองคาลมาน Diego Dec 13 12 at 18:48 Smoothing หมายถึงการใช้ข้อมูลจากตัวอย่างเพื่อนบ้านเพื่อเปลี่ยนความสัมพันธ์ระหว่างตัวอย่างเพื่อนบ้าน สำหรับเวกเตอร์ที่ จำกัด ในตอนท้ายไม่มีข้อมูลเพื่อนบ้านอยู่ข้างใดข้างหนึ่ง ตัวเลือกของคุณคือ: ไม่เรียบกรองปลายรับเวกเตอร์เรียบที่เรียบผลให้ข้อมูลขึ้นและราบรื่นกับที่ (ขึ้นอยู่กับความถูกต้องความเป็นประโยชน์ของการคาดการณ์ใด ๆ ออกปลาย) หรืออาจจะใช้เมล็ดเรียบที่แตกต่างกันอสมมาตรที่ปลาย (ซึ่งสิ้นสุดขึ้น ลดเนื้อหาข้อมูลลงในสัญญาณต่อไป) ตอบวันพุธที่ 15 ตุลาคมเวลา 19:44 น. อื่น ๆ ได้กล่าวถึงวิธีที่คุณทำเรียบ, Id ต้องการพูดถึงว่าทำไมเรียบทำงาน ถ้าคุณทำอย่างถูกต้องจะทำให้สัญญาณของคุณมีขนาดเล็กลงจะแตกต่างกันไปเล็กน้อยจากตัวอย่างหนึ่งไปยังอีกตัวอย่างหนึ่ง (จุดเวลาตัวอย่างพิกเซล ฯลฯ ) และคาดว่าจะมีลักษณะเรียบโดยรวม กล่าวคือสัญญาณของคุณมีความถี่สูงเพียงเล็กน้อยนั่นคือส่วนประกอบสัญญาณที่แตกต่างกันในอัตราที่ใกล้เคียงกับอัตราการสุ่มตัวอย่างของคุณ แต่การวัดมักได้รับความเสียหายจากเสียงรบกวน ในการประมาณครั้งแรกเรามักพิจารณาเสียงตามการกระจายแบบ Gaussian ด้วยค่าเฉลี่ยศูนย์และส่วนเบี่ยงเบนมาตรฐานบางอย่างที่เพิ่มเพียงด้านบนของสัญญาณ เพื่อลดสัญญาณรบกวนในสัญญาณของเราเรามักทำสมมติฐานที่สี่ต่อไปนี้: สัญญาณรบกวนเป็นแบบสุ่มไม่มีความสัมพันธ์ระหว่างกลุ่มตัวอย่างมีค่าเฉลี่ยเป็นศูนย์และสัญญาณมีขนาดใหญ่เกินไป ด้วยสมมติฐานเหล่านี้เราสามารถใช้ตัวกรองเฉลี่ยแบบเลื่อน พิจารณาตัวอย่างสามตัวอย่างติดต่อกัน เนื่องจากสัญญาณมีขนาดใหญ่ oversampled สัญญาณพื้นฐานสามารถพิจารณาเพื่อเปลี่ยนเชิงเส้นซึ่งหมายความว่าค่าเฉลี่ยของสัญญาณในสามตัวอย่างจะเท่ากับสัญญาณจริงที่ตัวอย่างตรงกลาง ในทางตรงกันข้ามเสียงมีค่าเป็นศูนย์และไม่มีความสัมพันธ์กันซึ่งหมายความว่าค่าเฉลี่ยของค่าเฉลี่ยควรมีค่าเป็นศูนย์ ดังนั้นเราจึงสามารถใช้ตัวกรองแบบเลื่อนเฉลี่ยสามตัวอย่างซึ่งเราจะแทนที่แต่ละตัวอย่างด้วยค่าเฉลี่ยระหว่างตัวเองกับเพื่อนบ้านสองแห่งที่อยู่ติดกัน แน่นอนยิ่งเราใหญ่หน้าต่างมากเท่าใดเสียงจะเฉลี่ยออกไปเป็นศูนย์มากขึ้น แต่สมมติฐานของเราเกี่ยวกับความเป็นเส้นตรงของสัญญาณที่แท้จริงจะน้อยลง ดังนั้นเราจึงต้องทำการตัดจำหน่าย วิธีหนึ่งในการพยายามให้ได้สิ่งที่ดีที่สุดของทั้งสองโลกคือการใช้ค่าเฉลี่ยถ่วงน้ำหนักซึ่งเราจะให้น้ำหนักตัวอย่างน้อยกว่าเพื่อให้เราได้รับผลกระทบจากเสียงรบกวนโดยเฉลี่ยในช่วงที่ใหญ่ขึ้นในขณะที่ไม่ได้ให้ความสำคัญกับสัญญาณที่แท้จริงมากเกินไปซึ่งมันเบี่ยงเบนไปจากความเป็นเส้นตรงของเรา การสันนิษฐาน วิธีที่คุณควรจะใส่น้ำหนักขึ้นอยู่กับเสียงสัญญาณและประสิทธิภาพในการคำนวณและแน่นอนการตัดจำหน่ายระหว่างการกำจัดเสียงรบกวนและตัดเป็นสัญญาณ โปรดทราบว่าในช่วงไม่กี่ปีที่ผ่านมามีงานทำมากมายเพื่อให้เราสามารถผ่อนคลายข้อสมมติฐานทั้งสี่ตัวอย่างเช่นโดยการออกแบบรูปแบบการปรับให้ราบเรียบกับหน้าต่างตัวกรองตัวแปร (การแพร่กระจายแบบ anisotropic) หรือแผนการที่ไม่ใช้หน้าต่างจริงๆ (nonlocal หมายถึง) ตอบ 27 ธ. ค. 12 เวลา 15: 10 ข้อมูลรหัสและข้อมูลในหน้านี้คือการสนับสนุนบทความ "The Black Art of Smoothing" ที่เผยแพร่ในเทคโนโลยีแอมป์อัตโนมัติ โดย David I. Wilson โค้ดที่นำเสนอในหน้านี้ประกอบด้วยอัลกอริทึมสำหรับ: การกรองแอ็ตทริบิวต์การกรองเฉลี่ย Savitzky-Golay Loess (การถดถอยถ่วงน้ำหนักในท้องถิ่น) การกรองแอดเลอร์เคอร์เนอร์ฟิลเตอร์ Hodrick-Prescott ในสภาพแวดล้อมการพัฒนา Matlab และ Scicos ในทั้งสองกรณีไม่มีกล่องเครื่องมือพิเศษ Matlab เป็นผลิตภัณฑ์เชิงพาณิชย์ แต่ Scilab เป็นเทียบเท่า freeware หมายเหตุ: รหัสที่นี่นำเสนอโควต้ามีไว้ซึ่งไม่มีการรับประกันหรือโดยนัย หากคุณสนใจที่จะลองใช้การดำเนินการเรียบกับข้อมูลของคุณเองทำต่อไปนี้: ถ้าคุณมี Matlab (ผลิตภัณฑ์เชิงพาณิชย์) ให้ดาวน์โหลดและคลายซิปไฟล์ Matlab smoothing เรียกใช้ไฟล์สคริปต์ smootherdemo. m คุณควรเห็นแปลงบางอย่างเช่นนี้ซึ่งคล้ายกับตัวเลขในบทความที่เผยแพร่ ถ้าคุณต้องการใช้ข้อมูลของคุณเองจากนั้นวางคู่ (เวลาข้อมูล) ในสเปรดชีต Excel และแก้ไขไฟล์ smootherdemo เพื่ออ่านแผ่นงานกระจาย Excel ของคุณเอง คุณจะต้องแก้ไขไฟล์สคริปต์และอาจปรับพารามิเตอร์การทำให้เรียบต่างๆ หรือถ้าคุณต้องการใช้ Scilab ฟรีแวร์: ดาวน์โหลดและติดตั้ง Scilab (ประมาณ 13 MB) คุณมีตัวเลือกสำหรับ Windows, Linux หรือ Mac ดาวน์โหลดแฟ้ม Scilab ที่ราบรื่นขึ้นและแกะกล่องในไดเร็กทอรีที่สะดวกบางตัวดำเนินการไฟล์ smootherdemo. sci Matlab เป็นซอฟต์แวร์ทางวิทยาศาสตร์เชิงพาณิชย์และสภาพแวดล้อมการสร้างต้นแบบที่เป็นที่นิยมสำหรับวิศวกรหลายคน Matlab จำหน่ายในประเทศนิวซีแลนด์โดย Hoare Research Software ดาวน์โหลดและเปิดเครื่องรูดไฟล์ Matlab เรียบลงในไดเรกทอรีการทำงานของคุณและเรียกใช้ไฟล์สคริปต์ smootherdemo. m Matlab Scilab เป็นชุดซอฟต์แวร์ทางวิทยาศาสตร์ฟรีที่คล้ายกัน แต่ไม่สามารถใช้ได้กับ Matlab Scilab สามารถใช้ได้สำหรับ Linux, Windows และ Mac และสามารถดาวน์โหลดได้จากที่นี่ (ประมาณ 13 MB) ปัจจุบันได้รับการพัฒนาโดยนักวิจัยจาก INRIA และ ENPC ในประเทศฝรั่งเศสและเช่น Matlab รวมถึงกล่องเครื่องมือจำนวนมากและเครื่องจำลองภาพจำลองแบบบล็อกที่คล้ายกับ Simulink ที่เรียกว่า Scicos แฟ้มข้อมูลต่อไปนี้ถูกใช้ในบทความ พวกเขาจะได้รับในรูปแบบ Excel และข้อความ ascii ตรงกับส่วนหัวของแถวหนึ่งใช้ convolution เพื่อข้อมูลราบรื่นกับค่าเฉลี่ยเคลื่อนที่ใน MATLAB (โพสต์ แต่แรกใน Dougs MATLAB Video Tutorials บล็อก) ฉันสอนแนะนำชั้น MATLAB สำหรับการจ้างใหม่ทั้งหมดใน กลุ่มสนับสนุนด้านเทคนิคที่ MathWorks หนึ่งในผู้เข้าร่วมประชุมต้องการทราบวิธีการคำนวณค่าเฉลี่ยเคลื่อนที่ใน MATLAB การทำเช่นนี้อาจเป็นประโยชน์สำหรับการกรองหรือทำให้ข้อมูลมีเสียงดัง ฉันตระหนักฉันไม่เคยครอบคลุมที่ในบล็อกดังนั้นที่นี่เราไปฉันแสดงวิธีการทำเช่นนี้ตั้งแต่เริ่มต้นใช้ conv. หากคุณมี Curve Fitting Toolbox คุณอาจต้องการตรวจสอบอย่างราบรื่น ซึ่งจะเพิ่มวิธีการปรับความคล่องตัวของนักเพาะกาย เลือกประเทศของคุณ

No comments:

Post a Comment