współrzędne biegunowe na kartezjańskie

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
xiezniczka
Posty: 10
Rejestracja: 13 lis 2012 22:09
Wersja środowiska: LabVIEW 2011

współrzędne biegunowe na kartezjańskie

Post autor: xiezniczka »

Witam, proszę o pomoc w zamianie współrzędnych biegunowych na kartezjańskie (zaznaczone na schemacie czerwoną linią).
Program zamieniający sygnał na amplitudę i fazę działa, ale powrót już nie- sygnał wychodzi trójkątny zamiast sinusoidalnego, o dwa razy większej częstotliwości niż sygnał wejsciowy i innej amplitudzie.
Mam też problem, jak zastąpić bloczek sinusa, na simulate signal aby nie było błędu w połączeniach- zgodność wymiarów a program dalej działał.
Pozdrawiam
Ostatnio zmieniony 10 sty 2013 15:17 przez xiezniczka, łącznie zmieniany 1 raz.
Awatar użytkownika
patka
Posty: 20
Rejestracja: 08 maja 2012 16:33
Wersja środowiska: LabVIEW 2012

współrzędne biegunowe na kartezjańskie

Post autor: patka »

Witam,

Generalnie dużo tu do poprawy, bo pierwsze przejście też jest źle. I chyba bardziej matematycznie niż LabVIEW'owo :]
Skoro najpierw chcesz przejść ze współrzędnych kartezjańskich na biegunowe, to dlaczego używasz bloczka do przejścia odwrotnego? Potrzebujesz Re/Im to Polar. Jego wejścia również powinny być podłączone na odwrót, jako, że Twój X to chyba ten sygnał sprzed sinusa, a Y to Sinus.

A dalej, jeśli chcesz liczyć X i Y w Formula Node to potem już nic nie potrzebujesz. Sygnały X i Y wychodzące z pętli możesz podłączyć do XY Graph tak jak to zrobiłaś dla 'biegunowych' i jest ok. Nie wiem dlaczego znowu używasz tam Polar to Re/Im podłączając X do R a Y do Theta?

Jeśli skasowałabyś tę pętlę FOR z Formula Node to wtedy podłączenie R i Theta do bloczka Polar to Re/Im miałoby sens. A w wyniku dałoby takie same X i Y jak obliczone w pętli.

Pozdrawiam,
Patka.
xiezniczka
Posty: 10
Rejestracja: 13 lis 2012 22:09
Wersja środowiska: LabVIEW 2011

Re: współrzędne biegunowe na kartezjańskie

Post autor: xiezniczka »

Dalej mi coś nie działa... tzn wyniki błędne
W skrócie:
-zamieniam bloczek Polar to Re/Im na odwrotny i zamieniam wejścia wg "X to chyba ten sygnał sprzed sinusa, a Y to Sinus"...
- dla drugiej zamiany (powrotnej) usuwam bloczek Polar to Re/Im- zostaje wyjście z pętli
W czym jeszcze tkwi problem? Nic nie daje poprawnych rezultatów niestety
Pozdrawiam
Awatar użytkownika
patka
Posty: 20
Rejestracja: 08 maja 2012 16:33
Wersja środowiska: LabVIEW 2012

Re: współrzędne biegunowe na kartezjańskie

Post autor: patka »

Chyba wszystko jest już ok, poza sposobem wyświetlania na wykresach.

Insert into Array łączy Ci sygnał X i Y w jeden wektor a Waveform Graph przedstawia kolejne jego elementy - więc to bez sensu. W przypadku współrzędnych kartezjańskich chcesz, żeby dane X były na osi x a Y na osi y, więc użyj XY Graph tak jak w załączniku (wyższy układ).

Natomiast wyświetlanie w ten sam sposób danych dla współrzędnych biegunowych też chyba nic ciekawego nie przedstawi - dostaniesz wykres theta od r i tyle. Jeśli chcesz dostać sinusoidę to możesz zrobić jak na załączonym obrazku (niższy układ). Przekształcić współrzędne biegunowe na liczby zespolone i wyświetlić na XY graph.
xy.png
xy.png (2.48 KiB) Przejrzano 14949 razy
xiezniczka
Posty: 10
Rejestracja: 13 lis 2012 22:09
Wersja środowiska: LabVIEW 2011

Re: współrzędne biegunowe na kartezjańskie

