Wednesday 12 July 2017

การย้าย ค่าเฉลี่ย c แหล่งที่มา


เป็นไปได้ที่จะใช้ค่าเฉลี่ยเคลื่อนที่ใน C โดยไม่จำเป็นต้องมีหน้าต่างของ sample. I พบว่าฉันสามารถเพิ่มประสิทธิภาพบิตโดยการเลือกขนาดหน้าต่างที่ sa อำนาจของสองเพื่อให้สามารถขยับบิตแทนการหาร แต่ มีวิธีการแสดงผลเฉลี่ยเคลื่อนที่ใหม่เท่านั้นเป็นหน้าที่ของผลเก่าและตัวอย่างใหม่กำหนดตัวอย่างเฉลี่ยเคลื่อนที่ข้ามหน้าต่างของ 4 ตัวอย่างที่จะเพิ่มตัวอย่างใหม่ eA ค่าเฉลี่ยเคลื่อนที่สามารถนำมาใช้ซ้ำ แต่สำหรับการคำนวณที่แน่นอนของค่าเฉลี่ยเคลื่อนที่ที่คุณต้องจำตัวอย่างการป้อนข้อมูลที่เก่าแก่ที่สุดในการรวมเช่นในตัวอย่างของคุณสำหรับความยาวเฉลี่ย N คำนวณโดยเฉลี่ยที่คุณ compute. where yn เป็นสัญญาณขาออกและ xn เป็นสัญญาณเข้า Eq 1 สามารถเขียน recursively as ดังนั้นคุณจำเป็นต้องจำตัวอย่าง x nN เพื่อคำนวณ 2.As ชี้โดย Conrad Turner คุณสามารถใช้หน้าต่างชี้แจงอนันต์ยาวแทนซึ่งช่วยให้คุณสามารถคำนวณ ผลลัพธ์จากอดีตเท่านั้น ใส่และ input. but ปัจจุบันนี้ไม่ได้เป็นค่าเฉลี่ยเคลื่อนที่ unweighted มาตรฐาน แต่ค่าเฉลี่ยถ่วงน้ำหนักที่ชี้แจงซึ่งตัวอย่างต่อไปในอดีตได้รับน้ำหนักที่มีขนาดเล็ก แต่อย่างน้อยในทฤษฎีที่คุณไม่เคยลืมอะไรน้ำหนักเพียงได้รับมีขนาดเล็กและขนาดเล็กสำหรับ ตัวอย่างที่ไกลในอดีตฉันใช้ค่าเฉลี่ยเคลื่อนที่โดยไม่มีหน่วยความจำรายการแต่ละรายการสำหรับโปรแกรมติดตาม GPS ฉันเขียนฉันเริ่มต้นด้วย 1 ตัวอย่างและหารด้วย 1 เพื่อให้ได้ avg. I ปัจจุบันจากนั้นเพิ่มตัวอย่าง anothe และหารด้วย 2 ไปที่ ปัจจุบัน avg. This ต่อไปจนกว่าฉันจะได้รับความยาวของ average. Each เวลาหลังจากนั้นฉันเพิ่มในตัวอย่างใหม่ได้รับค่าเฉลี่ยและลบค่าเฉลี่ยที่จาก total. I ไม่นักคณิตศาสตร์ แต่ดูเหมือนจะเป็นวิธีที่ดีที่จะ ทำมันฉันคิดว่ามันจะเปิดท้องของคนรักคณิตศาสตร์จริง แต่ก็จะเปิดออกเป็นหนึ่งในวิธีที่ยอมรับการทำมันและทำงานได้ดีเพียงจำไว้ว่าสูงกว่าความยาวของคุณช้าลงตามสิ่งที่คุณต้องการปฏิบัติตาม ที่อาจไม่สำคัญที่สุด เวลา แต่เมื่อติดตามดาวเทียมถ้าคุณช้าเส้นทางอาจอยู่ไกลจากตำแหน่งจริงและจะดูไม่ดีคุณอาจมีช่องว่างระหว่างนั่งและจุดต่อท้ายฉันเลือกความยาว 15 ปรับปรุง 6 ครั้งต่อนาที ได้รับการราบเรียบที่เพียงพอและไม่ได้รับไกลจากตำแหน่งนั่งจริงกับเส้นทางราบรื่น dots. answered 16 16 ที่ 23 03.initialize รวม 0, 0 นับแต่ละครั้งเห็นค่าใหม่แล้ว scanf หนึ่งใส่หนึ่งเพิ่ม newValue ใหม่, การนับที่เพิ่มขึ้นหนึ่งรายการหารหนึ่งค่าเฉลี่ยหารด้วยซึ่งจะเป็นค่าเฉลี่ยที่เคลื่อนที่เหนือปัจจัยการผลิตทั้งหมดการคำนวณค่าเฉลี่ยโดยใช้เพียง 4 ปัจจัยสุดท้ายต้องใช้อินพุต 4 ตัวแปรอาจคัดลอกข้อมูลแต่ละอินพุทไปยังอินพุตที่เก่ากว่าแล้วคำนวณการเคลื่อนย้ายใหม่ ค่าเฉลี่ยเป็นผลรวมของ inputvariables 4 หารด้วย 4 shift ขวา 2 จะดีถ้า inputs ทั้งหมดเป็นบวกเพื่อคำนวณเฉลี่ย. ตอบ 3 กุมภาพันธ์ 15 ที่ 4 06.That จริงจะคำนวณค่าเฉลี่ยรวมและไม่เฉลี่ยเคลื่อนที่เป็น นับได้ ผลกระทบของตัวอย่างข้อมูลใหม่ ๆ จะลดลงเล็กน้อย Hilmar 3 ก. พ. 15 ที่ 13 53. คำตอบของคุณ 2017 Stack Exchange, Inc. ฉันรู้ว่านี่เป็นไปได้ที่จะเพิ่มขึ้นตาม แต่ฉันอยากจะหลีกเลี่ยงการใช้เพิ่มที่ฉันมี googled และไม่พบตัวอย่างใด ๆ ที่เหมาะสมหรืออ่านได้โดยปกติฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของกระแสอย่างต่อเนื่องของกระแสข้อมูลของตัวเลขทศนิยมโดยใช้ตัวเลขล่าสุด 1000 เป็นตัวอย่างข้อมูลวิธีที่ง่ายที่สุดในการบรรลุ this. I ทดลองใช้อาร์เรย์แบบวงกลมค่าเฉลี่ยเคลื่อนที่แบบเสวนาและค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายขึ้นและพบว่าผลลัพธ์จากอาร์เรย์แบบวงกลมเหมาะสมกับความต้องการของฉัน best. asked 12 มิ.ย. 12 เวลา 4 38. ถ้าความต้องการของคุณง่ายคุณอาจลองใช้ exponential moving average เพียงแค่คุณสร้างตัวแปร accumulator และเมื่อโค้ดของคุณดูที่ตัวอย่างแต่ละโค้ดจะอัพเดต accumulator ด้วยค่าใหม่คุณสามารถเลือกค่า alpha คงที่ระหว่าง 0 ถึง 1 และคำนวณได้โดยคุณต้อง เพื่อหาค่าของ a lpha ซึ่งผลกระทบของตัวอย่างที่กำหนดจะใช้เวลาประมาณ 1000 ตัวอย่างเท่านั้นฉันไม่แน่ใจว่านี่เหมาะสำหรับคุณตอนนี้ที่ฉันได้วางไว้ที่นี่แล้วปัญหาคือ 1000 เป็นหน้าต่างที่ยาวสวยสำหรับค่าเฉลี่ยเคลื่อนที่แบบเสวนา ฉันไม่แน่ใจว่ามีอัลฟาที่จะกระจายเฉลี่ยมากกว่า 1000 หมายเลขโดยไม่ underflow ในการคำนวณจุดลอย แต่ถ้าคุณต้องการค่าเฉลี่ยเล็กกว่าเช่น 30 ตัวเลขหรือดังนั้นนี้เป็นวิธีที่ง่ายและรวดเร็วในการทำ it. answered Jun 12 12 at 4 44 1 โพสต์ของคุณค่าเฉลี่ยเคลื่อนที่ที่ชี้แจงสามารถกำหนดให้ alpha เป็นตัวแปรดังนั้นวิธีนี้จะช่วยให้สามารถใช้คำนวณค่าเฉลี่ยของฐานเวลาได้เช่น bytes per second ถ้าเวลาตั้งแต่การอัพเดตเครื่องสะสมครั้งล่าสุดมีมากขึ้น มากกว่า 1 วินาทีคุณยอมให้ alpha เป็น 1 0 มิฉะนั้นคุณสามารถปล่อยให้ alpha เป็น usecs ตั้งแต่การอัปเดตล่าสุด 1000000 jxh Jun 12 12 at 6 21 โดยปกติฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของสตรีมตัวเลขจุดลอยที่ต่อเนื่อง ตัวเลขล่าสุด 1000 เป็นตัวอย่างข้อมูลไม่ใช่ e ที่ด้านล่างปรับปรุงทั้งหมดเป็นองค์ประกอบที่เพิ่มแทนหลีกเลี่ยงค่าใช้จ่าย ON traversal ในการคำนวณผลรวมที่จำเป็นสำหรับค่าเฉลี่ยเมื่อ demand. Total ทำพารามิเตอร์ที่แตกต่างจาก T เพื่อสนับสนุนเช่นใช้ยาวนานเมื่อรวม 1000 ยาว s , int สำหรับ char s หรือ double เป็น float ทั้งหมดนี่เป็นบิตที่มีข้อบกพร่องในการที่ numsamples อาจผ่าน INTMAX - ถ้าคุณสนใจคุณสามารถใช้ unsigned long long หรือใช้สมาชิก bool ข้อมูลพิเศษเพื่อบันทึกเมื่อคอนเทนเนอร์ เป็นครั้งแรกในขณะที่เต็มไปด้วยการขี่จักรยาน numsamples รอบแถวที่ดีที่สุดแล้วเปลี่ยนชื่อเป็นสิ่งที่น่ากลัวเช่น pos. answered 12 มิถุนายน 12 ที่ 5 19.one สันนิษฐานว่าโมฆะดำเนินการตัวอย่าง T เป็นจริงโมฆะดำเนินการตัวอย่าง T oPless มิถุนายน 8 14 ที่ 11 52 oPless ahhh เห็นดี จริงฉันหมายความว่ามันจะโมฆะดำเนินการ T ตัวอย่าง แต่แน่นอนคุณสามารถใช้สิ่งที่คุณต้องการจะแก้ไขจะขอบคุณโทนี่ D มิถุนายน 8 14 ที่ 14 27.C ขั้นตอนวิธีการ zero - แฝงเรขาคณิตเฉลี่ยย้ายแก้ไขล่าสุด 2012-08 - 13. ฉันพยายามที่จะใช้ a ตัดความถี่ต่ำใน c ซึ่งเป็นหลักจะใช้กระแสของตัวเลขและเรียบออกเอาท์พุทกรองออกกระวนกระวายใจการเคลื่อนไหวความถี่สูง แต่ก็เป็นสิ่งสำคัญตัวเลขถ่วงน้ำหนักด้านหน้าถือว่าเป็นทันทีเป็นข้อมูลที่เป็นเวลาที่สำคัญคือการควบคุมฐานการจำลองการเคลื่อนไหวโดยใช้ ออกจากบิตของซอฟต์แวร์เกม I ve มีน้ำหนัก algoithm เคลื่อนไหวถ่วงน้ำหนักเฉลี่ย แต่สามารถทำอะไรบางอย่างน้อยตอบสนองมากขึ้นที่ปลายด้านหน้าและฉันพบนี้หลอกรหัสมีดังต่อไปนี้ Inputs NumericSeries, Period NumericSimple ปัจจัยตัวแปร 0, lag 0.if CurrentBar 1 แล้วเริ่ม ZLEMA Price factor 2 ระยะเวลา 1 lag ระยะเวลา -1 2 end else begin ZLEMA factor 2 ราคาตลาด lag 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