Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

FFT - zbieranie próbek z przetwornika ADC do bufora

slawek55 09 Sie 2012 11:55 1615 6
  • #1 09 Sie 2012 11:55
    slawek55
    Poziom 23  

    Cześć.
    Chciałem się Was zapytać o dość podstawową sprawę związaną z analizą FFT w uC.
    Jeśli przetwornikiem ADC zbieramy próbki to dlaczego nie robi się tego w sposób ciągły do bufora i nie deklaruje się go jako int Sample[N]tylko jako cplx Sample[N], gdzie clpx to struktura struct typedef{int Re; int Im} cplx
    Potem zbierając próbki do części Im wpisuje sie 0 a do Re wartość z przetwornika.
    Wg mnie to strata pamięci ale w prawie każdym programie spotkałem się z taką sytuacją.
    Taki pierwszy przykład z książki o LPC2000

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0 6
  • #2 09 Sie 2012 12:24
    Pawel2420
    Poziom 30  

    Tak to sobie autor wymyślił.
    Zapewne później są na tych danych przeprowadzane obliczenia a ich wyniki są zapisywane zarówno do Re jak i do Im.

    0
  • #3 09 Sie 2012 12:31
    farmerro
    Poziom 16  

    W pewnych obliczeniach Im będzie Ci potrzebne, np. i^2 = -1 co oznacza, że nie można tak sobie pominąć Im. Ale to są tylko moje przemyślenia... Mam poprawkę z FFT we wrześniu :)

    0
  • #4 09 Sie 2012 12:44
    slawek55
    Poziom 23  

    Tak są obliczenia na im i ja rozumiem że cplx potrzebne mi jest jako wynik bo funkcja przyjmuje dwa parametry Samples oraz FFtResult w postaci FFT(Samples,FFTResult);
    O ile rozumiem konieczność stosowania FFTResult jako cplx o tyle Samples jako cplx już niekoniecznie zwłaszcza ze podczas zbierania próbek przez ADC do Samples.Im są wpisywane zera.

    0
  • #5 09 Sie 2012 13:07
    Pawel2420
    Poziom 30  

    1. W komórkach mogą być przechowywane wyniki pośrednich obliczeń
    2. Autor używa gotowych procedur operujących na liczbach zespolonych i nie chce ich przerabiać.

    0
  • #6 09 Sie 2012 15:41
    slawek55
    Poziom 23  

    A masz może i możesz się podzielić prostym algorytmem obliczania FFT z metodą motylkową radix-2. Widziałem coś takiego gdzie nie było liczenia sin i cos tylko prosta tablica nazwana Wn z kilkoma (chyba 8) liczbami. Np z książki o LPC1100 coś takiego

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    0