การย้าย ค่าเฉลี่ย กรอง ตัด
การตอบสนองความถี่ของตัวกรองเฉลี่ยที่ใช้งานการตอบสนองความถี่ของระบบ LTI คือ DTFT ของการตอบสนองอิมพัลส์การตอบสนองต่อแรงกระตุ้นของค่าเฉลี่ยเคลื่อนที่แบบแอลเอสมีค่าเนื่องจากตัวกรองค่าเฉลี่ยเคลื่อนที่เป็น FIR การตอบสนองต่อความถี่ลดลงเป็นจำนวน จำกัด ที่แน่นอน สามารถใช้ตัวตนที่มีประโยชน์มากในการเขียนการตอบสนองตามความถี่ที่เราได้ให้ ae minus jomega N 0 และ M L ลบ 1. เราอาจสนใจขนาดของฟังก์ชั่นนี้เพื่อหาความถี่ที่จะได้รับผ่านตัวกรองที่ไม่มีการลดทอนและจะถูกลดทอนลง ด้านล่างเป็นพล็อตของขนาดของฟังก์ชั่นนี้สำหรับ L 4 (สีแดง), 8 (สีเขียว) และ 16 (สีฟ้า) แกนแนวนอนมีตั้งแต่ศูนย์ถึง pi radian ต่อตัวอย่าง สังเกตได้ว่าในทั้งสามกรณีการตอบสนองต่อความถี่มีลักษณะ lowpass คอมโพเนนต์คงที่ (ความถี่เป็นศูนย์) ในอินพุตจะผ่านตัวกรองที่ไม่มีการลดทอน ความถี่ที่สูงขึ้นบางอย่างเช่น pi 2 จะถูกกำจัดออกโดยตัวกรอง อย่างไรก็ตามหากมีเจตนาในการออกแบบตัวกรองสัญญาณ Lowpass เราก็ยังไม่ได้ผลดีนัก บางส่วนของความถี่ที่สูงขึ้นจะลดทอนลงได้เพียงประมาณ 110 (สำหรับค่าเฉลี่ยเคลื่อนที่ 16 จุด) หรือ 13 (สำหรับค่าเฉลี่ยเคลื่อนที่สี่จุด) เราสามารถทำได้ดีกว่าที่ พล็อตข้างต้นถูกสร้างขึ้นโดยรหัส Matlab ต่อไปนี้: omega 0: pi400: pi H4 (14) (1-exp (-iomega4)) (1-exp (-iomega)) H8 (18) (1-exp (- (1-exp (-iomega16)) (1-exp (-iomega)) พล็อต (โอเมก้า, abs (H4) abs (H8) abs ( H16)) axis (0, pi, 0, 1) สำเนาลิขสิทธิ์ 2000- มหาวิทยาลัยแคลิฟอร์เนีย, Berkeley จำเป็นต้องออกแบบตัวกรองค่าเฉลี่ยเคลื่อนที่ที่มีความถี่ตัดเป็น 7.8 Hz ฉันได้ใช้ตัวกรองเฉลี่ยที่เคลื่อนที่ก่อน แต่เท่าที่ Im ทราบพารามิเตอร์เดียวที่สามารถป้อนได้คือจำนวนจุดที่จะเฉลี่ย วิธีการนี้สามารถใช้งานได้กับความถี่ตัดการผกผันของ 7.8 Hz คือ 130 ms และ Im ทำงานกับข้อมูลที่เก็บตัวอย่างที่ 1000 Hz นี่หมายความว่าฉันควรใช้ขนาดตัวกรองหน้าต่างเคลื่อนไหวเฉลี่ย 130 ตัวอย่างหรือมีอย่างอื่นที่ Im หายไปที่นี่ถาม Jul 18 13 ที่ 9:52 ตัวกรองเฉลี่ยเคลื่อนที่เป็นตัวกรองที่ใช้ในโดเมนเวลาเพื่อลบ เสียงเพิ่มและยังเรียบวัตถุประสงค์ แต่ถ้าคุณใช้ตัวกรองค่าเฉลี่ยเคลื่อนที่เดียวกันในโดเมนความถี่สำหรับการแยกความถี่ประสิทธิภาพจะแย่ที่สุด ดังนั้นในกรณีที่ใช้ตัวกรองโดเมนความถี่ ndash user19373 Feb 3 16 at 5:53 ตัวกรองค่าเฉลี่ยเคลื่อนที่ (บางครั้งเรียกขานว่าเป็นตัวกรองรถจักรยานยนต์) มีการตอบสนองต่อรูปสี่เหลี่ยมผืนผ้า: หรือระบุไว้อย่างชัดเจน: จำได้ว่าการตอบสนองความถี่ของระบบแบบไม่ต่อเนื่อง เราสามารถคำนวณได้ดังนี้: อะไรที่คุณสนใจมากที่สุดสำหรับกรณีของคุณคือการตอบสนองของตัวกรอง H (โอเมก้า) ใช้สอง manipulations ง่ายเราจะได้รับในรูปแบบที่ง่ายต่อการเข้าใจ: นี้อาจไม่ง่ายที่จะเข้าใจ อย่างไรก็ตามเนื่องจากบัตรประจำตัวของ Eulers จำได้ว่า: ดังนั้นเราสามารถเขียนข้างต้นเป็น: ตามที่ระบุไว้ก่อนหน้าสิ่งที่คุณกังวลมากคือขนาดของการตอบสนองต่อความถี่ ดังนั้นเราสามารถใช้ขนาดของข้างต้นเพื่อลดความซับซ้อนของมันต่อไป: หมายเหตุ: เราสามารถที่จะลดเงื่อนไขคำอธิบายออกเพราะพวกเขาไม่ส่งผลกระทบต่อขนาดของผลลัพธ์ e 1 สำหรับค่าทั้งหมดของโอเมก้า ตั้งแต่ xy xy สำหรับสองจำนวน จำกัด ที่ จำกัด x และ y เราสามารถสรุปได้ว่าการปรากฏตัวของคำอธิบายไม่ส่งผลต่อการตอบสนองของขนาดโดยรวม (แทนจะส่งผลต่อการตอบสนองของเฟสของระบบ) ฟังก์ชันที่เกิดขึ้นภายในวงเล็บขนาดคือรูปแบบของเคอร์เนล Dirichlet บางครั้งเรียกว่าฟังก์ชั่น sinc periodic เนื่องจากมีลักษณะคล้ายคลึงกับฟังก์ชัน sinc ในรูปลักษณ์ แต่เป็นระยะแทน อย่างไรก็ตามเนื่องจากความหมายของความถี่ cutoff มีความไม่แน่นอน (-3 dB point -6 dB point sidelobe null) คุณสามารถใช้สมการด้านบนเพื่อแก้ปัญหาตามที่ต้องการได้ โดยเฉพาะอย่างยิ่งคุณสามารถทำสิ่งต่อไปนี้: กำหนด H (โอเมก้า) เป็นค่าที่สอดคล้องกับการตอบสนองของตัวกรองที่คุณต้องการที่ความถี่ cutoff ตั้งค่าโอเมก้าเท่ากับความถี่ตัด เมื่อต้องการทำแผนที่ความถี่ต่อเนื่องไปยังโดเมนแบบไม่ต่อเนื่องโปรดจำไว้ว่า omega 2pi frac ซึ่ง fs คืออัตราตัวอย่างของคุณ ค้นหาค่าของ N ที่ให้ข้อตกลงที่ดีที่สุดระหว่างด้านซ้ายและด้านขวาของสมการ นั่นควรเป็นความยาวของค่าเฉลี่ยเคลื่อนที่ของคุณ ถ้า N คือความยาวของค่าเฉลี่ยเคลื่อนที่จากนั้นความถี่ตัด F (ที่ถูกต้องสำหรับ N gt 2) ในความถี่ปกติคือ Fffs: ผกผันของสูตรนี้คือสูตรที่ถูกต้องสำหรับ N ขนาดใหญ่และมีข้อผิดพลาดประมาณ 2 สำหรับ N2 และน้อยกว่า 0.5 สำหรับ N4 ป. ล. หลังจากสองปีที่ผ่านมาที่นี่ในที่สุดสิ่งที่เป็นวิธีการปฏิบัติตาม ผลจากการประมาณสเปกตรัมความกว้างของ MA รอบ f0 เป็นพาราโบลา (ลำดับที่ 2) ตาม MA (Omega) ประมาณ 1 (frac-frac) Omega2 ซึ่งสามารถหาได้มากกว่าใกล้กับศูนย์ข้าม MA (Omega) frac โดยการคูณโอเมก้าโดยสัมประสิทธิ์การได้รับ MA (โอเมก้า) ประมาณ 10.907523 (frac-frac) Omega2 การแก้ปัญหาของ MA (โอเมก้า) - frac 0 ให้ผลลัพธ์ข้างต้นที่ 2pi F โอเมก้า ทั้งหมดข้างต้นเกี่ยวข้องกับ -3dB ตัดความถี่เรื่องของบทความนี้ บางครั้งก็เป็นเรื่องที่น่าสนใจที่จะได้รับข้อมูลการลดทอนในแถบหยุดซึ่งเทียบเคียงได้กับตัวกรอง IIR Low Pass Filter (single pole LPF) ที่มีความถี่ตัดความถี่ -3dB ให้ (เช่น LPF เรียกว่า integrator leaky, มีขั้วไม่ตรงที่ DC แต่ใกล้กับมัน) ในความเป็นจริงแล้ว MA และลำดับที่ 1 ของ IIR LPF มีความลาดชันอยู่ที่ -20dBdade ในวงหยุด (หนึ่งต้องมีขนาดใหญ่กว่า N ที่ใช้ในรูป N32 เพื่อดูสิ่งนี้) แต่ในขณะที่ MA มีค่า null ของสเปกตรัมที่ FkN และ a 1F evelope ตัวกรอง IIR จะมีรูปแบบ 1f เท่านั้น ถ้าใครอยากได้ตัวกรอง MA ที่มีความสามารถในการกรองสัญญาณรบกวนเช่นเดียวกับตัวกรอง IIR นี้และตรงกับความถี่ที่ 3dB ตัดออกไปเหมือนกันเมื่อเปรียบเทียบสเปกตรัมสองตัวเขาจะรู้ว่าแถบกระเพื่อมของแถบหยุดทำงานของตัวกรอง MA จะสิ้นสุดลง 3dB ด้านล่างของตัวกรอง IIR เพื่อที่จะได้รับการระงับการหยุดแถบเดียวกัน (เช่นการลดทอนสัญญาณรบกวนเดียวกัน) เป็นตัวกรอง IIR สูตรสามารถแก้ไขได้ดังต่อไปนี้: ฉันพบกลับมาที่สคริปต์ Mathematica ซึ่งฉันคำนวณการตัดออกสำหรับตัวกรองหลายตัวรวมทั้ง MA หนึ่ง ผลจากการประมาณสเปกตรัมของแมสซาชูเซตส์รอบ ๆ f0 เป็นพาราโบลาตามอัตราส่วนของโอเมก้า (Omega) Sin (OmegaN2) Sin (Omega2) Omega 2piF MA (F) ประมาณ N16F2 (N-N3) pi2 และได้รับการข้ามกับ 1sqrt จากที่นั่น ndash Massimo Jan 17 16 at 2: 08Low-pass filter สิ่งเหล่านี้ล้วนเป็นบันทึกย่อ มีส่วนของข้อมูลที่เป็นประโยชน์ Pseudocode ค่าเฉลี่ยเคลื่อนที่ที่ถ่วงน้ำหนักแบบเรียงลำดับ (EWMA) คือชื่อของสิ่งที่น่าจะเป็นที่ง่ายที่สุดในการสร้างข้อมูลโดเมนแบบใช้เวลาโดเมนของ lowpass (ลำดับแรก) ในข้อมูลที่ไม่ต่อเนื่อง ตัวกรองนี้ลื่นโดยใช้ค่าเฉลี่ยในท้องถิ่นที่เคลื่อนที่ซึ่งจะทำให้ผู้ติดตามสัญญาณอินพุตที่ซบเซา โดยสังหรณ์ใจจะตอบสนองช้าไปถึงการเปลี่ยนแปลงอย่างรวดเร็ว (เนื้อหาความถี่สูง) ในขณะที่ยังคงติดตามแนวโน้มโดยรวมของสัญญาณ (เนื้อหาความถี่ต่ำ) มันถูกชั่งน้ำหนักโดยตัวแปร (ดู x3b1) เพื่อให้สามารถเปลี่ยนแปลงความไวของมัน ในแอปพลิเคชันที่เป็นตัวอย่างในช่วงเวลาปกติ (เช่นเสียง) คุณสามารถเชื่อมโยง x3b1 กับเนื้อหาความถี่ได้ ในกรณีเหล่านี้คุณมักต้องการคำนวณชุดผลลัพธ์ที่ผ่านการกรองสำหรับชุดข้อมูลอินพุตโดยลูปผ่านรายการที่ทำสิ่งต่างๆเช่น: หรือเทียบเท่า: รูปแบบหลังอาจรู้สึกว่าใช้งานง่ายขึ้น: การเปลี่ยนแปลงในผลลัพธ์ที่กรองออกมาเป็นสัดส่วนกับจำนวน เปลี่ยนและชั่งน้ำหนักด้วยความแข็งแรงของตัวกรอง x3b1 ทั้งสองอาจช่วยพิจารณาว่าการใช้ผลลัพธ์ที่ผ่านการกรองล่าสุดช่วยให้ระบบมีแรงเฉื่อย: x3b1 ขนาดเล็ก (ใหญ่กว่า 1-x3b1 ในอดีต) (เช่นเดียวกับ RC ขนาดใหญ่) หมายความว่าเอาท์พุทจะปรับเฉื่อยมากขึ้นและควรแสดงสัญญาณรบกวนน้อยลง ความถี่ตัดลดลง (ตรวจสอบ)) x3b1 ขนาดใหญ่ (เล็ก 1-x3b1) (เล็ก RC) หมายความว่าเอาท์พุทจะปรับเร็วขึ้น (มีความเฉื่อยชาน้อยลง) แต่จะมีความไวต่อเสียงรบกวนมากขึ้น (เนื่องจากความถี่ตัดสูงกว่า (ตรวจสอบ)) เนื่องจากการคำนวณเป็นแบบเฉพาะกรณี ที่คุณต้องการค่าล่าสุดสามารถหลีกเลี่ยงการจัดเก็บอาร์เรย์ที่มีขนาดใหญ่ได้โดยการทำดังต่อไปนี้สำหรับตัวอย่างใหม่ ๆ (มักเป็นพุ่มครั้งติดต่อกันเพื่อให้แน่ใจว่าเราปรับตัวให้เพียงพอ) ในกรณีที่มีการสุ่มตัวอย่างอย่างสม่ำเสมอ x3b1 เกี่ยวข้องกับความเร็วของการปรับตัวมากกว่าความถี่ ยังคงมีความเกี่ยวข้อง แต่ข้อสังเกตเกี่ยวกับความถี่จะใช้อย่างเคร่งครัดน้อยลง คุณมักต้องการใช้ arraymemory เป็น float แม้ว่าคุณจะคืนค่า ints เพื่อหลีกเลี่ยงปัญหาที่เกิดจากข้อผิดพลาดในการปัดเศษ ปัญหาส่วนใหญ่: เมื่อ alphadifference (ตัวคูณลอย) น้อยกว่า 1 จะกลายเป็น 0 ใน cast (truncatng) เป็นจำนวนเต็ม ตัวอย่างเช่นเมื่อ alpha เท่ากับ 0.01 ความแตกต่างของสัญญาณที่มีขนาดเล็กกว่า 100 จะทำให้การปรับค่า 0 (ผ่าน truncation จำนวนเต็ม) ดังนั้นตัวกรองจะไม่ปรับค่า ADC ตามจริง EWMA มีคำว่าเลขชี้กำลังอยู่ในเพราะข้อมูลใหม่ที่ได้รับการกรองใหม่จะใช้ค่าทั้งหมดอย่างถูกต้องก่อนที่จะมีประสิทธิภาพและมีประสิทธิภาพกับการผุกร่อนที่ชี้แจง ดูวิกิพีเดียลิงก์สำหรับการสนทนาเพิ่มเติม ตัวอย่างภาพ: ภาพหน้าจอจาก arduinoscope - กราฟที่เคลื่อนที่โดยมีตัวอย่างใหม่ล่าสุดทางด้านซ้าย สัญญาณดิบอยู่ด้านบนมีค่าไม่กี่วินาทีจากการสุ่มตัวอย่าง ADC จากขาลอยพร้อมกับแตะนิ้วสัมผัสทุกครั้ง คนอื่น ๆ กำลัง lowpassed รุ่นที่จุดแข็งที่เพิ่มขึ้น บางสิ่งที่ควรทราบเกี่ยวกับเรื่องนี้: การปรับค่าชดเชยที่ล่าช้าไปจนถึงการตอบสนองแบบขั้นตอน (เหมือนตัวเก็บประจุชาร์จ - เร็ว ๆ นี้อย่างรวดเร็วแล้วช้าลงและช้าลง) การปราบปรามการกระเพื่อมครั้งใหญ่ (แน่นอนว่าการตัดสินนั้นขึ้นอยู่กับความเร็วในการสุ่มตัวอย่างและความถี่ของเนื้อหาการปรับตัวที่คุณต้องการ) ในภาพที่สองการสั่นแบบเต็มช่วงออกมาไม่มากนักเนื่องจากมีการกรอง แต่ส่วนใหญ่เนื่องจากตัวอย่างวัตถุดิบส่วนใหญ่ที่มีอิ่มตัวในช่วงปลายของ ADCs เกี่ยวกับ x3b1, x3c4 และความถี่ cutoff บทความนี้เป็น stub x2014 อาจเป็นบันทึกเรียงตามกึ่งกลางเรียงลำดับโดยไม่ได้รับการตรวจสอบเป็นอย่างดีจึงอาจมีบิตไม่ถูกต้อง (รู้สึกอิสระที่จะละเว้นแก้ไขหรือบอกฉัน) x3b1 เป็นปัจจัยการทำให้ราบเรียบระหว่างทางทฤษฎีระหว่าง 0.0 และ 1.0 ในทางปฏิบัติมักจะเป็น lt0.2 และบ่อยกว่า 0.1 หรือน้อยกว่าเนื่องจากเหนือกว่าที่คุณแทบจะไม่ทำการกรองใด ๆ ใน DSP มักขึ้นอยู่กับ: x394 t dt เขียนเป็นประจำ ช่วงเวลาระหว่างตัวอย่าง (อัตราการสุ่มตัวอย่าง) เลือกเวลาคงที่ x3c4 (tau), aka RC (หลังดูเหมือนว่าการอ้างอิงถึงวงจรตัวเก็บประจุบวก - ตัวเก็บประจุซึ่งยังไม่ lowpass โดยเฉพาะ RC ให้เวลาใน ซึ่งจะทำให้ค่าตัวเก็บประจุลดลงถ้าคุณเลือก RC ใกล้เคียงกับ dt คุณจะได้ alphas สูงกว่า 0.5 และมีความถี่ cutoff ที่อยู่ใกล้กับความถี่ nyquist (เกิดขึ้นที่ 0.666 (ตรวจสอบ)) ซึ่งจะกรองตัวกรองออกมาเล็กน้อย ค่อนข้างไม่มีจุดหมายในทางปฏิบัติ youll มักจะเลือก RC ที่อย่างน้อยกี่ทวีคูณของ dt ซึ่งหมายความว่า x3b1 อยู่ในลำดับที่ 0.1 หรือน้อยกว่าเมื่อการสุ่มตัวอย่างเกิดขึ้นอย่างเคร่งครัดอย่างสม่ำเสมอเป็นมันสำหรับเสียงและโปรแกรมอื่น ๆ อีกมากมาย DSP , ความถี่ตัดความถี่ aka knee frequency มีความละเอียดมากเช่นเมื่อ RC0.002sec ค่าความชันอยู่ที่การสุ่มตัวอย่างที่ 200Hz, 2000Hz และ 20000Hz ทำให้ค่า alpha เท่ากับ 0.7, 0.2 และ 0.024 ตามลำดับ (ที่ความเร็วในการสุ่มตัวอย่างเดียวกัน alpha ล่างคือ th e ช้าลงการปรับตัวให้เข้ากับค่าใหม่และลดความถี่ตัดที่มีประสิทธิภาพ) (ตรวจสอบ) สำหรับ lowpass แรกที่สั่งซื้อ: ที่ความถี่ต่ำการตอบสนองเกือบสมบูรณ์แบนที่ความถี่นี้การตอบสนองคือ -3dB (เริ่มลดลงใน bendknee อ่อน) ที่ความถี่สูงกว่าจะลดลงที่ 6dboctave (20dBdecade) รูปแบบที่สูงขึ้นเพื่อลดลงอย่างรวดเร็วและมีหัวเข่าที่ยากขึ้น หมายเหตุนอกจากนี้ยังมีการเปลี่ยนเฟสซึ่งล่าช้าหลังการป้อนข้อมูล ขึ้นอยู่กับความถี่ที่เริ่มต้นเร็วกว่าการลดลงของแอมพลิจูดและจะอยู่ที่ -45 องศาที่ความถี่เข่า (ตรวจสอบ) ตัวอย่าง Arduino บทความนี้เป็น stub x2014 อาจเป็นกองบันทึกครึ่งเรียงลำดับไม่ได้รับการตรวจสอบอย่างดีจึงอาจมีบิตไม่ถูกต้อง (รู้สึกอิสระที่จะเพิกเฉยแก้ไขหรือบอกฉัน) นี่เป็นเวอร์ชั่นชิ้นเดียวของหน่วยความจำสำหรับเมื่อคุณสนใจเฉพาะมูลค่าการส่งออก (ล่าสุด) Semi-sortedIt สามารถช่วงจากค่าเฉลี่ยที่เรียบง่ายของค่า n ไปยังตัวกรองเฉลี่ยที่เป็นตัวชี้วัดไปยังตัวกรองที่ซับซ้อนมากขึ้นซึ่งทำงานบนความถี่ ตัวกรองความถี่ต่ำผ่านความซับซ้อนสามารถสร้างขึ้นโดยการแปลงตัวกรองความถี่ต่ำผ่านอิเล็กทรอนิกส์ที่ใช้ในการประมวลผลสัญญาณดิจิทัล (เช่นตัวกรอง Butterworth ฯลฯ ) ฉันพบว่าเว็บไซต์นี้มีแหล่งข้อมูลมากมายเกี่ยวกับ Digital Signal Processing (The Scientist and Engineer0's Guide การประมวลผลสัญญาณดิจิตอล) ตัวอย่างแรกคือตัวกรองค่าเฉลี่ยที่เคลื่อนที่ต่อไปคือตัวกรอง recursive ตามตัวอย่างของวิธีการสร้างตัวกรองความถี่ต่ำที่มีความถี่ cutoff ให้อัตราการสุ่มตัวอย่างและค่าตัวกรอง RC คงที่โดยพฤติกรรมของวงจรต่ำหรือวงจร RC . จำไว้ว่า: ค่าเฉลี่ยโดเมนเวลาจะยุ่งกับการแสดงโดเมนความถี่และการกรองโดเมนความถี่จะรบกวนการแสดงโดเมนตามเวลา ดังนั้นตัวกรองที่ทำงานในโดเมนเวลาจะส่งผลให้ไม่มีการตอบสนองความถี่ที่ใช้งานได้อีกต่อไปเนื่องจากหมายเลข 039signal039 ตัวกรองของ 090 ได้รับความซับซ้อนกับสัญญาณจริง ในทางกลับกันหากคุณลบเสียงความถี่สูงในโดเมนความถี่อย่าคาดหวังว่าจะได้เห็นสัญญาณที่ราบรื่นในโดเมนเวลา PS: ไม่เคยทำทั้งสองอย่าง ไม่เคยทำตัดความถี่ตามค่าเฉลี่ยในโดเมนเวลา (หรือกลับกัน) เว้นแต่ ไม่มีตัวเลือกอื่น ๆ (ซึ่งมักมี) 14.5k Views middot ดูคำ UpVotes middot ไม่สำหรับการทำซ้ำ
Comments
Post a Comment