Ich habe einen Strom von Signalwerten (z. B. 10, 12, 13, 11, 15, 12.500, 10, 23, 25, 30, 200).
Wie Sie sehen, gibt es im Stream einige Störungen wie die Werte 500 und 200.
Wie kann ich dieses Rauschen beseitigen oder reduzieren?
Die Peaks werden anhand eines festen Schwellwertes erkannt (z. B. wenn der Signalwert +/- 50 beträgt, dann ist dieser Wert ein Peak).
Mein Algorithmus ist:
Ich habe versucht, eine Maske mit 10 Werten zu erstellen und dann den Durchschnitt davon zu berechnen. Durch Neigen dieser Maske über den gesamten Stream kann ich die Spitzen durch den Maskendurchschnitt ersetzen und dann die Maske um einen Wert verschieben.
Gibt es andere Algorithmen, um das Problem zu lösen?
Bewertung Mein Algorithmus wird immer noch durch den Wert der Spitzen beeinflusst (natürlich) und auch wenn mehrere Spitzen nahe beieinander liegen (wie: 500.600.650.510,.. , 10,50), so dass der Maskendurchschnitt relativ zu den anderen Durchschnittswerten groß sein wird .
gibt es eine Lösung für dieses Problem?
Ein Tiefpassfilter könnte für Sie funktionieren.
Je nach Anwendung könnte dies so primitiv wie ein rechteckiger Filter sein, bei dem Sie jeden Wert durch den Durchschnitt der fünf Werte um ihn herum ersetzen, oder Sie könnten einzelnen Werten eine Gewichtung hinzufügen.
Sie könnten mit verschiedenen Filterkernen experimentieren:
usw.
Olin Lathrop
Benutzer3213767
m.Alin
Venny