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

Rauschinhalte im EKG-Signal filtern, Aber wie?

 

akya17
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 16.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2012, 11:17     Titel: Rauschinhalte im EKG-Signal filtern, Aber wie?
  Antworten mit Zitat      
Hallo,

ich arbeite derzeit an einem Projekt wo ich über ein USB-Modul EKG-Signale simuliere und in Matlab einlese. Mein Problem ist: Ich weiss nicht wie ich die Rauschinhalte in meinem Signal Filtern kann. Ich habe noch zusätzlich ein Tipp von meinem Professor bekommen. Ich soll Versuchen mit Tiefpass-Filtern zu arbeiten. Ich besitze leider nur die Grundkenntnisse in Matlab. Im Anhang hab ich ein Bild vom USB-Modul und das Snapshot vom EKG-Signal.Würde mich sehr freuen, wenn ich ein paar Ideen von euch bekommen könnte.

Das ist mein Programm:


Code:

AI=analoginput('mcc',0);            %Erstellung eines Objektes AI mit der InstaCAL Nr.0
addchannel(AI,0:2);            %Kanäle 0,1,2
k=10;                  %Frequenz 10 Hz  
set(AI,'SampleRate',20*k);         %Abtastrate und Trigger ggf. anpassen
set(AI,'SamplesPerTrigger',20*k);         %Buffersize spezifisch für das Modul
start(AI);
waittilstop(AI,5);               %Wartezeit ggf. anpassen bis AI fertig ist
 
erg1=getdata(AI);
erg1=(erg1/20)-3.75;            %Skalierung bzgl. Eingangsbereich
                  % des AD-Wandlers auf MCC anpassen
N=length(erg1);
t=0:(1/(20*k)):(1-(1/(20*k)));
tt=t(1:100);
y=(erg1(:,1))';               %Auswahl der ersten Spalte
yy=y(1:100);               %Auswahl e. begrenzten Anzahl v. Werten
subplot(2,1,1),plot(tt,yy)
grid on

xlabel('Zeit in sec')            %Beschriftung der Grafik
ylabel('U(t) in V')
title('Zeitreihe')
 
Fs=k*20;               %Abtastfrequenz
order=4; FFTLength='NextPow2';         %Ordnung des AR-Prozesses ggf. anpassen
Hs=spectrum.mcov(order, FFTLength);      %modifiziertes Spektrum - Kovarianz
subplot(2,1,2),psd(Hs,y,'Fs',Fs)         %Erzeugung einer Grafik d. spektr. LD

 
 


EKg.png
 Beschreibung:
Hier das Snapshot

Download
 Dateiname:  EKg.png
 Dateigröße:  265.48 KB
 Heruntergeladen:  998 mal
Private Nachricht senden Benutzer-Profile anzeigen


Scriptor
Forum-Century

Forum-Century


Beiträge: 217
Anmeldedatum: 22.02.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2012, 13:51     Titel:
  Antworten mit Zitat      
Hi,

Hierfür solltest du wissen, was eigentlich eine Fouriertransformation ist. Ein EKG Signal lässt sich als periodisches Signal und als Summe von harmonischen Signalen mit einer Frequenz von 0 bis, lass mich lügen, 500 Hz beschreiben. Rauschen ist meistens in höheren Frequenzen zu finden.

Was macht man also? Entweder du faltest dein Signal mit eienr Tiefpassfkt im Zeitbereich oder multiplizierst das Spektrum des EKG-Signals punktweise mit dem Spektrum eines Tiefpasses mit der spektralen Gleichung

Y(f) = \frac{1}{1-\frac{f}{f_{g} } } fg ist die Grenzfrequenz.

Dafür musst du mit dem EKG Rohsignal eine FFT machen.
Was die macht/kann/tut solltest du nachschauen. Gibts genug hier.

Grüße!
Private Nachricht senden Benutzer-Profile anzeigen
 
akya17
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 16.01.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2012, 16:39     Titel:
  Antworten mit Zitat      
Vielen Dank für die rasche Antwort. Kann ich das Signal nicht mit Simulink filtern. Im Anhang hab ich ein Beispiel. Ich weiss aber nicht, wie ich das Umsetzen soll.

ekg_filter.pdf
 Beschreibung:

Download
 Dateiname:  ekg_filter.pdf
 Dateigröße:  210.86 KB
 Heruntergeladen:  873 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 24.01.2012, 11:19     Titel:
  Antworten mit Zitat      
Und wo genau ist jetzt dein Problem? Du kannst den Aufbau in Simulink umsetzen oder aber mit dem unteren Code das ganze in Matlab lösen. Fragt sich nur, ob die Tiefpässe auch deinen Ansprüchen genügen.
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 - 2024 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.