ฉันรู้ว่านี่เป็นไปได้ด้วยการเพิ่มตาม: แต่ฉันต้องการหลีกเลี่ยงการเพิ่ม ฉันมี googled และไม่พบตัวอย่างที่เหมาะสมหรืออ่านได้ โดยทั่วไปฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของสตรีมกระแสข้อมูลจำนวนจุดลอยโดยใช้ตัวเลข 1000 ครั้งล่าสุดเป็นตัวอย่างข้อมูล วิธีที่ง่ายที่สุดในการทำแบบทดสอบนี้คือการใช้อาร์เรย์แบบวงกลมค่าเฉลี่ยเคลื่อนที่แบบเสวนาและค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายกว่าและพบว่าผลลัพธ์จากอาร์เรย์แบบวงกลมเหมาะกับความต้องการของฉันมากที่สุด ถาม 12 มิ.ย. 12 เวลา 4:38 หากความต้องการของคุณเรียบง่ายคุณอาจลองใช้ค่าเฉลี่ยเคลื่อนที่แบบเสวนา ใส่เพียงแค่คุณสร้างตัวแปรสะสมและเมื่อโค้ดของคุณดูที่ตัวอย่างแต่ละโค้ดจะอัปเดตข้อมูลสะสมด้วยค่าใหม่ คุณสามารถเลือกค่า alpha คงที่ระหว่าง 0 ถึง 1 และคำนวณค่านี้: คุณเพียงแค่หาค่า alpha ที่ผลของตัวอย่างที่กำหนดจะใช้เวลาประมาณ 1000 ตัวอย่างเท่านั้น อืมฉันไม่แน่ใจว่านี่เหมาะกับคุณแล้วตอนนี้ฉันวางมันไว้ที่นี่แล้ว ปัญหาคือ 1000 เป็นหน้าต่างยาวสวยสำหรับค่าเฉลี่ยเคลื่อนที่ที่อธิบายไม่แน่ใจว่ามีอัลฟาที่จะกระจายค่าเฉลี่ยมากกว่า 1000 หมายเลขล่าสุดโดยไม่ต้อง underflow ในการคำนวณจุดลอย แต่ถ้าคุณต้องการค่าเฉลี่ยที่เล็กลงเช่น 30 ตัวเลขหรือมากกว่านี่เป็นวิธีที่ง่ายและรวดเร็วในการดำเนินการ ตอบ 12 มิ.ย. 12 เวลา 4:44 1 ในโพสต์ของคุณ ค่าเฉลี่ยเคลื่อนที่ที่อธิบายได้จะทำให้ตัวแปรอัลฟ่าเป็นตัวแปรได้ ดังนั้นจึงช่วยให้สามารถใช้คำนวณค่าเฉลี่ยของฐานเวลา (เช่นไบต์ต่อวินาที) ถ้าเวลานับตั้งแต่การอัปเดตสะสมครั้งล่าสุดเป็นเวลามากกว่า 1 วินาทีคุณจะยอมให้ alpha เป็น 1.0 มิเช่นนั้นคุณสามารถปล่อยให้ alpha เป็น (usecs ตั้งแต่ update1000000 ครั้งล่าสุด) ndash jxh Jun 12 12 at 6:21 โดยทั่วไปฉันต้องการติดตามค่าเฉลี่ยเคลื่อนที่ของกระแสอย่างต่อเนื่องของกระแสตัวเลขจุดลอยใช้ล่าสุด 1000 หมายเลขเป็นตัวอย่างข้อมูล โปรดทราบว่าด้านล่างปรับปรุงชุดค่าผสมทั้งหมดเป็นองค์ประกอบที่เพิ่มขึ้นโดยไม่ต้องเสียค่าใช้จ่ายในการคำนวณ O (N) traversal เพื่อคำนวณผลรวม - จำเป็นสำหรับค่าเฉลี่ย - ตามความต้องการ ทั้งหมดถูกกำหนดเป็นพารามิเตอร์อื่นจาก T เพื่อสนับสนุนเช่น ใช้ยาวนานเมื่อรวม 1000 ยาว s, int สำหรับ char s หรือ double เพื่อรวม float s นี่เป็นบิตที่มีข้อบกพร่องในการที่ numsamples อาจผ่าน INTMAX - ถ้าคุณสนใจคุณสามารถใช้ unsigned long long หรือใช้สมาชิกข้อมูล bool พิเศษเพื่อบันทึกเมื่อเติมคอนเทนเนอร์เป็นครั้งแรกในขณะที่วนรอบ numsamples รอบ (ดีที่สุดแล้วเปลี่ยนชื่อบางอย่างที่ไม่เป็นอันตรายเช่น pos) ตอบ 12 มิ.ย. 12 at 5:19 สมมติว่าตัวดำเนินการ quotvoid (T sample) quot ก็คือ quotvoid operatorltlt (T sample) quot ndash o วันที่ 8 มิ.ย. 14 เวลา 11:52 น. oPhút ahhh เห็นดี จริงฉันตั้งใจจะให้โมฆะดำเนิน () (T ตัวอย่าง) แต่แน่นอนคุณสามารถใช้สิ่งที่คุณต้องการสัญกรณ์. จะแก้ไขขอบคุณ ndash Tony D มิ.ย. 8 14 เวลา 14: 27 ตามที่คนอื่น ๆ พูดถึงคุณควรพิจารณาตัวกรอง IIR (การตอบสนองต่ออิมพัลส์ไม่ จำกัด ) แทนที่จะใช้ตัวกรองฟิลเตอร์ FIR ที่คุณกำลังใช้อยู่ มีมากขึ้นไปได้ แต่ในตอนแรกอย่างรวดเร็วตัวกรอง FIR จะถูกนำมาใช้เป็นตัวคั่นที่ชัดเจนและตัวกรอง IIR ที่มีสมการ ตัวกรอง IIR ที่ฉันใช้เป็นจำนวนมากในไมโครคอนโทรลเลอร์คือตัวกรองสัญญาณขาเดียวแบบขั้วเดียว นี่คือดิจิตอลเทียบเท่าของตัวกรองสัญญาณ R-C แบบง่าย สำหรับแอปพลิเคชันส่วนใหญ่คุณลักษณะเหล่านี้จะมีลักษณะที่ดีกว่าตัวกรองช่องที่คุณใช้อยู่ การใช้ส่วนใหญ่ของตัวกรองกล่องที่ฉันพบเป็นผลมาจากคนที่ไม่ให้ความสนใจในคลาสการประมวลผลสัญญาณดิจิทัลไม่ใช่จากลักษณะเฉพาะของพวกเขา ถ้าคุณต้องการลดความถี่สูงที่คุณรู้ว่าเป็นสัญญาณรบกวนตัวกรองสัญญาณขาเดียวแบบขั้วเดียวจะดีกว่า วิธีที่ดีที่สุดในการใช้งานแบบดิจิทัลในไมโครคอนโทรลเลอร์คือ: FILT lt - FILT FF (NEW - FILT) FILT เป็นสถานะที่มีความคงทน นี่เป็นตัวแปรเดียวที่คุณต้องใช้เพื่อคำนวณตัวกรองนี้ NEW เป็นค่าใหม่ที่ตัวกรองจะได้รับการอัปเดตด้วยการทำซ้ำนี้ FF คือส่วนของตัวกรอง ซึ่งจะปรับความหนักเบาของตัวกรอง ดูที่ขั้นตอนนี้และดูว่าสำหรับ FF 0 ตัวกรองเป็นแบบอนันต์หนักเนื่องจากผลลัพธ์ไม่เคยเปลี่ยนแปลง สำหรับ FF 1 จริงๆไม่มีตัวกรองเลยตั้งแต่เอาท์พุททำตาม input ค่าที่เป็นประโยชน์อยู่ระหว่าง ในระบบขนาดเล็กที่คุณเลือก FF เป็น 12 N เพื่อให้คูณด้วย FF สามารถทำได้เป็น shift ขวาโดย N บิต ตัวอย่างเช่น FF อาจเป็น 116 และคูณด้วย FF ดังนั้นจึงมีการเลื่อนทางขวาเป็น 4 บิต มิเช่นนั้นตัวกรองนี้จะต้องมีเพียงหนึ่งคำเดียวลบออกและเพิ่มหนึ่งครั้งแม้ว่าตัวเลขจะต้องกว้างกว่าค่าอินพุท (มากกว่าความแม่นยำเชิงตัวเลขในส่วนที่แยกต่างหากด้านล่าง) ฉันมักจะใช้เวลาอ่านโฆษณาอย่างมีนัยสำคัญได้เร็วกว่าที่จำเป็นและใช้ตัวกรองเหล่านี้สองตัวเรียงกัน นี่คือดิจิตอลเทียบเท่าของตัวกรอง R-C สองชุดและลดลง 12 dBoctave เหนือความถี่ rolloff อย่างไรก็ตามสำหรับการอ่านโฆษณามักจะมีความเกี่ยวข้องมากขึ้นในการดูตัวกรองในโดเมนเวลาโดยพิจารณาการตอบกลับขั้นตอน นี่จะบอกคุณว่าระบบของคุณจะเห็นการเปลี่ยนแปลงอย่างไรเมื่อสิ่งที่คุณกำลังวัดการเปลี่ยนแปลง เพื่ออำนวยความสะดวกในการออกแบบตัวกรองเหล่านี้ (ซึ่งหมายถึงการเลือก FF และการตัดสินใจว่าจะให้น้ำตกมากเพียงใด) ฉันใช้ FILTBITS ของโปรแกรม คุณระบุจำนวนของบิต shift สำหรับแต่ละเฟรมในชุดตัวกรองแบบเรียงซ้อนและคำนวณค่าการตอบสนองขั้นตอนและค่าอื่น ๆ ที่จริงฉันมักจะใช้นี้ผ่าน wrapper script PLOTFILT ของฉัน การดำเนินการนี้จะเรียกใช้ FILTBITS ซึ่งจะสร้างไฟล์ CSV จากนั้นแปลงไฟล์ CSV ตัวอย่างเช่นนี่คือผลของ PLOTFILT 4 4: พารามิเตอร์สองตัวของ PLOTFILT หมายความว่าจะมีตัวกรองสองแบบเรียงตามลำดับชั้นดังกล่าวข้างต้น ค่าของ 4 ระบุจำนวนของกะบิตเพื่อให้เกิดการคูณด้วย FF ทั้งสองค่า FF จึงเป็น 116 ในกรณีนี้ การติดตามสีแดงคือการตอบสนองต่อหน่วยและเป็นสิ่งสำคัญที่ต้องดู ตัวอย่างเช่นข้อมูลนี้บอกให้คุณทราบว่าหากข้อมูลอินพุตเปลี่ยนแปลงทันทีผลลัพธ์ของตัวกรองรวมจะกำหนดให้เท่ากับ 90 ค่าใหม่ใน 60 ซ้ำ ถ้าคุณสนใจเกี่ยวกับเวลาการตั้งถิ่นฐาน 95 แล้วคุณต้องรอประมาณ 73 ซ้ำและสำหรับเวลาการตกตะกอนเพียง 26 ซ้ำ ร่องรอยสีเขียวแสดงให้เห็นว่าคุณได้รับเอาท์พุทจากการขยายความกว้างเต็มรูปแบบเดียว นี้จะช่วยให้คุณมีความคิดของการปราบปรามเสียงสุ่ม ดูเหมือนว่าไม่มีตัวอย่างเดียวจะทำให้เกิดการเปลี่ยนแปลงในเอาท์พุทมากกว่า 2.5 ร่องรอยสีน้ำเงินคือการให้ความรู้สึกอัตนัยของสิ่งที่ตัวกรองนี้ทำด้วยเสียงสีขาว นี่ไม่ใช่การทดสอบอย่างเข้มงวดเนื่องจากไม่มีการรับประกันว่าเนื้อหาใดเป็นตัวเลขสุ่มที่เลือกเป็นสัญญาณเสียงรบกวนสีขาวสำหรับการทำงานของ PLOTFILT นี้ เพียงเพื่อให้คุณรู้สึกขรุขระของเท่าใดก็จะถูกแบนและเรียบเป็นอย่างไร PLOTFILT บางที FILTBITS และสิ่งที่มีประโยชน์อื่น ๆ โดยเฉพาะอย่างยิ่งสำหรับการพัฒนาเฟิร์มแวร์ของ PIC มีอยู่ในซอฟต์แวร์ PIC Development Tools ที่หน้าดาวน์โหลดซอฟต์แวร์ของฉัน เพิ่มความแม่นยำเชิงตัวเลขที่ฉันเห็นจากความคิดเห็นและตอนนี้เป็นคำตอบใหม่ที่มีความสนใจในการพูดคุยเกี่ยวกับจำนวนบิตที่จำเป็นในการใช้ตัวกรองนี้ โปรดทราบว่าคูณด้วย FF จะสร้างบิตใหม่ Log 2 (FF) ด้านล่างจุดไบนารี ในระบบขนาดเล็ก FF มักจะได้รับเลือกให้เป็น 12 N เพื่อให้การคูณนี้เกิดขึ้นจริงโดยการเปลี่ยน N บิตที่ถูกต้อง FILT จึงเป็นจำนวนเต็มจุดคงที่ โปรดทราบว่านี้ไม่ได้เปลี่ยนคณิตศาสตร์ใด ๆ จากมุมมองของตัวประมวลผล ตัวอย่างเช่นถ้าคุณกำลังกรองการอ่านโฆษณา 10 บิตและ N 4 (FF 116) คุณต้องใช้เศษเศษส่วนด้านล่าง 10 บิตจำนวนเต็ม AD อ่าน โปรเซสเซอร์ส่วนใหญ่คุณจะต้องดำเนินการเป็นจำนวนเต็ม 16 บิตเนื่องจากการอ่านค่า 10 บิต AD ในกรณีนี้คุณยังคงสามารถดำเนินการได้ตามจำนวนเต็ม 16 บิตเดิม แต่เริ่มต้นด้วยการอ่านค่า AD ด้านซ้ายที่เปลี่ยนไป 4 บิต โปรเซสเซอร์ไม่ทราบความแตกต่างและไม่จำเป็นต้องทำ การทำคณิตศาสตร์กับจำนวนเต็ม 16 บิตทั้งหมดใช้งานได้ไม่ว่าคุณจะถือว่าเป็น 12.4 จุดคงที่หรือจำนวนเต็ม 16 บิตจริง (16.0 จุดคงที่) โดยทั่วไปคุณจำเป็นต้องเพิ่มบิต N แต่ละขั้วกรองหากคุณไม่ต้องการเพิ่มเสียงเนื่องจากการแสดงตัวเลข ในตัวอย่างข้างต้นตัวกรองที่สองของสองจะต้องมี 1044 18 บิตเพื่อไม่สูญเสียข้อมูล ในทางปฏิบัติบนเครื่อง 8 บิตซึ่งหมายความว่าคุณต้องใช้ค่าบิต 24 เทคนิคเฉพาะขั้วที่สองของสองจะต้องมีค่ามากขึ้น แต่สำหรับความเรียบง่ายของเฟิร์มผมมักจะใช้การแทนเดียวกันและด้วยรหัสเดียวกันสำหรับเสาทั้งหมดของตัวกรอง ฉันมักจะเขียนโปรแกรมย่อยหรือแมโครเพื่อทำการดำเนินการของเสากรองหนึ่งตัวจากนั้นจึงนำไปใช้กับเสาแต่ละอัน ไม่ว่าจะเป็นโปรแกรมย่อยหรือแมโครขึ้นอยู่กับว่าวงจรหรือหน่วยความจำโปรแกรมมีความสำคัญมากกว่าในโครงการนั้นหรือไม่ ไม่ว่าจะด้วยวิธีใดก็ตามฉันใช้สถานะการขูดขีดเพื่อส่ง NEW เข้าไปใน subroutinemacro ซึ่งอัปเดต FILT แต่ยังโหลดข้อมูลที่เป็นสถานะการขีดข่วนเหมือนเดิม NEW ซึ่งทำให้ง่ายต่อการใช้เสาหลายอันเนื่องจาก FILT อัปเดตของเสาเดียวคือ NEW ของหน้าถัดไป เมื่อโปรแกรมย่อยมีประโยชน์ที่จะมีจุดชี้ไปที่ FILT ระหว่างทางซึ่งได้รับการอัปเดตเป็นเพียง FILT เมื่อออกไป ด้วยวิธีนี้ subroutine จะทำงานกับตัวกรองข้อมูลที่ต่อเนื่องในหน่วยความจำโดยอัตโนมัติถ้าเรียกว่าหลายครั้ง กับแมโครคุณไม่จำเป็นต้องชี้ตั้งแต่คุณผ่านในที่อยู่ในการทำงานในแต่ละซ้ำ ตัวอย่างโค้ดนี่เป็นตัวอย่างของมาโครตามที่อธิบายไว้ข้างต้นสำหรับ PIC 18: และนี่คือแมโครที่คล้ายกันสำหรับ PIC 24 หรือ dsPIC 30 หรือ 33: ทั้งสองตัวอย่างนี้ถูกใช้เป็นแมโครโดยใช้ตัวประมวลผลแอ็กเซสเซอร์ของ PIC ของฉัน ซึ่งมีความสามารถมากขึ้นกว่าสิ่งอำนวยความสะดวกที่มีมาโครภายในตัวใดตัวหนึ่ง ปัญหาอื่นที่ควรจะกล่าวถึงคือการใช้เฟิร์มแวร์ คุณสามารถเขียนโพรโทคอลต่ำผ่านโพรเซสเซอร์ได้เพียงครั้งเดียวจากนั้นใช้หลายครั้ง ในความเป็นจริงฉันมักจะเขียนเช่น subroutine เพื่อนำตัวชี้ในหน่วยความจำไปยังสถานะตัวกรองแล้วมีมันล่วงหน้าตัวชี้เพื่อที่จะสามารถเรียกได้อย่างต่อเนื่องในการรับรู้หลายตัวกรองเสา ndash Olin Lathrop Apr 20 12 at 15:03 1. ขอบคุณมากสำหรับคำตอบของคุณ - ทั้งหมด ฉันตัดสินใจที่จะใช้ตัวกรอง IIR นี้ แต่ตัวกรองนี้ไม่ได้ใช้เป็นตัวกรอง LowPass มาตรฐานเพราะฉันต้องการเฉลี่ยค่าตัวนับและเปรียบเทียบเพื่อตรวจจับการเปลี่ยนแปลงในช่วงที่กำหนด เนื่องจากค่าเหล่านี้มีมิติแตกต่างกันไปโดยขึ้นอยู่กับฮาร์ดแวร์ที่ฉันต้องการใช้โดยเฉลี่ยเพื่อให้สามารถตอบสนองต่อการเปลี่ยนแปลงเฉพาะฮาร์ดแวร์เหล่านี้ได้โดยอัตโนมัติ ถ้าคุณสามารถอยู่กับข้อ จำกัด ของอำนาจของสองจำนวนรายการที่จะเฉลี่ย (เช่น 2,4,8,16,32 ฯลฯ ) จากนั้นแบ่งได้อย่างง่ายดายและมีประสิทธิภาพสามารถทำได้บน micro ประสิทธิภาพต่ำโดยไม่มีการทุ่มเทแบ่งเพราะสามารถทำได้เป็นบิตเปลี่ยน การเปลี่ยนสิทธิแต่ละครั้งเป็นหนึ่งในพลังของสองเช่น: OP คิดว่าเขามีปัญหาสองข้อแบ่งใน PIC16 และหน่วยความจำสำหรับบัฟเฟอร์แหวนของเขา คำตอบนี้แสดงให้เห็นว่าการหารไม่ใช่เรื่องยาก เป็นที่ยอมรับมันไม่ได้อยู่ที่ปัญหาหน่วยความจำ แต่ระบบ SE ช่วยให้คำตอบบางส่วนและผู้ใช้สามารถใช้อะไรจากคำตอบสำหรับตัวเองหรือแม้กระทั่งการแก้ไขและรวมคำตอบของผู้อื่น เนื่องจากบางส่วนของคำตอบอื่น ๆ ต้องการการดำเนินการแบ่งพวกเขาจะไม่เหมือนกันเหมือนกันเนื่องจากพวกเขาไม่แสดงวิธีการอย่างมีประสิทธิภาพบรรลุนี้บน PIC16 มีคำตอบสำหรับตัวกรองค่าเฉลี่ยเคลื่อนที่ที่แท้จริง (aka boxcar filter) ที่มีความต้องการหน่วยความจำน้อยกว่าถ้าคุณไม่เข้าใจการสุ่มตัวอย่าง เรียกว่าตัวกรองแบบผสมผสาน (cascaded integrator-comb filter) (CIC) แนวคิดคือคุณมีผู้ผสานรวมที่คุณใช้ความแตกต่างในช่วงเวลาหนึ่งและอุปกรณ์ประหยัดหน่วยความจำที่สำคัญคือโดยการสุ่มตัวอย่างคุณไม่จำเป็นต้องเก็บค่าของ Integrator ทุกตัว สามารถใช้งานได้โดยใช้ pseudocode ต่อไปนี้: ความยาวเฉลี่ยที่มีประสิทธิภาพของการเคลื่อนไหวของคุณคือ decimationFactorstatesize แต่คุณต้องเก็บตัวอย่างไว้ทั่ว เห็นได้ชัดว่าคุณสามารถทำงานได้ดีขึ้นหาก stateize และ decimationFactor ของคุณมีอำนาจเท่ากับ 2 เพื่อให้ส่วนแบ่งและส่วนที่เหลือถูกแทนที่ด้วยการเลื่อนและ mask-ands Postscript: ฉันเห็นด้วยกับ Olin ว่าคุณควรพิจารณาตัวกรอง IIR แบบธรรมดาก่อนที่จะใช้ตัวกรองเฉลี่ยที่เคลื่อนที่ หากคุณไม่จำเป็นต้องใช้ null-frequency ของตัวกรองรถกระบะตัวกรองความถี่ต่ำ 1 ขั้วหรือ 2 เสาจะทำงานได้ดี ในทางตรงกันข้ามถ้าคุณกำลังกรองเพื่อให้เป็นไปตามวัตถุประสงค์ของการ decimation (การป้อนข้อมูลที่มีอัตราการสุ่มตัวอย่างสูงและค่าเฉลี่ยสำหรับการใช้งานโดยกระบวนการที่มีอัตราต่ำ) ตัวกรอง CIC อาจเป็นเพียงสิ่งที่คุณกำลังมองหา (โดยเฉพาะถ้าคุณสามารถใช้ stateize1 และหลีกเลี่ยง ringbuffer ทั้งหมดด้วยค่า integrator เดียวก่อนหน้านี้) Theres บางการวิเคราะห์ในเชิงลึกของคณิตศาสตร์ที่อยู่เบื้องหลังการใช้ตัวกรอง IIR คำสั่งแรกที่ Olin Lathrop ได้อธิบายไว้แล้วในการประมวลผลสัญญาณสแตก สมการสำหรับตัวกรอง IIR คือ: สามารถใช้งานได้โดยใช้ตัวเลขจำนวนเต็มเท่านั้นและไม่มีการหารด้วยรหัสต่อไปนี้ (อาจจำเป็นต้องมีการดีบักขณะที่กำลังพิมพ์จากหน่วยความจำ) ตัวกรองนี้ใกล้เคียงกับค่าเฉลี่ยเคลื่อนที่ของ ตัวอย่าง K ล่าสุดโดยการกำหนดค่า alpha เป็น 1K ทำเช่นนี้ในรหัสก่อนหน้าโดยกำหนด ing BITS เพื่อ LOG2 (K) เช่นสำหรับ K 16 ชุด BITS ถึง 4 สำหรับ K 4 ตั้ง BITS เป็น 2 ฯลฯ (ตรวจสอบรหัสไม่ได้ระบุไว้ที่นี่ทันทีที่ฉันได้รับการเปลี่ยนแปลงและ แก้ไขคำตอบนี้ถ้าจำเป็น.) ตอบ 23 มิถุนายน 12 ที่ 4:04 Heres เดียวขั้วต่ำผ่านตัวกรอง (เฉลี่ยเคลื่อนที่ด้วย cutoff ความถี่ CutoffFrequency) ง่ายมากเร็วมากใช้งานได้ดีและแทบจะไม่มีหน่วยความจำเหนือศีรษะ หมายเหตุ: ตัวแปรทั้งหมดมีขอบเขตเกินกว่าฟังก์ชันตัวกรองยกเว้นการส่งผ่านข้อมูลใหม่หมายเหตุ: นี่เป็นตัวกรองแบบขั้นตอนเดียว หลายขั้นตอนสามารถต่อเข้าด้วยกันเพื่อเพิ่มความคมชัดของตัวกรอง ถ้าคุณใช้มากกว่าหนึ่งขั้นตอนคุณจะต้องปรับ DecayFactor (เกี่ยวข้องกับ Cutoff-Frequency) เพื่อชดเชย และเห็นได้ชัดว่าสิ่งที่คุณต้องมีคือสายสองเส้นวางไว้ที่ใดก็ได้พวกเขาไม่จำเป็นต้องใช้ฟังก์ชันของตัวเอง ตัวกรองนี้มีเวลาในการเล่นทางไกลก่อนที่ค่าเฉลี่ยเคลื่อนที่จะแสดงถึงสัญญาณขาเข้า ถ้าคุณต้องการหลีกเลี่ยงเวลาที่เพิ่มขึ้นคุณสามารถเริ่มต้น MovingAverage ให้เป็นค่าแรกของ newInput แทน 0 และหวังว่าการป้อนข้อมูลใหม่ไม่ได้เป็นข้อผิดพลาด (CutoffFrequencySampleRate) มีช่วงระหว่าง 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. สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ ออนไลน์บทที่ 19 เกี่ยวกับตัวกรอง recursive: dspguidech19.htm PS สำหรับกระบวนทัศน์ Moving Average วิธีการที่แตกต่างในการตั้งค่า DecayFactor และ AmplitudeFactor ที่อาจเกี่ยวข้องกับความต้องการของคุณมากขึ้นให้สมมติว่าคุณต้องการก่อนหน้านี้ประมาณ 6 รายการโดยเฉลี่ยด้วยกันทำเป็น discretely คุณเพิ่ม 6 รายการและหารด้วย 6 ดังนั้น คุณสามารถตั้งค่า AmplitudeFactor เป็น 16 และ DecayFactor ไปที่ (1.0 - AmplitudeFactor) ได้ ตอบวันที่ 14 พฤษภาคมเวลา 12: 00 น. ทุกคนได้ให้ความเห็นอย่างละเอียดเกี่ยวกับประโยชน์ของ IIR กับ FIR และในส่วนของอำนาจของทั้งสองฝ่าย Id ต้องการให้รายละเอียดการใช้งาน ด้านล่างทำงานได้ดีกับไมโครคอนโทรลเลอร์ขนาดเล็กที่ไม่มี FPU ไม่มีการคูณและถ้าคุณเก็บกำลังของ N ไว้ 2 ส่วนทั้งหมดจะถูกขยับบิตรอบเดียว บัฟเฟอร์แหวน FIR พื้นฐาน: เก็บบัฟเฟอร์ที่กำลังทำงานของค่า N ล่าสุดและค่า SUM ที่ใช้งานอยู่ทั้งหมดในบัฟเฟอร์ ทุกครั้งที่มีตัวอย่างใหม่ให้ลบค่าที่เก่าแก่ที่สุดในบัฟเฟอร์จาก SUM แทนที่ด้วยตัวอย่างใหม่ให้เพิ่มตัวอย่างใหม่เป็น SUM และ SUMN ออก การแก้ไขบัฟเฟอร์วงแหวน IIR: ให้ SUM ที่ทำงานอยู่ของค่า N ล่าสุด ทุกครั้งที่มีตัวอย่างใหม่เข้ามา SUM - SUMN ให้เพิ่มตัวอย่างใหม่และเอาต์พุต SUMN ตอบอ่าน 28 สิงหาคม 13 เวลา 13:45 หากอ่านหนังสือคุณถูกต้องคุณจะอธิบายตัวกรอง IIR แรกที่สั่งซื้อค่าที่คุณลบออกไม่ใช่ค่าที่เก่าแก่ที่สุดซึ่งหลุดออก แต่แทนที่จะเป็นค่าเฉลี่ยของค่าก่อนหน้า ตัวกรอง IIR ในลำดับแรกอาจเป็นประโยชน์ แต่ฉันไม่แน่ใจว่าคุณหมายถึงอะไรเมื่อคุณแนะนำว่าเอาท์พุทจะเหมือนกันสำหรับสัญญาณเป็นระยะ ๆ อัตราการสุ่มตัวอย่าง 10 กิโลเฮิรตซ์การป้อนคลื่นความถี่ 100Hz ลงในตัวกรองกล่อง 20 ขั้นตอนจะให้สัญญาณที่เพิ่มขึ้นอย่างสม่ำเสมอสำหรับ 20 ตัวอย่างอยู่สูง 30 หยดสม่ำเสมอสำหรับ 20 ตัวอย่างและอยู่ต่ำกว่า 30 ลำดับแรก ตัวกรอง IIR ndash supercat Aug 28 13 at 15:31 จะทำให้คลื่นที่เริ่มเพิ่มขึ้นอย่างรวดเร็วและค่อยๆลดระดับลงใกล้ (แต่ไม่อยู่ที่) ค่าอินพุตสูงสุดจากนั้นจะเริ่มลดลงอย่างรวดเร็วและค่อยๆลดระดับลงใกล้ (แต่ไม่น้อยกว่า) อินพุตต่ำสุด พฤติกรรมที่แตกต่างกันมาก ndash supercat Aug 28 13 at 15:32 ประเด็นหนึ่งก็คือค่าเฉลี่ยเคลื่อนที่ที่เรียบง่ายอาจเป็นประโยชน์หรือไม่ก็ได้ ด้วยตัวกรอง IIR คุณจะได้รับตัวกรองที่ดีกับ calcs ค่อนข้างน้อย FIR ที่คุณอธิบายสามารถให้สี่เหลี่ยมผืนผ้าได้ในเวลาเดียวเท่านั้นคือ sinc in freq และคุณไม่สามารถจัดการด้านข้างได้ มันอาจจะคุ้มค่าที่จะโยนในจำนวนเต็มไม่กี่คูณเพื่อทำให้มันสมมาตรปรับ FIR ที่ดีถ้าคุณสามารถสำรองนาฬิกาเห็บ ScottSeidman: ความจำเป็นในการคูณถ้าหนึ่งมีเพียงขั้นตอนของ FIR ทั้งสองเอาท์พุทค่าเฉลี่ยของการป้อนข้อมูลไปยังขั้นตอนนั้นและค่าที่เก็บไว้ก่อนหน้านี้และจากนั้นเก็บข้อมูล (ถ้ามี ช่วงตัวเลขหนึ่งสามารถใช้ผลรวมมากกว่าค่าเฉลี่ย) (การตอบสนองขั้นตอนของตัวกรองกล่องที่มีความล่าช้าโดยรวมของ 1ms ตัวอย่างเช่นจะมีการขัดขวาง d2dt ที่น่ารังเกียจเมื่อมีการเปลี่ยนแปลงการป้อนข้อมูลและอีก 1 ล้านครั้งในภายหลัง แต่จะมีค่าต่ำสุด ddt ที่เป็นไปได้สำหรับตัวกรองที่มีความล่าช้าทั้งหมด 1ms) เมื่อ mikeselectricstuff กล่าวว่าถ้าคุณต้องการจริงๆเพื่อลดความต้องการหน่วยความจำของคุณและคุณ dont ใจตอบสนองต่อแรงกระตุ้นของคุณเป็นเลขชี้กำลัง (แทนชีพจรสี่เหลี่ยมผืนผ้า) ฉันจะไปสำหรับตัวกรองเฉลี่ยเลขยกกำลัง. . ฉันใช้พวกเขาอย่างกว้างขวาง ด้วยตัวกรองชนิดดังกล่าวคุณไม่จำเป็นต้องมีบัฟเฟอร์ใด ๆ คุณไม่ต้องเก็บตัวอย่างที่ผ่านมา N แค่หนึ่ง. ดังนั้นความต้องการหน่วยความจำของคุณได้รับการลดลงโดยปัจจัยของเอ็นนอกจากนี้คุณไม่จำเป็นต้องแบ่งใด ๆ สำหรับที่ เฉพาะ multiplications ถ้าคุณมีการเข้าถึงเลขคณิตลอยตัวใช้ multiplications ทศนิยม มิฉะนั้นให้ทำ multiplications จำนวนเต็มและเลื่อนไปทางขวา อย่างไรก็ตามเราอยู่ในปี 2012 และขอแนะนำให้คุณใช้คอมไพเลอร์ (และ MCU) ที่ช่วยให้คุณสามารถทำงานกับตัวเลขลอยตัวได้ นอกเหนือจากหน่วยความจำที่มีประสิทธิภาพมากขึ้นและเร็วขึ้น (คุณ dont ต้องปรับปรุงรายการในวงกลม buffer ใด ๆ ) ฉันจะบอกว่ามันเป็นธรรมชาติมากขึ้น เนื่องจากการตอบสนองของแรงกระตุ้นเลขชี้กำลังจะตรงกับลักษณะการทำงานของธรรมชาติในกรณีส่วนใหญ่ ตอบเมื่อ 20 เมษายน 2012 เวลา 9:59 น. ปัญหาหนึ่งที่มีตัวกรอง IIR เกือบสัมผัสกับ olin และ supercat แต่เห็นได้ชัดว่าถูกมองข้ามโดยคนอื่น ๆ ก็คือการปัดเศษลงแนะนำข้อมูลบางอย่างที่ไม่ถูกต้อง (และอาจเกิดขึ้นได้ biastruncation) สมมติว่า N เป็นพลังของสองและใช้เลขคณิตจำนวนเต็มเท่านั้นการเปลี่ยนสิทธิจะทำให้ LSBs ของตัวอย่างใหม่เป็นระบบ นั่นหมายความว่าระยะเวลาที่เคยเป็นแบบนี้ค่าเฉลี่ยจะไม่นำมาพิจารณา ตัวอย่างเช่นสมมุติว่าชุดที่ลดลงอย่างช้าๆ (8,8,8. 8,7,7,7 .7,6,6) และสมมติว่าค่าเฉลี่ยมีค่าเริ่มต้นอยู่ที่ 8 ตัวอย่างกำปั้น 7 จะนำค่าเฉลี่ยไปที่ 7 โดยไม่คำนึงถึงความแข็งแรงของตัวกรอง เพียงแค่หนึ่งตัวอย่างเท่านั้น เรื่องเดียวกันสำหรับ 6 ฯลฯ ตอนนี้คิดว่าตรงข้าม ซีรีส์ขึ้น ค่าเฉลี่ยจะอยู่ที่ 7 ตลอดไปจนกว่าตัวอย่างจะใหญ่พอที่จะทำให้การเปลี่ยนแปลง แน่นอนคุณสามารถแก้ไขอคติโดยการเพิ่ม 12N2 แต่ที่เคยชินจริงๆแก้ปัญหาความแม่นยำ ในกรณีนี้ซีรีส์ที่ลดลงจะคงอยู่ตลอดไปที่ 8 จนกว่าตัวอย่างจะเป็น 8-12 (N2) สำหรับ N4 ตัวอย่างเช่นตัวอย่างใด ๆ ที่อยู่เหนือศูนย์จะทำให้ค่าเฉลี่ยไม่เปลี่ยนแปลง ผมเชื่อว่าการแก้ปัญหาแบบนี้จะถือเป็นการสะสมแอ็คเซสเซอร LSB ที่หายไป แต่ฉันไม่ได้ทำให้ไกลพอที่จะมีรหัสพร้อมและ Im ไม่แน่ใจว่าจะไม่เป็นอันตรายต่ออำนาจ IIR ในกรณีอื่น ๆ บางชุด (ตัวอย่างเช่น 7,9,7,9 จะเฉลี่ย 8 แล้ว) โอลินน้ำตกสองขั้นตอนของคุณก็จะต้องมีคำอธิบายบ้าง คุณหมายถึงการถือครองค่าเฉลี่ยสองค่าด้วยผลลัพธ์จากการนับครั้งแรกเป็นวินาทีในแต่ละการทำซ้ำ อะไรคือประโยชน์ของเครื่องกำเนิดไฟฟ้า FFT Moving Average (FFT-MA): วิธีเชิงตัวเลขที่มีประสิทธิภาพสำหรับการสร้างและปรับแต่งแบบจำลอง Gaussian Simulations อ้างถึงบทความนี้: Ravalec, M. L. Noetinger, B. Hu, L. Y. Mathematics Geology (2000) 32: 701. doi: 10.1023A: 1007542406333 วิธีการแปลงค่าฟูเรียร์แบบเร็ว (FFT) (FFT-MA) สำหรับการสร้างกระบวนการสุ่มแบบ Gaussian จะได้มา การใช้การแปลงฟูริเยร์แบบไม่ต่อเนื่องทำให้การคำนวณทำได้ง่ายและรวดเร็วเพื่อให้สามารถสร้างเขตข้อมูลสุ่มขนาดใหญ่ได้ ในทางตรงกันข้ามกรอบค่าเฉลี่ยเคลื่อนที่ขั้นพื้นฐานช่วยให้เราสามารถคลายตัวเลขสุ่มออกจากพารามิเตอร์โครงสร้าง (ค่าเฉลี่ยความแปรปรวนความยาวของความสัมพันธ์) แต่ยังรวมถึงการสุ่มจับส่วนประกอบแบบสุ่มในโดเมนเชิงพื้นที่ คุณสมบัติดังกล่าวมีความยืดหยุ่นสูงสำหรับเครื่องกำเนิดไฟฟ้า FFT-MA ยกตัวอย่างเช่นการเปลี่ยนเฉพาะตัวเลขสุ่มให้ชัดเจนทั้งหมดที่มีความแปรปรวนร่วมกัน ในทำนองเดียวกันหลาย realizations สามารถสร้างขึ้นจากชุดตัวเลขสุ่มเดียวกัน แต่จากพารามิเตอร์โครงสร้างที่แตกต่างกัน การรวมเครื่องกำเนิดไฟฟ้า FFT-MA เข้ากับขั้นตอนการเพิ่มประสิทธิภาพจะทำให้เครื่องมือสามารถกำหนดตัวเลขสุ่มที่ระบุฟิลด์ Gaussian รวมทั้งพารามิเตอร์โครงสร้างจากข้อมูลแบบไดนามิกได้ นอกจากนี้ทั้งหมดหรือเพียงบางส่วนของตัวเลขสุ่มสามารถตกอกตกใจเพื่อให้ realizations ผลิตโดยใช้เครื่องกำเนิดไฟฟ้า FFT - MA สามารถปรับปรุงในประเทศผ่านกระบวนการเพิ่มประสิทธิภาพ การจำลองแบบการปรับสภาพแบบไม่เชิงเส้นแบบไม่เชิงเส้น FFT local perturbation อ้างอิง Alabert, F. 1987, การปฏิบัติตามแบบจำลองเงื่อนไขอย่างรวดเร็วผ่านการสลายตัว LU ของเมทริกซ์ความแปรปรวนร่วม: คณิตศาสตร์ ธรณีวิทยา, 19, no. 5, p. 369386. Google Scholar Blanc, G. Touati, M. and Hu, L. 1998, แบบจำลองทางธรณีวิทยาของการไหลของของไหลในกริดแบบยืดหยุ่น: การประชุม ECMOR ครั้งที่ 6, 811 กันยายน. Peebles, Scotland, C30. Bochner, S. 1936, การบรรยายเกี่ยวกับการวิเคราะห์ฟูริเยร์: Princeton University Press, Princeton, NJ Google Scholar Chils, J. P 1995, Quelques mthodes จำลอง de fonctions alatoires intrinsques: Cahiers de gostatistique, 5, หน้า 97112 Google Scholar Cooley, J. W. และ Tukey, J. W. 1965, อัลกอริทึมสำหรับการคำนวณเครื่องจักรของชุดฟูริเยร์ที่ซับซ้อน: คณิตศาสตร์ คอมพ์ v. 19, p. 297301 Google Scholar Davis, M. W. 1987 การผลิตแบบจำลองเชิงเงื่อนไขผ่านการสลายตัวสามเหลี่ยม LU ของเมทริกซ์ความแปรปรวนร่วม: คณิตศาสตร์ ธรณีวิทยา, 19, no. 2, p. 9198. Google Scholar Deutsch, C. V. 1992 เทคนิคการหลอมเหลวที่ใช้กับการจำลองแบบอ่างเก็บน้ำและการรวมข้อมูลทางธรณีวิทยาและวิศวกรรม (ทดสอบข้อมูล): วิทยานิพนธ์เอกไม่ได้รับการตีพิมพ์ Stanford University, Stanford, CA, 325 หน้า Google Scholar Deutsch, C. V และ Cockerham, P. W. 1994, การสร้างแบบจำลองทางภูมิศาสตร์ของการซึมผ่านด้วยการสึกกร่อนแบบหลอม (ACS): การประชุมเทคนิค SPE ประจำปีครั้งที่ 69 และนิทรรศการ, New Orleans, LA, หน้า 523532 Deutsch, C. V และ Journel, A. G 1992, GSLIB: ห้องสมุดซอฟต์แวร์และคู่มือผู้ใช้: สำนักพิมพ์มหาวิทยาลัย Oxford, New York, 340 หน้า Google Scholar Galli, A. Beucher, H. Le Loh, G. และ Doligez, B. 1994, ข้อดีและข้อเสียของวิธีการแบบ Gaussian ที่ถูกตัดทอนใน Armstrong, M. และ Dowd, P. A. eds. การจำลองทางภูมิศาสตร์: Kluwer Academic Publishers, Dordrecht, Netherlands, p. 217233 Google Scholar Gomez-Hernandez, J. J และ Journel, A. G 1992, การจำลองแบบลำดับต่อเนื่องของฟิลด์หลายแห่งใน Soares, สหพันธ์ การดำเนินการของการประชุมวิชาการตีพิมพ์สถิติระหว่างประเทศครั้งที่ 4: สำนักพิมพ์ Kluwer, Troia, p. 8594. Google Scholar Gupta, A. D 1992, ความแตกต่างของ Stochastic, การกระจายตัวและการตอบสนองต่อการสืบค้นภาคสนาม: วิทยานิพนธ์เอกไม่ได้ตีพิมพ์, University of Texas, Austin, TX, 248 p. Google Scholar Gutjahr, A. 1989 การแปลงฟาสฟูเรียร์สำหรับการสร้างฟิลด์แบบสุ่ม: New Mexico Tech รายงานโครงการ NM, 106 หน้า Gutjahr, A. Bullard, B. และ Hatch, S. 1997 การจำลองแบบร่วมทั่วไปโดยใช้วิธีแปลงฟูริเยร์แบบรวดเร็ว: คณิตศาสตร์ ธรณีวิทยา, v. 29, p. 361389. Google Scholar Hu, L. Y. 2000, การเปลี่ยนรูปแบบค่อยเป็นค่อยไปและการสอบเทียบซ้ำของแบบจำลองสุ่มแบบ Gaussian: คณิตศาสตร์ ธรณีวิทยาโวลต์ 32 ไม่ใช่ 1, p. 87108. Google Scholar Johnson, M. E. 1987, การจำลองทางสถิติหลายตัวแปร: John amp นิวยอร์ก, Wiley amp Sons, 230 p. Journel, A. G. 1974, Geostatistics สำหรับการจำลองสภาพร่างกายของแร่: Econ Geology, v. 69, หน้า 673687. Google Scholar Journel, A. G. และ Huijbregts, C. J. 1978, geostatistics เหมืองแร่: Academic, San Diego, CA. Lantujoul, C. 1994, การจำลองแบบไม่มีเงื่อนไขของฟังก์ชันสุ่มแบบหลายจุดแบบ isotropic multiGaussian แบบคงที่ใน M. Arstrong, M. และ Dowd, P. As. s. การจำลองทางภูมิศาสตร์: Kluwer Academic Publishers, Dordrecht, Netherlands, p. 147177 Google Scholar Le Ravalec, M. Hu, LY และ Noetinger, B. 1999, การสร้างแบบจำลอง Stochastic reservoir ถูก จำกัด ด้วยข้อมูลแบบไดนามิก: การสอบเทียบในท้องถิ่นและการอนุมานเกี่ยวกับพารามิเตอร์โครงสร้าง: SPE Annual Technical Conference and Exhibition, Houston, TX, SPE 56556 Mantoglou, A. 1987, การจำลองแบบดิจิทัลของกระบวนการ stochastic แบบสองและสามมิติหลายตัวแปรด้วยวิธีการเปลี่ยนวงกลมสเปกตรัม: คณิตศาสตร์ ธรณีวิทยา, 19, no. 2, p. 129149. Google Scholar Mantoglou, A. และ Wilson, J. 1982, วิธีการเลี้ยววงสำหรับการจำลองแบบของช่องแบบสุ่มโดยใช้การสร้างสายโดยใช้วิธีการทางสเปกตรัม: Water Resources Res. v. 18, p. 13791394 Google Scholar Matheron, G. 1973, ฟังก์ชันสุ่มที่อยู่ภายในและการประยุกต์ใช้ของพวกเขา: Adv. Appl prob วรรค 5, 439468 Google Scholar Oliver, D. S. 1995 การคำนวณค่าเฉลี่ยของการจำลองแบบ Gaussian ในมิติข้อมูลสองและสามมิติ: คณิตศาสตร์ ธรณีวิทยา. v. 27, no. 8, p. 939960. Google Scholar Oliver, D. S. Cunha, L. B. และ Reynolds, A. C. 1997, Markov chain Monte Carlo วิธีการจำลองแบบตามเงื่อนไข: คณิตศาสตร์ ธรณีวิทยา, โวลต์ 29, no. 1, p. 6191. Google Scholar Ouenes, A. 1992, การประยุกต์ใช้การเลียนแบบจำลองกับลักษณะเฉพาะของอ่างเก็บน้ำและระบบผกผันของ petrophysic: วิทยานิพนธ์ดุษฎีบัณฑิตไม่ได้เผยแพร่, New Mexico Technical, Socorro, NM, 205 p. Google Scholar Pardo-Iguzquiza, E. และ Chica-Olmo, M. 1993, Fourier integral method: วิธีสเปกตรัมที่มีประสิทธิภาพสำหรับการจำลองแบบของช่องแบบสุ่ม: คณิตศาสตร์ ธรณีวิทยา, โวลต์ 25, no. 2, p. 177217 Google Scholar Prez, G. Stochastic การจำลองเงื่อนไขสำหรับการอธิบายคุณสมบัติของอ่างเก็บน้ำ: วิทยานิพนธ์เอกไม่ได้ตีพิมพ์มหาวิทยาลัยทูลซา, ทัลซา, โอเค, 245 หน้า Priestley, M. B. 1981, การวิเคราะห์สเปกตรัมและชุดข้อมูลเวลา: Academic Press, London, GB Google Scholar RamaRao, B. S. La สถานที่, A. M. de Marsilly, G. และ Marietta, M. G 1995, วิธีการจุดนำร่องสำหรับการสอบเทียบอัตโนมัติของชุดสนามจำลองการถ่ายทอดทางอากาศที่มีเงื่อนไข: 1. ทฤษฎีและการทดลองทางคอมพิวเตอร์: ทรัพยากรน้ำ Res v. 31 ไม่ใช่ 3, p. 475493 Google Scholar Roggero, F. and Hu, L. 1998 การเปลี่ยนแปลงรูปแบบของแบบจำลองภูมิศาสตร์แบบต่อเนื่องแบบค่อยเป็นค่อยไปเพื่อการจับคู่ประวัติศาสตร์: การประชุมและนิทรรศการทางเทคนิคประจำปี SPE New Orleans, LA, SPE 49004 Shinozuka, M. and Jan, CM 1972, การจำลองแบบดิจิทัลของกระบวนการสุ่มและการประยุกต์ใช้: Jour เสียง Vib 25 ไม่มี 1, p. 111128. Google Scholar Yao, T. 1998, การจำลองสเปกตรัมตามเงื่อนไขที่มีการระบุเฟส: คณิตศาสตร์ ธรณีวิทยา, โวลต์ที่ 30, no. 3, p. 285308 Google Scholar ข้อมูลลิขสิทธิ์สมาคมระหว่างประเทศเพื่อการคำนวณทางธรณีวิทยา 2000 ผู้เขียนและ บริษัท ในเครือ Mickale Le Ravalec 1 Benot Noetinger 2 Lin Y. Hu 2 1. Institut Franais du Ptrole Pau Cedex 9 ฝรั่งเศส 2. Institut Franais du Ptrole Pau Cedex 9 ฝรั่งเศสเกี่ยวกับบทความนี้
No comments:
Post a Comment