Oblicz częstotliwość najwyższej amplitudy (fali)

0

Mam dane w postaci mnóstwa plików. Każdy plik wygląda tak (http://pastebin.com/raw.php?i=zQHskWNw):

Sekundy, volty
0**,** -0.4238353
2.476346E-08**,** -0.001119718
4.952693E-08**,** -0.006520569
7.429039E-08**,** -0.01192145
9.905386E-08**,** -0.01732233
(..)
4.516856E-05**,** -0.0002089292

I za zadanie mam: obliczyć częstotliwość najwyższej amplitudy fali z każdego pliku. Każda fala ma stałą częstotliwość.
A obliczoną częstotliwość wypisać do pliku a obok nazwę pliku.

Jak mając takie dane mogę obliczyć częstotliwość najwyższej amplitudy?

Domyślam się, że można to łatwo zrobić wrzucając te dane (które? Tylko sekundy albo volty?) na wykres i tam odszukać period? (Patrz na załącznik)

Dziwi mnie to, że mój program musi być konsolowy, tj. trzeba napisać kod który to sam zrobi, bez udziału grafiki.

0

lektura na dzisiaj transformata furiera.

0

Czym jest w transformacie Fouriera

real part and imaginary (inne źródła piszą: complex)
?
Tzn. mając moje dane sekundy i volty, co jest czym?
http://www.codeproject.com/Articles/9388/How-to-implement-the-FFT-algorithm - tutaj jest to opisane obszernie.

Let's start with an array of complex data. This array could be, for example, in this case, an array of floats in witch the data[even_index] is the real part and the data[odd_index] is the complex part. (This can be adapted to an array of real data, just by filling the complex values with 0s, or use the real array FFT implemented on the book.) The size of the array must be in an N2 order (2, 4, 8, 16, 32, 64, etc...). In case the sample doesn't match that size, just put it in an array with the next 2N size and fill the remaining spaces with 0s.

Ok, czyli mam float dane[];
dane[parzysta_liczba] to real part
dane[nieparzysta_liczba] to complex part. I dane[] musi mieć rozmiar potęgi n^2 czyli 2, 4, 8, .. , a w przeciwnym razie wypełnic zerami.

Moje pytanie brzmi: moje dane z pliku, sekundy i volty, to jakie dane w tej tablicy dane[]?
Tej informacji nigdzie nie potrafię wyszukać/wyczytać, nawet na angielskiej części internetu.

0

musisz poczytac o liczbach urojonych. imaginary numbers to inaczej po polsku to
https://pl.wikipedia.org/wiki/Liczby_urojone

0

Na wejściu: daruj sobie FFT dopóki nie zrozumiesz zwykłej transformaty, DFT i DTFT.

W skrócie: interesuje Cię postać wykładnicza liczby zespolonej, gdzie stosunek częsci urojonej do rzeczywistej definiuje przesunięcie fazowe danej harmonicznej a moduł amplitudę. W plikach masz dane spróbkowane także polecałbym konkretnie zapoznać się z dyskretną transformatą Fouriera, tak może być ciutkę prościej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1