problemy z ustawieniem kursorów przy detekcji QRS
: 15 gru 2011 00:48
Witam!
Jestem raczej początkująca, jeśli chodzi o pracę w LabVIEW i mam pewne problemy przy tworzeniu programu, więc postanowiłam, że spróbuję poszukać pomocy tutaj (to mój pierwszy post na tym forum).
Aplikacja, którą buduję ma służyć do akwizycji oraz wizualizacji sygnałów reograficznych (sygnał który pokazuje zmiany impedancji tkanek) oraz EKG. Problem dotyczy właśnie sygnału EKG(otwieram plik z zapisanym wcześniej badaniem), na którym muszę zdetekować i zaznaczyć kursorami punkty Q i R(załączam plik z oznaczeniem tych punktów w typowym przebiegu). Detekcję R-ów przeprowadzam funkcją WA Multiscale Peak Detection z Toolkitu Advanced Signal Processing i w miarę dobrze to działa, nie licząc drobnych błędów. Natomiast ze względu na przebieg sygnału dużo gorzej jest z detekcją Q (tutaj funkcja detekuje bardzo dużo niepotrzebnych punktów) - chcę to znaleźć jako pierwszą 'dolinę' przed każdym znalezionym punktem R lub też jako dolinę w ustalonej odległości od R. I stąd moje pytanie - czy da się to jakkolwiek zrobić, żeby szukać punktów w określonych przedziałach? (Myślałam, żeby może wstawić formułę np. z MATLABa i próbować zapisać w niej jakieś warunki porównujące pomiędzy sobą odległości między znalezionymi lokalizacjami poszczególnych Q i R, ale wydaje to mi się bardzo skomplikowane, dlatego szukam jakiegoś innego sposobu, żeby osiągnąć ten efekt.)
Mam jeszcze inne pytanie, związane z kursorami. Każdy plik EKG, jaki wczytuję do analizy jest inny i ma inną liczbę zapisanych cykli pracy serca, a co za tym idzie inną liczbę znalezionych pików. Do tej pory wstawiałam na diagramie 20 razy Active Cursor (bo więcej R-ów mi się do tej pory nie zdarzyło) i ustawiałam pozycję X każdego z nich według współrzędnych znalezionych przez funkcję Peak Det. . Ale gdy np. znalazło się 17 pików to pozostałe 3 kursory ustawiają się na x=0, co jest błędne. Dlatego chciałam zapytać, czy jest możliwe automatyczne dostosowanie liczby pojawiających się na wykresie kursorów do liczby znalezionych pików?
I jeszcze ostatnie pytanie, czy można dodać ręczną korekcję położenia kursorów (przy wcześniejszym zdefiniowaniu ich pozycji) - tak, aby w trakcie działania programu można było dodać/usunąć kursor lub skorygować jego położenie w przypadku błędnej detekcji punktu?
Załączam plik z wyglądem typowego EKG i printscreena z mojego diagramu i panelu frontowego, gdzie widać znalezione punkty R.
Wybaczcie tyle tekstu naraz ;p
Jak już wspominałam, dopiero uczę się programowania w LabVIEW, dlatego wiele rzeczy (nawet tych najprostszych) jest dla mnie nadal nieoczywistych, z góry przepraszam, jeśli napisałam tu jakąś głupotę lub pytam o rzeczy niemożliwe. Będę wdzięczna za każdą wskazówkę lub podpowiedź
Pozdrawiam,
Justyna
Jestem raczej początkująca, jeśli chodzi o pracę w LabVIEW i mam pewne problemy przy tworzeniu programu, więc postanowiłam, że spróbuję poszukać pomocy tutaj (to mój pierwszy post na tym forum).
Aplikacja, którą buduję ma służyć do akwizycji oraz wizualizacji sygnałów reograficznych (sygnał który pokazuje zmiany impedancji tkanek) oraz EKG. Problem dotyczy właśnie sygnału EKG(otwieram plik z zapisanym wcześniej badaniem), na którym muszę zdetekować i zaznaczyć kursorami punkty Q i R(załączam plik z oznaczeniem tych punktów w typowym przebiegu). Detekcję R-ów przeprowadzam funkcją WA Multiscale Peak Detection z Toolkitu Advanced Signal Processing i w miarę dobrze to działa, nie licząc drobnych błędów. Natomiast ze względu na przebieg sygnału dużo gorzej jest z detekcją Q (tutaj funkcja detekuje bardzo dużo niepotrzebnych punktów) - chcę to znaleźć jako pierwszą 'dolinę' przed każdym znalezionym punktem R lub też jako dolinę w ustalonej odległości od R. I stąd moje pytanie - czy da się to jakkolwiek zrobić, żeby szukać punktów w określonych przedziałach? (Myślałam, żeby może wstawić formułę np. z MATLABa i próbować zapisać w niej jakieś warunki porównujące pomiędzy sobą odległości między znalezionymi lokalizacjami poszczególnych Q i R, ale wydaje to mi się bardzo skomplikowane, dlatego szukam jakiegoś innego sposobu, żeby osiągnąć ten efekt.)
Mam jeszcze inne pytanie, związane z kursorami. Każdy plik EKG, jaki wczytuję do analizy jest inny i ma inną liczbę zapisanych cykli pracy serca, a co za tym idzie inną liczbę znalezionych pików. Do tej pory wstawiałam na diagramie 20 razy Active Cursor (bo więcej R-ów mi się do tej pory nie zdarzyło) i ustawiałam pozycję X każdego z nich według współrzędnych znalezionych przez funkcję Peak Det. . Ale gdy np. znalazło się 17 pików to pozostałe 3 kursory ustawiają się na x=0, co jest błędne. Dlatego chciałam zapytać, czy jest możliwe automatyczne dostosowanie liczby pojawiających się na wykresie kursorów do liczby znalezionych pików?
I jeszcze ostatnie pytanie, czy można dodać ręczną korekcję położenia kursorów (przy wcześniejszym zdefiniowaniu ich pozycji) - tak, aby w trakcie działania programu można było dodać/usunąć kursor lub skorygować jego położenie w przypadku błędnej detekcji punktu?
Załączam plik z wyglądem typowego EKG i printscreena z mojego diagramu i panelu frontowego, gdzie widać znalezione punkty R.
Wybaczcie tyle tekstu naraz ;p
Jak już wspominałam, dopiero uczę się programowania w LabVIEW, dlatego wiele rzeczy (nawet tych najprostszych) jest dla mnie nadal nieoczywistych, z góry przepraszam, jeśli napisałam tu jakąś głupotę lub pytam o rzeczy niemożliwe. Będę wdzięczna za każdą wskazówkę lub podpowiedź
Pozdrawiam,
Justyna