Tworzenie maski dla dowolnego przebiegu
- rafal
- Posty: 39
- Rejestracja: 12 lip 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Grudziądz
Tworzenie maski dla dowolnego przebiegu
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.
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.
- Nowszy
- Posty: 504
- Rejestracja: 30 maja 2008 08:33
- Wersja środowiska: LabVIEW 2011
- Lokalizacja: Katowice
- Kontakt:
Tworzenie maski dla dowolnego przebiegu
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ę :<
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ę :<
Pozdrawiam, Maciek Antonik
Edu4Industry
Edu4Industry
- rafal
- Posty: 39
- Rejestracja: 12 lip 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Grudziądz
Re: Tworzenie maski dla dowolnego przebiegu
Nowszy dzięki za zainteresowanie tematem.
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.
Po części tak.Rozumiem że limity w każdej jednostce czasu to po prostu obecna wartość próbki plus minus jakaś wartość?
Niestety to nie takie proste. Maska ma określać limity w dziedzinie X jak również Y.Jeżeli tak to najprościejstworzyć dwa dodatkowe przebiegi dodając/odejmując od każdej próbki stałą wartość.
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.
- spec.kolombo
- Posty: 126
- Rejestracja: 20 sie 2008 06:33
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Gdynia
- Kontakt:
Tworzenie maski dla dowolnego przebiegu
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!
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!
Lepiej być bogatym i zdrowym, niż biednym i chorym.
Spec Kolombo
Spec Kolombo
-
- Posty: 383
- Rejestracja: 17 lis 2006 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Warszawa
Tworzenie maski dla dowolnego przebiegu
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.
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
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
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
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: Tworzenie maski dla dowolnego przebiegu
Może po prostu coś takiego?
- rafal
- Posty: 39
- Rejestracja: 12 lip 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Grudziądz
Re: Tworzenie maski dla dowolnego przebiegu
jogurt_owocowy jak zwykle zwięźle i na temat.
Dzięki Ci bardzo.
Pozdrawiam.
Dzięki Ci bardzo.
Pozdrawiam.