Verfasst am: 25.03.2008, 16:48
Titel: Mit Matlab EKG auswerten!
Hallo!
Ich sitze heute das erstmal vor Matlab und habe ein(zwei) Programm(e) was mir Daten, die in form einer Text-Datei vorliegen, von einem EKG-Gerät auswerten soll. Eigentlich sollte es funktionieren, nur bekomme ich leider eine Fehlermeldung und weiß damit nix anzufangen. Hab das nicht selber geschrieben. Es geht mir mehr um die Anzeige die ich zusehen bekommen sollte.
Die Meldung ist:
Zitat:
Undefined function or method 'max_t_EKG' for input arguments of type 'double'.
das Array max_t_EKG wird bei dir in der Schleife initialisiert
und leider wird diese Stelle nicht erreicht. Ich vermute einfach die IF-Bedingung in der Schleife wird nie erfüllt.
Vielleicht ist die Schwelle=1 einfach zu groß ?
Versuch einfach andere Schwelle?
Code:
Schwelle = 1; % Höhendifferenz-Schwelle
.
.
while i <(Laenge-Fenster-1)
%
%
%die Bedienung ist wohl nie erfüllt
if((EKG(i+6)-EKG(i)) > Schwelle) [maximum,index]=max(EKG(i:i+Fenster));
max_y_EKG(k)=maximum;
max_t_EKG(k)=(i+index-1)/300;
if(k > 1)
RRT(k) = max_t_EKG(k) - max_t_EKG(k-1);
end;
k=k+1;
i=i+Fenster-1;
end;
i=i+1;
end;
.
.
%und hier kracht es dann
min_t_RRT = max_t_EKG(ind_RRT);
hatte es jetzt mit 0.1 getestet. siehe da es funktioniert, aber leider kann da immer noch nicht was ganz so stimmen. sonst hätte ich nur 6 herzschläge in der minute.
in der datei steht in der 3. spalte der ekg-wert(in der 2. puls). wenn ich den code richtig verstanden habe, wird zb. der 7.-wert minus dem ersten gerechnet und dann mit der schwelle verglichen. oder?
hatte es jetzt mit 0.1 getestet. siehe da es funktioniert, aber leider kann da immer noch nicht was ganz so stimmen. sonst hätte ich nur 6 herzschläge in der minute.
Tja, da ist wohl wahr
Welche Bedeutung hat Fenster?
Fenster = 80?
Zitat:
in der datei steht in der 3. spalte der ekg-wert(in der 2. puls). wenn ich den code richtig verstanden habe, wird zb. der 7.-wert minus dem ersten gerechnet und dann mit der schwelle verglichen. oder?
Ja,
7-1
8-2
9-3
usw
wenn über die Schwell
Ich kann mir bloß nicht wirklich erklären, warum immer 6 Stellen entferntes Wert wird genommen? (das kann aber auch ins Auge gehen, wenn Index+6 größer als Anzahl Elemente in EKG wird)
Mr.Bubbles
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.03.2008, 18:54
Titel:
erst mal danke denny!
welche bedeutung fenster hat? weiß ich auch nicht.
hab jetzt auch mehr herzschläge ich hatte die daten mit einer höhren frequenz aufgenommen. im bsp waren es nur 300hz. ich hatte mehr.
nur hab ich jetzt noch ein problem mit dem 2. programm. in der zeile:
Zitat:
PTT = max_t_Puls - max_t_EKG;
die dimensionen der matizen müssen übereinstimmen?!
nur hab ich jetzt noch ein problem mit dem 2. programm. in der zeile:
Zitat:
PTT = max_t_Puls - max_t_EKG;
die dimensionen der matizen müssen übereinstimmen?!
Hier entsteh gleich die Frage, ob 2 Schleifen wirklich nötig sind?
Ist es nicht besser wenn man die Schleifen vereint?
Code:
% k : Gesamtzahl der R-Zacken % max_y_EKG: maximaler EKG-Ausschlag/R-Zacke % max_t_EKG: Zugehörige Zeit der R-Zacke
k=1;
Fenster = 80;
SchwelleEkg = 0.5; % Höhendifferenz-Schwelle
SchwellePuls = 0.18; % Höhendifferenz-Schwelle
i=1;
while i <(Laenge-Fenster-1) if((EKG(i+6)-EKG(i)) > SchwelleEkg)&&((Puls(i+6)-Puls(i)) > SchwellePuls) [maximum,index]=max(EKG(i:i+Fenster));
max_y_EKG(k)=maximum;
max_t_EKG(k)=(i+index-1)/300;
[maximum,index]=max(Puls(i:i+Fenster));
max_y_Puls(k)= maximum;
max_t_Puls(k)= (i+index-1)/300;
k=k+1;
i=i+Fenster-1;
end;
i=i+1;
end;
Ansonsten muss man hat irgendwie auf gleiche Länge bringen,
die Daten aber werden danach nicht synchron
Mr.Bubbles
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 25.03.2008, 20:11
Titel:
vielen dank noch mal!
das werd ich dann morgen mal testen.
ach übrigens hab ich es mal ohne dieses "fenster" probiert. nach 5 minuten hat sich immer noch nix getan, da hab ich dann abgebrochen.
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.