l153k Napisano Styczeń 11, 2015 Udostępnij Napisano Styczeń 11, 2015 Witam,próbuję od jakiegoś czasu zaprogramować filtr dolnoprzepustowy FIR, ale tak żeby miał jak najmniejsze opóźnienie. Do tej pory wygenerowałem ich całą masę, ale wszystkie dawały sygnał wyjściowy opóźniony o połowę ilości próbek jakie filtr brał do obliczeń. Ale widzę że tu ktoś zrobił filtr FIR o długości 250, a mimo to jego wartość jest baaardzo aktualna: http://intelligenttradingtech.blogspot.com/2010/05/is-it-possible-to-get-causal-smoothed.html co dowodzi, że taki filtr jest wykonalny. Chciałbym się tylko dowiedzieć: jak taki filtr wygenerować? Dziękuję za wszystkie odpowiedzi pozdrawiam Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Styczeń 11, 2015 Udostępnij Styczeń 11, 2015 Na jakim sprzęcie próbujesz zrealizować filtr? Link do komentarza Share on other sites More sharing options...
l153k Styczeń 11, 2015 Autor tematu Udostępnij Styczeń 11, 2015 Na razie na laptopie, a ostatecznie na BananaPi - czyli też na komputerze (linux, itd.). Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 11, 2015 Udostępnij Styczeń 11, 2015 Przede wszystkim napisz do czego to potrzebujesz. Filtry splotowe (a FIR taki jest) z definicji robią splot sygnału z odpowiedzią impulsową a to daje stałe opóźnienie równe przyjętej długości odpowiedzi. FIR okienkowane funkcją sinc robią wrażenie, że opóźnienie jest równe połowie liczby współczynników ale to tylko dlatego, że największe współczynniki znajdują się w środku odpowiedzi impulsowej. Nic tu nie ugrasz, jeżeli filtr ma być przyczynowy (causal) może bazować jedynie na historii i jego odpowiedź częstotliwościowa ("jakość uśredniania" w przypadku filtra LP) jest zależna głównie od przyjętej długości odpowiedzi impulsowej - bo są one tożsame, tylko wyrażone w innej dziedzinie. Możesz tutaj coś ugrać poprzez podział odpowiedzi impulsowej na kilka podzbiorów i wykonywanie kilku równoległych splotów a potem sumowanie wyników, choć nie wiem, czy akurat ta metoda coś Ci da. Dużo mniejsze opóźnienia (1-2-3 próbki) mają filtry IIR a te bardzo dobrze liczą się na dużych maszynach wyposażonych z jednostki zmiennoprzecinkowe. Inna sprawa, że nie są dobre do wszystkiego. Zwykle, w systemach gdzie potrzebujesz szybkiej odpowiedzi a pomiary są obarczone dużymi szumami (np. w sterowaniach wielowirnikowcami) nie stosuje się filtrów FIR właśnie z uwagi na ich duże opóźnienia. Tam królują filtry predykcyjne, ale one muszą być wyposażone w mechanizm modelowania zjawiska. Czasem są to dwa współczynniki (np. filtr alfa-beta) a czasem niewielka macierz (Kalman). W pewnych zastosowaniach do filtrowania zakłóceń np. impulsowych bardzo dobrze nadają się filtry medianowe. Dlatego tak ważne jest byś napisał co chcesz zrobić, co to za dane i do czego chcesz wykorzystać wynik. Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »