Strona 1 z 1

Tworzenie maski dla dowolnego przebiegu

: 29 kwie 2009 12:28
autor: rafal
Witam,

Mój problem wygląda następująco:
Mierzę sygnał z wyjścia urządzenia (pomiar trwa kilka minut). Sygnał ten jest sekwencją różnych typów przebiegów (rys. sygnał).

Chciałbym stworzyć maskę dla tego przebiegu (rys. sygnał z maską).

Maska ta (czyli Upper i Lower Limit) musiałaby się generować automatycznie, bo takich sygnałów mam do "omaskowania" 32 (każdy jest inny i jak juz pisałem ich czas trwania to kilka minut).

Moje pytanie: jak to zrealizować?

p.s. Te rysunki są tylko poglądowe.

Działam w LabView 8.5.1 i Win XP.

Dzięki i pozdrawiam.

Tworzenie maski dla dowolnego przebiegu

: 29 kwie 2009 15:54
autor: Nowszy
Rozumiem że limity w każdej jednostce czasu to po prostu obecna wartość próbki plus minus jakaś wartość? Jeżeli tak to najprościejstworzyć dwa dodatkowe przebiegi dodając/odejmując od każdej próbki stałą wartość.

Jeżeli sygnał jest po prostu tablicą to proste. Jeżeli tym danych to waveform to najprościej użyć "Get Waveform Components" przeprowadzić operacje na tablicy Y i z powrotem wpisać ją do Waveforme'a. Są też chyba jakieś VI-e które mogą to zrobić na samym Waveformie, ale nie mam tu LV więc nie sprawdzę :<

Re: Tworzenie maski dla dowolnego przebiegu

: 30 kwie 2009 05:16
autor: rafal
Nowszy dzięki za zainteresowanie tematem.
Rozumiem że limity w każdej jednostce czasu to po prostu obecna wartość próbki plus minus jakaś wartość?
Po części tak.
Jeżeli tak to najprościejstworzyć dwa dodatkowe przebiegi dodając/odejmując od każdej próbki stałą wartość.
Niestety to nie takie proste. Maska ma określać limity w dziedzinie X jak również Y.
Zauważ, ze to sprawdziłoby się dla przebiegu stałego.
Dla np. prostokątnego limit musi się zmienić zanim nastąpi zbocze narastające i musi się zmienić chwilę po tym jak nastąpi zbocze opadające (w przypadku górnego limitu). Zatem maska dla przebiegu prostokątnego nie jest sygnałem prostokątnym (czas trwania poziomu niskiego jest różny od czasu trwania poziomu wysokiego). Zresztą dla sinusoidy tez nie jest sinusoidą.
Ma ktoś jakiś inny pomysł jak tego dokonać? Będę wdzięczny za wszelką pomoc.
Pozdrawiam.

Tworzenie maski dla dowolnego przebiegu

: 30 kwie 2009 05:58
autor: spec.kolombo
Ostatnio się trochę bawiłem tymi limitami - w celu analizy kształtu impulsu udaru. Chciałem żeby one się rysowały automatycznie, więc musiałem wprowadzić analizę...

Trochę niedokładnie opisałeś swój problem - bo nie wiem czy sekwencja sygnałów, amplitudy, częstotliwości, liczba okresów są stałe czy przypadkowe?
Ja generalnie swój problem rozwiązałem za pomocą triggerów - obliczałem czas trwania udaru, po czym generowałem odpowiednie sinusoidy.

Triger ma kilka fajnych funkcji:
możesz ustalić poziom wyzwalania, rodzaj zbocza i histerezę,
a na wyjściu podaje miejsce wybranego zbocza w przebiegu.
Np. w przypadku przebiegu prostokątnego - możesz wyciągnąć jego czas trwania i stworzyć nowy przebieg nierówno-prostokątny - przesunięty trochę w czasie.

Nie wiem czy to pomoże, ale tak czy siak czeka Cię sporo pracy.

pozdro!

Tworzenie maski dla dowolnego przebiegu

: 04 maja 2009 08:11
autor: vugie
Bez wnikania w merytoryke - zakładam, że cel jest dokładnie taki jak na rysunku.
Jeżeli ma to być ogólne rozwiązanie - dla dowolnej krzywej, to trzeba by ją najpierw opisać wektorowo - wielomiany, krzywe Beziera, spliny, linie łamane, czy coś takiego. Ja ostatnio szczególnie lubię Akima spline do takich rzeczy. Muszisz mieć krzywą opisaną zestawem współrzędnych węzłów i matematycznego opisu krzywych pomiędzy węzłami. Potem dla każdy węzeł przenosisz o określoną odległość wzdłuż normalnej, przeliczasz funkcję interpolacyjną między każdą parą węzłów i jest krzywa.

W programach do grafiki wektorowej taka operacja nazywa się offset i operuje się w nich najczęściej na krzywych Beziera. Myślę, że powinno dać się znaleźć trochę gotowych algorytmów na offset, chociażby w kodzie Inkscape'a.

Re: Tworzenie maski dla dowolnego przebiegu

: 04 maja 2009 08:27
autor: sliski
Witam,

Jezeli ta maska ma byc oddalona od idealnego przebiegu o stala wartosc (prostopadle do przebiegu) to przyjzyj sie algorytmom stosowanym w programach cnc do tworzenia sciezki narzedzia z kompensacja promieniowa narzedzia (freza). Przebieg do ktorego chcialbys tworzyc maske musialby byc opisany zbiorem odcinkow prostych lub prostych i lukow.

Pozdrawiam
sliski

Re: Tworzenie maski dla dowolnego przebiegu

: 04 maja 2009 21:32
autor: jogurt_owocowy
Może po prostu coś takiego?

Re: Tworzenie maski dla dowolnego przebiegu

: 06 maja 2009 06:53
autor: rafal
jogurt_owocowy jak zwykle zwięźle i na temat.

Dzięki Ci bardzo.

Pozdrawiam.