Tuesday, 4 July 2017

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


ฉันจะทำอะไรให้เรียบและฉันจะทำอย่างไรฉันมีอาร์เรย์ใน 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 ฉันจำเป็นต้องทดสอบเทคนิคการประมวลผลภาพขั้นพื้นฐานบางอย่างใน Matlab ฉันจำเป็นต้องทดสอบและเปรียบเทียบตัวกรองสองประเภท: ตัวกรองเฉลี่ยและตัวกรองมัธยฐาน เพื่อให้ภาพเรียบโดยใช้การกรองค่ามัธยฐานจะมีฟังก์ชันที่ยอดเยี่ยมอย่าง medfilt2 จากกล่องเครื่องมือประมวลผลภาพ มีฟังก์ชั่นที่คล้ายกันสำหรับตัวกรองหรือวิธีการใช้ฟังก์ชัน filter2 เพื่อสร้างตัวกรองค่าเฉลี่ยสิ่งหนึ่งที่สำคัญที่สุดสำหรับฉันคือการตั้งค่ารัศมีของตัวกรอง นั่นคือ สำหรับตัวกรองมัธยฐานถ้าต้องการรัศมี 3 x 3 (หน้ากาก) ฉันเพียงแค่ใช้ฉันต้องการบรรลุสิ่งที่คล้ายกันสำหรับตัวกรองค่าเฉลี่ย ถาม 15 พ. ย. 09 เวลา 16:12 user8264: ตอนนี้ฉันไม่สามารถเข้าถึงหนังสือได้ แต่โดยปกติเคอร์เนล Gaussian จะให้ผลที่นุ่มนวลและมีแนวโน้มที่จะรักษาขอบได้ดีกว่าตัวกรองค่าเฉลี่ยที่มีขนาดเท่ากัน คิดถึงการตอบสนองความถี่ของตัวกรอง Lowpass ในทั้งสองกรณี นี่คือหน้าที่มีคำอธิบายที่ดี: homepages. inf. ed. ac. ukrbfHIPR2gsmooth. htm ndash Amro 14 ส. ค. 14 เวลา 9: 48Moving Average Filter (MA filter) กำลังโหลด ตัวกรองค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองแบบ 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 และเราสามารถสังเกตได้ว่าถึงแม้จะมีสัญญาณรบกวนอยู่เกือบเป็นศูนย์การเปลี่ยนภาพจะลดลงอย่างเห็นได้ชัด (สังเกตความชันที่ด้านข้างของสัญญาณและเปรียบเทียบกับการเปลี่ยนแปลงของผนังอิฐที่เหมาะสมใน ข้อมูลของเรา) การตอบสนองต่อความถี่: จากการตอบสนองต่อความถี่คุณสามารถยืนยันได้ว่าการม้วนออกช้ามากและการลดทอนของแถบหยุดไม่ดี เมื่อพิจารณาการลดทอนแถบหยุดนี้อย่างชัดเจนตัวกรองค่าเฉลี่ยเคลื่อนที่จะไม่สามารถแยกย่านความถี่หนึ่งจากอีกความถี่หนึ่งได้ อย่างที่เราทราบดีว่าประสิทธิภาพที่ดีในโดเมนเวลาทำให้ประสิทธิภาพในโดเมนความถี่ต่ำและในทางกลับกัน ในระยะสั้นค่าเฉลี่ยเคลื่อนที่เป็นตัวกรองความราบเรียบที่ดีเยี่ยม (การทำงานในโดเมนเวลา) แต่เป็นตัวกรองความถี่ต่ำแบบ low-pass ที่ไม่ดี (การทำงานในโดเมนความถี่) External Links: หนังสือแนะนำ: Primary Sidebar ฉันจำเป็นต้องทดสอบพื้นฐาน เทคนิคการประมวลผลภาพใน Matlab ฉันจำเป็นต้องทดสอบและเปรียบเทียบตัวกรองสองประเภท: ตัวกรองเฉลี่ยและตัวกรองมัธยฐาน เพื่อให้ภาพเรียบโดยใช้การกรองค่ามัธยฐานจะมีฟังก์ชันที่ยอดเยี่ยมอย่าง medfilt2 จากกล่องเครื่องมือการประมวลผลภาพ มีฟังก์ชั่นที่คล้ายกันสำหรับตัวกรองหรือวิธีการใช้ฟังก์ชัน filter2 เพื่อสร้างตัวกรองค่าเฉลี่ยสิ่งหนึ่งที่สำคัญที่สุดสำหรับฉันคือการตั้งค่ารัศมีของตัวกรอง นั่นคือ สำหรับตัวกรองมัธยฐานถ้าต้องการรัศมี 3 x 3 (หน้ากาก) ฉันเพียงแค่ใช้ฉันต้องการบรรลุสิ่งที่คล้ายกันสำหรับตัวกรองค่าเฉลี่ย ถาม 15 พ. ย. 09 เวลา 16:12 user8264: ตอนนี้ฉันไม่สามารถเข้าถึงหนังสือได้ แต่โดยปกติเคอร์เนล Gaussian จะให้ผลที่นุ่มนวลและมีแนวโน้มที่จะรักษาขอบได้ดีกว่าตัวกรองค่าเฉลี่ยที่มีขนาดเท่ากัน คิดถึงการตอบสนองความถี่ของตัวกรอง Lowpass ในทั้งสองกรณี นี่คือหน้าเว็บที่มีคำอธิบายที่ดี: homepages. inf. ed. ac. ukrbfHIPR2gsmooth. htm ndash Amro 1 ส. ค. 14 เวลา 9:48 น.

No comments:

Post a Comment