Laboratorium MATLA. Ćwiczenie 3. Programowanie. Instrukcje sterujące. Typy danych.

Podobne dokumenty
Laboratorium MATLA. Ćwiczenie 4. Debugowanie. Efektywności kodu. Wektoryzacja.

Laboratorium MATLA. Ćwiczenie 2. Programowanie. Skrypty i funkcje. Instrukcje sterujące.

Laboratorium MATLA. Ćwiczenie 6 i 7. Mała aplikacja z GUI

Laboratorium MATLA. Ćwiczenie 1

Układy i Systemy Elektromedyczne

Laboratorium Cyfrowego Przetwarzania Obrazów

Laboratorium Cyfrowego Przetwarzania Obrazów

Laboratorium Przetwarzania Sygnałów

Matlab podstawy + testowanie dokładności modeli inteligencji obliczeniowej

Imię i nazwisko (e mail) Grupa:

Układy i Systemy Elektromedyczne

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Laboratorium Cyfrowego Przetwarzania Obrazów

60 60 Egzamin / zaliczenie na ocenę* 1 1,5

P R Z E T W A R Z A N I E S Y G N A Ł Ó W B I O M E T R Y C Z N Y C H

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Metody numeryczne Laboratorium 2

Laboratorium z automatyki

Laboratorium Przetwarzania Sygnałów

Aneks II. Niniejsza Charakterystyka Produktu Leczniczego oraz ulotka dla pacjenta stanowią wynik procedury arbitrażowej.

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

Program dla praktyki lekarskiej

1 Programowanie w matlabie - skrypty i funkcje

Statystyka. Rozkład prawdopodobieństwa Testowanie hipotez. Wykład III ( )

7. Szybka transformata Fouriera fft

SPRZĘTOWA REALIZACJA FILTRÓW CYFROWYCH TYPU SOI

Funkcje. Wprowadzenie. Mirosław Ochodek

DYSKRETNA TRANSFORMACJA FOURIERA

tomografia komputerowa informacje dla pacjentów

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

MATLAB Z3. Rafał Woźniak. Warsaw, Faculty of Economic Sciences, University of Warsaw

Interpretacja farmakokinetyki nieliniowej fenytoiny wg modelu Michaelisa-Menten

ĆWICZENIE 6 Transmitancje operatorowe, charakterystyki częstotliwościowe układów aktywnych pierwszego, drugiego i wyższych rzędów

LECZENIE STWARDNIENIA ROZSIANEGO (ICD-10 G 35)

tomografia komputerowa

Algorytmy decyzyjne będące alternatywą dla sieci neuronowych

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

LICZNIKI PODZIAŁ I PARAMETRY

Podstawy Programowania C++

Laboratorium Przetwarzania Sygnałów. Ćwiczenie 2. Analiza widmowa

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. ł ęść. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

Wykład 3 Hipotezy statystyczne

Laboratorium nr 1. i 2.

Automatyczna klasyfikacja zespołów QRS

Laboratorium Przetwarzania Sygnałów Biomedycznych

Laboratorium Komputerowe Systemy Pomiarowe

4. Funkcje. Przykłady

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Parametry techniczne systemu Accu-Chek Combo

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Program dla praktyki lekarskiej. Instrukcja korygowania świadczeń

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Ćwiczenie 1. Wprowadzenie do programu Octave

Statyczne badanie wzmacniacza operacyjnego - ćwiczenie 7

LECZENIE STWARDNIENIA ROZSIANEGO (ICD-10 G 35)

I. Podstawy języka C powtórka

Lab 9 Podstawy Programowania

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

Metoksyfluran (Penthrox) Lek. Justyna Kasznia

Dynamiczne badanie wzmacniacza operacyjnego- ćwiczenie 8

Laboratorium Przetwarzania Sygnałów Biomedycznych

Ćwiczenie 1. Wprowadzenie do programu Octave

Aktualizacja ChPL i ulotki dla produktów leczniczych zawierających jako substancję czynną hydroksyzynę.

