resonator Napisano Kwiecień 2, 2018 Udostępnij Napisano Kwiecień 2, 2018 Witam Mój projekt odczytuje pewne dane i wyświetla je na wyświetlaczu. Natknąłem się na taki problem że odczyty są dość niestabilne, oscylują wokół tego co powinno być. Chciałbym to jakoś wygładzić aby na wyświetlaczu odczyt tak nie skakał. Nie mam doświadczenia w filtrach cyfrowych ale spróbowałem zastosować filtr alfa-beta, jednak przy zadowalającym wygładzeniu sygnału przeregulowanie było już zbyt duże. Nie interesuje mnie szybki czas reakcji na zmianę mogą to być 2-4 sekundy. Program działa w ten sposób, że odczytuje okres obrotu wału, zawiera się on w przedziale 0,1 - 2,5s (jednak zwykle nie jest to więcej niż 1s), a w przerwaniu ok. 10Hz mam przeliczanie okresu na prędkość i wysyłanie na wyświetlacz. I właśnie tutaj w przerwaniu po przeliczeniu chciałbym coś wstawić co sprawiło by że zmiany prędkości były by łagodniejsze. Nie mam znam się na filtracji wiec proszę o pomoc bardziej doświadczonych użytkowników. Wesołych świąt
Lukaszm Kwiecień 2, 2018 Udostępnij Kwiecień 2, 2018 Twój problem to w zasadzie typowe zagadnienie z przetwarzania sygnałów. Masz częstotliwość próbkowania 10Hz. Podstawową decyzją jest wybór typu filtru: nieskończona odpowiedź impulsowa (NOI/IIR) lub skończona odpowiedź impulsowa (SOI/FIR). Ogólnie to nie da się (wg mnie) streścić zagadnienia w jednym poście (są całe przedmioty na studiach, które są poświęcone DSP) - zakładając, że chcesz dobrze problem rozwiązać. (ze zrozumieniem). Mogę polecić Ci książkę 'Understanding Digital Signal Processing' (R. Lyons) - bardzo mi się podobała.
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ę »