Jak znaleźć wygładzone szacunki pochodnej i drugiej pochodnej sygnału?

10

Mam sygnał próbkowany w : gdzie . I znaleźć pierwszej i drugiej pochodnej sygnału: i .Δtfi(ti=iΔt)i=0,,n1f(t)f(t)

Moją pierwszą myślą było oszacowanie pochodnych według różnic centralnych:

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

Jednak sygnał może zawierać dużo szumów o wysokiej częstotliwości, które mogą powodować szybkie fluktuacje f i f .

Jaki byłby najlepszy sposób na znalezienie „wygładzonych” oszacowań f i f ?

Andy
źródło

Odpowiedzi:

6

Prawdopodobnie zależy to bardziej od twoich danych. Po prostu wiedz, że ponieważ różnicowanie jest operacją liniową, jeśli wybierzesz dowolny filtr liniowy w celu wygładzenia f 'i f' ', jest to równoważne wygładzeniu f za pomocą tego samego filtra, a następnie pobraniu jego pochodnych.

Czy możesz zamieścić kilka zdjęć lub więcej informacji na temat sygnału, który chcesz odróżnić? Prawdopodobnie to, czego szukasz, to jakiś filtr dolnoprzepustowy do wygładzenia sygnału. Kilka naprawdę prostych opcji obejmuje jednobiegunowy filtr rekurencyjny, taki jak lub filtr Hann, który po prostu przekształca sygnał z oknem Hann. Opcja filtra Hann jest dobra, ponieważ ma fazę liniową. Jeśli znasz zakres częstotliwości, na którym Ci zależy, możesz po prostu zaprojektować odpowiedni filtr dolnoprzepustowy w dziedzinie częstotliwości.y(n)=ax(n)+(1a)y(n1)

sznurek
źródło
Dzięki sznurek! Ponieważ wygładzanie, po którym następuje różnicowanie, jest równe różnicowaniu, po którym następuje wygładzanie; Równie dobrze mogę wygładzić oryginalny sygnał, konwektując np. Z oknem Hann? Co powiesz na prostsze podejście polegające na zastosowaniu skończonej różnicy w większym zakresie: f '(t) ~ = [f (t + 10 * Dt) -f (t-10 * Dt)] / (20 * Dt) podać dość dobre oszacowanie wygładzonej pochodnej?
Andy,
4

Savitzky'ego-Golay filtr zapewnia gładkie oszacowań sygnału i pierwszych pochodnych.

Implementację MATLAB można znaleźć tutaj .

eglaser
źródło