Verfasst am: 07.01.2015, 11:22
Titel: Fläche eines Massenspektrums berechnen
Hallo zusammen,
ich habe ein Problem welches ich gern lösen würde, nur reichen meine bisherigen Fertigkeiten nicht aus und aus Büchern und der MatLab Hilfe werde ich auch nicht schlau! Daher bin ich für jede Hilfe dankbar!
Also, ich habe ein Massenspektrum als xls-Datei aufgenommen (s. Abbildung Massenspektrum) und möchte bei diesem die Fläche unter einzelnen Peaks berechnen. Die Peaks sind nicht immer gleich daher würde ich die Integrationsgrenzen gern beliebig anpassen können. Ich würde auch gern ein Variable festlegen mit der ich den Hintergrund abziehen kann, der also ein Höhe vorgibt.
Ich habe schon verschiedene MatLab-Integrationsmethoden versucht (trapz, integrad, quad usw.), ich komme da einfach nicht weiter, da die Beispiele nur irgendwelche Funktionen behandeln.
Mein Ansatz bisher:
ich lese die xls-Datei mit xlsread ein und plotte sie, damit ich die Grenzen der Peaks heraussuchen kann und dann hört es schon auf, daher habe ich jetzt nicht meine ganzen versuche gepostet!
Code:
>> num = xlsread('C:\Users\User\Dropbox\Uni\MatLab\Mappe.xls');
>> figure(1)
>> plot(num(:,1),num(:,2))
Ich versuche mich nochmal verständlicher auszudrücken, also mit Schwellenwert bzw. Hintergrund meine ich das Signalrauschen (s. Bild), das würde ich entweder gern herausschneiden oder mit der Funktion
2. Filtern
Zu erklären, wie Filter angewandt werden würde hier den Rahmen sprengen, aber dafür gibt es ja die (vergleichsweise sehr gute!!!) Dokumentation, siehe
um nur ein Beispiel zu nennen (Gleitender Mittelwertfilter; schau Dir den doch mal an!). Messsignale richtig zu filtern ist aber eine Wissenschaft für sich ...
All right, let's keep it simple! Sehen Deine Signale alle so "eindeutig" aus wie im von Dir geposteten Bild, d.h. kann man bereits mit bloßem Auge sofort erkennen, was Signal ist und was Rauschen? Dann setze alles was Rauschen ist doch auf einen festen Wert, z.B. so:
Code:
t = 1:10; % beliebiger Vektor; könnte hier z.B. die Zeit darstellen
u=[-11-11-11-51-11]; % Verrauschtes Signal
% Das sehen wir uns mal an ... figure(1) plot(t,u) title('Plot mit Rauschen')
% ... und stellen fest, dass das ganz schön rauscht! % Da wir keine Ahnung von Filtern haben, "bügeln" wir das einfach glatt, % indem wir alles Werte, die offenbar kein Signal darstellen einfach zu % Null setzen, und zwar so:
% "Index-Vektor" erstellen, der uns alle Positionen von u ausgibt, an denen gilt: % -2<u<2
i=find(u>-2 & u<2);
% Die Werte dort setzen wir zu Null
u(i)=0;
% Nochmal ansehen ... figure(2) plot(t,u) title('Plot ohne Rauschen')
function und Deinem hast Du mir schon gut geholfen.
Ja, da ist was Wahres dran. Filtern ist wirklich eine Kunst!
Grüße
Paul
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.