วิธีการหาค่าประมาณที่ราบรื่นของอนุพันธ์และอนุพันธ์อันดับสองของสัญญาณ


10

ฉันมีตัวอย่างสัญญาณที่ Δt: fi(ti=iΔt) ที่ไหน i=0,,n1. ฉันต้องการหาอนุพันธ์อันดับหนึ่งและสองของสัญญาณ:f(t) และ f(t).

ความคิดแรกของฉันคือการประเมินอนุพันธ์โดยความแตกต่างกลาง:

f(ti)=f(ti+1)f(ti1)2Δtf(ti)=f(ti+1)2f(ti)+f(ti1)(Δt)2

แต่สัญญาณอาจมีจำนวนมากของเสียงความถี่สูงที่อาจก่อให้เกิดความผันผวนอย่างรวดเร็วในและ''ff

สิ่งที่จะเป็นวิธีที่ดีที่สุดที่จะหา "เรียบ" ประมาณการของและ ?ff

คำตอบ:


6

มันอาจขึ้นอยู่กับข้อมูลของคุณ เพิ่งทราบว่าเนื่องจากความแตกต่างเป็นการดำเนินการเชิงเส้นหากคุณเลือกตัวกรองเชิงเส้นใด ๆ เพื่อให้เรียบ f 'และ f' 'มันก็เท่ากับการทำให้เรียบ f โดยใช้ตัวกรองเดียวกันนั้นแล้วใช้อนุพันธ์ของมัน

คุณสามารถโพสต์ภาพบางส่วนหรือข้อมูลเพิ่มเติมเกี่ยวกับสัญญาณที่คุณต้องการแยกความแตกต่างได้หรือไม่? อาจเป็นสิ่งที่คุณกำลังมองหาคือตัวกรอง lowpass บางชนิดเพื่อให้สัญญาณราบรื่นขึ้น ตัวเลือกที่เรียบง่ายจริง ๆ สองสามอย่างรวมถึงตัวกรองแบบเรียกซ้ำขั้วเดียวเช่นหรือตัวกรองของฮัน สัญญาณด้วยหน้าต่าง Hann ตัวเลือกของตัวกรอง Hann นั้นดีเพราะมันเป็นเฟสเชิงเส้น หากคุณทราบช่วงความถี่ที่คุณสนใจคุณสามารถออกแบบตัวกรองความถี่ต่ำที่เหมาะสมในโดเมนความถี่ได้y(n)=ax(n)+(1a)y(n1)


ขอบคุณ schnarf! ดังนั้นเนื่องจากการปรับให้เรียบตามด้วยความแตกต่างเท่ากับความแตกต่างตามด้วยการปรับให้เรียบ ฉันอาจทำให้สัญญาณดั้งเดิมราบรื่นขึ้นด้วยการสนทนากับหน้าต่างของ Hann หรือไม่? วิธีการเกี่ยวกับวิธีที่ง่ายกว่าในการใช้ความแตกต่างอัน จำกัด ในช่วงที่มีขนาดใหญ่กว่า: f '(t) ~ = [f (t + 10 * Dt) -f (t-10 * Dt)] / (20 * Dt) ให้การประมาณที่ค่อนข้างดีของอนุพันธ์ที่เรียบ?
Andy

4

Savitzky-Golayกรองให้ประมาณการที่ราบรื่นของสัญญาณและไม่กี่อนุพันธ์แรก

การดำเนิน MATLAB สามารถพบได้ที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.