czy jest jakaś przygotowana funkcja w pythonie, aby zastosować filtr (na przykład filtr Butterwortha) do danego sygnału? Szukam takiej funkcji w 'scipy.signal', ale nie znalazłem żadnych przydatnych funkcji więcej niż te z filtrem. faktycznie chcę, aby ta funkcja zawęziła filtr z sygnałem.Jak zastosować filtr do sygnału w pythonie
Odpowiedz
Tak! Istnieją dwa:
scipy.signal.filtfilt
scipy.signal.lfilter
Istnieją również sposoby splotu (convolve
i fftconvolve
), ale to nie są prawdopodobnie odpowiednie dla danego zastosowania, ponieważ wiąże filtrów IIR.
Pełna przykładowy kod:
b, a = scipy.signal.butter(N, Wn, 'low')
output_signal = scipy.signal.filtfilt(b, a, input_signal)
można przeczytać więcej na temat argumentów i wykorzystanie zawartych w dokumentacji. Jednym z nich jest to, że Wn
jest ułamkiem częstotliwości Nyquista (połowa częstotliwości próbkowania). Jeśli więc częstotliwość próbkowania wynosi 1000 Hz, a chcesz uzyskać wartość graniczną 250 Hz, powinieneś użyć Wn=0.5
.
Nawiasem mówiąc, bardzo polecam korzystanie z filtfilt
przez lfilter
(która jest nazywana po prostu filter
w Matlab) dla większości aplikacji. Ponieważ documentation określa:
Ta funkcja stosuje filtr liniowy dwa razy, raz do przodu i raz do tyłu. Połączony filtr ma fazę liniową.
Co oznacza, że każda wartość wyjścia jest funkcją zarówno "przeszłych" i "przyszłych" punktów w danych wejściowych jednakowo. Dlatego nie będzie on w tyle na wejściu.
W przeciwieństwie do tego, lfilter
używa tylko "przeszłych" wartości wejścia. To nieuchronnie wprowadza opóźnienie czasowe, które będzie zależeć od częstotliwości. Oczywiście jest kilka aplikacji, dla których jest to pożądane (w szczególności filtrowanie w czasie rzeczywistym), ale większość użytkowników znacznie lepiej radzi sobie z filtfilt
.
dzięki, mój problem został rozwiązany. –
- 1. Jak zastosować DCT do obrazu w Pythonie?
- 2. Dodawanie szumu do sygnału w pythonie
- 3. Jak zastosować filtr globalny w playframework
- 4. Jak programowo zastosować filtr wejściowy Drupal?
- 5. jak poprawnie zastosować filtr obrazu rdzenia
- 6. Jak uzyskać filtr Gaussa w pythonie
- 7. Jak zastosować filtr bezpieczeństwa sprężyn tylko w zabezpieczonych punktach końcowych?
- 8. Jak zastosować "filtr" w oparciu o wyrażenie regularne?
- 9. jqGrid na całkowitym obciążeniu zastosować filtr
- 10. Czy mogę zastosować filtr CSS do obrazu tła?
- 11. jak zastosować filtr serwletów tylko dla metody http post
- 12. Jak zastosować filtr na wielu obiektach za pomocą AngularJS?
- 13. Metoda Otsu i filtr Median w Pythonie
- 14. Tworzenie Gaussa filtr wymaganej długości w Pythonie
- 15. Numer sygnału do nazwania?
- 16. HTML <input type = „file”> zastosować filtr
- 17. Jak zastosować funkcję do wariantu?
- 18. jak zastosować maskę do CompositionBrush
- 19. W clojure, jak zastosować makro do listy?
- 20. Jak dodać filtr do strony w spokoju?
- 21. Implementacja przetwarzania sygnału w czasie rzeczywistym w Pythonie - jak przechwytywać dźwięk w sposób ciągły?
- 22. Angular 2. Jak zastosować orderBy?
- 23. Jak usunąć obsługi sygnału
- 24. Zastosuj filtr w FirebaseRecyclerAdapter
- 25. Filtr dolnoprzepustowy w pytonie
- 26. Jak zastosować wiele filtrów w grupie tras Laravel 4?
- 27. Jak zastosować SVN diff do Git?
- 28. Jak zastosować tablicę klas do klasyList.contains?
- 29. jak zastosować element jQuery do zmiennej łańcuchowej
- 30. Jak zastosować Cython do Pandas DataFrame
Co próbowaliście? 'lfilter' może zaimplementować dowolny filtr LTI, który możesz wymyślić. – acjay
Zobacz także: http://www.scipy.org/Cookbook/ButterworthBandpass, http://www.scipy.org/Cookbook/FiltFilt, http://www.scipy.org/Cookbook/FIRFilter, http : //www.scipy.org/Cookbook/ApplyFIRFilter –