-
1. Data: 2010-10-25 14:17:23
Temat: FFT na układzie FPGA
Od: pbartosz <b...@g...com>
Próbuję zrozumieć istotę działania transformaty Fouriera w oparciu o
stronę
http://vitecvitec.webpark.pl/simple_fft/simple_fft.h
tm
i mam kilka wątpliwości.
Proszę szanownych kolegów o wyjaśnienie.
1. Zakładamy, że każdą funkcję sygnału s(t) można przedstawić jako
nieskończoną sumę funkcji sinus o różnych(!) częstotliwościach,
określonych fazach i amplitudach?
(Przykładowo funkcję powstałą jako suma funkcji sinus o takich samych
częstotliwościach, ale różnych amplitudach i fazach także można
rozłożyć w powyższy sposób.)
2. W transformacie Fouriera bierzemy tylko N z tego nieskończonego
zbioru funkcji sinus o różnych częstotliwościach, więc suma wybranych
N funkcji nie jest dokładnie funkcją s(t), ale przybliża ją.
3. Jak mam czytać drugi wykres na stronie
http://dict.comm.pl/wst_g/Transformacja%20Fouriera.d
oc ,
skoro transformata Fouriera zwraca zbiór N liczb zespolonych (moduł i
przesunięcie fazowe)? Czy oś pionowa oznacza moduł (amplitudę) dla
funkcji sinus o częstotliwościach na osi poziomej?
4. Dostałem do zaimplementowania algorytm FFT na płytce Altery z
układem FPGA.
Rozumiem, że mam wprowadzać i wyprowadzać dane np. przez złącze USB
obecne na płytce.
-
2. Data: 2010-10-25 15:00:10
Temat: Re: FFT na układzie FPGA
Od: Jacek Radzikowski <j...@s...die.die.die.piranet.org>
On 10/25/2010 10:17 AM, pbartosz wrote:
> 1. Zakładamy, że każdą funkcję sygnału s(t) można przedstawić jako
> nieskończoną sumę funkcji sinus o różnych(!) częstotliwościach,
> określonych fazach i amplitudach?
To zależy od przebiegu. Jeśli przebieg jest okresowy, tych różnych
częstotliwości będzie skończona liczba. Dla przebiegów nieokresowych i
ciągłych (jak np. jeden impuls), widmo częstotliwościowe będzie ciągłe i
nieskończone.
> (Przykładowo funkcję powstałą jako suma funkcji sinus o takich samych
> częstotliwościach, ale różnych amplitudach i fazach także można
> rozłożyć w powyższy sposób.)
Suma przebiegów sinusoidalnych o tej samej częstotliwości a różnych
fazach i amplitudach będzie w dalszym ciągu przebiegiem sinusoidalnym o
częstotliwości takiej samej jak przebiegi składowe.
> 2. W transformacie Fouriera bierzemy tylko N z tego nieskończonego
> zbioru funkcji sinus o różnych częstotliwościach, więc suma wybranych
> N funkcji nie jest dokładnie funkcją s(t), ale przybliża ją.
Tak się robi zakładając okresową i dyskretną postać przetwarzanego
przebiegu. Okresowość w dziedzinie czasu po transformacie Fouriera
przekłada się na okresowość w dziedzinie częstotliwości, dyskretyzacja w
dziedzinie czasu przekłada się na dyskretyzacje w dziedzinie częstotliwości.
Jeśli transformacie poddamy wycinek przebiegu nieokresowego, którego nie
da się gładko "zapętlić" w dziedzinie czasu, dyskretny i skończony
fourier nie da dokładnego odwzorowania. Po policzeniu DFT z takiego
przebiegu mogą się pojawić w widmie "prążki" na częstotliwościach,
których nie ma w oryginalnym przebiegu. Po policzeniu IDFT z takiego DFT
otrzymamy przebieg, który będzie w pewnym stopniu aproksymować przebieg
wejściowy, ale będzie miał właściwości okresowe.
Aby się pozbyć takich niespodzianek nieokresowy przebieg wejściowy mnoży
się przez funkcje "okna", wygładzające miejsce zapętlenia.
Najprostsza taką funkcją jest funkcja prostokątna, która jest niczym
innym jak pobraniem "wycinka" ograniczonego brzegami okna i dodaniem
założenia o okresowości tego, co się w nim mieści.
Takich funkcji jest więcej, żadna nie pozwala na dokładne odwzorowanie
nieokresowego przebiegu wejściowego, ale każda ma określone właściwości,
które są użyteczne w pewnych zastosowaniach.
> 3. Jak mam czytać drugi wykres na stronie
> http://dict.comm.pl/wst_g/Transformacja%20Fouriera.d
oc ,
> skoro transformata Fouriera zwraca zbiór N liczb zespolonych (moduł i
> przesunięcie fazowe)? Czy oś pionowa oznacza moduł (amplitudę) dla
> funkcji sinus o częstotliwościach na osi poziomej?
Zamiast rysunków widzę czarne kwadraty :/
> 4. Dostałem do zaimplementowania algorytm FFT na płytce Altery z
> układem FPGA.
> Rozumiem, że mam wprowadzać i wyprowadzać dane np. przez złącze USB
> obecne na płytce.
Zapytaj wykładowcy. Ale tak pewnie będzie najwygodniej.
pzdr.
j.
-
3. Data: 2010-10-25 15:08:44
Temat: Re: FFT na układzie FPGA
Od: J.F. <j...@p...onet.pl>
On Mon, 25 Oct 2010 07:17:23 -0700 (PDT), pbartosz wrote:
>Próbuję zrozumieć istotę działania transformaty Fouriera w oparciu o
>http://vitecvitec.webpark.pl/simple_fft/simple_fft.
htm
>i mam kilka wątpliwości.
>Proszę szanownych kolegów o wyjaśnienie.
>
>1. Zakładamy, że każdą funkcję sygnału s(t) można przedstawić jako
>nieskończoną sumę funkcji sinus o różnych(!) częstotliwościach,
>określonych fazach i amplitudach?
Sa trzy transformaty Fouriera:
1) calkowa - gdzie prawie dowolna funkcje s(t) mozemy przedstawic jako
calke sin/cos o roznych czestotliwosciach. Czyli nie tylko
nieskonczone czestotliwosci, ale i nieskonczenie gesto.
A i to z zastrzezeniami co do zbieznosci.
2) "zwykla", gdzie prawie dowolna funkcje OKRESOWA s(t) mozemy
przedstawic jako SUME sinusoid o roznych czestotliwosciach, bedacych
wielokrotnosciami okresu. Suma w ogolnosci nieskonczona.
>2. W transformacie Fouriera bierzemy tylko N z tego nieskończonego
>zbioru funkcji sinus o różnych częstotliwościach, więc suma wybranych
>N funkcji nie jest dokładnie funkcją s(t), ale przybliża ją.
moze byc dokladna, o ile funkcja s(t) spelnia dodatkowe warunki .. tzn
nie zawiera wyzszych skladowych czestotliwosciowych :-)
Jak jeszcze do obliczen uzyjemy probek funkcji s(t), to to jest
odmiana trzecia - Dyskretna transformata Fouriera (DFT).
A FFT to szybki algorytm obliczania DFT.
>3. Jak mam czytać drugi wykres na stronie
>http://dict.comm.pl/wst_g/Transformacja%20Fouriera.
doc ,
>skoro transformata Fouriera zwraca zbiór N liczb zespolonych (moduł i
>przesunięcie fazowe)? Czy oś pionowa oznacza moduł (amplitudę) dla
>funkcji sinus o częstotliwościach na osi poziomej?
Nie widze wykresu, ale pewnie tak.
Zamiast sinusoid o roznej fazie uzywa sie czesto sinusa plus cosinusa,
z ktorych mozna zlozyc dowolnie przesunieta sinusoide.
A zamiast sin i cos uzywa sie e^(i*n*w*t) - ktory jest rowny
cos(n*w*t)+i*sin(n*w*t).
Dobierajac odpowiednio amplitudy e^(i*n*w*t) i e^(i*-n*w*t)
mozna otrzymac tez rzeczywiste sinusoidy.
>4. Dostałem do zaimplementowania algorytm FFT na płytce Altery z
>układem FPGA.
>Rozumiem, że mam wprowadzać i wyprowadzać dane np. przez złącze USB
>obecne na płytce.
Co masz rozumiec to musisz uzgodnic z zadajacym :-)
J.
-
4. Data: 2010-11-10 13:04:34
Temat: Re: FFT na układzie FPGA
Od: pbartosz <b...@g...com>
Dziękuję za wyczerpujące odpowiedzi.
Mam jeszcze problem ze zrozumieniem istoty szybkości algorytmu FFT.
Moje wątpliwości opisałem tutaj:
http://matematyka.pl/219308.htm
Proszę o wytłumaczenie, najlepiej w odniesieniu do przykładu dla n=8.
-
5. Data: 2010-11-10 22:44:46
Temat: Re: FFT na uk³adzie FPGA
Od: "MH" <l...@o...pl>
[ciach]
Myślę , że fajnie wyjaśnił Ci to J.F. I znów moje "3 grosze".. Jeżeli używasz
core'a Altery , bądź Xilinxa , to zwróć uwagę na fakt (napisano WYRAŹNIE w
dokumentacji) , iż nie jest to tak do końca FFT w czasie rzeczywistym. Jeżeli
robisz "n-punktową" FFT , to najpierw musisz "zassać" te n-próbek , następnie po
iluś tam cyknięciach zegarka (szczegóły doczytaj w dokumentacji) , obliczenia są
gotowe i "wypluwane" na kolejnych cyknięciach zegarka. Nie jest to więc
rozwiązanie działające tak naprawdę w czasie rzeczywistym. Czy da się to zrobić
w czasie rzeczywistym ?? Tak , ale zapomnij o darmowych core'ach , wtedy
faktycznie cały model matematyczny musisz wydziargać po swojemu , a co za tym
idzie musisz zrozumieć ten bajzel od A-Z. Jeżeli dokonujesz analizy fali ciągłej
, śmiało demodulację możesz robić na darmowych core'ach. Jeżeli chodzi Ci o
impulsowy Doppler (Radar pogodowo-wietrzny/ultrasonograf Dopplerowski(przepływy
krwi)) , to faktycznie musisz zrozumieć model matematyczny i stosownie do
potrzeb zaimplementować w logikę to całe siano cyfrowe. W zależności od problemu
, należy sobie zadać pytanie , co chcemy uzyskać ?? Jeżeli na wejściu mamy
sygnał analogowy , a naszym zadaniem jest pokazanie jego charakterystyki
amplituda/częstotliwość , to dokonaj wstępnej banalnie prostej analizy w jakim
przedziale modulacji częstotliwościowej się poruszamy... Ot takie tam sobie
propozycje fizyka przekwalifikowanego na elektronika.. Jak co , pytaj dalej..
Powodzenia ,
MH
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl