WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Fläche eines Massenspektrums berechnen

 

paul2006
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 07.01.15
Wohnort: Remscheid
Version: ---
     Beitrag Verfasst am: 07.01.2015, 11:22     Titel: Fläche eines Massenspektrums berechnen
  Antworten mit Zitat      
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.

Auszug aus den Messdaten:
Masse S1
0,07197 -0,05469
0,07154 -0,07422
0,07111 -0,07422
0,07069 -0,07422
0,07027 -0,07422
0,06985 -0,07422
0,06943 -0,03516
0,06901 -0,03516
0,06859 -0,03516
0,06817 -0,05469
0,06776 -0,03516
0,06734 -0,03516
0,06693 -0,03516
0,06652 -0,03516
0,06611 -0,03516


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! Sad

Code:

>> num = xlsread('C:\Users\User\Dropbox\Uni\MatLab\Mappe.xls');
>> figure(1)
>> plot(num(:,1),num(:,2))

>> xlabel('m/z');
>> ylabel('Intensität');

>> a = 66.5;  %Grenze links vom Peak
>> b = 67.5;  %Grenze rechts vom Peak
>> h = XX;    % Hintergrandabzug
 


Wie würdet Ihr vorgehen?
Vielen Dank!

Massenspektrum.jpg
 Beschreibung:

Download
 Dateiname:  Massenspektrum.jpg
 Dateigröße:  74.64 KB
 Heruntergeladen:  366 mal
Private Nachricht senden Benutzer-Profile anzeigen


Sebastian
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 09.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.01.2015, 22:55     Titel:
  Antworten mit Zitat      
Moin,

zwei Fragen:

1. Was meinst Du mit "Hintergrund abziehen"?

2. Was genau möchtest Du integrieren?

Grüße
_________________

Insanity means doing the same things over and over again and expecting a different result.
Private Nachricht senden Benutzer-Profile anzeigen
 
paul2006
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 07.01.15
Wohnort: Remscheid
Version: ---
     Beitrag Verfasst am: 09.01.2015, 23:41     Titel:
  Antworten mit Zitat      
Hallo Sebastian,

also mit Hintergrund meine ich einen Schwellenwert und integrieren möchte ich bestimmte Peaks bzw. die Fläche unter den Peaks meiner Messdaten.

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebastian
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 09.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.01.2015, 11:30     Titel:
  Antworten mit Zitat      
Moin!

Um ehrlich zu sein bin ich noch unsicher, was Du willst. Deine Matrix sieht so aus:

Code:

A=[
0.07197   -0.05469;
0.07154   -0.07422;
0.07111   -0.07422;
0.07069   -0.07422;
0.07027   -0.07422;
0.06985   -0.07422;
0.06943   -0.03516;
0.06901   -0.03516;
0.06859   -0.03516;
0.06817   -0.05469;
0.06776   -0.03516;
0.06734   -0.03516;
0.06693   -0.03516;
0.06652   -0.03516;
0.06611   -0.03516;
];
 


Mit "Hintergrund" meinst Du z.B. den Wert -0.03516, um den die Werte streuen. Das bekommst Du weg mit:

Code:
A(:,2)=A(:,2)+0.03516  % einfach zu jedem Wert der zweiten Spalte 0.03516 addieren


Dann streuen die Werte um Null und die kannst einfach integrieren, z.B. mit

Code:
Area = trapz(A(:,1), A(:,2))



Grüße
_________________

Insanity means doing the same things over and over again and expecting a different result.
Private Nachricht senden Benutzer-Profile anzeigen
 
paul2006
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 07.01.15
Wohnort: Remscheid
Version: ---
     Beitrag Verfasst am: 11.01.2015, 22:51     Titel:
  Antworten mit Zitat      
Hallo Sebastian,

schon vielen herzlichen Dank für Deine Hilfen!

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
Code:
herausfiltern. Kennst Du Dich vielleicht auch mit dieser Funktion aus, ich schnalle es einfach nicht, wie ich diese auf meine Dtaen anwenden soll!

Noch eine Frage zu
Code:
. Wie kann ich bei dieser Funktion Integrationsgrenzen angeben? So dass nur von zb. x = 5 bis x = 10 integriert wird!

Tausend Dank!

[img][/img]

Unbenannt.jpg
 Beschreibung:

Download
 Dateiname:  Unbenannt.jpg
 Dateigröße:  149.6 KB
 Heruntergeladen:  329 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Sebastian
Forum-Anfänger

Forum-Anfänger


Beiträge: 16
Anmeldedatum: 09.01.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.01.2015, 20:46     Titel:
  Antworten mit Zitat      
Hallo Paul,

1. Zur Funktion msbackadj:
Nie gehört Embarassed

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

Code:
,

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=[-1 1 -1 1 -1 1 -5 1 -1 1]; % 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')

% ... ja, viel besser Wink


3. Integrationsgrenzen
Bleiben wir bei meinem Beispiel und Deiner Frage:
Zitat:
Wie kann ich bei dieser Funktion Integrationsgrenzen angeben? So dass nur von zb. x = 5 bis x = 10 integriert wird!


Code:

% Beispiel von oben: t geht von 1 bis 10, Du willst aber nur von 5 bis 10 %integrieren

t_neu=t(5:10);
u_neu=u(5:10);

Area = trapz(t_neu, u_neu)





Grüße
_________________

Insanity means doing the same things over and over again and expecting a different result.
Private Nachricht senden Benutzer-Profile anzeigen
 
paul2006
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 07.01.15
Wohnort: Remscheid
Version: ---
     Beitrag Verfasst am: 14.01.2015, 09:31     Titel:
  Antworten mit Zitat      
Hallo Sebastian,

wieder herzlichen Dank für Deine Hilfe.
Mit der
Code:
function und Deinem hast Du mir schon gut geholfen. Very Happy

Ja, da ist was Wahres dran. Filtern ist wirklich eine Kunst!

Grüße
Paul
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.