Aneks III. Zmiany do odpowiednich punktów druków informacyjnych

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

Elektronika samochodowa (Kod: ES1C )

x(n) x(n-1) x(n-2) D x(n-n+1) h N-1

Mikroprocesor Operacje wejścia / wyjścia

Procedury TK i MR - zalecenia PLTR

Kiedy rozpocząć przyjmowanie dawki Jak przyjmować lek Uptravi? Jak zwiększać dawkę leku? Pominięcie przyjęcia leku...6

Programowanie obiektowe

Dokumentacja Końcowa

LECZENIE STWARDNIENIA ROZSIANEGO (ICD-10 G 35)

do MATLABa programowanie WYKŁAD Piotr Ciskowski

EXCEL Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

Annex I. Podsumowanie naukowe i uzasadnienie dla wprowadzenia zmiany w warunkach pozwolenia

Rozdział 1 PROGRAMOWANIE LINIOWE

PRZEWODNIK PO PRZEDMIOCIE

Przetwarzanie sygnałów

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

Laboratorium EAM. Instrukcja obsługi programu Dopp Meter ver. 1.0

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

PRZEWODNIK PO PRZEDMIOCIE

Ćwiczenie 4: Pomiar parametrów i charakterystyk wzmacniacza mocy małej częstotliwości REGIONALNE CENTRUM EDUKACJI ZAWODOWEJ W BIŁGORAJU

Ćwiczenie 6. Transformacje skali szarości obrazów

Optymalizacja Automatycznych Testów Regresywnych

PRZEWODNIK PO PRZEDMIOCIE

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Ćwiczenie 13. Temat: Wzmacniacz w układzie wspólnej bazy. Cel ćwiczenia

ZESTAWIENIE PARAMETRÓW I WARUNKÓW WYMAGANYCH

Laboratorium Elektronicznej Aparatury Medycznej I

Łukasz Januszkiewicz Technika antenowa

Architektura komputerów

Kontrastować dobrze, szybko, bezpiecznie

Ćwiczenie 425. Wyznaczanie ciepła właściwego ciał stałych. Woda. Ciało stałe Masa kalorymetru z ciałem stałym m 2 Masa ciała stałego m 0

Optymalizacja systemów

Podstawy JavaScript ćwiczenia

Transkrypt:

Laboratorium MATLA Ćwiczenie 3. Programowanie. Instrukcje sterujące. Typy danych. Opracowali: - dr inż. Beata Leśniak-Plewińska Zakład Inżynierii Biomedycznej Instytut Metrologii i Inżynierii Biomedycznej Wydział Mechatroniki Politechniki Warszawskiej Warszawa, 2017

Cel ćwiczenia Celem ćwiczenia jest nabycie przez studentów umiejętności w zakresie programowania w MATLAB ie, a w szczególności umiejętności zastosowania instrukcji sterujących oraz posługiwania się różnymi typami danych. Referencje Andrew P. King Paul Aljabar MATLAB Programming for Biomedical Engineers and Scientists 1st Ed. Academic Press, 2017 Ćwiczenie 1 2/8

