LED LYT Meter LED, ไมโครคอนโทรลเลอร์ PIC และ Moving Average Code สวัสดีทุกคนขอขอบคุณสำหรับการตรวจสอบ Instructable ครั้งแรกของฉันฉันมีความสุขในการเห็นการสร้างสรรค์ของคุณตลอดหลายปีที่ผ่านมาและรักสิ่งที่คุณทุกคนมีส่วนร่วมโครงการนี้เป็นการปั่นจากที่ ฉันเพิ่งเห็นที่นี่และฉันต้องการที่จะให้ตะโกนออกไป Bot1398 เพราะเขาแสดงให้ฉันใน Instructable ของเขาที่คุณสามารถใช้ LED เพื่อตรวจสอบการเปลี่ยนแปลงความเข้มของแสงในสภาพแวดล้อมและการใช้งานนี้เพื่อเปิดไฟ LED อีกหรือปิดฉันรู้ว่า ถ้าคุณจัดหาพลังงานเล็กน้อยให้ LED จะปล่อยแสงฉันไม่เคยคิดว่ามันอาจจะใช้วิธีอื่น ๆ รอบ ๆ หลังจากที่ฉันเห็นของเขา Instructable Light Sensing LEDs มันทำให้รู้สึก แต่ฉันต้องการที่จะเห็นนี้ทำงานจริงสำหรับตัวเอง I am เขียน Instructable นี้เนื่องจาก Bot1398 ใช้ Arduino และฉันไม่เคยใช้พวกเขาฉันไม่มีอะไรกับพวกเขา แต่เมื่อฉันเริ่มใช้ microcontrollers ประมาณ 3 ปีที่ผ่านมาฉันถูกมองหาความเร็วและพลังสำหรับโปรแกรมเฉพาะที่ฉันตัดสิน. ชุดไมโครคอนโทรลเลอร์ PIC โดย Microchip เป็นสิ่งที่น่าอัศจรรย์ที่คุณสามารถทำกับไมโครคอนโทรลเลอร์คุณสามารถทำให้จินตนาการของคุณทำงานได้อย่างป่าเถื่อนและด้วยการเขียนโปรแกรมที่มีความคิดสร้างสรรค์เพียงน้อยนิดจะทำให้คุณได้อะไรก็ได้ที่คุณต้องการมีภาษาเขียนโปรแกรมอยู่หลายภาษาเช่นกัน แต่เมื่อฉันเริ่ม ต้องการความเร็วและรู้ว่าสิ่งที่เกิดขึ้นในแต่ละขั้นตอนและทุกดังนั้นฉันเลือก Assembly Language เนื่องจากดูเหมือน BASIC ที่ฉันได้เรียนรู้เกี่ยวกับ IBM PC Jr ย้อนกลับไปในทศวรรษที่ 1980 เมื่อฉันโตขึ้นนั่นคือสิ่งที่ Instructable นี้ประกอบด้วย PIC Microcontrollers และ Assembly Language เพื่อใช้ LED Light Emitting Diode เพื่อตรวจจับปริมาณแสงโดยรอบและแสดงการวัดตัวเลขของแสงนี้พร้อมด้วย Bargraph บนหน้าจอ LCD ฉันได้ผลิต LED รุ่นแรกนี้ อุปกรณ์ตรวจจับแสงซึ่งทำงานได้ปัญหาที่ฉันสังเกตเห็นได้คือค่าที่เพิ่มขึ้นค่อนข้างน้อยดังนั้นฉันจึงมองหาวิธีแก้ไขปัญหานี้ฉันคิดถึงค่าเฉลี่ยโดยเฉลี่ย แต่ วิธีที่ไบนารีคณิตศาสตร์ไม่เป็นชนิดของยาก แต่มีเสมอวิธีที่จะได้รับมันทำขณะที่ฉันกำลังค้นหาโซลูชันฉันมาข้ามหน้าใหญ่เกี่ยวกับ Moving Averages และวิธีการทำอย่างมีประสิทธิภาพมากที่สุดเพื่อให้แม้แต่ 8 บิต Microcontrollers สามารถจัดการ. การใช้งานนี้จะแสดงค่าเฉลี่ยเคลื่อนที่ของการอ่านค่าแสง 256 ครั้งล่าสุดและแสดงค่าดังกล่าวพร้อมกับกราฟแท่งบนหน้าจอ LCD รหัสเฉลี่ยเคลื่อนที่จะป้องกันไม่ให้ค่าต่างๆ อ่านจาก LED จากกระโดดไปรอบ ๆ มากและช่วยให้คุณดีขึ้นผลลัพธ์ที่แม่นยำมากขึ้นเมื่อเราแนบ LED กับไมโครคอนโทรลเลอร์เรามักทำอย่างนั้นเพื่อให้สว่างขึ้นในกรณีนี้เราใช้แรงดันไฟฟ้าเป็นบวก ปลายด้านลบของขั้วไฟฟ้านี่คือเพื่อให้เราสามารถใช้ประโยชน์จากสิ่งที่เรียกว่าปรสิต capacitance การใช้แรงดันไฟฟ้าบวกนี้จะสร้างทรัพยากรค่าใช้จ่ายเล็ก ๆ บนอินเทอร์เน็ตกล่าวว่า wi บางประมาณ 100-200 nanoseconds ภายในความจุปรสิตของ LED ที่เราใช้ความจุจริงไม่สำคัญมาก แต่ resouces ออนไลน์บอกว่าเป็นประมาณ 10-15 pF เราจะเปลี่ยน pin ของไมโครคอนโทรลเลอร์ติดกับสิ้นเชิงลบ ของอิเลคโทรดจาก OUTPUT ไปยัง INPUT และรอการชาร์จที่จะระบายน้ำเมื่อชาร์จไฟจนหมด pin จะอ่าน Logic Level 0 หรือ Low state ซึ่งเราจะปิดตัวจับเวลาและใช้ค่านี้เพื่อคำนวณค่าเฉลี่ยเคลื่อนที่และการแสดงผล ผลลัพธ์บนหน้าจอจากนั้นเราจะอ่านค่ามากขึ้นและแสดงผลบนหน้าจอในช่วงเวลาที่เขียนขึ้นในโค้ดแอสเซมบลีในโค้ดที่เสร็จสมบูรณ์ฉันได้ตั้งค่าให้อ่านหนึ่งครั้งทุกๆ 20 หรือดังนั้น microseconds สิ่งนี้เกิดขึ้น 50 ครั้ง เพื่อให้ผลการปรับปรุงปรากฏขึ้นบนหน้าจอประมาณทุกวินาทีดังนั้นเวลาที่ใช้ในการอ่านจะแตกต่างกันไปนิดหน่อยเพราะใช้เวลานานในการชาร์จเพื่อระบายความร้อนในที่มืดและเหตุการณ์นี้ rs ได้เร็วขึ้นในสภาพแสงที่อัตราการปลดปล่อยของความจุไฟฟ้าแบบ LED นั้นเกี่ยวข้องโดยตรงกับจำนวนโฟตอนหรือปริมาณแสงที่เกิดขึ้นจากแสงนีออนที่สร้างขึ้น Neat isn t it ตอนนี้เรารู้ว่ามันทำงานอย่างไรให้ก้าวไปสู่ขั้นตอน 1. ขั้นตอนที่ 1 รวบรวมส่วนประกอบและประกอบวงจรก่อนอื่นให้รวบรวมข้อมูลต่อไปนี้ซึ่งคุณจะต้องสร้างไมโครคอนโทรลเลอร์ LED LYT METER. PIC ฉันใช้หน้าจอ LCD 18F4550 2x20 หรือ 2x16 LEDs Breadboard Wires Power Source ตอนนี้คุณควรจะสามารถปฏิบัติตามได้ วงจรการประกอบวงจรบน breadboard หรือวิธีอื่นใดที่คุณต้องการใส่วงจรของคุณกันเป็นหนึ่งนี้ค่อนข้างง่ายและมีส่วนน้อยฉันได้แนบสอง schematics แตกต่างกันหนึ่งมีไฟ LED วัดเชื่อมต่อกับสองหมุดไมโครคอนโทรลเลอร์ที่แตกต่างกัน และอื่น ๆ ที่มี LED นี้กับขั้วลบหรือปลายลบเชื่อมต่อกับขาไมโครคอนโทรลเลอร์และขั้วบวกหรือบวกของ LED ที่เชื่อมต่อกับพื้นดินนี้ดูเหมือนย้อนกลับ แต่จำได้ว่าเรามี n ot ใช้ LED ในการผลิตแสง แต่การวัดแทนนั่นคือเหตุผลที่มันเชื่อมต่อในลักษณะนี้ในภาพของฉันคุณจะเห็นว่า LED เชื่อมต่อกับสองหมุดของไมโครคอนโทรลเลอร์เนื่องจากฉันต้องการเพื่อให้สามารถใช้ LED เพื่อผลิตแสงมากเกินไปเพื่อที่จะตรวจสอบเพื่อให้แน่ใจว่าการทำงานเมื่อโปรแกรมจะเริ่มต้นถ้าคุณเลือกที่จะเชื่อมต่อ LED เพื่อ 2 หมุดของไมโครคอนโทรลเลอร์ที่คุณจะต้องเก็บไว้ในใจสำหรับการทำงานฉันไม่สามารถ หาเอกสารนี้ได้ทุกที่จึงเอาการทดลองเล็กน้อยเพื่อให้ทำงานได้เพื่อที่จะสามารถที่จะสว่างขึ้น LED หมุดไมโครคอนโทรลเลอร์ทั้งสองจะต้องมีการตั้งค่าเป็นเอาท์พุทแล้วเพื่อให้เงา LED คุณตั้งขั้วบวกหรือปลายบวก ของ LED สูงเพื่อให้ไหลปัจจุบันผ่าน LED ในการผลิตแสงตอนแรกฉันคิดว่าฉันจะต้องตั้งค่าขั้วลบหรือลบของ LED เป็นอินพุต แต่ไม่ได้ผลตอนนี้คุณมี componenets ใส่ไว้ เข้าด้วยกันบน breadboard โดยทำตามแผนผังที่คุณต้องการ ที่จะปฏิบัติตามเมื่อประกอบมันควรจะมีลักษณะคล้ายกับภาพด้านล่างฉันใช้ Regulator โวลต์ 5 เพื่อจัดหา 5 โวลต์ให้อำนาจวงจรฉันใช้กำแพงหูดที่ supplies ประมาณ 9 โวลต์ไป regulator. The หน้าจอ LCD ที่ฉันใช้ เป็นจอแสดงผล Newhaven NHD C0220AZ FSW FTW COG Chip บน Glass Liquid Crystal Display Module ฉันใช้เพื่อใช้จอ HD44780 LCD ที่ผู้อื่นใช้งานคุณสามารถใช้หน้าจอ HD44780 ได้โดยไม่เกิดปัญหาใด ๆ และมีซอร์สโค้ดมากขึ้น ทำให้พวกเขาทำงานแสดง Newhaven มีรหัสแหล่งที่ไม่มี แต่นั่งลงกับแผ่นข้อมูลและใช้รหัสที่มา HD44780 ฉันมากับรหัสที่จะทำให้มันทำงานได้อย่างสมบูรณ์แบบผมชอบการแสดงผลด้วยเหตุผลไม่กี่คมชัดเป็นเรื่องง่ายมากที่จะตั้ง และจนถึงขณะนี้ฉันไม่ได้มีการเปลี่ยนแปลงมันเลยในช่วงฤดูที่แตกต่างกันก็ยังคงชัดเจนและง่ายมากที่จะอ่านนอกจากนี้ยังมีรอยขนาดเล็กและเป็นสิ่งที่ฉันต้องการสำหรับโครงการขนาดใหญ่ที่ฉันทำงานในสถานที่ที่มี ก้าวเป็นที่พรีเมี่ยมมันมีขนาดเล็กกว่าและแสดง HD44780 และยังคงแสดง 20 ตัวอักษรในแต่ละบรรทัดที่สองในที่สุดก็จะน้อยราคาแพงกว่าการแสดงผล HD44780 เช่นกันฉันเลือกคู่ของเหล่านี้ขึ้นจาก Digikey และเพียงราคา ของ 10 25 แต่ละตรวจสอบพวกเขาออกที่นี่ Newhaven LCD Display ที่ Digikey โปรดจำไว้ว่าจอแสดงผลนี้ต้องการจาก 3 3 ถึง 5 5 โวลต์เพื่อให้ทราบเมื่อเลือกแหล่งพลังงานของคุณรหัสแหล่งที่มาที่ให้มาควรใช้ HD44780 แสดงโดยไม่ต้อง ปัญหาใด ๆ นี่เป็นเพียงวิธีการที่ฉันได้ตั้งค่าคุณสามารถวางส่วนประกอบที่จะ diffent หมุดของไมโครคอนโทรลเลอร์ของคุณเพียงแค่ทราบว่าขาของไมโครคอนโทรลเลอร์ที่คุณเชื่อมต่อกับปลายบวกและลบของแสงตรวจจับ LED คุณยังสามารถ ลวดขึ้นหน้าจอ LCD ของคุณให้ทำงานในโหมด 4 บิตแทนที่จะเป็นโหมด 8 บิตดังที่แสดงภาพซึ่งจะต้องมีการเชื่อมต่อน้อยกว่าสี่ในวงจร แต่จะทำให้การเขียนโปรแกรมของคุณซับซ้อนขึ้นนิดหน่อยขั้นตอนถัดไปการเขียน Pr ogram. One ของโปรแกรมหลักสำหรับคณะกรรมการ Arduino คือการอ่านและบันทึกข้อมูล sensor ตัวอย่างเช่นจอภาพหนึ่งจะดันทุกวินาทีของวันเนื่องจากอัตราตัวอย่างสูงมักสร้าง spikes ในกราฟหนึ่ง ๆ ต้องการวัดค่าเฉลี่ยด้วยเช่นกัน การวัดจะไม่คงที่ในเวลาสิ่งที่เรามักต้องการคือค่าเฉลี่ยในการทำงานนี่คือค่าเฉลี่ยของช่วงเวลาหนึ่ง ๆ และมีค่ามากเมื่อทำการวิเคราะห์แนวโน้มรูปแบบเฉลี่ยของค่าเฉลี่ยในการทำงานสามารถทำได้โดยโค้ดที่สร้างขึ้นเมื่อใช้ค่าเฉลี่ยก่อนหน้านี้ หนึ่ง doesn t ต้องการใช้คณิตศาสตร์จุดลอย - เช่นนี้จะขึ้นหน่วยความจำและลดความเร็ว - หนึ่งสามารถทำเช่นเดียวกันอย่างสมบูรณ์ในโดเมนจำนวนเต็มแบ่งโดย 256 ในตัวอย่างรหัสคือ shift-right 8 ซึ่งเร็วกว่าพูดแบ่ง โดยเช่น 100 นี้เป็นจริงสำหรับทุกอำนาจของ 2 เป็น divider และหนึ่งเท่านั้นต้องดูแลรวม weigths เท่ากับพลังของ 2 และแน่นอนหนึ่งควรดูแลไม่มี overflow ปานกลางพิจารณาใช้ lon unsigned g ถ้าคุณต้องการค่าเฉลี่ยที่แม่นยำกว่าในการคำนวณครั้งสุดท้ายจากการวัด 10 ครั้งคุณต้องมีอาร์เรย์หรือรายการที่เชื่อมโยงเพื่อเก็บข้อมูลไว้อาร์เรย์นี้ทำหน้าที่เป็นบัฟเฟอร์แบบวงกลมและมีการวัดใหม่ทุกค่าที่เก่าที่สุดจะถูกลบออกค่าเฉลี่ยที่ใช้คือ คำนวณเป็นผลรวมขององค์ประกอบทั้งหมดหารด้วยจำนวนขององค์ประกอบในอาร์เรย์รหัสสำหรับค่าเฉลี่ยที่ทำงานจะเป็นอย่างนี้กลับมาของโค้ดนี้คืออาร์เรย์ที่จะเก็บค่าทั้งหมดจะกลายเป็นขนาดใหญ่มากถ้าคุณมีหนึ่งการวัดต่อ วินาทีและคุณต้องการใช้ค่าเฉลี่ยต่อนาทีที่คุณต้อง array 60 เฉลี่ยต่อชั่วโมงจะต้องอาร์เรย์ของ 3600 ที่ couldn t จะทำแบบนี้ใน Arduino ตามที่มีเพียง 2K ของแรม แต่โดยการสร้างเฉลี่ย 2 ขั้นตอนนั้น สามารถเข้าหาค่อนข้างปฏิเสธไม่ได้สำหรับการวัดทั้งหมดในรหัส psuedo เป็นอาร์เรย์แบบคงที่ภายในใหม่เป็นสิ่งจำเป็นสำหรับฟังก์ชั่น runAverage ทุกเสียงกรีดร้องนี้จะดำเนินการเป็นไลบรารี classRunningAverage ไลบรารีรันเวย์ทำให้ ชั้นของฟังก์ชันข้างต้นเพื่อให้สามารถใช้หลายครั้งในร่างมัน decouples เพิ่มและฟังก์ชันเฉลี่ยที่จะเป็นบิตที่มีความยืดหยุ่นมากขึ้นเช่นหนึ่งสามารถเรียกค่าเฉลี่ยหลาย ๆ ครั้งโดยไม่ต้องเพิ่มสิ่งโปรดทราบว่าทุกกรณีของชั้นเพิ่ม อาร์เรย์ของตัวเองที่จะถือวัดและที่เพิ่มขึ้นถึงการใช้หน่วยความจำอินเตอร์เฟซของชั้นเรียนจะถูกเก็บไว้ให้เล็กที่สุดเท่าที่เป็นไปได้หมายเหตุกับ 0 รุ่น 2 ชื่อของวิธีการทั้งหมดทำขึ้นอธิบายเพิ่มเติมร่างเล็ก ๆ แสดงให้เห็นว่ามัน สามารถใช้เครื่องกำเนิดไฟฟ้าแบบสุ่มจะใช้ในการเลียนแบบเซ็นเซอร์ในการติดตั้ง myRA จะถูกล้างเพื่อให้เราสามารถเริ่มต้นการเพิ่มข้อมูลใหม่ในห่วงครั้งแรกจำนวนสุ่มถูกสร้างขึ้นและแปลงเป็นลอยที่จะเพิ่ม myRA จากนั้นเรียกใช้พิมพ์จะถูกพิมพ์ ไปยังพอร์ตอนุกรมหนึ่งยังสามารถแสดงบนจอ LCD หรือส่งผ่าน ethernet ฯลฯ เมื่อมีการเพิ่ม 300 รายการ myRA จะถูกล้างเพื่อเริ่มใหม่อีกครั้งเมื่อต้องการใช้ไลบรารีให้สร้างโฟลเดอร์ในไลบรารีของ SKETCHBOOKPATH ของคุณโดยใช้ชื่อ RunningAverage และใส่ h และ อีกครั้งเลือกไดเรกทอรีย่อยของตัวอย่างเพื่อวางแอปพลิเคชันตัวอย่างเช่น. 01-01-30 เริ่มต้น version.2-02-28 destructor ที่หายไปคงที่ใน h file เอาการสร้างค่าดีฟอลต์เอาต์พุท 2011/02/28 - - trimValue Yuval Naveh เพิ่ม trimValue พบ ในเว็บ 2012-11-21 refactored 2012/12/30 เพิ่ม fillValue refactored สำหรับ publish.2014-07-03 เพิ่มโค้ดป้องกันหน่วยความจำ - ถ้าอาร์เรย์ภายในไม่สามารถกำหนดขนาดได้เป็น 0 นี่คือการแก้ปัญหาที่อธิบายไว้ที่นี่ทดสอบอย่างกว้างขวาง. Template class. RunningAverage h. RunningAverage. As คนอื่น ๆ ได้กล่าวถึงคุณควรพิจารณาตัวกรองการตอบสนอง IIR infinite มากกวาการตอบสนอง FIR Impulse กรองที่คุณกำลังใชตอนนี้มีมากกวาแตในตอนแรก splolutions ชัดเจนและตัวกรอง IIR กับสมการตัวกรอง IIR โดยเฉพาะอย่างยิ่งฉันใช้มากในไมโครคอนโทรลเลอร์เป็นเสาเดียวผ่านต่ำกรองนี่คือเทียบเท่าดิจิตอลของตัวกรองอะนาล็อกแบบ RC ง่ายสำหรับการใช้งานส่วนใหญ่เหล่านี้จะมี characteristi ที่ดีขึ้น cs กว่าตัวกรองกล่องที่คุณใช้การใช้ส่วนใหญ่ของตัวกรองกล่องที่ฉันได้พบเป็นผลมาจากคนไม่ให้ความสนใจในระดับการประมวลผลสัญญาณดิจิตอลไม่ได้เป็นผลจากการต้องลักษณะเฉพาะของพวกเขาหากคุณต้องการเพียงแค่ลดความถี่สูง ที่คุณรู้ว่าเป็นเสียงเสาเดียวต่ำผ่านตัวกรองจะดีกว่าวิธีที่ดีที่สุดในการดำเนินการอย่างใดอย่างหนึ่งแบบดิจิทัลในไมโครคอนโทรลเลอร์เป็นปกติ FILT - FILT FF NEW - FILT. FILT เป็นชิ้นส่วนของรัฐที่ยืนยงนี้เป็นเพียงตัวแปรที่คุณคงทน จำเป็นต้องคำนวณตัวกรองนี้ NEW เป็นค่าใหม่ที่ตัวกรองจะถูกอัพเดตด้วยการวนซ้ำนี้ FF เป็นส่วนของตัวกรองที่ปรับความหนักเบาของตัวกรองดูขั้นตอนนี้และดูว่าสำหรับ FF 0 ตัวกรองมีขนาดใหญ่มากจนนับไม่ถ้วน การเปลี่ยนแปลงสำหรับ FF 1 มันจริงๆไม่มีตัวกรองเลยตั้งแต่เอาท์พุททำตาม input ค่าที่เป็นประโยชน์อยู่ระหว่างระหว่างระบบขนาดเล็กที่คุณเลือก FF เป็น 1 2 N เพื่อให้คูณโดย FF สามารถทำได้เป็น ar ight shift by N bits ตัวอย่างเช่น FF อาจเป็น 1 16 และคูณด้วย FF ดังนั้นการเปลี่ยนแปลงทางด้านขวาของ 4 บิตมิฉะนั้นตัวกรองนี้ต้องการเพียงหนึ่งลบและหนึ่งเพิ่มแม้ว่าตัวเลขจะต้องกว้างกว่าค่าอินพุตเพิ่มเติมเกี่ยวกับ ความแม่นยำเชิงตัวเลขในส่วนที่แยกต่างหากด้านล่างฉันมักจะใช้เวลาในการอ่านโฆษณาอย่างมีนัยสำคัญเร็วกว่าที่จำเป็นและใช้ตัวกรองเหล่านี้สองตัวเรียงกันนี่คือดิจิตอลเทียบเท่าของตัวกรอง RC สองชุดและลดทอนตาม dB 12 dB เหนือความถี่ rolloff อย่างไรก็ตาม สำหรับการอ่านโฆษณามักจะมีความเกี่ยวข้องกับตัวกรองในโดเมนเวลาโดยการพิจารณาการตอบสนองขั้นตอนนี้จะบอกคุณว่าระบบของคุณจะเห็นการเปลี่ยนแปลงอย่างไรเมื่อสิ่งที่คุณกำลังวัดเปลี่ยนแปลงเพื่อให้ง่ายต่อการออกแบบตัวกรองเหล่านี้ซึ่งหมายถึงการเลือก FF และตัดสินใจกี่ของน้ำตกฉันใช้ FILTBITS โปรแกรมของคุณคุณระบุจำนวนของบิต shift สำหรับแต่ละ FF ในชุด cascaded ของตัวกรองและจะคำนวณการตอบสนองขั้นตอนและ o มีค่าที่จริงฉันมักจะใช้นี้ผ่านฉัน wrapper script PLOTFILT นี้ทำงาน FILTBITS ซึ่งทำให้ไฟล์ CSV แล้วแปลงไฟล์ CSV ตัวอย่างเช่นที่นี่เป็นผลมาจาก PLOTFILT 4 4.The สองพารามิเตอร์เพื่อ PLOTFILT หมายความว่าจะมีสองตัวกรอง cascaded ของชนิดที่อธิบายไว้ข้างต้นค่าของ 4 ระบุจำนวนของกะบิตเพื่อให้เกิดคูณด้วย FF ค่า FF สองดังนั้นจึงเป็น 1 16 ในกรณีนี้การติดตามสีแดงคือการตอบสนองต่อหน่วยและเป็นสิ่งสำคัญในการมอง ตัวอย่างเช่นนี่บอกให้คุณทราบว่าถ้าข้อมูลอินพุตเปลี่ยนแปลงทันทีผลลัพธ์ของตัวกรองแบบรวมจะปรับเป็น 90 ค่าใหม่ใน 60 ครั้งถ้าคุณสนใจเวลาในการปักหลัก 95 ครั้งคุณต้องรอประมาณ 73 ซ้ำและสำหรับ 50 เวลาการตกตะกอนเพียง 26 ซ้ำรอยสีเขียวแสดงให้เห็นว่าคุณเอาท์พุทจากการขัดจังหวานความกว้างเต็มรูปแบบเดียวนี้จะช่วยให้คุณมีความคิดในการปราบปรามเสียงสุ่มดูเหมือนว่าไม่มีตัวอย่างเดียวจะทำให้เกิดการเปลี่ยนแปลงมากกว่า 2 5 ในการส่งออก คือ gi มีความรู้สึกอัตนัยของสิ่งที่ตัวกรองนี้จะมีเสียงสีขาวนี่ไม่ใช่การทดสอบอย่างเข้มงวดเนื่องจากไม่มีการรับประกันว่าเนื้อหาที่เป็นตัวเลขสุ่มเลือกเป็นสัญญาณรบกวนสีขาวสำหรับการทำงานของ PLOTFILT นี้เป็นเพียงเพื่อให้คุณ ความรู้สึกหยาบของเท่าใดก็จะถูกแบนและวิธีเรียบมันคือ PLOTFILT อาจ FILTBITS และจำนวนมากสิ่งที่มีประโยชน์อื่น ๆ โดยเฉพาะอย่างยิ่งสำหรับการพัฒนาเฟิร์มแวร์สามารถใช้ได้ในการพัฒนาซอฟต์แวร์ PIC ปล่อยซอฟต์แวร์ที่ฉันดาวน์โหลดซอฟต์แวร์ page. Added เกี่ยวกับตัวเลข precision. I เห็นจากความคิดเห็นและตอนนี้คำตอบใหม่ที่มีความสนใจในการพูดคุยจำนวนบิตที่จำเป็นในการใช้ตัวกรองนี้ทราบว่าคูณโดย FF จะสร้าง Log 2 FF บิตใหม่ด้านล่างจุดไบนารีในระบบขนาดเล็ก FF คือ มักจะได้รับการแต่งตั้งให้เป็น 1 2 N เพื่อให้เกิดการคูณนี้จริงโดยการเปลี่ยนขวาของ N bits. FILT จึงมักจะเป็นจำนวนเต็มจุดคงที่ทราบว่านี้ doesn t เปลี่ยนแปลงใด ๆ ของคณิตศาสตร์จากจุดประมวลผลของ view ตัวอย่างเช่นถ้าคุณกำลังกรองการอ่านค่า 10 บิต AD และ N 4 FF 1 16 คุณต้องใช้เศษเศษส่วนด้านล่าง 10 บิตจำนวนเต็ม AD อ่านโปรเซสเซอร์ส่วนใหญ่คุณต้องทำ 16 บิตจำนวนเต็มการดำเนินงานเนื่องจาก 10 บิต AD readings ในกรณีนี้คุณยังคงสามารถดำเนินการได้เหมือนกันกับจำนวนเต็ม 16 บิต แต่เริ่มต้นจากการอ่านค่า AD ด้านซ้ายที่เปลี่ยนไป 4 บิตตัวประมวลผลไม่ทราบความแตกต่างและไม่จำเป็นต้องทำคณิตศาสตร์ในจำนวนเต็ม 16 บิตทั้งหมดทำงานได้ คุณพิจารณาว่าเป็น 12 4 จุดคงที่หรือ 16 จำนวนเต็มจริง 16 0 จุดคงที่โดยทั่วไปคุณจะต้องเพิ่มบิต N แต่ละเสากรองหากคุณ don t ต้องการเพิ่มเสียงรบกวนเนื่องจากการเป็นตัวแทนตัวเลขในตัวอย่างข้างต้น ตัวกรองที่สองของสองจะต้องมี 10 4 4 18 บิตจะไม่สูญเสียข้อมูลในทางปฏิบัติในเครื่อง 8 บิตซึ่งหมายความว่าคุณต้องใช้ค่าบิต 24 เทคนิคเฉพาะขั้วที่สองของสองจะต้องมีค่ามากขึ้น แต่สำหรับความเรียบง่ายเฟิร์ตผม มักใช้แทนเดียวกันและ thereb y รหัสเดียวกันสำหรับเสาทั้งหมดของตัวกรองโดยปกติฉันเขียนโปรแกรมย่อยหรือแมโครเพื่อดำเนินการการดำเนินงานเสาหนึ่งกรองแล้วใช้ที่แต่ละขั้วว่า subroutine หรือ macro ขึ้นอยู่กับว่าหน่วยความจำรอบหรือโปรแกรมมีความสำคัญมากขึ้นในที่เฉพาะ โครงการทั้งสองวิธีฉันใช้รัฐบางรอยขีดข่วนที่จะผ่านใหม่ในแมโคร subroutine ซึ่งปรับปรุง FILT แต่ยังโหลดที่เข้าสู่สภาพเดิมเหมือนกัน NEW อยู่ในนี้ทำให้ง่ายต่อการใช้เสาหลายตั้งแต่ FILT ปรับปรุงของเสาหนึ่งคือ ใหม่ของถัดไปเมื่อ subroutine มีประโยชน์ที่จะมีจุดชี้ไปที่ FILT ในทางซึ่งมีการปรับปรุงไปเพียงหลังจาก FILT ทางออกวิธีการ subroutine อัตโนมัติทำงานกับตัวกรองต่อเนื่องในหน่วยความจำถ้าเรียกว่าหลายครั้ง กับแมโครคุณ don t ต้องการตัวชี้ตั้งแต่คุณผ่านในที่อยู่ในการทำงานในแต่ละ iteration. Code ตัวอย่างนี่คือตัวอย่างของแมโครตามที่อธิบายข้างต้นสำหรับ PIC 18.And นี่คือแมโครที่คล้ายกันสำหรับ PIC 24 หรือ dsPIC 30 หรือ 33 ตัวอย่างเหล่านี้ถูกนำมาใช้เป็นมาโครโดยใช้ตัวประมวลผลแอ็คแอนเลอร์ PIC ซึ่งมีความสามารถมากกว่าสิ่งอำนวยความสะดวกของมาโครในตัว clabacchio ปัญหาอื่นที่ควรจะกล่าวถึงคือการใช้งานเฟิร์มแวร์คุณสามารถเขียนโพรโตคอลผ่านต่ำโพรเซสเซอร์ subroutine เพียงครั้งเดียวจากนั้นใช้มันหลายครั้งในความเป็นจริงฉันมักจะเขียนเช่น subroutine เพื่อนำตัวชี้ในหน่วยความจำไปยังสถานะตัวกรองแล้วมีมันล่วงหน้า ตัวชี้เพื่อให้สามารถเรียกได้อย่างต่อเนื่องเพื่อให้ทราบตัวกรองแบบหลายขั้ว Olin Lathrop 20 เม. ย. 55 ที่ 15 03.1 ขอบคุณมากสำหรับคำตอบของคุณ - ทั้งหมดของพวกเขาฉันตัดสินใจที่จะใช้ตัวกรอง IIR นี้ แต่ตัวกรองนี้ไม่ได้ใช้เป็น Standard LowPass Filter เนื่องจากต้องใช้ Counter Values ค่าเฉลี่ยและเปรียบเทียบเพื่อตรวจจับการเปลี่ยนแปลงใน Range เนื่องจากค่าเหล่านี้เป็นมิติที่แตกต่างกันไปโดยขึ้นอยู่กับฮาร์ดแวร์ที่ฉันต้องการใช้โดยเฉลี่ยเพื่อให้สามารถตอบสนองต่อฮาร์ดแวร์เหล่านี้ได้ การเปลี่ยนแปลงที่เฉพาะเจาะจงโดยอัตโนมัติ sensslen 21 พฤษภาคมที่ 12 06. ถ้าคุณสามารถอยู่กับข้อ จำกัด ของอำนาจของสองจำนวนรายการเฉลี่ยเช่น 2,4,8,16,32 ฯลฯ แล้วแบ่งได้อย่างง่ายดายและมีประสิทธิภาพสามารถทำได้ใน ไมโครประสิทธิภาพต่ำโดยไม่แบ่งเฉพาะเพราะสามารถทำได้เป็นเปลี่ยนบิตกะขวาแต่ละคนเป็นหนึ่งในอำนาจของทั้งสองเช่น OP คิดว่าเขามีสองปัญหาแบ่งใน PIC16 และหน่วยความจำสำหรับแหวนของเขา buffer คำตอบนี้แสดงให้เห็นว่าการแบ่ง ไม่ใช่เรื่องยากเป็นที่ยอมรับมันไม่ได้อยู่ที่ปัญหาหน่วยความจำ แต่ระบบ SE ช่วยให้คำตอบบางส่วนและผู้ใช้สามารถใช้อะไรจากคำตอบสำหรับตัวเองหรือแม้กระทั่งการแก้ไขและรวมคำตอบอื่น ๆ s เนื่องจากบางส่วนของคำตอบอื่น ๆ ต้องมีการดำเนินการแบ่งพวกเขา ยังไม่สมบูรณ์เหมือนกันเนื่องจากไม่แสดงวิธีการอย่างมีประสิทธิภาพบรรลุนี้ใน PIC16 มาร์ติน 20 เมษายน 12 ที่ 13 01. มีคำตอบสำหรับการกรองเฉลี่ยจริงกรอง aka boxcar กรองกับความต้องการหน่วยความจำน้อยลงถ้าคุณ don t ใจ downsampling It s เรียกว่าตัวกรองแบบผสมผสานแบบเรียงซ้อน (Cascaded Integrator-comb filter) CIC แนวคิดก็คือคุณมีตัวรวบรวมข้อมูลซึ่งคุณใช้ความแตกต่างในช่วงเวลาหนึ่ง ๆ และอุปกรณ์ประหยัดหน่วยความจำที่สำคัญคือโดยการสุ่มตัวอย่างคุณจะไม่ต้องเก็บอีเวน ry ค่าของ integrator สามารถดำเนินการโดยใช้ pseudocode ต่อไปนี้ความยาวเฉลี่ยที่มีประสิทธิภาพของการเคลื่อนที่ของคุณคือ decimationFactor stateize แต่คุณจะต้องเก็บตัวอย่างเกี่ยวกับ statesize แน่นอนคุณจะได้รับประสิทธิภาพที่ดีขึ้นถ้า statesize และ decimationFactor ของคุณมีอำนาจของ 2 เพื่อให้ ส่วนแบ่งและตัวดำเนินการที่เหลือได้รับการแทนที่โดยการเปลี่ยนแปลงและหน้ากาก - ands. Postscript ฉันเห็นด้วยกับ Olin ว่าคุณควรพิจารณาตัวกรอง IIR แบบธรรมดาก่อนที่ตัวกรองค่าเฉลี่ยที่เคลื่อนที่ถ้าคุณไม่จำเป็นต้องมี nulls ค่าของตัวกรอง boxcar 1 ขั้ว หรือตัวกรองความถี่ต่ำ 2 ขั้วอาจจะทำงานได้ดีในทางกลับกันถ้าคุณกำลังกรองเพื่อจุดประสงค์ในการ decimation โดยใช้อินพุตที่มีอัตราการสุ่มตัวอย่างสูงและใช้ค่าเฉลี่ยสำหรับการใช้งานโดยกระบวนการที่มีอัตราต่ำ อาจเป็นเพียงสิ่งที่คุณกำลังมองหาโดยเฉพาะอย่างยิ่งถ้าคุณสามารถใช้ stateize 1 และหลีกเลี่ยง ringbuffer ทั้งหมดพร้อมเพียง value. There integrator ก่อนหน้านี้มีการวิเคราะห์ในเชิงลึกของคณิตศาสตร์ที่อยู่เบื้องหลังการใช้คำสั่งแรก er IIR filter ที่ Olin Lathrop ได้อธิบายไว้แล้วเกี่ยวกับการแลกเปลี่ยน stack การประมวลผลสัญญาณภาพดิจิตอลรวมถึงภาพสวย ๆ มากมายสมการนี้เป็นตัวกรอง IIR ซึ่งสามารถใช้งานได้โดยใช้ integers เพียงอย่างเดียวและไม่มีการหารโดยใช้โค้ดต่อไปนี้อาจต้องมีการดีบั๊กตามที่ฉัน กำลังพิมพ์จากหน่วยความจำตัวกรองนี้ประมาณค่าเฉลี่ยเคลื่อนที่ของตัวอย่าง K ล่าสุดด้วยการกำหนดค่าของอัลฟาไปเป็น 1 K ให้ทำดังนี้ในโค้ดข้างต้นด้วยการกำหนด BITS ไปที่ LOG2 K นั่นคือ K 16 ชุด BITS ถึง 4 สำหรับ K 4 ชุด BITS ถึง 2 ฯลฯ ฉันจะตรวจสอบรหัสที่ระบุไว้ที่นี่ทันทีที่ฉันได้รับการเปลี่ยนแปลงและแก้ไขคำตอบถ้า needed. answered 23 มิถุนายนที่ 4 04.Here sa เดียวขั้วต่ำผ่านกรองเฉลี่ยเคลื่อนที่ด้วย cutoff ความถี่ CutoffFrequency ง่ายมากอย่างรวดเร็วทำงานได้ดีและเกือบจะไม่มีหน่วยความจำ overhead. Note ตัวแปรทั้งหมดมีขอบเขตเกินกว่าฟังก์ชั่นการกรองยกเว้นผ่านใน newInput. Note นี่คือตัวกรองขั้นตอนเดียวหลายขั้นตอนสามารถ cascaded กันเพื่อเพิ่ม ความคมชัดของ ตัวกรองถ้าคุณใช้มากกว่าหนึ่งขั้นตอนคุณจะต้องปรับ DecayFactor เป็นที่เกี่ยวข้องกับ Cutoff ความถี่เพื่อชดเชยและเห็นได้ชัดทั้งหมดที่คุณต้องเป็นทั้งสองสายที่วางไว้ที่ใดก็ได้พวกเขา don t จำเป็นต้องใช้ฟังก์ชันของตัวเองตัวกรองนี้จะมี เวลาเริ่มทำงานก่อนค่าเฉลี่ยเคลื่อนที่ของสัญญาณอินพุตหากคุณต้องการหลีกเลี่ยงเวลาในการรับส่งสัญญาณคุณสามารถเริ่มต้น MovingAverage ให้เป็นค่าแรกของ newInput แทน 0 และหวังว่าอินเทอร์เฟซใหม่จะไม่เป็นค่าผิดปกติ CutRequest SampleRate มีช่วงระหว่าง 0 ถึง 0 5 DecayFactor คือค่าระหว่าง 0 ถึง 1 โดยปกติแล้วจะใกล้เคียงกับ 1.Single-precision floats ที่ดีพอสำหรับสิ่งต่างๆส่วนใหญ่ฉันชอบคู่ถ้าคุณต้องการติดตัวเลขจำนวนเต็มคุณสามารถ แปลง DecayFactor และ Amplitude Factor เป็นเศษเล็กเศษน้อยจำนวนเต็มซึ่งเป็นตัวเลขที่ถูกเก็บไว้เป็นจำนวนเต็มและตัวหารเป็นจำนวนเต็มของ 2 ดังนั้นคุณจึงสามารถเปลี่ยนบิตไปทางด้านขวาเป็นตัวหารแทนที่จะต้องแบ่งระหว่างลูปไหว ตัวอย่างเช่นถ้า DecayFactor 0 99 และคุณต้องการใช้ integers คุณสามารถตั้งค่า DecayFactor 0 99 65536 64881 จากนั้นทุกครั้งที่คุณคูณด้วย DecayFactor ในลูปไส้กรองของคุณเพียงแค่เปลี่ยนผล 16.For ข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้เป็นหนังสือที่ยอดเยี่ยมที่ s บทที่ 19 เกี่ยวกับตัวกรอง recursive. PS สำหรับกระบวนทัศน์ Moving Average วิธีการที่แตกต่างกันในการตั้งค่า DecayFactor และ AmplitudeFactor ที่อาจเกี่ยวข้องกับความต้องการของคุณมากขึ้นสมมติว่าคุณต้องการก่อนหน้านี้ประมาณ 6 รายการโดยเฉลี่ย tog ether ทำ discretely คุณ d เพิ่ม 6 รายการและหารด้วย 6 เพื่อให้คุณสามารถตั้งค่า AmplitudeFactor เป็น 1 6 และ DecayFactor เป็น 1 0 - AmplitudeFactor. answered 14 พฤษภาคม 12 ที่ 22 55 ทุกคนอื่นได้แสดงความคิดเห็นอย่างละเอียดเกี่ยวกับยูทิลิตี้ ของ IIR vs FIR และในอำนาจของสองฝ่ายฉัน d ต้องการให้รายละเอียดการใช้งานด้านล่างทำงานได้ดีใน microcontrollers ขนาดเล็กไม่มี FPU ไม่มีการคูณและถ้าคุณเก็บ N พลังของทั้งสองฝ่าย เป็น single-cycle bit-shifting บัฟเฟอร์ ring FIR พื้นฐานเก็บบัฟเฟอร์ที่กำลังทำงานของค่า N ล่าสุดและ SUM ที่ใช้งานของค่าทั้งหมดในบัฟเฟอร์แต่ละครั้งที่มีตัวอย่างใหม่เข้ามาให้ลบค่าที่เก่าแก่ที่สุดในบัฟเฟอร์จาก SUM แทนที่ด้วยตัวอย่างใหม่เพิ่มตัวอย่างใหม่ให้ SUM และ SUM N Modified IIR buffer เอาต์พุตจะมีค่า SUM ที่กำลังทำงานอยู่ของค่า N ล่าสุดทุกครั้งที่มีตัวอย่างใหม่มาให้ SUM - SUM N เพิ่มในใหม่ ตัวอย่างและผลลัพธ์ SUM ตอบเมื่อสิงหาคม 28 13 เวลา 13 45. ถ้าฉันอ่านคุณถูกต้องคุณจะอธิบายคำสั่งแรก IIR กรองค่าที่คุณลบออกใหม่ไม่ใช่ค่าที่เก่าแก่ที่สุดซึ่งหลุดออก แต่แทนที่จะเป็นค่าเฉลี่ยของค่าก่อนหน้าตัวกรอง IIR ของ First-order จะเป็นประโยชน์อย่างแน่นอน แต่ฉันไม่แน่ใจว่าคุณหมายถึงอะไรเมื่อคุณแนะนำว่าเอาต์พุต เป็นเหมือนกันสำหรับทุกสัญญาณเป็นระยะ ๆ ที่อัตราการสุ่มตัวอย่าง 10 กิโลเฮิรตซ์การป้อนคลื่นความถี่ 100Hz ลงในตัวกรองกล่อง 20 เฟสจะทำให้สัญญาณที่เพิ่มขึ้นอย่างสม่ำเสมอสำหรับ 20 ตัวอย่างอยู่สูง 30 หยดอย่างสม่ำเสมอสำหรับ 20 ตัวอย่างและอยู่ต่ำ สำหรับ 30 A แรกสั่ง IIR supercat กรอง 28 สิงหาคม 13 ที่ 15 31.will ผลคลื่นที่รุนแรงเริ่มเพิ่มขึ้นและค่อยๆระดับออกใกล้ แต่ไม่ได้ใส่ที่สูงสุดแล้วอย่างรวดเร็วเริ่มลดลงและค่อยๆระดับปิดใกล้ แต่ไม่ได้ที่อินพุท น้อยมาก supercat พฤติกรรมที่แตกต่างกัน Aug 28 13 at 15 32.One ก็คือค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายอาจจะหรืออาจจะไม่เป็นประโยชน์กับตัวกรอง IIR คุณจะได้รับตัวกรองที่ดีกับ calcs ค่อนข้างน้อย FIR ที่คุณอธิบายสามารถให้คุณได้ รูปสี่เหลี่ยมผืนผ้าในเวลา - sinc in freq - และคุณสามารถ t จัดการด้าน lobes มันอาจจะดีคุ้มค่าที่จะโยนในจำนวนเต็มไม่กี่คูณเพื่อให้เป็น FIR ปรับสมมาตรที่ดีถ้าคุณสามารถประหยัดนาฬิกา ticks Scott Seidman 29 สิงหาคม 13 ที่ 13 50 ScottSeidman No ต้องคูณถ้าหนึ่งมีเพียงขั้นตอนของ FIR ทั้งสองเอาท์พุทค่าเฉลี่ยของการป้อนข้อมูลไปยังขั้นตอนนั้นและค่าที่เก็บไว้ก่อนหน้านี้และจากนั้นเก็บข้อมูลถ้ามีช่วงตัวเลขหนึ่งสามารถใช้ผลรวมมากกว่าเฉลี่ยไม่ว่าจะเป็น s ดีกว่าตัวกรองกล่องขึ้นอยู่กับโปรแกรมการตอบสนองขั้นตอนของตัวกรองกล่องที่มีความล่าช้ารวม 1ms ตัวอย่างเช่นจะมีการบีบ d2 dt น่ารังเกียจเมื่อการเปลี่ยนแปลงการป้อนข้อมูลและอีกครั้ง 1ms ต่อมา แต่จะมีขั้นต่ำที่เป็นไปได้ d dt สำหรับตัวกรองที่มี superms 1ms ล่าช้า 29 สิงหาคม 13 ที่ 15 25. เป็น mikeselectricstuff กล่าวว่าถ้าคุณต้องการจริงๆเพื่อลดความต้องการหน่วยความจำของคุณและคุณ don t ใจการตอบสนองต่อแรงกระตุ้นของคุณเป็นเลขแทนของชีพจรรูปสี่เหลี่ยมผืนผ้าฉัน จะไปสำหรับการเคลื่อนที่แบบเอ็กซ์เรย์แทน กรองความโกรธฉันใช้พวกเขาอย่างกว้างขวางกับชนิดของตัวกรองที่คุณ don t ต้อง buffer คุณ don t ต้องเก็บตัวอย่างที่ผ่านมา N เพียงหนึ่งดังนั้นความต้องการหน่วยความจำของคุณได้รับการลดลงโดยปัจจัยของ N. นอกจากนี้คุณ don t ต้องใด สำหรับ multiplications เฉพาะที่ถ้าคุณมีการเข้าถึงเลขคณิตลอยเลขใช้ทศนิยม multiplications มิฉะนั้นจะทำ multiplications จำนวนเต็มและเลื่อนไปทางขวา แต่เราอยู่ในปี 2012 และผมอยากจะแนะนำให้คุณใช้คอมไพเลอร์และ MCUs ที่ช่วยให้คุณ เพื่อทำงานกับตัวเลข floating-point นอกจากนี้หน่วยความจำที่มีประสิทธิภาพมากขึ้นและเร็วขึ้นคุณ don t ต้องปรับปรุงรายการในบัฟเฟอร์วงกลมใด ๆ ที่ฉันจะบอกว่ามันเป็นธรรมชาติมากขึ้นเพราะการตอบสนองแรงกระตุ้นเลขชี้ตรงกับลักษณะทางธรรมชาติจะทำงานในกรณีส่วนใหญ่ ได้ตอบ 20 เมษายนที่ 9 59.One กับตัวกรอง IIR เกือบสัมผัสโดย olin และ supercat แต่เห็นได้ชัดว่าละเลยโดยคนอื่น ๆ ก็คือการปัดเศษแนะนำบางอย่างไม่ถูกต้องและอาจตัดทรราชสมมติว่า N i อำนาจของสองและใช้เลขคณิตจำนวนเต็มเท่านั้นการเปลี่ยนสิทธิจะทำให้ LSBs ของตัวอย่างใหม่เป็นระบบอย่างเป็นระบบนั่นหมายความว่าระยะเวลาที่ชุดข้อมูลจะยาวนานเท่าใดค่าเฉลี่ยจะไม่นำค่าเหล่านี้เข้าสู่บัญชีตัวอย่างเช่นสมมติว่าช้า ลดลงชุด 8,8,8 8,7,7,7 7,6,6 และสมมติว่าค่าเฉลี่ยเป็นจริง 8 ที่จุดเริ่มต้นกำปั้น 7 ตัวอย่างจะนำค่าเฉลี่ยไป 7 ไม่ว่าสิ่งที่กรองความแข็งแรงเพียงแค่หนึ่งตัวอย่างเดียวกัน เรื่องราวสำหรับ 6 ฯลฯ ตอนนี้คิดว่าตรงข้ามซีรีย์ขึ้นค่าเฉลี่ยจะอยู่ที่ 7 ตลอดไปจนกว่าตัวอย่างมีขนาดใหญ่พอที่จะทำให้มันเปลี่ยนแปลงได้แน่นอนคุณสามารถแก้ไขความอคติโดยการเพิ่ม 1 2 N 2 แต่ ที่ได้รับรางวัล t จริงๆแก้ปัญหาความแม่นยำในกรณีที่ชุดลดลงจะอยู่ที่ 8 ตลอดจนตัวอย่างเป็น 8-1 2 N 2 สำหรับ N 4 ตัวอย่างใด ๆ เหนือศูนย์จะให้ค่าเฉลี่ยไม่เปลี่ยนแปลงผมเชื่อว่าการแก้ปัญหาสำหรับ นั่นหมายความว่าจะถือสะสมของ LSBs หายไป แต่ฉัน didn t ทำให้ไกลพอที่จะมีรหัสพร้อม, และฉันไม่แน่ใจว่ามันจะไม่เป็นอันตรายต่ออำนาจ IIR ในกรณีอื่น ๆ ของชุดเช่น 7,9,7,9 จะเฉลี่ย 8 แล้ว. โอลินน้ำตกสองขั้นตอนของคุณก็จะต้องมีคำอธิบายอยู่บ้างคุณหมายถึงการเก็บค่าเฉลี่ย 2 ค่าด้วยผลลัพธ์จากการป้อนข้อมูลครั้งแรกเป็นครั้งที่สองในแต่ละรอบข้อมูลสิ่งที่เป็นประโยชน์นี้
ไม่มีตัวเลือกการฝากเงินไบนารีตัวเลือก Binary Trading. If คุณมีความสนใจในการซื้อขายใด ๆ ของตัวเลือกไบนารีออนไลน์ แต่ไม่เคยทำมาก่อนแล้วมีจำนวนของเว็บไซต์การซื้อขายไบนารีตัวเลือกที่มีที่จะช่วยให้คุณสามารถลงทะเบียนและใช้บัญชีสาธิต เพื่อช่วยให้คุณได้รับใช้อย่างเต็มที่ในการใหม่นี้และอาจมีกำไรมากในการซื้อขายตัวเลือกไบนารีออนไลน์ได้ทันทีในความเป็นจริงเราอยากจะแนะนำให้ทุกคนที่ต้องการเริ่มซื้อขายตัวเลือกไบนารีออนไลน์ลงทะเบียนเพื่อใช้บัญชีฝากเงินไม่มีตัวเลือกการซื้อขายไบนารีสำหรับ การทำเช่นนี้จะช่วยให้คุณสามารถใช้งานตัวเลือกไบนารีได้หลายแบบซึ่งปัจจุบันมีให้คุณออนไลน์และมีให้บริการหลายพันแบบในทุกๆชั่วโมงของวันหรือคืนใช้รหัสส่งเสริมการขายพิเศษ TOP10DEMO เพื่ออ้างสิทธิ์ในบัญชี Demo Bonus. Top ไม่มีตัวเลือกการฝากเงินไบนารีตัวเลือกมีดูผ่านคอลเลกชันต่อไปของการฝากเงินไม่จำเป็นต้องใช้การซื้อขายไบนารีตัวเลือกด้านล่างตอนนี้แต่ละของพวกเขาจะให้คุณช่วงใหญ่ของ B inary ตัวเลือก แต่แต่ละของพวกเขามาพร้อมกับชนิดของตัวเองพิเศษของการซื้อขายแพลตฟอร์มเปิดบัญชีที่เป็นจำนวนมากของพวกเขาเท่าที่คุณสามารถทำได้โดยการทำเช่นนี...
Comments
Post a Comment