Post autor: xiezniczka »

Niby powinno być ok, a dla biegunowych ma funkcję prostą jak ax+b, a powrotne kartezjańśkie kształt mają dobry, amplitudę też, ale na xksie dla sygnału wejściowego mam okres np 42.5, a dla tych "powrotnych" 1300....
Pozdrawiam i dziękuję za już okazaną pomoc :)
Ostatnio zmieniony 10 sty 2013 15:18 przez xiezniczka, łącznie zmieniany 1 raz.
Awatar użytkownika
patka
Posty: 20
Rejestracja: 08 maja 2012 16:33
Wersja środowiska: LabVIEW 2012

Re: współrzędne biegunowe na kartezjańskie

Post autor: patka »

Faktycznie - wybacz, nie zwróciłam wcześniej uwagi. Chodzi o to, że jako sygnał X na wejście bloczka Re/Im to Polar musisz podłączyć ten "niebieski" sygnał wychodzący z pierwszej pętli. A żeby nie mieć 'coercion dots', czyli tych czerwonych kropek na wejściach bloczków, użyj To Double precision point, w celu konwersji INT na DOUBLE - taka dobra praktyka na przyszłość :)
Załączniki
zamiana współrzędnych.png
xiezniczka
Posty: 10
Rejestracja: 13 lis 2012 22:09
Wersja środowiska: LabVIEW 2011

Re: współrzędne biegunowe na kartezjańskie

Post autor: xiezniczka »

Dziękuję bardzo!
Rzeczywiście na wyjściu kartezjańskich dostaję poprawny wynik. Jednak dla biegunowych coś średnio- jak zmieniam na cosinusa albno sin^2, to dalej mam krzywą ax+b, a nie to co wyjść powinno wg programu.. Wynik się nie zmienia po zmianie funkcji. To kwestia wyświetlania?
Pozdrawia,
Ostatnio zmieniony 10 sty 2013 15:18 przez xiezniczka, łącznie zmieniany 1 raz.
Awatar użytkownika
patka
Posty: 20
Rejestracja: 08 maja 2012 16:33
Wersja środowiska: LabVIEW 2012

Re: współrzędne biegunowe na kartezjańskie

Post autor: patka »

patka pisze: Przekształcić współrzędne biegunowe na liczby zespolone i wyświetlić na XY graph.
Odpowiedź znajduje się trzy posty wyżej :) Musisz użyć XY Graph.
xiezniczka
Posty: 10
Rejestracja: 13 lis 2012 22:09
Wersja środowiska: LabVIEW 2011

Re: współrzędne biegunowe na kartezjańskie

Post autor: xiezniczka »

Ale jak zrobiłam tak, to wychodzi mi dokładnie to samo co na wejściu, czyli sinus- nie ma żadnej różnicy. A chcę uzyskać wykres we wsp biegunowych... :(
Mam przykład dla sin(6x)+2 - taki kwiatuszek wychodzi. cos takiego chciałabym dostać..
Ostatnio zmieniony 10 sty 2013 15:19 przez xiezniczka, łącznie zmieniany 1 raz.
Awatar użytkownika
patka
Posty: 20
Rejestracja: 08 maja 2012 16:33
Wersja środowiska: LabVIEW 2012

Re: współrzędne biegunowe na kartezjańskie

Post autor: patka »

W takim razie źle określiłaś co chcesz zrobić. Zamiana współrzędnych kartezjańskich na biegunowe nie polega na zrobieniu takiej operacji:

y = sin(6x) + 2 -> r = sin(6*theta) + 2

Do przechodzenia pomiędzy współrzędnymi kartezjańskimi a biegunowi służą dobrze znane Ci wzory, które w przejściu pierwszym wykonuje za Ciebie bloczek, a w przejściu drugim sama wypisałaś w Formula Node. I nie byłoby za dobrze, gdyby po przejściu na biegunowe nie powstał znów sinus, ponieważ takie przekształcenie służy jedynie innej reprezentacji TYCH SAMYCH danych.

A jeśli chcesz dostać 'kwiatki' to można zrobić mapowanie, ale późniejsze przejścia na wsp. biegunowe i z powrotem tracą zupełnie sens. Załączam Ci program rysujący tę samą funkcję jaką dałaś w przykładzie.
Załączniki
wsp.biegunowe-kartezjanskie_v2.vi
(27.71 KiB) Pobrany 297 razy
xiezniczka
Posty: 10
Rejestracja: 13 lis 2012 22:09
Wersja środowiska: LabVIEW 2011

Re: współrzędne biegunowe na kartezjańskie

Post autor: xiezniczka »

Mam za zadanie: dla wybranych sygnałów przejść ze współrzędnych kartezjańskich na biegunowe i z powrotem...
I wg wikipedii http://en.wikipedia.org/wiki/File:Carte ... _polar.gif tak wygląda przejście "Cartesian to polar". Stąd się trochę pogubiłam.
Czyli te "kwiatki" to jaka jest postać w takim razie?
I czy dużo zmian wymaga wstawienie zamiast sinusa np sygnału trójkątnego z signal processing? Bo połączenia robią się nieprawidłowe gdyby zamienię sinusa na np przebieg trójkątny...
Dziękuję za cierpliwość!!
Pozdrawiam :)
Awatar użytkownika
patka
Posty: 20
Rejestracja: 08 maja 2012 16:33
Wersja środowiska: LabVIEW 2012

