2016-10-13 5 views
0

Ich habe einen Datensatz mit zwei nahe beieinander liegenden Peaks. Ich möchte diese Spitzen mit Gaussians anpassen, so dass ich einen neuen Datensatz erstelle, der den ursprünglichen repliziert. Zu diesem Zweck benutze ich die "Findpeaks" -Funktion von MATLAB und verwende die Höhen und Breiten der Peaks, um die entsprechende Anzahl von Gaussianen zu erhalten, und füge dann diese Gaussians zusammen. Da jedoch die Spitzen so nahe beieinander sind, sieht das Ergebnis wie folgt aus (mit dem ursprünglichen Datensatz in blau und die replizierte ein in rot):Anpassen von Gaußkurven zum Schließen von Peaks in MATLAB

enter image description here

Gibt es eine bessere Methode, um die Daten zu replizieren mit Gauß'schen Gipfeln?

Antwort

0

Gaußfunktion wird durch zwei Variablen, Mittelwert und Varianz definiert. Die beiden Spitzenwerte geben Ihnen die Mittelwerte der beiden Gaußschen Werte und nach dem Aussehen der Figur die gleiche Varianz für beide () Wenn einige Daten einen Gauß-Prozess durchlaufen haben, wäre die Varianz gleich, ich kann mir keine physikalische vorstellen Prozess, wo das nicht der Fall wäre, es sei denn, es ist nur eine willkürliche Handlung). Sie müssen also nur eine Variable finden. Wie für die Spitzen, die nur die Normalisierung wäre, so dass die Fläche unter der Kurve bis zu 1 summiert. Ein Gaussian summiert sich standardmäßig zu 1, wenn die Summe unter der Grafik, die Sie versuchen zu passen, 2 ist, die Sie nicht tun müssen alles andere, ansonsten entsprechend skalieren.

Meine Vermutung ist, so etwas wie dieser (Pseudocode):

f = 0.5*gauss(-3,var)+0.5*gauss(3,var) 

Wenn Sie mehr über den Prozess wissen, dass die Handlung erstellt, dann kann man tatsächlich besser machen.

Verwandte Themen