1. Przenośne urządzenie służy do monitorowania parametrów klinicznych, w tym częstości rytmu serca (HR, ang. heartrate). Producent urządzenia chciałby dodać nową funkcję, która byłaby odpowiedzialna za pojawianie się alarmu w sytuacji nagłej zmiany wartości HR. Gwałtowna zmiana HR ma miejsce wówczas, gdy bieżąca wartość HR jest mniejsza lub większa od średniej z pięciu poprzednich wartości o więcej niż 20 % wartości tej średniej. Napisz funkcję alerthr, która będzie służyła do wykrywania gwałtownych zmian wartości HR. Funkcja alerthr będzie pobierać jako parametr wejściowy wektor wartości HR, a jako parametr wyjściowy będzie zwracać wektor chwil czasowych, w których nastąpiły gwałtowne zmiany wartości HR oraz wektor wartości 1 dla wzrostu wartości HR i -1 dla jej spadku. Zapewnij kontrolę błędów. W przypadku, gdy argumentem wejściowym będzie pusta macierz funkcja alerthr powinna zakończyć swoje działanie i wyświetlić odpowiedni komunikat o przyczynie błędu. Plik heart.txt zawiera wartości częstotliwości rytmu serca zarejestrowane u pacjenta z częstotliwością 1/60 Hz (co minutę). Napisz skrypt, w którym z pliku heart.txt będą ładowane dane wektor wartości częstotliwości rytmu serca. Następnie, w celu zbadania czy w zarejestrowanych danych występuje gwałtowna zmiana częstotliwości rytmu serca, wywoływana będzie funkcja alerthr. Jeśli taka zmiana zostanie wykryta, dla każdej wykrytej gwałtownej zmiany HR, powinien zostać wyświetlony komunikat komunikat o treści: UWAGA! W sekundzie wystąpiła gwałtowna zmiana częstotliwości rytmu serca. W przeciwnym wypadku powinien zostać wyświetlony komunikat o treści: UWAGA! Nie stwierdzono gwałtownej zmiany częstotliwości rytmu serca. Wyniki uzyskane dla pliku heart.txt wpisz w odpowiednie rubryki Sprawozdania. WSKAZÓWKA. W realizacji zadania mogą być przydatne wbudowane funkcje MATLAB a: error, load, find. 2. Wiele technik obrazowania medycznego rejestruje sekwencję danych obrazowych w pewnym przedziale czasu. Bramkowanie jest techniką pozwalającą na zredukowanie artefaktów w wynikowym obrazie, wynikających z cyklicznych ruchów (np. uderzeń serca, oddechu). Technika ta polega na akceptowaniu jedynie danych zarejestrowanych mniej więcej w tej samej pozycji (fazie ruchu) i odrzuceniu pozostałych. W celu podjęcia decyzji czy dane można zaakceptować, czy tez należy je odrzucić można wykorzystać sygnał związany z danym ruchem (np. sygnał EKG, sygnał z czujnika oddechu). Stosunek liczby obrazów zaakceptowanych do całkowitej liczby obrazów zarejestrowanych jest nazywana efektywnością skanowania. W przypadku tomografii z użyciem metody rezonansu magnetycznego do bramkowania obrazowania wykorzystuje się często bramkowanie oddechowe. Sygnałem bramkującym jest sygnał z czujnika oddechu umieszczonego nad przepona pacjenta. (Rys. 1) Aby podjąć decyzję, które obrazy zaakceptować, a które odrzucić, należy wyznaczyć tzw. okna akwizycji. Są one często wyznaczane poprzez wybór minimalnego i maksymalnego poziomu sygnału pochodzącego z czujnika oddechu. Poziomy sygnału bramkującego Ćwiczenie 1 3/8

ograniczające okna akwizycji dobiera się na podstawie sygnału zarejestrowanego w trakcie fazy przygotowawczej. Rysunek 1: Proste bramkowanie oddechem. Akceptowane są jedynie te obrazy, które są rejestrowane w czasie trwania okna akwizycji wyznaczonego w fazie wydechu poprzez dwa poziomy graniczne wartości sygnału z czujnika oddechu. Napisz funkcję MATLAB a okno_akwizycji, która korzystając z sygnału pochodzącego z czujnika oddechu, wyznaczy wartości progowe dla fazy wydechu definiujące okna akwizycji. Przyjmij, że faza przygotowawcza obejmuje odcinek pierwszych 5000 próbek danych będących parametrem wejściowym funkcji okno_akwizycji, a pożądana wydajność skanowania wynosi 25%. WSKAZÓWKA: Wysoki poziom sygnału wyznaczającego granice okno akwizycji możesz przyjąć jako równy wartości maksymalnej sygnału bramkującego zarejestrowanego w trakcie fazy przygotowawczej. Wartość poziomu minimalnego dobierz tak, aby procent danych zaakceptowanych w trakcie fazy przygotowawczej odpowiadał pożądanej wydajności skanowania. Plik bellows.mat zawiera sygnały z czujnika oddechu zamocowanego nad przeponą pacjenta. Napisz skrypt, w którym dane z pliku bellows.mat będą ładowane do przestrzeni roboczej. Następnie, za pomocą funkcji okno_akwizycji wyznaczane będą niski i wysoki poziom definiujący okna akwizycji. Dalej, skrypt powinien wyszukać indeksy wszystkich próbek sygnału z czujnika oddechu będących w obrębie okien akwizycji. Następnie powinna zostać wyznaczona rzeczywista wydajność skanowania. Na koniec, wartości poziomów użytych do wyznaczenia okien akwizycji oraz wartość rzeczywistej wydajności skanowania powinny zostać wyświetlone w Oknie poleceń w postaci zdania: Wartość poziomu niskiego wynosi, a wysokiego. Rzeczywista wydajność skanowania wynosi. Ćwiczenie 1 4/8

