RRespP v.2

  • RRespP je program vzniklý jako semestrální práce z předmětu CZS, dále jsme v práci na tomto tématu pokračovali v rámci semestrální práce z předmetu ADA.


Úvod

   Původní práci najdete zde.

   Jak si můžete přečíst na původních stránkách podařilo se nám v minulosti implementovat základní filtrační principy, za účelem odstranení vlivu RSA na RR-intervaly. Problémem však stále zůstávalo především předzpracování signálů, a jak se později ukázalo (a zřejmě jěště ukáže) i některé části implementace filtrů.
   V součastnosti je RRespp balík poměrně složitě provázaných funkcí pro úpravu signálů a grafického rozhraní, které se stalo nezbytné vzhladem k velkému množstí zpracovávaných signálů.
   Zde je nutno také poznamenat velmi důležitou věc. Původní zpracování signálů nebralo v úvahu intenzity podnětů. Tento přístup je použit při vyvolání grafického rozhraní popupp. V rozhranní popupp2, je již zohledněna intenzita podnětu a pracuje se s mnohem větším objemem dat.

Pokračování...

   Blokové schema cele filtrace je na tomto obrázku.
   Zatím si popíšeme pouze cást týkající se úpravy signálů.

   Pro úpravu signálu respirace jsou vytvořeny dvě funkce. První lindtpp, neboli funkce na odstranění lineárního trendu ze signálu.



  odstranovani linearniho trendu

  function [sig]=lindtpp(sig,metyp);

  vstup

   sig ... vstupni signal

   metyp ... typ pouzite metody

             meanp ... metoda zalozena na strednich hodnotach zacatku a konce signalu

             linap ... metoda aproximace polynomem (?)

  vystup

   sig ... signal bez linearniho trendu


Druhou funkcí je medfilt, což je medianový filtr. Který podle dalších zkušeností je zcela k nezaplacení při vyhlazování průběhu dechového signálu.


  medianovy filtr

  function [sig]=medfilt(sig,rad);

  pokud neni zadan rad voli se automaticky


Třetí a nejčerstvější funkcí ovšem pro úpravu RR intervalů je dextrem, která má více způsobů odstraňování extrémních hodnot. Jak je jistě známo, při jakémkoli zpracování signálů dochází k chybám - vzniku extrémních hodnot vlivem šumu převodníku, popř. jiným chybám způsobujících vznik nesmyslných hodnot v nasnímaném signálu. V našem případě se ukázalo, že takováto chyba může zásadním způsobem ovlivnit výsledek.


 funkce provede odstraneni extremu vzniklych bud pretecenim prevodniku 

 nebo vlivem chyb ve vzorkovani v signalu

 xx = function dextrem(yy,action);

  yy ... vstupni signal

  xx ... vystupni signal

  action ... stac - vstup signal rrintervalu, jiz interpolovaneho

             neek - vstup signal rrintervalu, neekvidistantni rada


K nemalým změnám došlo také ve vlastní funkci RRespP, jak je patrné již z následujícího výpisu:


  function [rr,r2,fs,rr1,mrr1,srr1,rr2,mrr2,srr2]=

                             =rrespp(resp,rr,klepani,antype,fsresp,fsrr,fsklp,intl,intr);

 

  VYSTUP

  rr - puvodni vstupni signal rr ovsem muze byt prevzorkovan!

  r2 - rr ocistene, nezprumerovane

  fs - vzrokovaci frekvence na kterou se prevadeli vsechny zpracovavane signaly

  rrX - RR interval prumerovany

  mrrX - stredni hodnota

  srrX - rozptyl

  X=1 vstupni, X=2 odfiltrovana zavislost RSA

 

  VSTUP

  resp - dychani

  rr - RR intervaly

  klepani - budici impulsy

  pokud nebudou zadany dale uvedene parametry vezmou se defaultni:

    antype='reg', fsresp=10, fsrr=10, fsklp=1024, intl=10, intr=10

  antype - 'reg'=regresni analyza, 'lms'=LMS algoritmus

  fsresp - vzorkovaci frekvence dechu

  fsrr - vzorkovaci frekvence rr intervalu

  fsklp - vzrokovaci frekvence klepani

  intl/r - interval -Sekund a +Sekund kolem budiciho impulsu

   kde se ma pocitat RR-RSA

 

  Pokud nez~a'da'te vystupni parametry jsou vykresleny grafy

 

  Pokud je definovana globalni promenna debugg(==1) je vypsano

                                      a vykresleno mnozstvi debuggovacich informaci

  Pokud je definovana globalni promenna dextrm(==0) neodstranuji se ze signalu extremni hodnoty

Tato funkce je velmi komplikovaným filtračním srdcem balíku a měla byt provádět ono, tolik vytoužené, odstranění RSA. Měla by...

Funkce grafického rozhranní

Pro přehlednější a snažší způsob analýzy většího množství signálů bylo vyvinuto přívětivější uživatelské rozhraní.
   Z popup menu lze snadno vybrat typ analýzy, kterou chcete aplikovat a skupinu na kterou má být aplikována. Radiobutton Debug slouží k zapnutí podrobnějšího grafického a textového výstupu. Pokud "zapnete" Debug, bude vypadat vase obrazovka zhruba
takto.
   fcrr=0.5 je zapnutí frekvenční omezení vstupních signálů pomocí DP REMEZ 60 řádu s fc=0.5Hz, která se nakonec ukázala v celku užitečná.
   Komunikaci uživatelského grafického rozhraní s jednotlivými funkcemi zajišťuje v tomto případě fce main4862.
Nejnovější, největší a nejobludnější produkt z naší dílny je popupp2. Z tohoto grafického rozhraní jsou zpracovávány celé skupiny signálů se zohledněním intenzity podnětů.
   Protože výpočet trvá již nějakou tu chvilku i na PentiuII bylo zavedeno ukládání výsledků do samostaných souborů. Ty pak lze vykreslit právě zapnutím buttonu Jen zobrazit.
   Buttony Debug a fcrr maji obdobnou funkci jako v předchozím popuppu. Nový je button DeExtrem, který umožňuje zapnout nebo vypnout funkce pro odstraňování extrémů. (To jest fci dextrem, ale také přímo vynechávání extrémních hodnot při průměrování.)
   Komunikaci uživatelského grafického rozhraní s jednotlivými funkcemi zajišťuje v tomto případě fce main2_4862.

Závěr

   Jak bylo již napáno výše, RRespP je v součastnosti již poměrně velký soubor funkcí a je v něm možné ovlivňovat velké množství parametrů. RRespP si tedy postupně hledá svou cestičku skrz spletitou změť signálů a šumů. Nutno přiznat, že ani dnes nejsou výsledky optimální, ale to je proto, že předchozí úlohu se v podstatě podařilo splnit a dnes zpracováváme opět novější data, v několikanásobně vetším rozsahu.
Archiv souboru funkcí.