Transformacja FFT
Transformacja FFT
Witam wszystkich Forumowiczów!
Próbuję zrobić transformację FFT do wizualizacji rozkładu mocy widma dźwiękowego (wykres mocy sygnału w funkcji jej częstotliwości) przy użyciu różnych bloczków FFT (jest ich kilka w LV2010), jednakże finalnie nie otrzymuję spodziewanego rezultatu :S. Wspieram się przykładowym VIem "FFT and Inverse FFT" (w załączniku), ale u mnie coś nie idzie tak jak powinno - wykres szaleje... Mój VI też dołączyłem do załączników. Jak poprawnie utworzyć blok funkcjonalny FFT z generacją wykresu?
Dodając coś o co mi chodzi, to jest taki dokument: ftp://ftp.ni.com/pub/devzone/LabVIEW_Sp ... torial.pdf, ale dotyczy chyba znacznie starszej wersji LV od mojej :/.
Próbuję zrobić transformację FFT do wizualizacji rozkładu mocy widma dźwiękowego (wykres mocy sygnału w funkcji jej częstotliwości) przy użyciu różnych bloczków FFT (jest ich kilka w LV2010), jednakże finalnie nie otrzymuję spodziewanego rezultatu :S. Wspieram się przykładowym VIem "FFT and Inverse FFT" (w załączniku), ale u mnie coś nie idzie tak jak powinno - wykres szaleje... Mój VI też dołączyłem do załączników. Jak poprawnie utworzyć blok funkcjonalny FFT z generacją wykresu?
Dodając coś o co mi chodzi, to jest taki dokument: ftp://ftp.ni.com/pub/devzone/LabVIEW_Sp ... torial.pdf, ale dotyczy chyba znacznie starszej wersji LV od mojej :/.
- Załączniki
-
- RS232.vi
- mój VI
- (63.89 KiB) Pobrany 309 razy
-
- FFT and Inverse FFT.vi
- FFT and Inverse FFT
- (48.2 KiB) Pobrany 356 razy
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Transformacja FFT
Z analizy Twojego VI wynika, że raczej nie pracujesz na systemie czasu rzeczywistego, więc wytłumacz mi dlaczego umieściłeś go w dziale LabVIEW Real-Time?
Temat został przeniesiony, ale na przyszłość polecam pomyśleć chwilę nad odpowiednim działem, zanim stworzysz nowy temat.
Temat został przeniesiony, ale na przyszłość polecam pomyśleć chwilę nad odpowiednim działem, zanim stworzysz nowy temat.
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Transformacja FFT
Trochę więcej szczegółów?teslabox pisze:wykres szaleje...
Ustawienia domyślne w FFT and Inverse FFT.vi, który załączyłeś, są: częstotliwość sygnału 25k, częstotliwość próbkowania 48k, czyli niespełnione twierdzenie Nyquista. O to szaleństwo chodzi?
Re: Transformacja FFT
W skrócie: taką analizę
potrzebuję zastosować do swojego VIa.-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Transformacja FFT
To nic nie wnosi, bo nadal nie wiem, gdzie leży problem. Pokaż, co konkretnie nie działa.
Re: Transformacja FFT
Ok, skupię się nad meritum. Do bloczka "Auto Power Spectrum VI" musi zostać podany sygnał w domenie czasu. W moim VIu mam po prostu kolejne próbki (wartości liczbowe), które tak na marginesie wyświetlane są na wykresie Amplituda vs. Czas. Jak mogę zrobić, aby mój sygnał (po prostu kolejne próbki) występowały w domenie czasu, tak aby można było taki sygnał podpiąć do bloczka "Auto Power Spectrum VI"? To jest aktualnie główny mój problem (może nie jedyny, ale na razie mniejsza o to...).
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Transformacja FFT
W palecie Signal Processing masz bloczki Point by Point. Jest tam też "Auto Power Spectrum VI PtByPt.vi" i jeśli dobrze Cię zrozumiałem, to rozwiązuje problem.
Re: Transformacja FFT
Efekt jest dziwny.. 0_o:
Wykres powinien wskazywać przynajmniej okolice 10 Hz...?
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Transformacja FFT
Podpowiedź:
"Auto Power Spectrum VI PtByPt.vi".dt is the sample period of the time-domain signal, usually in seconds. Set dt to 1/fs, where fs is the sampling frequency of the time-domain signal. The default is 1.
Re: Transformacja FFT
Dzięki z podpowiedź PiDi.
Wymieniłem poprzedni bloczek na bloczek "Auto Power Spectrum VI PtByPt.vi" i ustawiłem wartość dt=0,0005 s (5 ms) i sample lenght (długość próbki)=20, co w rezultacie dało częstotliwość próbkowania fs=100 Hz. Zatem stosunek częstotliwości próbkowania fs do częstotliwości mierzonego sygnału sinusoidalnego fsygn. wynosi fs/fsygn.=100/20 = 5 razy i fsygn.<2*fs (twiwerdzenie Nyquista). Niestety coś dalej jest nie tak jak powinno, ponieważ otrzymuję taki wykres:
Wymieniłem poprzedni bloczek na bloczek "Auto Power Spectrum VI PtByPt.vi" i ustawiłem wartość dt=0,0005 s (5 ms) i sample lenght (długość próbki)=20, co w rezultacie dało częstotliwość próbkowania fs=100 Hz. Zatem stosunek częstotliwości próbkowania fs do częstotliwości mierzonego sygnału sinusoidalnego fsygn. wynosi fs/fsygn.=100/20 = 5 razy i fsygn.<2*fs (twiwerdzenie Nyquista). Niestety coś dalej jest nie tak jak powinno, ponieważ otrzymuję taki wykres:
- Załączniki
-
- RS232.vi
- (61.79 KiB) Pobrany 276 razy
-
- Posty: 15
- Rejestracja: 17 mar 2009 19:50
- Wersja środowiska: LabVIEW 2010
- Kontakt:
Re: Transformacja FFT
Jak ja liczyłem widmo mocy z sygnału czasowego (nagranego w pliku), to mi bardzo dobrze działało z palety Signal Processing -> Waveform Measurements -> FFT Power Spectrum and PSD.vi . Sprawdź, czy coś pomaga, jak nie, to trzeba się będzie na poważnie zastanowić nad próbkownaniem, oknami, liczbą próbek itd.
CLAD + fotonika (czujniki światłowodowe)
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Transformacja FFT
Jak?? dt = 0.005 (czyli 5 ms) to jest 200 Hz... Czy Ty w ogóle jesteś pewien, z jaką częstotliwością masz spróbkowany ten sygnał?teslabox pisze:Dzięki z podpowiedź PiDi.
Wymieniłem poprzedni bloczek na bloczek "Auto Power Spectrum VI PtByPt.vi" i ustawiłem wartość dt=0,0005 s (5 ms) i sample lenght (długość próbki)=20, co w rezultacie dało częstotliwość próbkowania fs=100 Hz. Zatem stosunek częstotliwości próbkowania fs do częstotliwości mierzonego sygnału sinusoidalnego fsygn. wynosi fs/fsygn.=100/20 = 5 razy i fsygn.<2*fs (twiwerdzenie Nyquista).
Re: Transformacja FFT
Witam po przerwie!
Udało mi się zrobić rozkład widma sygnału RMS i jego analizę FFT. Mam tylko problem jak najprościej odfiltrować składowa stałą sygnału do analizy FFT, tak aby na wykresie nie był pokazywany prążek nr 0 czy tam nr 1 o bardzo dużej amplitudzie, bo zaciemnia to wykres i właściwe prążki?
Poza tym, czy dobrze myślę: w analizie FFT niezerowy prążek nr 15 oznacza, że:?
Natomiast jak to ma się w obliczeniach RMS, skoro prążek nr 150 jest nie zerowy, to jak oblicza się jego częstotliwość (bo "na chłopski rozum"to pomnożyć przez 2)?
Coś się dzieje dziwnego jeszcze, że od próbki nr 2560 do 2816 (256 próbek) program podaje zawsze wartość próbki nr 2560, co widać na zdjęciu ekranu z programem do wizualizacji napięcia (program w LabVIEW) - "schodek". Czy to może być spowodowane? W załączniku przesyłam swojego VI.
Udało mi się zrobić rozkład widma sygnału RMS i jego analizę FFT. Mam tylko problem jak najprościej odfiltrować składowa stałą sygnału do analizy FFT, tak aby na wykresie nie był pokazywany prążek nr 0 czy tam nr 1 o bardzo dużej amplitudzie, bo zaciemnia to wykres i właściwe prążki?
Poza tym, czy dobrze myślę: w analizie FFT niezerowy prążek nr 15 oznacza, że:
Kod: Zaznacz cały
fm=(m*fs)/(N/2),
gdzie:
fm-częstotliwość prążka nr m [Hz]
m - numer niezerowego prążka
fs - częstotliwość próbkowania [Hz]
N - liczba próbek
i fs = 1/(N*tsa),
gdzie:
fs - częstotliwość próbkowania [Hz]
N - liczba próbek
tsa - czas próbkowania [s]
Natomiast jak to ma się w obliczeniach RMS, skoro prążek nr 150 jest nie zerowy, to jak oblicza się jego częstotliwość (bo "na chłopski rozum"to pomnożyć przez 2)?
fs = 10 kHzPiDi pisze:z jaką częstotliwością masz spróbkowany ten sygnał?
Coś się dzieje dziwnego jeszcze, że od próbki nr 2560 do 2816 (256 próbek) program podaje zawsze wartość próbki nr 2560, co widać na zdjęciu ekranu z programem do wizualizacji napięcia (program w LabVIEW) - "schodek". Czy to może być spowodowane? W załączniku przesyłam swojego VI.
- Załączniki
-
- RS232.vi
- (64.17 KiB) Pobrany 309 razy