Wyniki wpisz w odpowiednie rubryki Sprawozdania. WSKAZÓWKA: W realizacji zadania może być przydatna wbudowane funkcje MATLAB a: find, sort. 3. W trakcie I fazy badań klinicznych ocenia się bezpieczeństwo stosowania testowanego środka. Badane jest jego wchłanianie z przewodu pokarmowego, poziom jaki osiąga we krwi i tkankach, wydalanie, toksyczność oraz interakcje z pożywieniem i powszechnie stosowanymi lekami. Wyniki tej części prac nad nowym lekiem pozwalają wstępnie określić jego dawkowanie poprzez badanie zależności pomiędzy dawką leku oraz odpowiedzią kliniczną. W celu oceny skuteczności i toksyczności środka, początkowo niska dawka jest zwiększana. Większa dawka jest stosowana u nowej grupy uczestników badań. Proces zwiększania dawki jest kontynuowany dopóki toksyczność środka nie stanie się zbyt duża. Dawka bywa zwiększana kolejno o 67% dla drugiej, o 40% dla trzeciej i o 33% dla każdej kolejnej grupy uczestników. Często stosowany jest następujący schemat zwiększania dawki, zwany 3+3 stosowany dla 3-osobowych grup uczestników badań: jeśli u żadnego z trzech uczestników z danej grupy nie wystąpił nieakceptowalny poziom toksyczności, kolejna grupa trzech uczestników będzie stosowała środek w wyższej dawce (podwyższanie dawki przebiega zgodnie z powyższa zasadą o odpowiedni % wartość dawki stosowanej we wcześniejszym badaniu), jeśli dla jednego z uczestników badań z danej grupy wystąpił nieakceptowalny poziom toksyczności, wówczas dla kolejnej grupy stosowana jest taka sama dawka środka jak dla danej grupy (dawka jest powtórzna), procedura zwiększania dawki jest kontynuowana dopóty, dopóki u dwóch na trzech uczestników z danej grupy nie stwierdzi się toksyczności na nieakceptowalnym poziomie. Dawka rekomendowana dla drugiej fazy badań jest definiowana jako największa dawka mniejsza od tej ostatniej. Plik phasei_data.mat zawiera dane dla pierwszej fazy badań klinicznych cytotoksyny. Plik zawiera tablicę komórkową o rozmiarze 1 2. Pierwsza komórka zawiera macierz wartości poziomów dawek w mg (określonych zgodnie z powyższym schematem) dla kolejnych trzyosobowych grup. Druga komórka natomiast zawiera macierz wartości logicznych. Każdy wiersz tej macierzy zawiera informację o poziomie toksyczności dla poszczególnych uczestników danej grupy. Wartość 1 oznacza zbyt wysoka toksyczność, 0 akceptowalną toksyczność. Napisz skrypt, w którym z pliku phasei_data.mat będą ładowane dane dla I fazy badań klinicznych cytotoksyny, a następnie, zgodnie z wyżej opisanym schematem, wyznaczona zostanie dawka dla II fazy badań tego samego środka. Informację o wyznaczoną wartość dawki wyświetl w Oknie Poleceń w postaci zdania: Dawka dla II-ej fazy badań cytotoksyny, wyznaczona na podstawie wyników I-ej fazy badań wynosi. Zadbaj o to, aby kod był odporny na nieprzewidziane sytuacje, np. co się stanie gdy już w pierwszej grupie uczestników, u dwóch z nich zostanie stwierdzony wysoki poziom toksyczności (przetestuj za pomocą pliku phasei_data2.mat)? Wyniki wpisz w odpowiedniej rubryce Sprawozdania. Ćwiczenie 1 5/8

