Wie finde ich geglättete Schätzungen der Ableitung und der zweiten Ableitung eines Signals?

10

Ich habe ein Signal bei abgetastet : wobei . Ich möchte die erste und zweite Ableitung des Signals finden: und .Δtfi(ti=iΔt)i=0,,n1f(t)f(t)

Mein erster Gedanke war, die Derivate durch zentrale Unterschiede abzuschätzen:

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

Das Signal kann jedoch viel Hochfrequenzrauschen aufweisen, das schnelle Schwankungen in und .ff

Was wäre der beste Weg, um "geglättete" Schätzungen von und ?ff

Andy
quelle

Antworten:

6

Es hängt wahrscheinlich mehr von Ihren Daten ab. Da die Differenzierung eine lineare Operation ist, entspricht die Unterscheidung, wenn Sie ein lineares Filter zum Glätten von f 'und f' 'wählen, dem Glätten von f mit demselben Filter und dem Abnehmen seiner Ableitungen.

Können Sie einige Bilder oder weitere Informationen zu dem Signal veröffentlichen, das Sie unterscheiden möchten? Wahrscheinlich suchen Sie nach einer Art Tiefpassfilter, um das Signal zu glätten. Ein paar wirklich einfache Optionen umfassen einen einpoligen rekursiven Filter wie oder einen Hann-Filter, der nur das faltet Signal mit einem Hann-Fenster. Die Hann-Filteroption ist schön, weil sie linearphasig ist. Wenn Sie den Frequenzbereich kennen, den Sie interessieren, können Sie einfach einen geeigneten Tiefpassfilter im Frequenzbereich entwerfen.y(n)=ax(n)+(1a)y(n1)

Schnarf
quelle
Danke Schnarf! Da also Glättung gefolgt von Differenzierung gleich Differenzierung ist, gefolgt von Glättung; Ich kann das ursprüngliche Signal auch glätten, indem ich mich zB mit dem Hann-Fenster zusammenfalte. Wie wäre es mit dem einfacheren Ansatz, eine endliche Differenz über einen größeren Bereich zu verwenden: f '(t) ~ = [f (t + 10 · Dt) - f (t - 10 · Dt)] / (20 · Dt), würde dies eine recht gute Schätzung eines geglätteten Derivats geben?
Andy
4

Das Savitzky-Golay- Filter liefert reibungslose Schätzungen des Signals und der ersten Ableitungen.

Eine MATLAB-Implementierung finden Sie hier .

eglaser
quelle