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

Weg"filtern" von niedrigen Amplituden im Signal

 

Paco

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2009, 04:09     Titel: Weg"filtern" von niedrigen Amplituden im Signal
  Antworten mit Zitat      
Hallo,

für meine Dr-Arbeit im Bereich Psychophysiologie muss ich aus Atemfliessgeschwindigskeitsdaten (liter/sec) Volumina berechnen (Liter) durch Integration - das benötige ich nur jeweils für die Einatmung. Die Ausatmung kann ich einfach wegfiltern, weil diese negativ ist.

Zunächst müssen aber die Atemfliessgeschwindigskeitsdaten (liter/sec) so bearbeitet werden, dass der Suchalgorithmus jeweils Anfang und Ende einer Einatmung erkennt und die "Area under the Curve" berechnet=Integral, das dann dem jeweiligen Einatmenvolumen entspricht. Das Problem ist, dass beim Messen ungewünschte Artefakte entstehen, die ich gerne aus dem Signal löschen würde, damit der Algorithmus gut arbeiten kann, diese Artefakte sind in der beigefügten Grafik (siganl3.JPG) grün markiert. Die Kurvenform der "großen" Auslenkungen darf auf keinen Fall verändert werden, weil sonst beim Intergrieren falsche Werte herauskommen.

Frage: WIE NUR kann ich die grün unterlegten Bereiche einfach auf Null setzen, sozusagen quasi plattdrücken, eliminieren - ohne den Rest zu beeinflussen? Mir ist bisher kein sinnvoller Algorithmus dafür eingefallen und manuell kann man das Problem nicht lösen, möchte man nicht 300 Jahre daran sitzen, wie könnte man das automatisiert machen?

Für alle Anregungen bin ich sehr sehr dankbar!

Liebe Grüsse,
Daniel[/b]

signal3.jpg
 Beschreibung:

Download
 Dateiname:  signal3.jpg
 Dateigröße:  285.34 KB
 Heruntergeladen:  1263 mal


pebbles88
Forum-Anfänger

Forum-Anfänger


Beiträge: 21
Anmeldedatum: 04.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2009, 07:47     Titel:
  Antworten mit Zitat      
Hallo,

ich bin gerad nicht so in der Signalverarbeitung drin, aber schau dir doch mal die diskrete Foruertransformation an oder die inverse Fouriertransformation.

Gbt es in Matlab auch einen befehl.
Die wird häufig verwendet um das rauschen zu filtern.

Ist zwar nur ein Anfang, aber vllt kannst du damit schon weiterkommen.

Liebe grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 07.04.2009, 07:55     Titel:
  Antworten mit Zitat      
Leider sind die Artefakte zum Teil so groß, wie die von dir gewünschten Einatemwerte. Vll kannst du eine Testreihe hochladen, so dass man sich am Filtern versuchen kann.


Meine Ansätze wären jetzt:
ein Histogramm, so dass man zumindest vll einen Schwellwert findet und alles darunter mittels

Code:

A % enthält die Daten
y=A:
y(y<=Schwellwert)=0;
 


null setzen kann.

Dann vll einen Tiefpassfilter drauf setzen, so dass die resultierenden Spitzen der Artefakte verschwinden und man durch eine einfache Suche, die Bereiche findet die nicht null sind.
Sowas in der Art vll:

Code:

yTief=filter(..) % einen entsprechend geeigneten Tiefpass zusammen basteln bzw. in der FFT einfach die hohen Frequenzen auswerfen
 


Wenn man die Bereiche (Indizes) im gefilterten Signal kennt, sollte man sie auch annähernd im ungefilterten Signal kennen.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Paco

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2009, 12:56     Titel: DATEN UPLOAD Nr. 1
  Antworten mit Zitat      
Hallo,