4. Wskaźnik ciężkości obrażeń (ISS ang. Injury Severity Score) to miara służąca do oceny jak poważnych urazów doznała dana osoba w wyniku wypadku. Wskaźnik ten jest obliczany w następujący sposób. Ciało jest dzielone na 6 obszarów: głowa, twarz, klatka piersiowa, jama brzuszna i kręgosłup, kończyny oraz tzw. obrażenia ogólne. Każdemu urazowi w obrębie danego obszaru przypisywana jest wartość punktowa wynikająca ze skróconej skali obrażeń (AIS ang. Abbreviated Injury Scale), która dzieli ona obrażenia ciała na: lekkie (1), średnie (2), poważne nie zagrażające życiu (3), poważne zagrażające życiu (4), oraz krytyczne (5). Dla każdego regionu wybierana jest tylko najwyższa wartość. Następnie sumowane są kwadraty 3 najwyższych wartości w skali AIS. Najwyższa możliwa liczba punktów w skali ISS wynosi więc wynosi 3 x 25 = 75 punktów. Plik ais.mat zawiera wartości punktowe w skali AIS dla wielu pacjentów. Dane te są zapisane w postaci wektora struktur. Pojedyncza struktura zawiera 5 pól, odpowiadających poszczególnym obszarom ciała, a każde z pól zawiera jedną, najwyższą wartość punktową w skali AIS, dla tego obszaru ciała. Poszczególne pola struktury noszą nazwy: head, face, chest, abdomen, extremities i external. Napisz funkcję ISS, która na podstawie 6-cio elementowego wektora wartości punktowych w skali AIS dla danego pacjenta, będzie wyznaczać wartość wskaźnika ISS dla tego pacjenta. Napisz skrypt MATLAB a, w którym będą ładowane dane z pliku ais.mat. Dalej, za pomocą funkcji wyznacziss, dla każdego pacjenta zostanie wyznaczona wartość wskaźnika ISS. Następnie, do struktury dla danego pacjenta zostanie dodane nowe pole o nazwie iss i zawartości równej wyznaczonej wartości wskaźnika ISS. Zadbaj o kontrolę błędów. Sprawdź czy pola struktury mają nazwy zgodne z podanymi wyżej. Jeśli nie, skrypt powinien przerwać działanie i wyświetlić odpowiedni komunikat. Wartości punktowe w skali AIS i wyznaczone wartości wskaźnika ISS dla danego pacjenta (dla danych w pliku ais.mat) wpisz w odpowiednie rubryki Sprawozdania. WSKAZÓWKA: W realizacji zadania może być przydatna wbudowane funkcje MATLAB a: fieldnames, isfield, strcmp, bar. Ćwiczenie 1 6/8

Sprawozdanie Ćwiczenie 3. Programowanie. Instrukcje sterujące. Typy danych. L.p. Imię i nazwisko Grupa Data Punkt cw./ L. punktów Realizacja/wynik Uwagi prowadzącego 1 / 1 2 / 1,5 Wartość poziomu niskiego wynosi, a wysokiego. Rzeczywista wydajność skanowania wynosi. Ćwiczenie 1 7/8

Dawka dla II-ej fazy badań cytotoksyny, 3 / 1 wyznaczona na podstawie wyników I-ej fazy badań wynosi [mg]. Numer pacjenta AIS ISS 4 / 1,5 Ćwiczenie 1 8/8