ฉันกำลังทำงานเกี่ยวกับหุ่นยนต์เคลื่อนที่ที่ควบคุมผ่านตัวรับสัญญาณแบบไร้สาย 2 4 GHz เชื่อมต่อกับ Arduino Uno ซึ่งทำหน้าที่เป็นตัวควบคุมหลักช่องรับสัญญาณที่สำคัญที่สุดและหลัก ๆ ที่มาจากเครื่องรับสัญญาณจะสร้างสัญญาณรบกวนมากซึ่งจะนำไปสู่ การเปลี่ยนแปลงเล็กน้อยในการส่งออกของ actuators แม้ว่าเหล่านี้ไม่จำเป็นต้องฉันกำลังมองหาห้องสมุดที่สามารถดำเนินการราบเรียบที่มีประสิทธิภาพมีห้องสมุดสัญญาณใด ๆ ที่ราบรื่นสำหรับ Arduino Uno. asked 16 ก. พ. 14 ที่ 13 57. ฉันคิดว่าฉันเห็น มีตัววัดค่ามัธยฐานตัวกรองที่ดีกว่าในการกำจัด spikes เสียงตัวอย่างเดียวมากกว่าตัวกรองเชิงเส้นใด ๆ ดีกว่าตัวกรองความถี่ต่ำใด ๆ ค่าเฉลี่ยเคลื่อนที่เฉลี่ยถ่วงน้ำหนัก ฯลฯ ในแง่ ของเวลาในการตอบสนองและความสามารถในการละเว้นข้อผิดพลาดการขัดขวางเสียงตัวอย่างเดียวเช่นในความเป็นจริงหลายห้องสมุดเรียบเรียงสัญญาณสำหรับ Arduino ซึ่งหลายแห่งรวมถึงค่ามัธยฐาน filter. signal เรียบห้องสมุด at. signal ลดความซับซ้อนของห้องสมุดที่ github. Would สิ่งที่ต้องการทำงานนี้ในหุ่นยนต์ของคุณมัธยฐาน -3 ต้องใช้พลังงาน CPU น้อยมากและรวดเร็วดังนั้นคุณสามารถกรองนี้แบบดิจิทัลโดยใช้ตัวกรองผ่านต่ำเปลี่ยน 0 99 เพื่อเปลี่ยนการตัด ความถี่ที่ใกล้เคียงกับ 1 0 คือความถี่ต่ำกว่าการแสดงออกที่แท้จริงของค่านั้นคือ exp -2 pi f fs โดยที่ f คือความถี่ cutoff ที่คุณต้องการและ fs คือความถี่ที่ข้อมูลจะถูกสุ่มตัวอย่างที่อีกหนึ่งชนิดของตัวกรองแบบดิจิตอลคือตัวกรองเหตุการณ์ ทำงานได้ดีกับข้อมูลที่มีค่าผิดปกติเช่น 9,9,8,10,9,25,9 ตัวกรองเหตุการณ์จะส่งกลับค่าที่พบบ่อยที่สุดสถิตินี้คือโหมดค่าเฉลี่ยสถิติเช่น Mean, Mode ฯลฯ สามารถคำนวณได้โดยใช้ Arduino Average Library. An ตัวอย่างที่นำมาจากหน้าห้องสมุด Arduino อ้างถึงข้อมูล Accelerometer การกรองด้วย Matlab และ Arduino 15 เมษายน 2016 โดย Ryan Morrison การต่ออายุกับการสำรวจของ MATLAB Arduino interfacing บทความนี้จะตรวจสอบสองวิธีในการลบเสียงจากข้อมูลเซ็นเซอร์ที่ชี้แจงการย้าย Avera GE และตัวกรองค่าเฉลี่ยเคลื่อนที่ง่ายเป็นปูชนียบุคคลนี้การแนะนำการสื่อสารแบบอนุกรมและข้อมูลการวางแผนกับ Arduino และ MATLAB สามารถพบได้ในโพสต์ก่อนหน้าของฉันทั้งหมดรหัสที่ใช้ในบทความเหล่านี้สามารถดูได้ที่ repo GitHub ของฉันอีกครั้งฉันใช้ วิดีโอการสอนจากการอ้างอิงในขณะที่การเพิ่มการปรับปรุงคุณลักษณะของฉันเองไปตลอดทางค่าเฉลี่ย EMA ที่มีการคำนวณค่า Exponential จะกำหนดปัจจัยการถ่วงน้ำหนักโดยข้อมูลล่าสุดที่มีน้ำหนักมากที่สุดจะคำนวณโดยสมการต่อไปนี้ ก่อนหน้านี้เครื่องวัดความเร่งของ LSM303DLHC เชื่อมต่อกับ Arduino Uno การสื่อสารแบบอนุกรมระหว่าง Arduino และ MATLAB ได้รับการจัดตั้งขึ้นและ MATLAB วางแผนแปลงความเร่งแรงโน้มถ่วงโค้ด MATLAB ก่อนหน้านี้มีการปรับเปลี่ยนเพื่อคำนวณ EMA และแสดงผลด้านดิบและด้านข้าง ข้อมูลที่กรองข้อมูลผลลัพธ์ที่ได้จะแสดงให้เห็นด้านล่างนี้จะสังเกตเห็นความแตกต่างระหว่างข้อมูลดิบและข้อมูลที่กรองเนื่องจากตัวเลื่อนจะเปลี่ยนค่า alpha valueparison ของดิบซ้ายและ E MA-filtered right acceleration vectors ในภาพด้านบน accelerometer จะจัดขึ้นในพื้นที่ที่มี z-vector ตั้งฉากกับแผ่นดินการเคลื่อนไหวและการสั่นสะเทือนจะถูกนำไปใช้กับ accelerometer เพื่อแสดงการตอบสนองต่อการเปลี่ยนแปลงที่เกิดขึ้นอย่างฉับพลันในการวางแนวเมื่อเปรียบเทียบข้อมูลดิบที่ด้านซ้าย ด้วยข้อมูลที่ผ่านการกรองทางด้านขวาจะมีการสังเกตการณ์ดังต่อไปนี้ค่าอัลฟาที่กำลังใกล้ถึง 1 ผลในการกรองพล็อตที่กรองไว้จะเคลื่อนที่น้อยมากในการตอบสนองต่อการเคลื่อนไหวค่าอัลฟ่าใกล้ 0 ผลในการกรองต่ำมีความแตกต่างกันเล็กน้อยระหว่างดิบและ ค่าที่กรองประมาณ 0 5 ให้ระดับที่เหมาะสมที่สุดของการกรองพล็อตกรองเป็นอิสระจากความกระวนกระวายใจผิดปกติและตอบสนองต่อการเคลื่อนไหวของค่าเฉลี่ยเคลื่อนที่ SMA. As ชื่อหมายถึงตัวกรองนี้มีค่าเฉลี่ยที่เรียบง่ายไปยังข้อมูลเซ็นเซอร์ที่เข้ามาด้วยซ้ำแต่ละครั้ง ของลูปรหัสค่าที่เก่าแก่ที่สุดในชุดข้อมูลจะถูกลบออกและแทนที่ด้วยการอ่านครั้งล่าสุดและคำนวณค่าเฉลี่ยใหม่ SMA จะได้รับโดย followin g ที่ระดับของการลดเสียงรบกวนจะถูกกำหนดโดย n จำนวนของ taps ขนาดของการเร่งความเร็วของแกน xy z จะถูกมองเห็นในแปลง 2D โดยใช้ MATLAB ข้อมูลทั้งแบบดิบและแบบกรองจะถูกนำเสนอและใช้แถบเลื่อนเพื่อปรับจำนวน ของการกรองจำนวนของการแตะที่ด้านบนและ SMA ที่กรองด้วยอัตราการเร่งความเร็ว xyz ด้านล่าง accelerometer ถูกจัดการในลักษณะเดียวกับตัวกรอง EMA เพื่อสรุปผลกระทบของตัวกรอง SMA Zero taps ไม่มีการกรองการอ่านค่าความเร่งดิบเผยให้เห็นความไวสูงเพื่อ ข้อผิดพลาดเล็กน้อย ten ก๊อกการกรองสูงเคลื่อนไหว accelerometer แข็งแรงเป็นที่มองไม่เห็นในผลการกรองฟิวด์ taps กรองการกระวนกระวายใจที่ดีที่สุดคือการขจัดผลการกรองยังสะท้อนให้เห็นถึงการเคลื่อนไหวที่มีขนาดใหญ่ตอนนี้ฉันมีความสามารถพอสมควรกับการใช้ MATLAB สำหรับลักษณะตัวรับสัญญาณและจะใช้ในโครงการในอนาคต สิ่งที่ต้องคำนึงถึงในทันทีคือการประยุกต์ใช้ข้อกำหนดนี้ในการสังเกตการณ์เกณฑ์เมื่อใช้เครื่องวัดความเร่งในหุ่นยนต์อัตโนมัติ ตัวอย่างเช่นการปรับปรุงการตรวจจับผลกระทบโดยการกรองการกระวนกระวายใจผิดพลาดที่นำมาใช้โดยการสั่นสะเทือนของร่างกายกรองต่ำเหล่านี้เป็นส่วนใหญ่บันทึกมันจะไม่สมบูรณ์ในแง่ใด ๆ มันมีอยู่เพื่อให้มีเศษข้อมูลที่เป็นประโยชน์ชี้แจงชั่งน้ำหนัก ค่าเฉลี่ยเคลื่อนที่ EWMA เป็นชื่อสำหรับสิ่งที่น่าจะเป็นที่ง่ายที่สุดในยุคดิจิตอลที่เกิดขึ้นในโดเมนเวลาของ lowpass แรกที่สั่งซื้อข้อมูลที่ไม่ต่อเนื่องตัวกรองนี้จะราบเรียบโดยใช้ค่าเฉลี่ยของท้องถิ่นที่เคลื่อนที่ซึ่งจะทำให้ผู้ติดตามที่ซบเซาของสัญญาณเข้าอย่างตรงไปตรงมา, มันจะตอบสนองช้าเพื่อการเปลี่ยนแปลงอย่างรวดเร็วเนื้อหาความถี่สูงในขณะที่ยังคงตามแนวโน้มโดยรวมของสัญญาณเนื้อหาความถี่ต่ำมันถูกชั่งน้ำหนักโดยตัวแปรเห็นเพื่อให้สามารถเปลี่ยนแปลงความไวในการใช้งานที่ตัวอย่างที่ปกติ ช่วงเวลาเช่นเสียงที่คุณสามารถเชื่อมต่อกับเนื้อหาความถี่ได้ในกรณีเหล่านี้คุณมักต้องการคำนวณชุดเอาต์พุตที่ผ่านการกรองสำหรับชุดข้อมูลอินพุตโดยลูปผ่านรายการที่ทำอะไร l Ike. or แบบฟอร์มหลังอาจรู้สึกว่าข้อมูลที่ใช้งานง่ายมากขึ้นการเปลี่ยนแปลงในการส่งออกที่กรองเป็นสัดส่วนกับปริมาณของการเปลี่ยนแปลงและชั่งน้ำหนักตามความแรงของตัวกรองอาจช่วยพิจารณาว่าการใช้ผลลัพธ์ที่ผ่านการกรองล่าสุดช่วยให้ระบบมีความเฉื่อย A มีขนาดเล็กกว่าขนาดใหญ่ 1 อันในอดีตก็ทำให้มีขนาดใหญ่กว่า RC หมายถึงเอาท์พุทจะปรับเฉื่อยมากขึ้นและควรมีเสียงน้อยลงเนื่องจากความถี่ cutoff ต่ำกว่าการตรวจสอบขนาดใหญ่ 1 ตัวเล็กกว่า RC หมายความว่าเอาท์พุทจะปรับเร็วขึ้นมีความเฉื่อยน้อยลง แต่จะมีความไวต่อสัญญาณรบกวนมากขึ้นเนื่องจากความถี่ cutoff สูงกว่าการตรวจสอบเนื่องจากการคำนวณเป็นแบบท้องถิ่นกรณีที่คุณต้องการค่าล่าสุดสามารถหลีกเลี่ยงการจัดเก็บอาร์เรย์ที่มีขนาดใหญ่โดยการทำดังต่อไปนี้สำหรับตัวอย่างใหม่ ๆ แต่ละครั้งมักเป็นพวงของเวลาใน แถวเพื่อให้แน่ใจว่าเราปรับเพียงพอในกรณีของการสุ่มตัวอย่างที่ไม่สม่ำเสมอเป็นเรื่องที่เกี่ยวข้องกับความเร็วของการปรับตัวมากกว่าเนื้อหาความถี่มันยังคงมีความเกี่ยวข้อง แต่ข้อสังเกตเกี่ยวกับความถี่เนื้อหาใช้อย่างเคร่งครัดน้อย คุณมักต้องการใช้อาร์เรย์หน่วยความจำเป็นลอย - แม้ว่าคุณจะกลับ ints - เพื่อหลีกเลี่ยงปัญหาที่เกิดจากข้อผิดพลาดในการปัดเศษปัญหาส่วนใหญ่เมื่ออัลฟาแตกต่างตัวคูณลอยน้อยกว่า 1 จะกลายเป็น 0 ในหล่อ truncatng เพื่อ จำนวนเต็มตัวอย่างเช่นเมื่อ alpha เป็น 0 01 ความแตกต่างของสัญญาณที่มีขนาดเล็กกว่า 100 จะทำให้การปรับค่าเป็น 0 โดยการตัดทอนจำนวนเต็มดังนั้นตัวกรองจะไม่ปรับค่า ADC ตามจริงดังนั้น OLMA จึงมีการแทนคำในรูปแบบนี้เนื่องจากแต่ละแบบใหม่ กรองข้อมูลอย่างมีประสิทธิภาพใช้ค่าทั้งหมดก่อนที่จะมีและมีประสิทธิภาพด้วยการสลายตัวแบบ exponentially น้ำหนักดูลิงก์ในวิกิพีเดียสำหรับการอภิปรายเพิ่มเติมตัวอย่างเชิงกราฟภาพจาก arduinoscope - กราฟที่เคลื่อนที่ด้วยตัวอย่างใหม่ล่าสุดที่ด้านซ้ายสัญญาณดิบอยู่ด้านบน เป็นเพียงไม่กี่วินาทีของการสุ่มตัวอย่าง ADC จากขาลอยด้วยนิ้วสัมผัสทุกขณะนี้แล้วคนอื่น ๆ ที่มี lowpassed รุ่นของมันที่กำลังเพิ่มขึ้นบางสิ่งบางอย่างที่ควรทราบเกี่ยวกับ it. the ทำให้เกิดการปรับเปลี่ยนค่าที่ช้าลงเพื่อตอบสนองแบบขั้นตอนเหมือนกับการตอบสนองแบบขั้นตอนเหมือนกับตัวเก็บประจุที่ชาร์จไฟได้อย่างรวดเร็วแล้วลื่นไหลและช้าลงเพราะสัดส่วนของความแตกต่างของการเบี่ยงเบนของ spikes แบบแท่งเดียวที่รวดเร็วเหลือเพียงอย่างเดียว ยากแม้ว่าการตัดสินนั้นขึ้นอยู่กับความเร็วในการสุ่มตัวอย่างและความถี่ของเนื้อหาที่ปรับให้เหมาะสมกับความต้องการของคุณภาพที่สองการสั่นแบบเต็มช่วงออกมาไม่มากนักเนื่องจากการกรอง แต่ส่วนใหญ่เป็นเพราะตัวอย่างวัตถุดิบส่วนใหญ่รอบ ๆ มีอิ่มตัวที่ปลายทั้งสองของช่วง ADC s. On, และความถี่ cutoff ส่วนบทความนี้เป็น stub อาจกองบันทึกครึ่งเรียงลำดับไม่ได้ตรวจสอบอย่างดีจึงอาจมีบิตไม่ถูกต้องรู้สึกอิสระที่จะละเว้นแก้ไข หรือบอก me. is ปัจจัยการทำให้ราบรื่นในทางทฤษฎีระหว่าง 0 0 และ 1 0 ในทางปฏิบัติมักจะ 0 2 และมักจะ 0 1 หรือเล็กเพราะเหนือที่คุณแทบจะไม่ทำใด ๆ กรองใน DSP มักจะใช้ on. t ประจำ W ritten dt ช่วงเวลาระหว่างตัวอย่างการทดแทนการสุ่มตัวอย่าง rate. a การเลือก tau เวลาคงที่ aka RC หลังดูเหมือนว่าการอ้างอิงไปยังวงจร resistor-plus-capacitor ซึ่งยังไม่ lowpass โดยเฉพาะ RC ให้เวลาที่ค่าตัวเก็บประจุ ถ้าคุณเลือกใกล้ RC dt คุณจะได้รับ alphas สูงกว่า 5 และความถี่ตัดที่อยู่ใกล้ความถี่ Nyquist เกิดขึ้นที่ 0 666 ตรวจสอบซึ่งกรองออกน้อยมากที่จะทำให้ตัวกรองเป็นธรรมไม่มีจุดหมาย ในทางปฏิบัติคุณมักจะเลือก RC ซึ่งมีอย่างน้อยสองสามตัวของ dt ซึ่งหมายความว่าอยู่ในลำดับของ 0 1 หรือน้อยกว่าเมื่อการสุ่มตัวอย่างเกิดขึ้นในช่วงเวลาที่เข้มงวดเช่นเสียงความสัมพันธ์ของ RC กับความถี่ถูกกำหนดไว้อย่างชัดเจน ตัวอย่างเช่นเมื่อ RC 0 002sec การตัดเฉือนอยู่ที่การสุ่มตัวอย่าง 200Hz, 2000Hz และ 20000Hz ซึ่งจะทำให้ alphas จาก 0 7, 0 2 และ 0 024 ตามลำดับ ณ วันที่ ความเร็วในการสุ่มตัวอย่างเดียวกันอัลฟาต่ำคือการปรับตัวช้าลงกับค่าใหม่และต่ำกว่าการตรวจสอบความถี่ cutoff ที่มีประสิทธิภาพสำหรับ lowpass. at ความถี่ต่ำครั้งแรกการตอบสนองเกือบแบนอย่างสมบูรณ์แบนด์วิดธ์นี้ความถี่ตอบสนองคือ - 3dB เริ่มลดลงในช่วงโค้งงอที่นุ่มนวลขึ้นความถี่สูงจะลดลงที่ 6dB ทศวรรษ 20dB ระดับความสูง 20dB รูปแบบที่สูงขึ้นเพื่อลดลงอย่างรวดเร็วและมีหัวเข่าที่แข็งขึ้นหมายเหตุว่าจะมีการเปลี่ยนเฟสซึ่งล่าช้าหลังการป้อนข้อมูล ขึ้นอยู่กับความถี่ที่จะเริ่มต้นก่อนหน้านี้กว่า falloff ความกว้างและจะเป็น -45 องศาที่ความถี่การตรวจสอบข้อเข่าตัวอย่าง Arduino ส่วนบทความนี้เป็น stub อาจเป็นกองบันทึกครึ่งเรียงลำดับไม่ได้เป็นอย่างดีการตรวจสอบจึงอาจมี บิตที่ไม่ถูกต้องอย่าลังเลที่จะละเลยแก้ไขหรือบอกฉันนี่เป็นเวอร์ชันหน่วยความจำฉบับเดียวเพราะเมื่อคุณสนใจเฉพาะมูลค่าการส่งออกล่าสุดเท่านั้น
Comments
Post a Comment