hier die Daten als kommagetrennte *.TXT-Dateien (gezippt), zunächst die Airflow-Spirometer-Daten [Liter/sec], bei denen ich die Exspirationen(Ausatmungen) mit der einfachen Transformation (SQRT(SpiroDaten))^2 weggeschnitten habe, denn Ziel ist die Bestimmung nur der INspirationsvolumina [Liter] durch Integralbildung der Airflow-Spirometer-Daten:

spirodaten_nur_inspirationen.ZIP

spirodaten_nur_inspirationen.zip
 Beschreibung:

Download
 Dateiname:  spirodaten_nur_inspirationen.zip
 Dateigröße:  1.44 MB
 Heruntergeladen:  1320 mal
 
Paco

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2009, 13:10     Titel: DATEN UPLOAD Nr. 2
  Antworten mit Zitat      
.... und hier alle aufgenommenen Daten zusammen als kommagetrenntes *.TXT-File (gezippt).

Erste Spalte: unveränderte, rohe Airflow-Spirometer-Daten in [Liter/sec], d.h. mit Inspirationen UND Exspirationen

Zweite Spalte: Ausdehnungen des THORAX-Atemgürtels in [mV],

Dritte Spalte: Ausdehungen des ABDOMEN-Atemgürtels in [mV]

- die Atemgürteldaten helfen in den Spirodaten zu verstehen, was Artefakte sind und was nicht:




original_daten_spirometer_atemguertel.zip

original_daten_spirometer_atemguertel.zip
 Beschreibung:

Download
 Dateiname:  original_daten_spirometer_atemguertel.zip
 Dateigröße:  9.55 MB
 Heruntergeladen:  1817 mal
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 07.04.2009, 13:31     Titel:
  Antworten mit Zitat      
Meine ersten Gedanken bei dem Blick auf die transformierten Daten:

Durch die Transformation hast du bereits einen starken Informationsverlust. Wäre es nicht vll besser, die großen Übergänge vom negativen ins positive in den Originaldaten durch Filterung hervorzuheben und zu bestimmen, als sich nun mit den Artefakten zu quälen?

ps: gerade kam der upload mit den original-daten, die schau ich mir gleich mal an
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 07.04.2009, 13:52     Titel:
  Antworten mit Zitat      
Die Nulldurchgänge von Abdomen und Thorax scheinen ja die von dir gewünschten Übergänge relaitv deutlich zu beschreiben. Wie wäre es, wenn du dir eben diese Nulldurchgänge raussuchst und dann im Originalsignal vor den entsprechenden steigenden Nulldurchgängen (- --> +) den ersten relevanten Wert suchst. Dieser bildet dann den Anfangspunkt der Integration, den Endpunkt legst du fest in dem du schaust, wann wieder die Null erreicht wird.
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
Paco

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.04.2009, 19:06     Titel: Spektralanalysen
  Antworten mit Zitat      
Danke für die Antwort, es gibt nur leider ein Problem: wann jeweils die Einatmungen beginnen (X_I) und aufhören (X_J) muss UNBEDINGT nur aus den Spirodaten selbst bestimmt werden, weil es später um die Vorhersage der Volumina unter Weglassung spirometrischer Messungen geht - wenn aus den Atemgürteln Infos bei der Kalibrierung gewonnen werden, würde man tautologisch vorgehen, was bei Regressionen absolut nicht zulässig ist.

Ich habe mal die Daten nach *.WAV exportiert und sie mit einem Standartaudioprogramm ("CoolEdit") eingelesen und Spektralanalysen berechnet - man sieht dann, dass die "Problemzonen", in denen eigentlich alle Artefakte auftreten, in der Spektralansicht deutlich zu erkennen sind - ein Algorithmus könnte das ausnutzen und dort alles auf Null setzen - aber wie gnge das nur in MATLAB?

Vielen Dank für Eure Hilfe!

artefakte_spiro.jpg
 Beschreibung:

Download
 Dateiname:  artefakte_spiro.jpg
 Dateigröße:  398.39 KB
 Heruntergeladen:  1197 mal
 
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.