konwersja sygnału A/C i C/A
konwersja sygnału A/C i C/A
Cześć, dopiero zacząłem bawić się LabView i natrafiłem na problem z którym nie mogę sobie poradzić. Chciałem zobaczyć jak działa przetwornik A/C i zbudowałem prosty konwerter sygnału sinusoidalnego na cyfrowy i z powrotem. Przy przetworniku "mało bitowym" np. 2 , beznadziejne jest odwzorowanie fali, pojawiają się jakieś przeciwne piki tu gdzie fala rośnie lub maleje. Gdy zwiększę rozdzielczoścć przetwornika dziwnie wygląda wykres cyfrowy szczególnie niższe Plot (0,1,2). Czy to jest błąd LabView czy może ja coś źle ustawiłem ?.
Ostatnio zmieniony 21 sie 2007 07:39 przez saraj, łącznie zmieniany 1 raz.
Re: konwersja sygnału A/C i C/A -błąd LabView ?
0. Uporządkuj diagram: druty powinny byc proste - z tego wynika również to że nie powinny się przecinać.
1. Opisz algorytm jaki chcesz
zrealizować
2. Taka struktura programu nie jest struktura prawidłową.
Proponuję sprawdzić jak funkcjonują podstawowe struktury programu w LabVIEW: while + event, while+case, do czego stosuje się Shift Register
Skoki na głęboką wodę są fajne ale warto wcześniej nauczyć się pływać... 8)
1. Opisz algorytm jaki chcesz
zrealizować
2. Taka struktura programu nie jest struktura prawidłową.
Proponuję sprawdzić jak funkcjonują podstawowe struktury programu w LabVIEW: while + event, while+case, do czego stosuje się Shift Register
Skoki na głęboką wodę są fajne ale warto wcześniej nauczyć się pływać... 8)
Re: konwersja sygnału A/C i C/A -błąd LabView ?
Uporządkowałem i uprościłem.
Poprzednia struktura wynikała z mojej zabawy i prób w LabView, może nie była prawidłowa ? (stworzyłem ja wzorując sie na przykładach) ale działała.
Chciałem:
sygnał sinusoidalny zmienić na cyfrowy i z powrotem na sinusoidalny, czyli konwersja A/C i C/A. Nie rozumiem dlaczego przy przetworzeniu A/C pojawiają sie jakieś dziwne " piki" na niższych poziomach.
W załączeniu screen'y i program.
Robiłem próbę z sygnałem prostokątnym i też na jednym poziomie miałem odwrotnie niż na innych (0 zamiast 1)
Nie przejmujcie sie kolorami panelu - to były też próby.
Poprzednia struktura wynikała z mojej zabawy i prób w LabView, może nie była prawidłowa ? (stworzyłem ja wzorując sie na przykładach) ale działała.
Chciałem:
sygnał sinusoidalny zmienić na cyfrowy i z powrotem na sinusoidalny, czyli konwersja A/C i C/A. Nie rozumiem dlaczego przy przetworzeniu A/C pojawiają sie jakieś dziwne " piki" na niższych poziomach.
W załączeniu screen'y i program.
Robiłem próbę z sygnałem prostokątnym i też na jednym poziomie miałem odwrotnie niż na innych (0 zamiast 1)
Nie przejmujcie sie kolorami panelu - to były też próby.
Re: konwersja sygnału A/C i C/A -błąd LabView ?
Hm.... ale wiesz na czym polega działanie przetworników A/C i C/A ...?
...tak...?
Który z rodzajów przetworników chcesz symulować?
...tak...?
Który z rodzajów przetworników chcesz symulować?
Re: konwersja sygnału A/C i C/A -błąd LabView ?
Chciałem zrobić prosty test, jak LabView konwertuje sygnały. I na razie wyszło mi, że coś nie tak jest z symulacją przetwornika A/C. Coś nie tak bo może ja coś źle ustawiłem, ale niekoniecznie. Wydaje mi się, że wiem jak działa przetwornik A/C (ale na wszelki wypadek jescze sobie przypomnę).
Mikrobi zamiast ganić mnie za poplątane druty i sprawdzać moją wiedzę jak działa A/C, poprostu podpowiedz jak wiesz co jest złego w moim programie lub sprawdź czy w symulatorze A/C z Lab View nie ma błędu.
Mikrobi zamiast ganić mnie za poplątane druty i sprawdzać moją wiedzę jak działa A/C, poprostu podpowiedz jak wiesz co jest złego w moim programie lub sprawdź czy w symulatorze A/C z Lab View nie ma błędu.
Re: konwersja sygnału A/C i C/A -błąd LabView ?
Witam, :twisted:
Mikrobi miał powód w tym żeby ganić Cię za poplątane druty. To właśnie była podpowiedz:)
Podłączyłeś wyjście "resolution" bloczka A/D do wejścia "data format" bloczka "D/A".
"Pomoc kontekstowa jest bardzo pomocna" ;)
Pozdrawiam,
MaciekK
Mikrobi miał powód w tym żeby ganić Cię za poplątane druty. To właśnie była podpowiedz:)
Podłączyłeś wyjście "resolution" bloczka A/D do wejścia "data format" bloczka "D/A".
"Pomoc kontekstowa jest bardzo pomocna" ;)
Pozdrawiam,
MaciekK
never trust a naked bus driver
Re: konwersja sygnału A/C i C/A -błąd LabView ?
Rzeczywiście tak jest podłączone :oops: , ale to zrobił automatycznie LabView.
W dalszym ciągu nie wyjaśniona jest sprawa dziwnych przebiegów cyfrowych, które powinny wglądać nieco inaczej.
Pozdrawiam
W dalszym ciągu nie wyjaśniona jest sprawa dziwnych przebiegów cyfrowych, które powinny wglądać nieco inaczej.
Pozdrawiam
- Ender
- Posty: 137
- Rejestracja: 02 cze 2005 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Cieszyn
Re: konwersja sygnału A/C i C/A -błąd LabView ?
Witam
Biorąc pod uwagę schemat, to wykresy cyfrowe wyglądają bardzo dobrze (czytaj - tak jak wynika ze schematu). Chyba jednak nie do końca zdajesz sobie sprawę z tego jak działa przetwornik A/C ...
Najprostszy przypadek - rozdzielczość 2 bity. Są więc tylko 4 możliwości odwzorowania wartości sygnału: 00, 01, 10 i 11. Cały przedział wartości analogowych dzielony jest na 4 równe części - podpiąłeś na sztywno 100 do wejścia Max (chyba), więc te części będą przedziałami 0-25, 25-50, 50-75 i 75-100. Właściwie to na wejściu Min jest defaultowo -1, wiec przedział jest (-1,100), ale nie będziemy się tu bawić ułamkami . Ponieważ na wykresie cyfrowym nie ma wartości ujemnych, cyfrowemu "00" będzie odpowiadał przedział napięć od -50 do -25 (btw, jednostki to dobra rzecz, czasem się przydają ...), "01" od -25 do 0, itd. Jak popatrzysz na wykres analogowy i cyfrowy to jak na mój gust się zgadza, np w okolicach 0,04s jest wartość minimalna, czemu odpowiada cyfrowe 00.
Sugestie do przemyślenia - co się stanie z wykresem cyfrowym, jeśli w takim układzie zmniejszysz amplitudę do np. 10. Dlaczego tak się stało i jak zrobić żeby tak się nie działo? Jak w prosty sposób zoptymalizować diagram, aby w pełni wykorzystać rozdzielczość?
Biorąc pod uwagę schemat, to wykresy cyfrowe wyglądają bardzo dobrze (czytaj - tak jak wynika ze schematu). Chyba jednak nie do końca zdajesz sobie sprawę z tego jak działa przetwornik A/C ...
Najprostszy przypadek - rozdzielczość 2 bity. Są więc tylko 4 możliwości odwzorowania wartości sygnału: 00, 01, 10 i 11. Cały przedział wartości analogowych dzielony jest na 4 równe części - podpiąłeś na sztywno 100 do wejścia Max (chyba), więc te części będą przedziałami 0-25, 25-50, 50-75 i 75-100. Właściwie to na wejściu Min jest defaultowo -1, wiec przedział jest (-1,100), ale nie będziemy się tu bawić ułamkami . Ponieważ na wykresie cyfrowym nie ma wartości ujemnych, cyfrowemu "00" będzie odpowiadał przedział napięć od -50 do -25 (btw, jednostki to dobra rzecz, czasem się przydają ...), "01" od -25 do 0, itd. Jak popatrzysz na wykres analogowy i cyfrowy to jak na mój gust się zgadza, np w okolicach 0,04s jest wartość minimalna, czemu odpowiada cyfrowe 00.
Sugestie do przemyślenia - co się stanie z wykresem cyfrowym, jeśli w takim układzie zmniejszysz amplitudę do np. 10. Dlaczego tak się stało i jak zrobić żeby tak się nie działo? Jak w prosty sposób zoptymalizować diagram, aby w pełni wykorzystać rozdzielczość?
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Re: konwersja sygnału A/C i C/A -błąd LabView ?
Zgodze sie z Enderem ze wszystko wyglada w porzadku. I chwala dla MackaK za to ze znalazl buga w nieprawidłowym połaczeniu vartosci rozdzielczości do do node data format. Co rzeczywiscie podowodowało nieprawidłowe przedstawienie wykresu po konwersji A/C ale tylko dla wartosci rodzielczosci 1 i 2. w przypadku rozdzielczosci > 2 do data format i tak brana byla wartosc domyslna czyli 0, i konwersja była prawidłowa.
Pozdro, Mac_671
Pozdro, Mac_671
Re: konwersja sygnału A/C i C/A -błąd LabView ?
Dzięki za wyjaśnienie. :oops: Oczywiście mój błąd. Poszedłem niestety inną scieżką myślową i nie chciałem z niej zboczyć mimo jawnego naprowadzania. Traktowałem na wykresie cyfrowym "Plot" jako kolejne poziomy i szukałem podobieństwa do analogowego ( zupełnie nie wiem dlaczego), dopiero Ender mnie oświecił, że nie tędy droga. Rozrysowałem i rzeczywiscie wszystko jest w porządku (oczywiscie wczesniej usunąłem podłączenie do data format). Dzieki wszystkim za naprowadzanie i wskazanie błędów.
Pozdrawiam
Pozdrawiam
Re: konwersja sygnału A/C i C/A
Witam !
przeczytalem sobie caly temat o konwersji sygnalu A/C i C/A no i postanowilem takie cos zrobic u siebie. no i jak zawsze - nie wyszlo. wydaje mi sie, ze zrobilem w Labview tak jak powyzej przedstawil to saraj i mam zupelnie inne wykresy. gdzie jest blad ?
przeczytalem sobie caly temat o konwersji sygnalu A/C i C/A no i postanowilem takie cos zrobic u siebie. no i jak zawsze - nie wyszlo. wydaje mi sie, ze zrobilem w Labview tak jak powyzej przedstawil to saraj i mam zupelnie inne wykresy. gdzie jest blad ?
Re: konwersja sygnału A/C i C/A
a to moj schemat.
Re: konwersja sygnału A/C i C/A
Dobra. przepraszam. nie bylo tematu. juz wiem co bylo nie tak
- Ender
- Posty: 137
- Rejestracja: 02 cze 2005 00:00
- Wersja środowiska: LabVIEW 2009
- Lokalizacja: Cieszyn
Re: konwersja sygnału A/C i C/A
A ja uważam, że warto jednak jeszcze trochę temat pociągnąć, bo może nie wszyscy zdają sobie sprawę z jeszcze jednej, istotnej sprawy.
Jak widać na powyższym schemacie nie podpięto nic pod wejścia Min i Max bloczka konwersji A/C. Ale jest jeszcze jedna rzecz, na którą należy zwracać uwagę - dobór częstotliwości próbkowania.
Bloczek "Analog to Digital Waveform" nie ma możliwości jej wyboru - przekształcana jest kolejno każda próbka sygnału analogowego, który już jest spróbkowany. Tak więc częstotliwość próbkowania sygnału analogowego mierzonego (w tym przypadku symulowanego) ma wpływ na przebieg sygnału cyfrowego.
Przykładowo, jeśli będziemy symulować sygnał sinusoidalny o częstotliwości 100Hz i częstotliwości próbkowania 1000 sps, to na jeden okres przypadnie zaledwie 10 próbek o 5 różnych wartościach. Tak więc niezależnie od rozdzielczości uzyskamy tylko 5 różnych stanów logicznych. Teoretycznie do jego zakodowania wystarczyłyby 3 bity, w praktyce większa rozdzielczość daje lepsze odwzorowanie powrotne C/A. Tutaj jednak należy się zastanowić do którego momentu zwiększanie rozdzielczości ma sens - to już zależy od konkretnej aplikacji.
Tak więc wynik przekształcenia A/C, w którym mamy podejrzanie niską różnorodność stanów logicznych w stosunku do rozdzielczości, nie zawsze może być wynikiem tak widocznego błędu jak pozostawienie "wiszących" wejść ....
Jak widać na powyższym schemacie nie podpięto nic pod wejścia Min i Max bloczka konwersji A/C. Ale jest jeszcze jedna rzecz, na którą należy zwracać uwagę - dobór częstotliwości próbkowania.
Bloczek "Analog to Digital Waveform" nie ma możliwości jej wyboru - przekształcana jest kolejno każda próbka sygnału analogowego, który już jest spróbkowany. Tak więc częstotliwość próbkowania sygnału analogowego mierzonego (w tym przypadku symulowanego) ma wpływ na przebieg sygnału cyfrowego.
Przykładowo, jeśli będziemy symulować sygnał sinusoidalny o częstotliwości 100Hz i częstotliwości próbkowania 1000 sps, to na jeden okres przypadnie zaledwie 10 próbek o 5 różnych wartościach. Tak więc niezależnie od rozdzielczości uzyskamy tylko 5 różnych stanów logicznych. Teoretycznie do jego zakodowania wystarczyłyby 3 bity, w praktyce większa rozdzielczość daje lepsze odwzorowanie powrotne C/A. Tutaj jednak należy się zastanowić do którego momentu zwiększanie rozdzielczości ma sens - to już zależy od konkretnej aplikacji.
Tak więc wynik przekształcenia A/C, w którym mamy podejrzanie niską różnorodność stanów logicznych w stosunku do rozdzielczości, nie zawsze może być wynikiem tak widocznego błędu jak pozostawienie "wiszących" wejść ....
-Czy orał pan już kiedyś morskie fale?
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
Colon rzucił mu chytre spojrzenie.
-Nie złapie mnie pan na taki numer, sir - rzekł - Wszyscy wiedzą, że konie by potonęły.
Leonard umilkł na chwilę i przestroił swój mózg na Radio Colon ....
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: konwersja sygnału A/C i C/A
Częstotliwość próbkowania to coś, na co należy raczej zwrócić uwagę w pierwszej kolejności - tu się z Enderem zgodzić trzeba. Natomiast z tym
[img]http://www.labview.pl/uploads/veir/sampling.gif[/img]
w ogólnym wypadku zgodzić się nie można:jeśli będziemy symulować sygnał sinusoidalny o częstotliwości 100Hz i częstotliwości próbkowania 1000 sps, to na jeden okres przypadnie zaledwie 10 próbek o 5 różnych wartościach
[img]http://www.labview.pl/uploads/veir/sampling.gif[/img]