Re: współrzędne biegunowe na kartezjańskie

Post autor: patka »

Szczerze - chyba powinnaś lepiej wiedzieć co masz na zadanie :) Albo jakoś się dopytać jeśli nie jesteś pewna.

Odsyłając do Wikipedii : http://en.wikipedia.org/wiki/Polar_coor ... oordinates
- dla mnie jak wypisz wymaluj przejście ze współrzędnych kartezjańskich (x,y) na biegunowe (r,theta) to jest inna reprezentacja tego samego sygnału. W pierwszym przypadku masz np. punkt określony w kart. jako x=3, y=4 to to nadal będzie ten sam punkt, ale przedstawiony jako r=sqrt(x^2+y^2) = 5 i theta=atan(4/3)=53 st. (czyli oddalony o 5 w linii prostej od punktu (0,0) pod kątem 53 stopnie).

Natomiast inną kwestią jest jak to Wikipedia określa - mapowanie krzywej z wykresu kartezjańskiego do biegunowego.
Np. krzywa y=x, wiadomo jak wygląda. Biorąc pod uwagę jedynie ćwiartkę pierwszą, theta będzie zawsze równa 45 stopni (atan(1) = 45st.), a r będzie się zmieniało (sqrt(2), 2*sqrt(2) ...... itd.). I tutaj ładnie widać, że robiąc tak jak w przypadku tego sinusa z Twojego przykładu: z funkcji y=x odpowiednio funkcję r=theta , to to niestety nie jest już ten sam sygnał. A taka krzywa w układzie biegunowym to będzie spirala.

Wstawienie sygnału trójkątnego nie wymaga wielu zmian. Musisz przede wszystkim przeczytać sobie w Helpie co trzeba podać na wejście takiego bloczka i się do tego zastosować, wszystko jest pięknie opisane.
Maxe
Posty: 15
Rejestracja: 24 maja 2011 15:33
Wersja środowiska: LabVIEW 2012

współrzędne biegunowe na kartezjańskie

Post autor: Maxe »

Wstawienie sygnału trójkątnego nie wymaga wielu zmian. Musisz przede wszystkim przeczytać sobie w Helpie co trzeba podać na wejście takiego bloczka i się do tego zastosować, wszystko jest pięknie opisane.
Na wejście bloczka "Sine" tak?
Awatar użytkownika
patka
Posty: 20
Rejestracja: 08 maja 2012 16:33
Wersja środowiska: LabVIEW 2012

współrzędne biegunowe na kartezjańskie

Post autor: patka »

Nie, np. Triangle Waveform skoro mowa o wstawieniu sygnału trójkątnego. On na wyjściu daje waveform, ale bloczkiem Get Wfm Components można sobie łatwo wyciągnąć sygnał Y, a X wygenerować znając dt.
Maxe
Posty: 15
Rejestracja: 24 maja 2011 15:33
Wersja środowiska: LabVIEW 2012

Re: współrzędne biegunowe na kartezjańskie

Post autor: Maxe »

Czy taki sposób jest poprawny?
Ostatnio zmieniony 10 sty 2013 15:19 przez Maxe, łącznie zmieniany 1 raz.
ODPOWIEDZ