Abgeleitete Berechnung

  • Ich habe eine Reihe von Daten (einzelnes Array). Wenn ich diese Daten nehme und zeichne, kann ich sehen, dass es mehrere Peaks gibt. Wenn ich jedoch einen Teil der Daten vergrößere, sehe ich, dass es ein erhebliches Rauschen gibt.

    Ich möchte gerne erkennen, wie viele Peaks in den Daten mit wenig CPU-Zeit und Energie vorhanden sind. Ich dachte daran, die Steigungen dieser Gipfel zu erkennen (könnte scharf oder glatt steigen oder fallen) und schaue mir die Anzahl der Steigungen an, um die Anzahl der Gipfel zu bestimmen. (2 Steigungen positiv und negativ für jeden Peak)

    Gibt es Hinweise, wie ich die Steigungen bei Rauschen berechnen kann?

    Der Code wird in ein eingebettetes System übertragen, der Speicher ist begrenzt, so dass ich vorzugsweise etwas implementieren möchte, das keine signifikante Datenkopie erfordert.

    21 February 2012
    PhononDeepak kumar Jha
1 answer
  • Dies hängt von der Art des Rauschens und der Art des Signals ab. Zeigen Sie ein Beispiel, wenn Sie eine gute Antwort wünschen. Aber im Allgemeinen möchten Sie das Signal wahrscheinlich mit einem Tiefpassfilter filtern. Wenn ich Sie wäre, würde ich ein Fourier-Leistungsspektrum nehmen, um zu sehen, ob das meiste Rauschen hochfrequent ist und das Signal, das mich interessiert, meist in einem niedrigeren Bereich liegt. Wenn sie sich überschneiden, ist das das Leben. Ich müsste mehr über die Dinge nachdenken.

    Ein Tiefpassfilter, der in vielen Fällen für laute Signale gut ist, ist der Savitzky-Golay-Filter. Es wird in Numerical Recipes beschrieben, und für Python gibt es eine Funktion im Python Numpy Cookbook. Es ist nur eine Faltung mit einem kleinen Kern. Sie wählen die Fenstergröße anhand der Breite der Gipfel oder anderer Merkmale aus, die breit genug sind, um das Rauschen herauszuschmeißen, jedoch nicht breiter als die Merkmale. Es kann klein sein, sagen wir fünf Punkte, oder größer als Dutzende, vielleicht hundert.

    Sie wählen auch eine Polynomreihenfolge aus - normalerweise verwende ich 2 oder 4. Reihenfolge 2 ist in Ordnung, wenn das Fenster klein ist, & lt; 10 Punkte oder weniger als einen halben Zyklus (wenn Ihr Signal einem Sinus ähnelt), während Ordnung 4 besser für verzerrte Peakformen geeignet ist, aber etwa 9 oder mehr Punkte hat. Aber viel hängt von der Form und der Häufigkeit des Rauschens ab.

    Wie andere in den Kommentaren sagen, ist das Finden von Ableitungen wahrscheinlich nicht die beste Strategie, aber wenn Sie trotzdem Ableitungen suchen wollen kann der Savitzky-Golay-Filter dies tun - gleichzeitig die Ableitung anstelle des Signals glätten und melden.

    20 June 2014
    Luke Girvinuser1452962