eGospodarka.pl
eGospodarka.pl poleca

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

  • 1. Data: 2009-08-09 10:34:35
    Temat: cyfrowa obróbka sygnału
    Od: Paweł <p...@n...pl>

    Witam !

    Do wejścia ADC został doprowadzony sygnał analogowy o paśmie około
    100-5000Hz. Co pewien czas w sygnale pojawia się wyraźnie dominująca
    składowa o częstotliwości od 200 do 4000Hz. Poza nią jest trochę szumu i
    zakłóceń harmonicznych. Ten dominujący sygnał trwa min. 0.2 sek. Zwykle
    około 1 sek. W tym czasie jego amplituda może się zmienić nawet 10 razy.
    Częstotliwość trochę się zmienia ale w zakresie 0.2 sek. w praktyce
    można uznać ją za stałą.

    W jaki sposób programowo wykryć pojawienie się tego dominującego sygnału
    i określić jego częstotliwość z dokładnością około 1% ?

    Paweł



  • 2. Data: 2009-08-09 10:41:42
    Temat: Re: cyfrowa obróbka sygnału
    Od: "identyfikator: 20040501" <N...@o...eu>

    > W jaki sposób programowo wykryć pojawienie się tego dominującego sygnału i
    > określić jego częstotliwość z dokładnością około 1% ?

    ponoć najlepszym w tym wypadku byłby filtr adaptacyjny...


  • 3. Data: 2009-08-09 10:57:02
    Temat: Re: cyfrowa obróbkasygnału
    Od: "MH" <l...@o...pl>

    > Witam !
    >
    > Do wejścia ADC został doprowadzony sygnał analogowy o paśmie około
    > 100-5000Hz. Co pewien czas w sygnale pojawia się wyraźnie dominująca
    > składowa o częstotliwości od 200 do 4000Hz. Poza nią jest trochę szumu i
    > zakłóceń harmonicznych. Ten dominujący sygnał trwa min. 0.2 sek. Zwykle
    > około 1 sek. W tym czasie jego amplituda może się zmienić nawet 10 razy.
    > Częstotliwość trochę się zmienia ale w zakresie 0.2 sek. w praktyce
    > można uznać ją za stałą.
    >
    > W jaki sposób programowo wykryć pojawienie się tego dominującego sygnału
    > i określić jego częstotliwość z dokładnością około 1% ?
    >
    FFT

    --
    Wysłano z serwisu OnetNiusy: http://niusy.onet.pl


  • 4. Data: 2009-08-09 11:32:21
    Temat: Re: cyfrowa obróbka sygnału
    Od: "identyfikator: 20040501" <N...@o...eu>

    > ponoć najlepszym w tym wypadku byłby filtr adaptacyjny...

    aj sory, częstotliwość jest nieznana, to nie.


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

    > Do wejścia ADC został doprowadzony sygnał analogowy o paśmie około
    > 100-5000Hz. Co pewien czas w sygnale pojawia się wyraźnie dominująca
    > składowa o częstotliwości od 200 do 4000Hz. Poza nią jest trochę szumu i
    > zakłóceń harmonicznych. Ten dominujący sygnał trwa min. 0.2 sek. Zwykle
    > około 1 sek. W tym czasie jego amplituda może się zmienić nawet 10 razy.
    > Częstotliwość trochę się zmienia ale w zakresie 0.2 sek. w praktyce
    > można uznać ją za stałą.
    >
    > W jaki sposób programowo wykryć pojawienie się tego dominującego sygnału
    > i określić jego częstotliwość z dokładnością około 1% ?

    Zależy na ile ta składowa jest "dominująca".. zakładam, że wybija się
    znacznie ponad tło... wówczas robisz to tak... podajesz sygnał, przez
    dobry filtr AA. Próbkujesz go 20kHz i z każdej paczki po 0,1s liczysz
    FFT. Mierzysz średni poziom sygnału w zakresie 200-4000Hz. Jeśli jakaś
    próbka przekracza ZNACZNIE poziom średni (żeby ustalić ten próg trzeba
    znać widmo przebiegu bez sygnału i z sygnałem) to przyjmujesz, że to
    jest Twój sygnał... przy danych jak wcześniej FFT liczone jest z 2000
    próbek, czyli masz rozdzielczość na poziomie 10Hz... czyli dla 4kHz masz
    mały bład, ale dla 200Hz jest to aż 5% błędu... jeśli to zły wynik -
    musisz zwiększyć częstotliwość próbkowania lub zwiększyć okno czasowe...
    ale jego zwiększenie może spowodować, że nie zauważysz sygnału
    (pamiętaj, że jest on wysyłany asynchronicznie, więc może przyjść w
    połowie Twojego okna)....

    Pozdrawiam
    Konop


  • 6. Data: 2009-08-09 13:52:31
    Temat: Re: cyfrowa obróbka sygnału
    Od: Paweł <p...@n...pl>


    > Zależy na ile ta składowa jest "dominująca".. zakładam, że wybija się
    > znacznie ponad tło... wówczas robisz to tak... podajesz sygnał, przez
    > dobry filtr AA. Próbkujesz go 20kHz i z każdej paczki po 0,1s liczysz
    > FFT. Mierzysz średni poziom sygnału w zakresie 200-4000Hz. Jeśli jakaś
    > próbka przekracza ZNACZNIE poziom średni (żeby ustalić ten próg trzeba
    > znać widmo przebiegu bez sygnału i z sygnałem) to przyjmujesz, że to
    > jest Twój sygnał... przy danych jak wcześniej FFT liczone jest z 2000
    > próbek, czyli masz rozdzielczość na poziomie 10Hz... czyli dla 4kHz masz
    > mały bład, ale dla 200Hz jest to aż 5% błędu... jeśli to zły wynik -
    > musisz zwiększyć częstotliwość próbkowania lub zwiększyć okno czasowe...
    > ale jego zwiększenie może spowodować, że nie zauważysz sygnału
    > (pamiętaj, że jest on wysyłany asynchronicznie, więc może przyjść w
    > połowie Twojego okna)....

    Tak chciałem to zrobić. Wykonałem nawet kilka doświadczeń. Jednak jak
    FFT jest liczone dla malej ilości próbek np. dla 200 to trudno wykryć
    ten właściwy sygnał. Zwiększenie ilości punktów np. do 2000 daje bardzo
    dobre rezultaty ale wymaga znacznego zwiększenia ilości częstotliwości
    dla których jest liczone FFT. W praktyce na tanim ARMie mogę to zrobić w
    czasie rzeczywistym tylko dla 40-50 częstotliwości. Aby wykonać to z
    rozdzielczością 10Hz potrzebny jest min. 10x szybszy procesor. Tego
    jednak chcę uniknąć. Szukam więc jakiegoś prostszego algorytmu.

    Paweł


  • 7. Data: 2009-08-09 21:11:56
    Temat: Re: cyfrowa obróbka sygnału
    Od: Konop <k...@g...pl>

    > Tak chciałem to zrobić. Wykonałem nawet kilka doświadczeń. Jednak jak
    > FFT jest liczone dla malej ilości próbek np. dla 200 to trudno wykryć
    > ten właściwy sygnał. Zwiększenie ilości punktów np. do 2000 daje bardzo
    > dobre rezultaty ale wymaga znacznego zwiększenia ilości częstotliwości
    > dla których jest liczone FFT. W praktyce na tanim ARMie mogę to zrobić w
    > czasie rzeczywistym tylko dla 40-50 częstotliwości. Aby wykonać to z
    > rozdzielczością 10Hz potrzebny jest min. 10x szybszy procesor. Tego
    > jednak chcę uniknąć. Szukam więc jakiegoś prostszego algorytmu.

    Dla 2000 czy dla 2048?? :)... Bo to mała różnica, algorytm FFT jest
    optymalny dla ilości próbek równych 2^k ;)... Swoją drogą - nie
    implementowałem takiego FFT nigdy.. ale wydaje mi się, że ARM powinien
    sobie z tym poradzić ;)... na ile go puszczasz?? 60MHz, 70?? i z jakiej
    biblioteki FFT korzystasz?? czy proc robi coś w tle, czy może 100%
    swoich możliwości przekazać na te obliczenia??

    Pozdrawiam
    Konop


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


    > Dla 2000 czy dla 2048?? :)... Bo to mała różnica, algorytm FFT jest
    > optymalny dla ilości próbek równych 2^k ;)

    Dla mojego algorytmu jest to bez znaczenia. Szuka się największego
    prążka a nie dokładnej amplitudy. Dla obliczenia amplitudy trzeba
    wykonać jeszcze dzielenie przez ilość próbek. Dla 2048 można zastąpić je
    przesunięciem co jest szybsze.

    ... Swoją drogą - nie
    > implementowałem takiego FFT nigdy.. ale wydaje mi się, że ARM powinien
    > sobie z tym poradzić ;)... na ile go puszczasz?? 60MHz, 70?? i z jakiej
    > biblioteki FFT korzystasz?? czy proc robi coś w tle, czy może 100%
    > swoich możliwości przekazać na te obliczenia??

    FFT sam sobie napisałem w ASM. W praktyce dla 50MHz ARMa w czasie
    1/16000 sek. (co tyle są pobierane próbki z ADC) można wykonać
    obliczenia tylko dla 40-50 częstotliwości.

    Paweł


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

    Paweł wrote:

    >> Dla 2000 czy dla 2048?? :)... Bo to mała różnica, algorytm FFT jest
    >> optymalny dla ilości próbek równych 2^k ;)
    >
    > Dla mojego algorytmu jest to bez znaczenia. Szuka się największego
    > prążka a nie dokładnej amplitudy. Dla obliczenia amplitudy trzeba
    > wykonać jeszcze dzielenie przez ilość próbek. Dla 2048 można zastąpić je
    > przesunięciem co jest szybsze.

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

    > ... Swoją drogą - nie
    >> implementowałem takiego FFT nigdy.. ale wydaje mi się, że ARM powinien
    >> sobie z tym poradzić ;)... na ile go puszczasz?? 60MHz, 70?? i z jakiej
    >> biblioteki FFT korzystasz?? czy proc robi coś w tle, czy może 100%
    >> swoich możliwości przekazać na te obliczenia??
    >
    > FFT sam sobie napisałem w ASM. W praktyce dla 50MHz ARMa w czasie
    > 1/16000 sek. (co tyle są pobierane próbki z ADC) można wykonać
    > obliczenia tylko dla 40-50 częstotliwości.

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


    --
    pgw


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

    Konop wrote:

    > Zależy na ile ta składowa jest "dominująca".. zakładam, że wybija się
    > znacznie ponad tło... wówczas robisz to tak... podajesz sygnał, przez
    > dobry filtr AA. Próbkujesz go 20kHz i z każdej paczki po 0,1s liczysz
    > FFT. Mierzysz średni poziom sygnału w zakresie 200-4000Hz. Jeśli jakaś
    > próbka przekracza ZNACZNIE poziom średni (żeby ustalić ten próg trzeba
    > znać widmo przebiegu bez sygnału i z sygnałem) to przyjmujesz, że to
    > jest Twój sygnał... przy danych jak wcześniej FFT liczone jest z 2000
    > próbek, czyli masz rozdzielczość na poziomie 10Hz... czyli dla 4kHz masz
    > mały bład, ale dla 200Hz jest to aż 5% błędu...

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

    > jeśli to zły wynik -
    > musisz zwiększyć częstotliwość próbkowania lub zwiększyć okno czasowe...

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


    --
    pgw

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: