Obliczanie wygładzonej pochodnej sygnału za pomocą różnicy z większym krokiem = splot z prostokątnym oknem

9

Mam próbkowany sygnał na Δt:fi(ti=iΔt)gdzie i = 0..n-1. Chcę znaleźć pierwszą pochodną sygnału: f '(t).

Moją pierwszą myślą było oszacowanie tego na podstawie zasadniczej różnicy:

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

Jednak sygnał może mieć dużo szumów o wysokiej częstotliwości, które mogą powodować szybkie fluktuacje w f '. Wydaje mi się, że właściwą rzeczą może być wygładzenie sygnału przez splot z funkcją okna, np. Hann, a następnie znalezienie pochodnej od różnic.

Kolega zaproponował szybszy sposób znalezienia wygładzonego oszacowania pochodnej: użyj centralnej różnicy na 2n próbkach, gdzie n >> 1:

f(ti)=f(ti+n)f(tin)2nΔt

Byłoby to oczywiście obliczeniowo szybsze niż pierwsze połączenie z funkcją okna, ale czy to dobre rozwiązanie?

Jeśli tworzymy sumę:

S=2Δt[f(tin+1)+f(tin+2)+..+f(ti+n1)]

i rozszerzaj każdą pochodną o różnicę centralną z krokiem Δt:

S=f(tin+2)f(tin)+f(tin+3)f(tin+2)+..+f(ti+n)f(ti+n2)

wszystkie warunki z wyjątkiem dwóch anuluje:

S=f(ti+n)f(tin)=2nΔtf(ti)

W związku z tym:

f(ti)=1n[f(tin+1)+f(tin+2)+..+f(ti+n1)]

Tak więc przyjęcie centralnej różnicy dla próbek 2n jest równoznaczne z pierwszym zwojeniem prostokątnego okna o wielkości 2n - 2, a następnie pobraniem centralnej różnicy względem próbki +/- 1.

Jak „źle” jest wygładzać prostokątne okno?

Jeśli weźmiemy FFT, spowoduje to „dzwonienie”, ale nie musimy brać FFT.

Z góry dziękuję za wszelkie odpowiedzi!

Andy
źródło

Odpowiedzi:

4

To trudne pytanie. Wygładzanie za pomocą prostokątnego okna jest używane przez cały czas (często nazywane „średnią ruchomą”), więc niekoniecznie jest to problem. Nie jestem pewien, o jakim dzwonieniu mówisz, być może bocznych pasmach częstotliwości prostokątnego okna.

Różnicowanie jest z natury operacją górnoprzepustową; idealny różniczkujący czas ciągły ma funkcję przenoszenia:

H(s)=s

Tak więc jego odpowiedź wielkościowa wynosi:

|H(jω)|=ω

Zysk różnicowania zwiększa się zatem monotonicznie wraz z częstotliwością. Jeśli twój sygnał zawiera szum o wysokiej częstotliwości, można go wzmocnić, stosując wyróżnik. Aby temu zaradzić, widoczne są dwa podejścia:

  • Zaprojektuj bardziej wyrafinowany filtr różnicujący, który ma pożądaną liniową odpowiedź na część pasma, która pokrywa twój interesujący sygnał, a następnie gwałtownie tłumi wyższe częstotliwości. Możesz zaprojektować taki filtr na przykład przy użyciu metod najmniejszych kwadratów lub metody próbkowania częstotliwości.

  • Zastosuj podejście kaskadowe, w którym najpierw tłumisz szumy o wysokiej częstotliwości, które można zastosować za pomocą filtra dolnoprzepustowego, a następnie rozróżniasz. Pokrycie częstotliwościowe różnicnika nie musi być tak wąskie, ponieważ filtr dolnoprzepustowy wyeliminuje szum poza pasmem.

Metody powinny być mniej więcej równoważne, jeśli używasz filtrów liniowych; możesz pomyśleć o pierwszym podejściu z pojedynczym filtrem jako o kaskadzie wyróżniacza i filtra dolnoprzepustowego. Jak zauważyłeś, podejście oparte na centralnej różnicy można modelować w ten sposób. Nikomu trudno powiedzieć, że jest „zły” bez znajomości Twojej aplikacji. Moją główną myślą byłoby to, że „złe” jest, jeśli operacja wygładzania w widoczny sposób osłabia sygnał zainteresowania, tak że oszacowanie pochodnej nie jest już przydatne. Jeśli jednak parametry sygnału są takie, że można wygładzić szum bez zauważalnego zniekształcania sygnału (tj. Jeśli sygnał jest dobrze nadpróbkowany), może to być wygrana.

Jason R.
źródło