kat przesuniecia fazowego
kat przesuniecia fazowego
Witam wszystkich bardzo serdecznie.
Częścią mojego projektu jest wygenerowanie sygnału sinusoidalnego oraz analiza jego widma amplitudowego. Pracownia wyposazona jest w LabView w wersji 8.0.
Do generowania sygnału używam Signal generator by duration
jako parametry wejsciowe podaje : liczba próbek : 512 częstotliwość : 100 Hz Amplituda : 1 V Kąt fazowy : 0
duration : 0,05s
Wygenerowany sygnał (5 okresów) podłączam do
Amplitude and phase spectrum i rezultat wyświetlam na obiekcie Waveform Graph
Problemy: 1. Jak zrobic by skladowa byla wyswietlana w formie slupka a nie ciaglego wykresu? 2. Dlaczego widmo na wykresie wskazuje niepoprawna częstotliwość? Zamiast wyświetlac 100 Hz to wyświetla coś kolo 8-10 ( nawet nie potrafie tego dobrze odczytac z tego wykresu). Jak zrobic by wykres wskazowal wlasciwa czestotliwosc?
Prosze o pomoc, z gory dziekuje.
Częścią mojego projektu jest wygenerowanie sygnału sinusoidalnego oraz analiza jego widma amplitudowego. Pracownia wyposazona jest w LabView w wersji 8.0.
Do generowania sygnału używam Signal generator by duration
jako parametry wejsciowe podaje : liczba próbek : 512 częstotliwość : 100 Hz Amplituda : 1 V Kąt fazowy : 0
duration : 0,05s
Wygenerowany sygnał (5 okresów) podłączam do
Amplitude and phase spectrum i rezultat wyświetlam na obiekcie Waveform Graph
Problemy: 1. Jak zrobic by skladowa byla wyswietlana w formie slupka a nie ciaglego wykresu? 2. Dlaczego widmo na wykresie wskazuje niepoprawna częstotliwość? Zamiast wyświetlac 100 Hz to wyświetla coś kolo 8-10 ( nawet nie potrafie tego dobrze odczytac z tego wykresu). Jak zrobic by wykres wskazowal wlasciwa czestotliwosc?
Prosze o pomoc, z gory dziekuje.
Ostatnio zmieniony 24 cze 2009 11:32 przez uksz, łącznie zmieniany 2 razy.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: widmo amplitudowe sygnalu sinusoidalnego - problem
Patrz rysunek poniżej.1. Jak zrobic by skladowa byla wyswietlana w formie slupka a nie ciaglego wykresu?
A dlaczego przy podanych parametrach na wykresie Sygnał Uh w Twoim programie wartości X rozciągają się od zera do ponad pięciuset, skoro czas trwania sygnału to 0,05s? Ostatnie słowa są tu kluczowe: 8-10, ale czego? Chodzi o to, że nie są herce a po prostu numery próbek. Numer próbki mógłbyś przeliczyć na herce korzystając ze stosownego wzorku i odpowiednio ustawić etykiety osi X, ale na początek spróbuj rady uniwersalnej: do generowania i późniejszej analizy sygnałów skorzystaj z funkcji operujących na typie waveform.2. Dlaczego widmo na wykresie wskazuje niepoprawna częstotliwość? Zamiast wyświetlac 100 Hz to wyświetla coś kolo 8-10
Do wygenerowania sinusoidy zamiast Signal Generator by Duration użyj funkcji Sine Waveform, a do analizy np. FFT Spectrum (Mag-Phase).
Przewaga typu waveform nad zwykłym wektorem próbek jest taka, że ten pierwszy może przechowywać dodatkowe informacje o sygnale, w szczególności częstotliwość próbkowania. Dzięki temu po podłączeniu sygnału w postaci waveforma do Waveform Graph (nomen omen) osie X wyskalują się same i to zarówno w dziedzinie czasu jak i częstotliwości.
Spróbuj tego i jak coś to pytaj.
Ostatnio zmieniony 19 cze 2009 21:33 przez jogurt_owocowy, łącznie zmieniany 1 raz.
Re: widmo amplitudowe sygnalu sinusoidalnego - problem
Dziekuje bardzo za pomoc, mam teraz tylko taki dylemat.
Po zakonczeniu symulacji, przejdziemy do zajec praktycznych gdzie bedziemy generowac i analizowac sygnaly na prawdziwych przyrzadach pomiarowych typu generatory itd i w tej symulacji musimy miec na wejsciu takie same parametry jak przy prawdziwych urzadzeniach, zatem chcialem tylko spytac czy Sine Waveform w tym przypadku jest wystarczalny, czy na prawdziwym generatorze podaje sie ilosc probek?
Wybacz za takie pytania ale jestem laikiem i pewnie wiele zalezy od tego jakiego typu to beda generatory, ja niestety tego nie wiem.
Po zakonczeniu symulacji, przejdziemy do zajec praktycznych gdzie bedziemy generowac i analizowac sygnaly na prawdziwych przyrzadach pomiarowych typu generatory itd i w tej symulacji musimy miec na wejsciu takie same parametry jak przy prawdziwych urzadzeniach, zatem chcialem tylko spytac czy Sine Waveform w tym przypadku jest wystarczalny, czy na prawdziwym generatorze podaje sie ilosc probek?
Wybacz za takie pytania ale jestem laikiem i pewnie wiele zalezy od tego jakiego typu to beda generatory, ja niestety tego nie wiem.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: widmo amplitudowe sygnalu sinusoidalnego - problem
W zasadzie wszystko zależy od tego jaki to generator, chociaż na zdrowy rozum to podajesz amplitudę i częstotliwość sygnału i generator wypluwa kolejne próbki sygnału cały czas. Liczbę próbek będziesz ewentualnie podawał określając parametry akwizycji sygnału tj. wielkość bufora karty pomiarowej, ale na razie się tym nie przejmuj. Jak już się dowiesz co to będzie za sprzęt i jak to będzie miało wyglądać, to wtedy będzie na to czas.czy na prawdziwym generatorze podaje sie ilosc probek?
Pozdrawiam
Re: widmo amplitudowe sygnalu sinusoidalnego - problem
Czy moglbys mi powiedziec z jakiego wzoru nalezy skorzystac i jak ustawic ta etykiete?Numer próbki mógłbyś przeliczyć na herce korzystając ze stosownego wzorku i odpowiednio ustawić etykiety osi X
Moj nauczyciel uparl sie by korzystac z signal generator by duration.
Re: widmo amplitudowe sygnalu sinusoidalnego - problem
Tworzony przeze mnie program ma za zadanie wyznaczyc kat przesuniecia fazowego pomiedzy dwoma sygnalami sinusoidalnymi o jednakowej wysokiej czestotliwosci. W tym celu uzywam 3x Sine Waveform
Pierwszy z nich genereuje sygnal sinusoidalny Uh z czestotliwoscia f1, z ktororym beda mieszane (mnozone) dwa pozostale sygnalu Uh i Ux generowane z czestotliwoscia f2,z ktorych ma zostac wyznaczony kat przesuniecia fazowego. Nastepnie wymnozone sygnaly sa filtrowane za pomoca filtru dolnoprzepustowego, by wyeliminowac skladowa sumacyjna i przeniesc sygnaly w pasmo niskich czestotliwosci. W kolejnym kroku wyznaczone zostaja katy fazowe obu sygnalow oraz ich roznica dajaca kat przesuniecia fazowego pomiedzy tymi dwoma sygnalami Uh i Ux.
Generalnie kat przesuniecia fazowego jest wyznaczany poprawnie, ale te wykresy nie bardzo mi sie podobaja. Przy wysokich czestotliwociach ciezko dostrzec na nich czy tam rzeczywiscie jest sinusoida, chcialbym by bylo widoczne tam kilka ookresow tych sygnalow. Widma amplitudowe tez nie zawsze wskazuja poprawna czestotliwosc skladowych wymieszanego sygnalu. Po filtracji przez 1-2 okresy wystepuje stan nieustalony, ktorego tez nie wiem jak sie pozbyc, chcialbym wyciac probki tych 2 okresow, ale nie wiem jaka to mialaby byc ilosc tych probek, a chcialbym zeby to robilo sie programowo bez ingerencji uzytkownika.
Pozdrawiam i prosze o pomoc.
Pierwszy z nich genereuje sygnal sinusoidalny Uh z czestotliwoscia f1, z ktororym beda mieszane (mnozone) dwa pozostale sygnalu Uh i Ux generowane z czestotliwoscia f2,z ktorych ma zostac wyznaczony kat przesuniecia fazowego. Nastepnie wymnozone sygnaly sa filtrowane za pomoca filtru dolnoprzepustowego, by wyeliminowac skladowa sumacyjna i przeniesc sygnaly w pasmo niskich czestotliwosci. W kolejnym kroku wyznaczone zostaja katy fazowe obu sygnalow oraz ich roznica dajaca kat przesuniecia fazowego pomiedzy tymi dwoma sygnalami Uh i Ux.
Generalnie kat przesuniecia fazowego jest wyznaczany poprawnie, ale te wykresy nie bardzo mi sie podobaja. Przy wysokich czestotliwociach ciezko dostrzec na nich czy tam rzeczywiscie jest sinusoida, chcialbym by bylo widoczne tam kilka ookresow tych sygnalow. Widma amplitudowe tez nie zawsze wskazuja poprawna czestotliwosc skladowych wymieszanego sygnalu. Po filtracji przez 1-2 okresy wystepuje stan nieustalony, ktorego tez nie wiem jak sie pozbyc, chcialbym wyciac probki tych 2 okresow, ale nie wiem jaka to mialaby byc ilosc tych probek, a chcialbym zeby to robilo sie programowo bez ingerencji uzytkownika.
Pozdrawiam i prosze o pomoc.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: widmo amplitudowe sygnalu sinusoidalnego - problem
Wzór na częstotliwość k-tego prążka (licząc od zera) na wykresie widma to Fk=k*fp/N, gdzie fp to częstotliwość próbkowania (w hercach), a N - długość sygnału poddawanego transformacji.Czy moglbys mi powiedziec z jakiego wzoru nalezy skorzystac i jak ustawic ta etykiete?
Kontrolka Waveform Graph ma fajną własność, którą możesz wykorzystać do ustawienia wykresu tak, aby oś X była wyskalowana w hercach - Offset and Multiplier. Sposób pokazany na pierwszym obrazku poniżej.
Ten klocek, do którego wędruje wynik z dzielenia to węzeł własności wykresu (Property Node). Tworzysz go klikając na terminalu kontrolki i wybierając z menu kontekstowego Create -> Property Node.
Znów możesz skorzystać z Property Node wykresu, tym razem żeby ustawić zakres osi X odpowiadający określonej liczbie okresów sygnału (rys. 2.).Przy wysokich czestotliwociach ciezko dostrzec na nich czy tam rzeczywiscie jest sinusoida, chcialbym by bylo widoczne tam kilka okresow tych sygnalow.
Jeśli w niczym Ci ten stan nieustalony nie przeszkadza, to zostaw go jak jest - taka już uroda filtrów cyfrowych. W przypadku filtrów typu IIR (a takiego używasz do filtracji) wycięcie tych początkowych okresów jest trochę problematyczne, bo nie da się z góry przewidzieć jak długo ten stan nieustalony trwa.Po filtracji przez 1-2 okresy wystepuje stan nieustalony, ktorego tez nie wiem jak sie pozbyc
Pozdrawiam
Re: widmo amplitudowe sygnalu sinusoidalnego - problem
Do programu dopisalem jeszcze mozliwosc dodania szumow do sygnalow Un i Ux.
Przykladowo :
Sygnal Uh czestotliwosc
- 500 amp - 1
faza - 0
Sygnal Un czestotliwosc - 480
amp - 1 faza - 0
Sygnal Ux czestotliwosc - 480 amp - 1 faza - 45
Czestotliwosc probkowania - 1100 Ilosc probek - 2000
Przy takich parametrach jak powyzej, widma amplitudowe kompletnie sie nie zgadzaja, przyblizajac sobie wykres sygnalu Uh, raczej nie bardzo przypomina to sinusoide, szybciej przebieg trojkatny.
W razie gdy podczas dzialania programu zmienie faze ktoregos z sygnalow Un badz Ux to wynik kata przesuniecia fazowego zostanie obliczony dopiero po zatrzymaniu i ponownym uruchomieniu programu. Jak zrobic by obliczenia byly prowadzone w czasie rzeczywistym?
Wydaje mi sie ze przy uzyciu Signal generator by duration te sinusoidy prezentowaly sie o wiele lepiej.
Przykladowo :
Sygnal Uh czestotliwosc
- 500 amp - 1
faza - 0
Sygnal Un czestotliwosc - 480
amp - 1 faza - 0
Sygnal Ux czestotliwosc - 480 amp - 1 faza - 45
Czestotliwosc probkowania - 1100 Ilosc probek - 2000
Przy takich parametrach jak powyzej, widma amplitudowe kompletnie sie nie zgadzaja, przyblizajac sobie wykres sygnalu Uh, raczej nie bardzo przypomina to sinusoide, szybciej przebieg trojkatny.
W razie gdy podczas dzialania programu zmienie faze ktoregos z sygnalow Un badz Ux to wynik kata przesuniecia fazowego zostanie obliczony dopiero po zatrzymaniu i ponownym uruchomieniu programu. Jak zrobic by obliczenia byly prowadzone w czasie rzeczywistym?
Wydaje mi sie ze przy uzyciu Signal generator by duration te sinusoidy prezentowaly sie o wiele lepiej.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: widmo amplitudowe sygnalu sinusoidalnego - problem
Że niby prążek składowej sumacyjnej jest nie tam gdzie powinien być? I nie będzie, bo nie są spełnione założenia Najważniejszego Twierdzenia Teorii Sygnałów.Przy takich parametrach jak powyzej, widma amplitudowe kompletnie sie nie zgadzaja
Chciałbyś żeby składowa sumacyjna miała 980 Hz? To musisz częstotliwość próbkowania ustawić na co najmniej 1960 Hz. U Ciebie jest tylko 1100 i pojawia się aliasing.
Zapoznaj się z powyższymi linkami, bo to "ABC DSP" ;)
Swoją drogą piękny przykład działania teorii w praktyce! ]
Nie przejmuj się tym. Jakkolwiek może się to wydawać nieintuicyjne, to jeśli są spełnione założenia twierdzenia o próbkowaniu, to nawet taka brzydka sinusoida pozostaje sinusoidą pełną gębą.Przy takich parametrach jak powyzej (...) nie bardzo przypomina to sinusoide, szybciej przebieg trojkatny.
Wtedy po prostu byłeś bardziej odsunięty z częstotliwością próbkowania od teoretycznej granicy, nawet jeśli nie zdawałeś sobie z tego sprawy.Wydaje mi sie ze przy uzyciu Signal generator by duration te sinusoidy prezentowaly sie o wiele lepiej.
Są prowadzone w czasie rzeczywistym, tylko najprawdopodobniej dają bezsensowne wyniki. Jak zmienisz fazy sygnałów, wyniki dalej są tak samo bezsensowne, więc nie zobaczysz różnicy. Rozwiązanie jest na obrazku poniżej. Ustaw wejścia reset signal wszystkich trzech generatorów sinusoid na TRUE.Jak zrobic by obliczenia byly prowadzone w czasie rzeczywistym?
Pozdrawiam
Ostatnio zmieniony 24 cze 2009 21:52 przez jogurt_owocowy, łącznie zmieniany 1 raz.
Re: kat przesuniecia fazowego
Witam
na mej drodze do sukcesu pojawiaja sie kolejne pytania i problemy
Mianowicie przykladowo dla parametrow:
czestotliwosc f1 : 50 Hz
czestotliwosc f2 : 40 Hz
amplituda : 1 V
kat fazowy sygnalu Ux: 45 stopni
czestotliwosc probkowania :400 Hz
ilosc probek : 80
rzad filtru : 1
uzyskany przeze mnie kat przesuniecia fazowego pomiedzy sygnalami Un i Ux wynosi: 44.9266 stopni
Przy zmianie parametru rzad filtru na 2, wynik ten wynosi: 43,6885 stopni
Wydaje mi sie ze roznica pomiedzy tymi dwoma wynikami jest zbyt duza, czym moze to byc spowodowane? Czy moje parametry filtru dolnoprzepustowego sa blednie dobrane?
Dolna granica odciecia filtru to roznica pomiedzy czestotliwosciami f1 i f2 czyli : 10 Hz
Czestotliwosc probkowania filtru to 2x(f1+f2) czyli :180 Hz
Kolejna sprawa, dlaczego bloki Tone Measurements i Tone Measuremets2 wykazuja mi czestotliwosc sygnalu okolo 0,025 Hz?
Przeciez czestotliwosc skladowej roznicowej wymnozonych sygnałow Uh x Un oraz Uh x Ux powinna byc bliska 10hz?
Gdy zmienie czestotliwosc f2 na : 41 Hz to kat przesuniecia fazowego wynosi : 44,4603
Co rowniez wydaje mi sie duza roznica pomiedzy tymi dwoma wynikami?
Ale prawdopodobnie jest to spowodowane przeciekiem widma, czy moze jeszcze czyms innym?
Moze nalezy uzyc innych filtrow badz innych ich parametrow albo innych blokow do wyznaczenia katow fazowych, w celu uzykania lepszych wynikow?
Pozdrawiam i prosze o pomoc.
P.S.
LabVIEW 8.0
na mej drodze do sukcesu pojawiaja sie kolejne pytania i problemy
Mianowicie przykladowo dla parametrow:
czestotliwosc f1 : 50 Hz
czestotliwosc f2 : 40 Hz
amplituda : 1 V
kat fazowy sygnalu Ux: 45 stopni
czestotliwosc probkowania :400 Hz
ilosc probek : 80
rzad filtru : 1
uzyskany przeze mnie kat przesuniecia fazowego pomiedzy sygnalami Un i Ux wynosi: 44.9266 stopni
Przy zmianie parametru rzad filtru na 2, wynik ten wynosi: 43,6885 stopni
Wydaje mi sie ze roznica pomiedzy tymi dwoma wynikami jest zbyt duza, czym moze to byc spowodowane? Czy moje parametry filtru dolnoprzepustowego sa blednie dobrane?
Dolna granica odciecia filtru to roznica pomiedzy czestotliwosciami f1 i f2 czyli : 10 Hz
Czestotliwosc probkowania filtru to 2x(f1+f2) czyli :180 Hz
Kolejna sprawa, dlaczego bloki Tone Measurements i Tone Measuremets2 wykazuja mi czestotliwosc sygnalu okolo 0,025 Hz?
Przeciez czestotliwosc skladowej roznicowej wymnozonych sygnałow Uh x Un oraz Uh x Ux powinna byc bliska 10hz?
Gdy zmienie czestotliwosc f2 na : 41 Hz to kat przesuniecia fazowego wynosi : 44,4603
Co rowniez wydaje mi sie duza roznica pomiedzy tymi dwoma wynikami?
Ale prawdopodobnie jest to spowodowane przeciekiem widma, czy moze jeszcze czyms innym?
Moze nalezy uzyc innych filtrow badz innych ich parametrow albo innych blokow do wyznaczenia katow fazowych, w celu uzykania lepszych wynikow?
Pozdrawiam i prosze o pomoc.
P.S.
LabVIEW 8.0
- Załączniki
-
- model symulacyjny 2 i szum - fin v2.vi
- (223.67 KiB) Pobrany 547 razy
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: kat przesuniecia fazowego
Cześć,
Musimy zacząć od tego:
Musimy zacząć od tego:
Dlaczego tak?Czestotliwosc probkowania filtru to 2x(f1+f2) czyli :180 Hz
Re: kat przesuniecia fazowego
Nie wiem na podstawie czego dobiera sie czestotliwosc probkowania filtrow wiec zastosowalem sie po prostu do Twierdzenie Kotielnikowa-Shannona.
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: kat przesuniecia fazowego
Możesz dokładniej objaśnić, w jaki sposób?zastosowalem sie po prostu do Twierdzenie Kotielnikowa-Shannona
Re: kat przesuniecia fazowego
skladowa sumacyjna wymnozonych sygnalow o czestotliwosciach 50 Hz i 40 Hz to 90Hz wiec przemnozylem 90Hz przez 2 i wyszlo 180 Hz
- jogurt_owocowy
- Posty: 1317
- Rejestracja: 30 lis 2004 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Kraków
Re: kat przesuniecia fazowego
Twój problem jest taki, że nie znasz podstaw, a bez tego niestety ani rusz.
Zamknij ten projekt, weź jakąś książkę do teorii sygnałów (polecam Wprowadzenie do cyfrowego przetwarzania sygnałów Lyonsa) i opanuj podstawy: co to jest sygnał cyfrowy, co to jest częstotliwość próbkowania, dlaczego jest to wartość związana z sygnałem (a nie z filtrem)... Obiecuję, że (wcale niedługi) czas, jaki w to zainwestujesz, zwróci Ci się szybko w dalszej części projektu.
Częstotliwość próbkowania ma być jedna, odgórnie ustalona i tę jedną wartość masz podawać tak samo na wejścia generatorów sygnałów, jak i filtrów. Filtr rzędu 1 to też pomysł raczej dość wątpliwy. Spróbuj rzędu 10, zwiększ ilość generowanych próbek z 80 na 800 - powinno być dużo lepiej.
Zamknij ten projekt, weź jakąś książkę do teorii sygnałów (polecam Wprowadzenie do cyfrowego przetwarzania sygnałów Lyonsa) i opanuj podstawy: co to jest sygnał cyfrowy, co to jest częstotliwość próbkowania, dlaczego jest to wartość związana z sygnałem (a nie z filtrem)... Obiecuję, że (wcale niedługi) czas, jaki w to zainwestujesz, zwróci Ci się szybko w dalszej części projektu.
Częstotliwość próbkowania ma być jedna, odgórnie ustalona i tę jedną wartość masz podawać tak samo na wejścia generatorów sygnałów, jak i filtrów. Filtr rzędu 1 to też pomysł raczej dość wątpliwy. Spróbuj rzędu 10, zwiększ ilość generowanych próbek z 80 na 800 - powinno być dużo lepiej.