Konwersja sygnału
Konwersja sygnału
Witam. Mam odczyt analogowy z karty pomiarowej. Wizualizacja działa pięknie przez waveform chart, ale chciałbym mierzyć RMS oraz częstotliwość. Są na to bloczki, więc wszystko jest pięknie, tylko że nie mierzą mi tych wielkości z całego sygnału, tylko z ostatniej próbki. Jak zrobić, aby brał pod uwagę cały sygnał, a co się z tym wiążę liczył poprawnie.
Pozdro
Pozdro
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
- Nowszy
- Posty: 504
- Rejestracja: 30 maja 2008 08:33
- Wersja środowiska: LabVIEW 2011
- Lokalizacja: Katowice
- Kontakt:
Konwersja sygnału
bloczków do liczenia RMS-a i częstotliwości jest conajmniej kilka - napisz których używasz konkretnie, najlepiej wrzuć swojego VIa
Pozdrawiam, Maciek Antonik
Edu4Industry
Edu4Industry
Re: Konwersja sygnału
Oto on
- Załączniki
-
- U3 eAIN.vi
- (217.07 KiB) Pobrany 373 razy
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
- Nowszy
- Posty: 504
- Rejestracja: 30 maja 2008 08:33
- Wersja środowiska: LabVIEW 2011
- Lokalizacja: Katowice
- Kontakt:
Konwersja sygnału
Zauważ, że z twoich funkcji pobierających dane z karty LabJack wychodzą dane tylko w postaci pojedynczego punktu, pobierasz tylko pojedynczą wartość. Nie znam tego urządzenia, ale albo musisz skonfigurować je na pobieranie większej liczby próbek, lub pobierać po jednej próbce ale w pętli i gromadzić je np. w rejestrze przesuwnym.
Pozdrawiam, Maciek Antonik
Edu4Industry
Edu4Industry
Re: Konwersja sygnału
Tylko jak te dane gromadzić w rejestrze, żeby to działało? Jak zrobiłem to jak w załączniku to działała tylko pętla rejestru, a reszta wieszała się (była podawana jednakowa dana w każdym kroku, niezależnie od wszystkiego). Zmiana ilości danych w sterowniku samej karty to jak dla mnie trochę za głęboka ingerencja.
Nie wiem, czy lepsza nie byłaby tablica ok 40 el i w niej dane były by dodawane (nowa dana na końcu najstarsza dana usuwana, a reszta przesuwana w każdym kroku), więc wynik byłby liczony z ostatnich pobranych tych 40 próbek. Tylko nie wiem jak to zrobić, pomoc mile widziana.
Pozdrawiam
Nie wiem, czy lepsza nie byłaby tablica ok 40 el i w niej dane były by dodawane (nowa dana na końcu najstarsza dana usuwana, a reszta przesuwana w każdym kroku), więc wynik byłby liczony z ostatnich pobranych tych 40 próbek. Tylko nie wiem jak to zrobić, pomoc mile widziana.
Pozdrawiam
- Załączniki
-
- U3 eAIN+shift.vi
- (224.31 KiB) Pobrany 349 razy
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Konwersja sygnału
Skoro mówisz, że wszystko pięknie działało wcześniej, to znaczy, że korzystasz z Continous Run co jest złym nawykiem i proponuję się go pozbyć jak najszybciej.
Zamknij całość w pętli While i będzie działać. Dane gromadzić będziesz w tablicy tak jak ja rys.
Zamknij całość w pętli While i będzie działać. Dane gromadzić będziesz w tablicy tak jak ja rys.
Re: Konwersja sygnału
Niestety, to nie pomogło. Kiedy całość umieściłem w while reakcja jest taka sama. Czyli, w pierwszym wykonaniu pętli odczytuje dane, ale potem nie odczytuje aktualnej wartości, tylko cały czas używa danej odczytanej na początku.
Pomocy..
Aha jak zrobić, aby w osi Y był czas rzeczywisty?? Pozdrawiam i czekam na odp
Pomocy..
Aha jak zrobić, aby w osi Y był czas rzeczywisty?? Pozdrawiam i czekam na odp
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
- __behemot_
- Posty: 57
- Rejestracja: 03 lip 2008 09:05
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Wrocław
- Kontakt:
Re: Konwersja sygnału
Spróbuj tak,
Nie wiem tylko czemu dodajesz wyniki pomiarów, chcąc obliczyć np średnią radziłabym np budować tabelę 10 elementową i z tego liczyć średnią, potem kolejnych 10 próbek, gdzie pierwszą byłaby średnia z poprzednich. Mam nadzieję, że to logiczne
Nie wiem tylko czemu dodajesz wyniki pomiarów, chcąc obliczyć np średnią radziłabym np budować tabelę 10 elementową i z tego liczyć średnią, potem kolejnych 10 próbek, gdzie pierwszą byłaby średnia z poprzednich. Mam nadzieję, że to logiczne
"kobieta też człowiek, też może być"
Re: Konwersja sygnału
No właśnie wyżej pisałem, że ta tabela byłaby chyba najlepszym pomysłem, ale nie mogę tego zaimplementować, żeby działało tak jak należy.
Zrobiłem jak kolega wyżej proponował, ale w takim rowiązaniu sumuje wynik, a nie uśrednia go. Zresztą gdyby udało się wpakować wynik w tabelę i podawać na te bloczki funkcyjne ciąg próbek to przy okazji mógłbym liczyć częstotliwość, a to by mi się przydało.
Stworzyłem więc to tablicowo (w końcu się udało:) ), ale nie mogę sobie poradzić z zamianą w tablicy elementów o kolejnych indeksach. W sensie potrzebny jest licznik, który będzie jechał od 0 do powiedzmy 10 i podawał to na wejście indeksowe bloczku replace. Próbowałem zrobić to for loop, ale wtedy ni z gruszki ni z pietruszki macierz zainicjowana stawała się 2D. Wyjąłem to z pętli For i znowu wszystko było ok. Propozycje?
Aha dzięki za pomoc, pochwały dam po rozwiązaniu problemu do końca. Pozdro
Zrobiłem jak kolega wyżej proponował, ale w takim rowiązaniu sumuje wynik, a nie uśrednia go. Zresztą gdyby udało się wpakować wynik w tabelę i podawać na te bloczki funkcyjne ciąg próbek to przy okazji mógłbym liczyć częstotliwość, a to by mi się przydało.
Stworzyłem więc to tablicowo (w końcu się udało:) ), ale nie mogę sobie poradzić z zamianą w tablicy elementów o kolejnych indeksach. W sensie potrzebny jest licznik, który będzie jechał od 0 do powiedzmy 10 i podawał to na wejście indeksowe bloczku replace. Próbowałem zrobić to for loop, ale wtedy ni z gruszki ni z pietruszki macierz zainicjowana stawała się 2D. Wyjąłem to z pętli For i znowu wszystko było ok. Propozycje?
Aha dzięki za pomoc, pochwały dam po rozwiązaniu problemu do końca. Pozdro
Ostatnio zmieniony 15 cze 2010 09:37 przez mmkst, łącznie zmieniany 1 raz.
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Konwersja sygnału
wrzuć swoje wypociny to może coś poradzimy bo nie mogę ogarnąć gdzie utknąłeś...
Re: Konwersja sygnału
Jest nad Twoim postem, jak zacząłem pisać to mnie coś oderwało i pisałem post 3 godz:)
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Konwersja sygnału
hmm... nie mam LV 7.1 więc nie zapiszę Ci tego... chyba że jakoś sobie otworzysz to.
Spróbuj sobie to zbudować, uruchomić i zrozumieć jak działa. Powinno Ci to pomóc w Twoim problemie.
Spróbuj sobie to zbudować, uruchomić i zrozumieć jak działa. Powinno Ci to pomóc w Twoim problemie.
- Załączniki
-
- test_8.0.vi
- LabVIEW 8.0
- (24.74 KiB) Pobrany 349 razy
Re: Konwersja sygnału
Hmm a co to jest za bloczek w Case przy True? Jak się nazywa, bo ja takiego chyba nie mam. Jedyne co mam to replace, który użyłem. Wtedy jednak trzeba podać indeks danej, którą podmieniam.
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>
Re: Konwersja sygnału
Działa uff, dzięki tylko jak to rozszerzyć, żeby czytało tylko określoną ilość próbek? Bo teraz pomiar jest z całego zmierzonego zakresu. Zrobiłem to tak jak w załączonym zdjęciu, ale nadal nie działa, żeby po zebraniu tutaj 10 próbek zaczynało cały proces od nowa. A już w ogóle idealnie by było, gdyby po dodaniu nast. próbki wszystkie inne były przesuwane w dół, a ostatnia kasowana. Jak to zrobić? No i jeszcze jeden drobiazg - jak zrobić w osi Y czas rzeczywisty?
Żyj tak, aby Twoim znajomym zrobiło się nudno jak umrzesz <J.Tuwim>