Saturday 15 July 2017

C เฉลี่ยเคลื่อนที่ ขั้นตอนวิธี


ฉันรู้ว่านี่เป็นไปได้ด้วยการเพิ่มตาม per. But ฉันต้องการหลีกเลี่ยงการใช้เพิ่มฉันมี googled และไม่พบตัวอย่างใด ๆ ที่เหมาะสมหรืออ่านได้โดยปกติฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของกระแสอย่างต่อเนื่องของกระแสของตัวเลขจุดลอย การใช้ตัวเลขล่าสุด 1000 เป็นตัวอย่างข้อมูลวิธีที่ง่ายที่สุดในการบรรลุนี้ฉันทดลองกับการใช้อาร์เรย์แบบวงกลมค่าเฉลี่ยเคลื่อนที่แบบเสวนาและค่าเฉลี่ยเคลื่อนที่ที่ง่ายขึ้นและพบว่าผลลัพธ์จากอาร์เรย์แบบวงกลมเหมาะกับความต้องการของฉันดีที่สุด 12 มิถุนายน 12 ที่ 4 38. ถ้าความต้องการของคุณง่ายคุณอาจลองใช้ค่าเฉลี่ยเคลื่อนที่แทนคุณก็สร้างตัวแปร accumulator และเมื่อโค้ดของคุณดูที่ตัวอย่างแต่ละโค้ดจะอัพเดต accumulator ด้วย ค่าใหม่คุณสามารถเลือกค่า alpha คงที่ระหว่าง 0 ถึง 1 และคำนวณค่านี้ได้คุณต้องหาค่า alpha ที่ผลของตัวอย่างที่กำหนดจะใช้เวลาประมาณ 1000 ตัวอย่างเท่านั้นฉันไม่แน่ใจว่านี่เป็น เหมาะสำหรับคุณตอนนี้ t หมวกฉันได้วางไว้ที่นี่ปัญหาคือ 1000 เป็นหน้าต่างยาวสวยสำหรับการเคลื่อนที่เฉลี่ยฉันไม่แน่ใจว่ามีอัลฟาที่จะกระจายเฉลี่ยมากกว่า 1000 หมายเลขโดยไม่ underflow ในการคำนวณจุดลอย แต่ถ้าคุณ ต้องการค่าเฉลี่ยที่เล็กกว่าเช่น 30 ตัวเลขหรือมากกว่านี้เป็นวิธีที่ง่ายและรวดเร็วในการทำ it. answered 12 มิถุนายน 12 ที่ 4 44 1 โพสต์ของคุณค่าเฉลี่ยเคลื่อนที่ชี้แจงสามารถให้ alpha เป็นตัวแปรดังนั้นนี้จะช่วยให้ ใช้เวลาในการคำนวณค่าเฉลี่ยของฐานเวลาเช่นไบต์ต่อวินาทีถ้าเวลานับตั้งแต่การอัปเดตสะสมครั้งสุดท้ายเป็นเวลามากกว่า 1 วินาทีคุณจะอนุญาตให้ alpha เป็น 1 0 มิฉะนั้นคุณสามารถปล่อยให้ alpha เป็น usecs ตั้งแต่การอัปเดตล่าสุด 1000000 jxh Jun 12 12 at 6 21 โดยปกติแล้วฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของสตรีมตัวเลขจุดลอยที่ต่อเนื่องโดยใช้ตัวเลข 1000 ครั้งล่าสุดเป็นตัวอย่างข้อมูลโปรดทราบว่าด้านล่างปรับปรุงชุดค่าผสมทั้งหมดเป็นองค์ประกอบแทนที่ถูกแทนที่โดยหลีกเลี่ยงการข้ามค่าใช้จ่ายในการคำนวณ ผลรวม - จำเป็นสำหรับ th e - ค่าเฉลี่ย - เมื่อต้องการ - ทั้งหมดจะทำพารามิเตอร์ที่แตกต่างจาก T เพื่อสนับสนุนเช่นใช้ยาวนานเมื่อรวม 1000 long s, int สำหรับ char s หรือ double เพื่อ float ทั้งหมด s นี้เป็นบิตสมบูรณ์ใน numsamples ที่สามารถ ไปที่ผ่านมา INTMAX - ถ้าคุณสนใจคุณสามารถใช้ unsigned ยาวยาวหรือใช้สมาชิก bool ข้อมูลพิเศษเพื่อบันทึกเมื่อภาชนะบรรจุเป็นครั้งแรกในขณะที่การขี่จักรยาน numsamples รอบแถวที่ดีที่สุดแล้วเปลี่ยนชื่อสิ่งที่ไม่เป็นอันตรายเช่น pos. answered 12 มิถุนายน 12 ที่ 5 19 . สมมติว่าผู้ประกอบการโมฆะ T ตัวอย่างเป็นจริงโมฆะดำเนินการตัวอย่าง T oPless 8 มิถุนายน 14 ที่ 11 52. oPhtts ahhh เห็นดีจริงฉันหมายความว่ามันจะเป็นโมฆะดำเนินการ T ตัวอย่าง แต่แน่นอนคุณสามารถใช้สิ่งที่คุณต้องการจะแก้ไข, ขอบคุณ Tony D มิถุนายน 8 14 ที่ 14 27.Is เป็นไปได้ที่จะใช้ค่าเฉลี่ยเคลื่อนที่ใน C โดยไม่ต้องใช้หน้าต่างของ samples. I ve พบว่าฉันสามารถเพิ่มประสิทธิภาพบิตโดยเลือกขนาดหน้าต่างที่ sa อำนาจของสองเพื่อ อนุญาตให้มีการขยับบิตแทนการหาร แต่ไม่จำเป็นต้อง buf fer จะดีมีวิธีการแสดงผลเฉลี่ยเคลื่อนไหวใหม่เท่านั้นเป็นหน้าที่ของผลเก่าและตัวอย่างใหม่กำหนดตัวอย่างเฉลี่ยเคลื่อนที่ข้ามหน้าต่างของ 4 ตัวอย่างที่จะเพิ่มตัวอย่างใหม่ eA เฉลี่ยเคลื่อนที่ จะใช้ recursively แต่สำหรับการคำนวณที่แน่นอนของค่าเฉลี่ยเคลื่อนที่ที่คุณต้องจำตัวอย่างการป้อนข้อมูลที่เก่าแก่ที่สุดในการรวมเช่นในตัวอย่างของคุณสำหรับความยาวเฉลี่ย N คำนวณโดยเฉลี่ยคุณ compute. where yn เป็นสัญญาณขาออกและ xn เป็นอินพุต สัญญาณ Eq 1 สามารถเขียน recursively as ดังนั้นคุณจำเป็นต้องจำตัวอย่าง x nN เพื่อคำนวณ 2.As ชี้โดย Conrad Turner คุณสามารถใช้หน้าต่างชี้แจงอนันต์ยาวแทนซึ่งช่วยให้คุณสามารถคำนวณผลลัพธ์เท่านั้น จากการส่งออกที่ผ่านมาและ input. but ปัจจุบันนี้ไม่ได้เป็นค่าเฉลี่ยของค่าเฉลี่ยที่ไม่ได้เว้นแต่ค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนักที่ชี้แจงซึ่งตัวอย่างต่อไปในอดีตจะมีน้ำหนักน้อยลง แต่อย่างน้อยก็ในทางทฤษฎีคุณไม่เคยลืมอะไรที่มีน้ำหนัก jus t รับขนาดเล็กและขนาดเล็กสำหรับตัวอย่างไกลในอดีตฉันใช้ค่าเฉลี่ยเคลื่อนที่โดยไม่ต้องหน่วยความจำรายการส่วนบุคคลสำหรับโปรแกรมติดตาม GPS ฉัน wrote. I เริ่มต้นด้วย 1 ตัวอย่างและหารด้วย 1 เพื่อให้ได้ avg. I ปัจจุบันแล้วเพิ่ม anothe ตัวอย่างและ แบ่งโดย 2 เพื่อ avg. This ปัจจุบันต่อไปจนกว่าฉันจะได้รับความยาวของ average. Each เวลาหลังจากนั้นผมเพิ่มในตัวอย่างใหม่ได้รับค่าเฉลี่ยและลบค่าเฉลี่ยที่จาก total. I ไม่นักคณิตศาสตร์ แต่นี้ ดูเหมือนจะเป็นวิธีที่ดีที่จะทำมันฉันคิดว่ามันจะเปิดท้องของคนที่แต่งตัวประหลาดคณิตศาสตร์จริง แต่ก็จะเปิดออกเป็นหนึ่งในวิธีที่ยอมรับในการทำมันและทำงานได้ดีเพียงจำไว้ว่าสูงกว่าความยาวของคุณช้าลงก็คือ ต่อไปนี้สิ่งที่คุณต้องการปฏิบัติตามนั่นอาจไม่สำคัญตลอดเวลา แต่เมื่อติดตามดาวเทียมถ้าคุณช้าเส้นทางอาจไกลจากตำแหน่งจริงและจะดูไม่ดีคุณอาจมีช่องว่างระหว่างนั่งและจุดต่อท้าย ฉันเลือกความยาวของ 15 ปรับปรุง 6 ครั้งต่อนาทีเพื่อรับ ade quate เรียบและไม่ได้รับไกลจากตำแหน่งนั่งจริงกับเส้นทางเรียบ dots. answered 16 พฤศจิกายน 16 ที่ 23 03.initialize รวม 0, 0 นับแต่ละครั้งเห็นค่าใหม่แล้ว scanf input หนึ่งหนึ่งเพิ่ม newValue ใหม่หนึ่ง การนับที่เพิ่มขึ้นหารหนึ่งค่าเฉลี่ยโดยเฉลี่ยซึ่งจะเป็นค่าเฉลี่ยที่เคลื่อนที่ผ่านปัจจัยการผลิตทั้งหมดหากต้องการคำนวณค่าเฉลี่ยมากกว่าเพียง 4 อินพุทสุดท้ายจะต้องมี 4 อินพุตตัวแปรอาจคัดลอกข้อมูลแต่ละอินพุทไปยังตัวแปรอินพุตที่เก่ากว่าแล้วคำนวณค่าเฉลี่ยเคลื่อนที่ใหม่ เป็นผลรวมของ inputvariables 4 หารด้วย 4 right shift 2 จะดีถ้า inputs ทั้งหมดเป็นบวกเพื่อคำนวณเฉลี่ย. ตอบ 3 กุมภาพันธ์ที่ 4 06.That จริงจะคำนวณค่าเฉลี่ยรวมและไม่เฉลี่ยเคลื่อนที่เป็นนับ ผลกระทบของตัวอย่างข้อมูลใหม่จะกลายเป็นขนาดเล็ก vanishingly Hilmar กุมภาพันธ์ 3 15 ที่ 13 53.You Answer.2017 Stack Exchange, Inc. C ขั้นตอนวิธีการสำหรับ zero-latency หมายถึงการเคลื่อนย้ายค่าเฉลี่ย averageLog Modified 2012-08-13 I've been been พยายามที่จะใช้ a ตัดความถี่ต่ำใน c ซึ่งเป็นหลักจะใช้กระแสของตัวเลขและเรียบออกเอาท์พุทกรองออกกระวนกระวายใจการเคลื่อนไหวความถี่สูง แต่ก็เป็นสิ่งสำคัญตัวเลขถ่วงน้ำหนักด้านหน้าถือว่าเป็นทันทีเป็นข้อมูลที่เป็นเวลาที่สำคัญคือการควบคุมฐานการจำลองการเคลื่อนไหวโดยใช้ ออกจากบิตของซอฟต์แวร์เกม I ve มีน้ำหนัก algoithm เคลื่อนไหวถ่วงน้ำหนักเฉลี่ย แต่สามารถทำอะไรบางอย่างน้อยตอบสนองมากขึ้นที่ปลายด้านหน้าและฉันพบนี้หลอกรหัสมีดังต่อไปนี้ Inputs NumericSeries, Period NumericSimple ปัจจัยตัวแปร 0, lag 0.if CurrentBar 1 แล้วเริ่ม ZLEMA ปัจจัยด้านราคา 2 ระยะเวลา 1 lag ระยะเวลา -1 2 end else begin ZLEMA factor 2 ราคาตลาดล่าช้า 1-factor ZLEMA 1 end ฉันได้แปลรหัสดังกล่าวเป็น C และโค้ดแล้ว เป็นดังนี้อย่างไรก็ตามมัน doesn t ดูเหมือนจะทำงานค่อนข้างเป็นฉันคาดหวัง D ดูเหมือนว่าจะมีเกือบ แต่บางครั้งฉันจะได้รับค่าต่ำกว่าเล็กน้อยกว่ารายการทั้งหมดในคิวเมื่อพวกเขาทั้งหมดที่สูงขึ้นคิวของฉันและจำนวนของรายการ ในนั้น จะผ่านเป็นพารามิเตอร์ที่มีการล่าสุดเป็นที่ด้านหน้าตลอดเวลายังฉันผ่านเคาน์เตอร์ incrementing เริ่มต้นที่ 0 ตามที่กำหนดไว้ function. I m ไม่แน่ใจฉัน ve ตีความความหมายของ ZLEMA 1 อย่างถูกต้องตามที่ไม่ชัดเจน ใน pseudocode ของเขาดังนั้นฉัน ve สันนิษฐานนี้จะโทร zlema ล่าสุดและฉัน m สมมติว่าราคาจริงหมายถึงราคา 0 บางทีฉัน ve wrong. Am นี้ฉันควรจะคัดลอกค่า zlema จริงคำนวณค่ากลับไปที่คิวเดิมของฉันก่อน โทรต่อไปฉัน don t เปลี่ยนคิวเดิมที่อื่น ๆ ทั้งหมดกว่าเพียงแค่ขยับค่าทั้งหมดที่หนึ่งไปยังจุดสิ้นสุดและแทรกล่าสุดที่จุดเริ่มต้นรหัสฉันใช้ในการทำเช่นนี้จะเป็นอย่างมากขอบคุณถ้าคนที่มีความเข้าใจที่ดีขึ้นของ คณิตศาสตร์สามารถกรุณา sanity ตรวจสอบนี้สำหรับฉันเพื่อดูว่าฉันได้มีอะไรผิดพลาดเล็กน้อยขอบคุณมากล่วงหน้าหากคุณสามารถ help. Firstly ขอบคุณทั้งหมดสำหรับการป้อนข้อมูลของคุณ appreciated. That มากทำให้ฉันเดาดังนั้นฉันคิดว่าดีที่สุดแล้ว ฉันสามารถหวังสำหรับเป็นเพียง expone ค่าเฉลี่ยเคลื่อนที่ ntial รับยอมรับจะมีความล่าช้าเล็กน้อย แต่จะลดลงโดย weighting หน้าหนักกว่าให้ค่าเฉลี่ยถ่วงน้ำหนัก typised ฉันมีอัลกอริทึมนี้เกินไป แต่ปัญหาที่คล้ายกันในที่ค่า don t ดูเหมือนค่อนข้างถูกต้องเว้นแต่นี้ เป็นลักษณะของ formula. For เช่นกล่าวว่าอาร์เรย์ของฉันประกอบด้วย 16 ค่าทั้งหมด 0 4775 - เอาต์พุตเป็น 0 4983 แต่ฉันคาดหวังว่าจะเป็น 0 4775.Does รูปลักษณ์นี้ถูกต้องให้คุณ ค่าลอยเฉลี่ยถ่วงน้ำหนัก ema float vals, int numVals, int currentSample ปัจจัยลอยคงที่ 0 float ลอย lastema 0 float ema. if currentSample 1 ema vals 0 ปัจจัย 2 0 float numVals 1 0 อื่น ๆ ema factor vals 0 1 0 - factor lastema lastema ema return ema ตรงกันข้ามบางครั้งเอาท์พุทต่ำกว่าแต่ละและทุกหนึ่งของปัจจัยการผลิตแม้ว่าทั้งหมดจะสูงกว่ามันเรียกว่าในลักษณะเดียวกับ zlema ข้างต้นมีเคาน์เตอร์ที่เพิ่มขึ้นสูตรและ pseudocode สำหรับคนนี้อยู่ที่นี่ - ขอบคุณ ขอโทษสำหรับความเข้าใจผิดของฉันบางพื้นฐาน Kind regards, Chris J. As สำหรับรหัสที่ฉันโพสต์คุณขวาเกี่ยวกับสถานการณ์ขนาดอาร์เรย์ที่ควรได้รับการแก้ไขได้อย่างง่ายดายสำหรับคำถามของคุณ 1 ค่าคงที่กรองหมายถึงตัดความถี่ ฉันใช้ Digital Signal Processing DSP สำหรับเทคนิคนี้ Low-pas sfilter เป็นคำอธิบายง่ายๆคุณต้องการ Discrete-Time Realization section ในกรณีของฉัน A คือ RC-Constant พวกเขาพูดถึงดังนั้นความถี่ที่ตัดออกอยู่เหนือ 1 2 pi A ถ้าคุณไม่เข้าใจทฤษฎี Frequency Domain คุณอาจได้รับความซับซ้อนมากขึ้นในกรณีของคุณคุณยิ่งทำให้ A ต่ำลงความถี่ที่ตัวกรองนี้จะช่วยให้ความหมายว่าเส้นโค้งจะออกมามากขึ้น และอื่น ๆ ที่ต่ำกว่าที่คุณทำมันเสียงมากขึ้นที่ได้รับอนุญาตในระบบ Remember A ต้องมากกว่าหรือเท่ากับ 1 จะมีประสิทธิภาพ I reattached XLS อีกครั้งโดยเวลานี้โดยไม่ต้องเปลี่ยนตัวเลข rand ปรับค่าคงที่และดู วิธีที่ราบเรียบหรือกรองรูปแบบความถี่สูง 2 จุดสุดท้ายของอาร์เรย์อินพุตมีค่าล่าสุด 3 เหมือนกันสำหรับอาร์เรย์ผลลัพธ์สุดท้ายคือค่าล่าสุด 5. NUMVALS เป็นค่าที่คุณสามารถทำได้อย่างต่อเนื่อง เพิ่มในการป้อนข้อมูลและอาร์เรย์ออกหลาย ๆ ครั้งตามที่คุณต้องการและมัน wouldn t ผลกรองโดยเฉพาะอย่างยิ่งผมใช้ 49 คะแนน แต่ฉันสามารถลบล่าสุด 20 และ 29 ผลแรกจะยังคงเหมือนเดิมฟังก์ชั่นไม่ได้เป็น ขึ้นอยู่กับจำนวนจุดที่มีการใช้ฉันต้องการ พูดถึงว่าฉันได้พัฒนาฟังก์ชันนี้สำหรับการแปลงเพียงครั้งเดียวถ้าคุณต้องการทำ Conversion สำหรับมูลค่าถัดไปคุณสามารถลองทำสิ่งที่เรียบง่ายกว่าเดิมได้อีกครั้งฉันเป็นสนิมใน c ฉันหวังว่านี่เป็นสิ่งเดียวที่คุณต้องการ จำเป็นต้องจัดหาเป็น input และตัวกรองคงให้ฉันรู้ว่าถ้านี้จะช่วยให้

No comments:

Post a Comment