eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikacyfrowa obróbka sygnału
Ilość wypowiedzi w tym wątku: 23

  • 11. Data: 2009-08-10 12:42:07
    Temat: Re: cyfrowa obróbka sygnału
    Od: Paweł <p...@n...pl>


    > Ciekawy jestem co to za algorytm zastosowales, ktoremu bez roznicy jest czy
    > to 2000 czy to 2048 probek, pytam bez sarkazmu z ciekawosci :)

    Oczywiście w FFT trzeba wykonać tym więcej operacji im więcej jest
    próbek danych. Ja jednak wykonuję FFT w czasie rzeczywistym (może lepiej
    powiedzieć sukcesywnie).
    Czyli co odczyt z ADC muszę zrobić obliczenia dla wszystkich
    częstotliwości ale tylko dla dwóch próbek. Dla aktualnej i dla
    opóźnionej. Czy ta opóźniona próbka jest o 100 czy o 4096 odczytów z ADC
    nie ma wpływu na czas obliczeń.

    > A po co liczysz FFT dla kazdej nowej probki? to Ci nic nie daje.

    Precyzyjniej należy powiedzieć, że mam wynik FFT co próbkę z ADC.
    Nie wpływa to na obciążenie uP a gwarantuje, że nie przegapię
    poszukiwanego sygnału.

    Paweł


  • 12. Data: 2009-08-10 15:43:58
    Temat: Re: cyfrowa obróbka sygnału
    Od: pgw <"SwietyMikolaj["@]poczta.onet.pl>

    Paweł wrote:

    >> Ciekawy jestem co to za algorytm zastosowales, ktoremu bez roznicy jest czy
    >> to 2000 czy to 2048 probek, pytam bez sarkazmu z ciekawosci :)
    >
    > Oczywiście w FFT trzeba wykonać tym więcej operacji im więcej jest
    > próbek danych. Ja jednak wykonuję FFT w czasie rzeczywistym (może lepiej
    > powiedzieć sukcesywnie).
    > Czyli co odczyt z ADC muszę zrobić obliczenia dla wszystkich
    > częstotliwości ale tylko dla dwóch próbek. Dla aktualnej i dla
    > opóźnionej.

    Przyznaje, ze nie rozumiem tego. Co to znaczy ze liczysz dla 2 probek i co
    to jest próbka opózniona?

    > Czy ta opóźniona próbka jest o 100 czy o 4096 odczytów z ADC
    > nie ma wpływu na czas obliczeń.
    >
    >> A po co liczysz FFT dla kazdej nowej probki? to Ci nic nie daje.
    >
    > Precyzyjniej należy powiedzieć, że mam wynik FFT co próbkę z ADC.
    > Nie wpływa to na obciążenie uP a gwarantuje, że nie przegapię
    > poszukiwanego sygnału.

    Jezeli co 62,5ns jestes wstanie policzyc FFT dla 50 próbek to w 11ms
    bedziesz wstanie policzyc FFT dla 4096 próbek. Czyli wynik FFT dostawalbys
    co okolo 180 próbka a nie co jedna. Rzeczywiste FFT nie koniecznie oznacza
    wynik co jedna próbka.
    Skoro sygnał który chcesz wyłapac trwa najkrócej 200ms to dostając wynik
    FFT co 11ms spewnościa go nie przegapisz.

    Przy czasie okna 256ms masz rodzielczość czestotliwościową FFT ok 4Hz czyli
    błąd 2Hz.

    --
    pgw


  • 13. Data: 2009-08-10 15:46:11
    Temat: Re: cyfrowa obróbka sygnału
    Od: Konop <k...@g...pl>

    > Rozdzielczosc 10Hz ale blad 5Hz - 2,5%

    Fakt, zgadam się, mój błąd!

    > Zwiekszenie czestotliwosci probkowania nie poprawi rozdzielczosci
    > częstotliwosciowej tylko zwiekszy pasmo, tu trzeba zwiekszyc okno do 0,25s

    Tu też się przyznaje do błędu i dziękuje za poprawienie mnie :)...

    Pozdrawiam
    Konop


  • 14. Data: 2009-08-10 15:49:05
    Temat: Re: cyfrowa obróbka sygnału
    Od: Konop <k...@g...pl>

    > Oczywiście w FFT trzeba wykonać tym więcej operacji im więcej jest
    > próbek danych. Ja jednak wykonuję FFT w czasie rzeczywistym (może lepiej
    > powiedzieć sukcesywnie).

    I tu jest błąd!! Algorytm FFT jest SZYBKI tylko i wyłącznie, jeśli masz
    ilość próbek równą 2^N!!!! Chyba, że Twój algorytm automatycznie
    uzupełnia analizowany ciąg zerami...

    > Czyli co odczyt z ADC muszę zrobić obliczenia dla wszystkich
    > częstotliwości ale tylko dla dwóch próbek. Dla aktualnej i dla
    > opóźnionej. Czy ta opóźniona próbka jest o 100 czy o 4096 odczytów z ADC
    > nie ma wpływu na czas obliczeń.

    To ja chyba nie wiem, jak się liczy FFT :P...

    > Precyzyjniej należy powiedzieć, że mam wynik FFT co próbkę z ADC.
    > Nie wpływa to na obciążenie uP a gwarantuje, że nie przegapię
    > poszukiwanego sygnału.

    Jeśli chcesz mi powiedzieć, że analizowanie tego FFT co próbkę nie
    zużywa więcej czasu procesora niż analizowanie co 0,1s, to OK :)...

    Pozdrawiam
    Konop


  • 15. Data: 2009-08-10 16:33:25
    Temat: Re: cyfrowa obróbka sygnału
    Od: Paweł <p...@n...pl>


    > Przyznaje, ze nie rozumiem tego. Co to znaczy ze liczysz dla 2 probek i co
    > to jest próbka opózniona?

    Próbka opóźniona oznacza wartość odczytaną z ADC np. 2000 odczytów
    wcześniej.

    Wykonuję obliczenia sukcesywnie. Zauważ, że znając wyniki FFT dla danego
    okienka próbek już łatwo obliczyć FFT dla okienka przesuniętego o jedną
    próbkę. Wymaga to tylko kilku prostych działań. Właśnie te obliczenia
    wykonuję po każdym odczycie z ADC. Do ich przeprowadzenia konieczna jest
    właśnie wartość danej próbki i próbki z drugiego końca okienka czyli
    opóźnionej.

    >
    >> Czy ta opóźniona próbka jest o 100 czy o 4096 odczytów z ADC
    >> nie ma wpływu na czas obliczeń.
    >>
    >>> A po co liczysz FFT dla kazdej nowej probki? to Ci nic nie daje.
    >> Precyzyjniej należy powiedzieć, że mam wynik FFT co próbkę z ADC.
    >> Nie wpływa to na obciążenie uP a gwarantuje, że nie przegapię
    >> poszukiwanego sygnału.
    >
    > Jezeli co 62,5ns jestes wstanie policzyc FFT dla 50 próbek to w 11ms
    > bedziesz wstanie policzyc FFT dla 4096 próbek. Czyli wynik FFT dostawalbys
    > co okolo 180 próbka a nie co jedna. Rzeczywiste FFT nie koniecznie oznacza
    > wynik co jedna próbka.
    > Skoro sygnał który chcesz wyłapac trwa najkrócej 200ms to dostając wynik
    > FFT co 11ms spewnościa go nie przegapisz.
    >
    > Przy czasie okna 256ms masz rodzielczość czestotliwościową FFT ok 4Hz czyli
    > błąd 2Hz.
    >

    W ciągu 62,5uS mogę policzyć FFT dla 2 próbek i 50 częstotliwości. Dla
    2048 próbek i 400 częstotliwości (co 10Hz) zajmie to już 0.5 sek.

    Paweł


  • 16. Data: 2009-08-10 17:02:39
    Temat: Re: cyfrowa obróbka sygnału
    Od: Paweł <p...@n...pl>


    >> Oczywiście w FFT trzeba wykonać tym więcej operacji im więcej jest
    >> próbek danych. Ja jednak wykonuję FFT w czasie rzeczywistym (może lepiej
    >> powiedzieć sukcesywnie).
    >
    > I tu jest błąd!! Algorytm FFT jest SZYBKI tylko i wyłącznie, jeśli masz
    > ilość próbek równą 2^N!!!! Chyba, że Twój algorytm automatycznie
    > uzupełnia analizowany ciąg zerami...

    Niestety już dano temu uczyłem się o transformacie Fouriera. Nie jest
    wykluczone, że to co robię nie jest to FFT tylko liczenie transformaty
    metodą "tradycyjną". Bardzo prosty algorytm ale wymaga wielu mnożeń.
    Chyba muszę się trochę doszkolić.

    Paweł


  • 17. Data: 2009-08-10 17:55:47
    Temat: Re: cyfrowa obróbka sygnału
    Od: pgw <"SwietyMikolaj["@]poczta.onet.pl>

    Paweł wrote:

    >> Przyznaje, ze nie rozumiem tego. Co to znaczy ze liczysz dla 2 probek i co
    >> to jest próbka opózniona?
    >
    > Próbka opóźniona oznacza wartość odczytaną z ADC np. 2000 odczytów
    > wcześniej.
    >
    > Wykonuję obliczenia sukcesywnie. Zauważ, że znając wyniki FFT dla danego
    > okienka próbek już łatwo obliczyć FFT dla okienka przesuniętego o jedną
    > próbkę. Wymaga to tylko kilku prostych działań.

    Nie slyszalem o czyms takim, mozesz podać jakieś zródla?

    --
    pgw


  • 18. Data: 2009-08-10 18:33:07
    Temat: Re: cyfrowa obróbka sygnału
    Od: J.F. <j...@p...onet.pl>

    On Mon, 10 Aug 2009 17:49:05 +0200, Konop wrote:
    >I tu jest błąd!! Algorytm FFT jest SZYBKI tylko i wyłącznie, jeśli masz
    >ilość próbek równą 2^N!!!!

    Niekoniecznie - sa algorytmy na inne ilosci, ale nie dowolne.


    J.



  • 19. Data: 2009-08-10 19:21:42
    Temat: Re: cyfrowa obróbka sygnału
    Od: Paweł <p...@n...pl>

    pgw pisze:
    > Paweł wrote:
    >
    >>> Przyznaje, ze nie rozumiem tego. Co to znaczy ze liczysz dla 2 probek i co
    >>> to jest próbka opózniona?
    >> Próbka opóźniona oznacza wartość odczytaną z ADC np. 2000 odczytów
    >> wcześniej.
    >>
    >> Wykonuję obliczenia sukcesywnie. Zauważ, że znając wyniki FFT dla danego
    >> okienka próbek już łatwo obliczyć FFT dla okienka przesuniętego o jedną
    >> próbkę. Wymaga to tylko kilku prostych działań.
    >
    > Nie slyszalem o czyms takim, mozesz podać jakieś zródla?
    >

    Opierałem się jedynie na tym co bardzo bardzo dawno temu się nauczyłem.
    Tak więc oczywiście mogłem popełnić jakieś podstawowe błędy i zrobić coś
    kompletnie bez sensu.

    Dla poszczególnych częstotliwości liczę coś takiego
    A=P1*Cos(k1)+P2*Cos(k2)+P3*Cos(k3)...+Pn*Con(n)
    B=P1*Sin(k1)+P2*Sin(k2)+P3*Sin(k3)...+Pn*Sin(n)

    gdzie:
    P0,P1,P2,P3... kolejne próbki z ADC
    n ilośc próbek dla jakiej przeprowadza się operacje
    Cos(k1),Sin(k1),Cos(k2),Sin(k2),Cos(k3)... stablicowane wartości funkcji
    Cos i Sin (różne dla różnych częstotliwości).
    Amplituda danej składowej jest proporcjonalna do SQR(A*A+B*B)

    Aby obliczyć A i B dla okienka przesuniętego jedną próbkę wystarczy
    policzyć:

    A0=A1+P0*Cos(k0)-Pn*Cos(n)
    B0=B1+P0*Sin(k0)-Pn*Sin(n)

    Tak więc liczę tylko coś takiego dla różnych częstotliwości po
    odczytaniu próbki z ADC.

    Dodatkowo liczę A*A+B*B aby porównać prążki i przeprowadzam operacje na
    wskaźnikach do tablicy Sin i Cos. Długości tych tablic są rożne dla
    różnych częstotliwości.

    Dla ARMa jest to łącznie tylko około 20-25 instrukcji w asm na jedną
    częstotliwość. Ma on instrukcję MLA mnożenia i jednoczesnego dodawania.
    Przy odpowiednio dobranych argumentach dla AT91SAM7S wykonuje się ona
    teoretycznie 2 cykle.

    Paweł


  • 20. Data: 2009-08-10 20:42:16
    Temat: Re: cyfrowa obróbka sygnału
    Od: Konop <k...@g...pl>

    > Niekoniecznie - sa algorytmy na inne ilosci, ale nie dowolne.

    Tak, wiem :). Nie zmienia to faktu, że najszybsze są FFT dla 2^N.. dla
    innych liczb (np. 3*2^N) można zrobić to też szybko (tzn. szybciej niż
    klasyczną transformatą ;), jednak ciut wolniej, prawda?? :)...

    Pozdrawiam
    Konop

strony : 1 . [ 2 ] . 3


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: