Spisu treści:
![Filtrowanie FIR dla bardziej niezawodnego wykrywania częstotliwości: 5 kroków Filtrowanie FIR dla bardziej niezawodnego wykrywania częstotliwości: 5 kroków](https://i.howwhatproduce.com/images/001/image-2459-5-j.webp)
Wideo: Filtrowanie FIR dla bardziej niezawodnego wykrywania częstotliwości: 5 kroków
![Wideo: Filtrowanie FIR dla bardziej niezawodnego wykrywania częstotliwości: 5 kroków Wideo: Filtrowanie FIR dla bardziej niezawodnego wykrywania częstotliwości: 5 kroków](https://i.ytimg.com/vi/wHJD-ytwMCU/hqdefault.jpg)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
![Filtrowanie FIR dla bardziej niezawodnego wykrywania częstotliwości Filtrowanie FIR dla bardziej niezawodnego wykrywania częstotliwości](https://i.howwhatproduce.com/images/001/image-2459-6-j.webp)
Jestem naprawdę wielkim fanem instruktażu akellyirla na temat niezawodnego wykrywania częstotliwości przy użyciu technik DSP, ale czasami technika, której użył, nie jest wystarczająco dobra, jeśli masz zaszumione pomiary.
Jednym z łatwych rozwiązań, aby uzyskać czystsze dane wejściowe dla detektora częstotliwości, jest zastosowanie pewnego rodzaju filtra wokół częstotliwości, którą chcesz wykryć.
Niestety stworzenie filtra cyfrowego nie jest łatwe i wymaga sporo matematyki. Pomyślałem więc o stworzeniu jakiegoś programu, który uprościłby tworzenie takich filtrów, aby każdy mógł z nich korzystać w swoich projektach bez zagłębiania się w szczegóły.
W tej instrukcji zamierzam wykryć falę sinusoidalną 50 Hz w hałaśliwym pomiarze za pomocą Arduino Uno (Arduino nie jest tak naprawdę konieczne).
Krok 1: Problem
![Problem Problem](https://i.howwhatproduce.com/images/001/image-2459-7-j.webp)
Wyobraź sobie, że zmierzone dane wejściowe wyglądają jak powyższa krzywa – dość zaszumiona.
Jeśli zbudujemy prosty detektor częstotliwości, taki jak ten w Instructable akellyirl, wynikiem będzie „-inf” lub w przypadku kodu poniżej: „Tak, za dużo hałasu…”
Uwaga: Użyłem prawie całego kodu akellyirl, ale dodałem na górze tablicę rawData zawierającą zaszumione pomiary.
Poniżej znajdziesz cały kod w pliku o nazwie „unfiltered.ino”.
Krok 2: Rozwiązanie
![Rozwiązanie Rozwiązanie](https://i.howwhatproduce.com/images/001/image-2459-8-j.webp)
Ponieważ dane wejściowe są zaszumione, ale znamy szukaną częstotliwość, możemy użyć stworzonego przeze mnie narzędzia o nazwie easyFIR, aby utworzyć filtr pasmowy i zastosować go do danych wejściowych, co skutkuje znacznie czystszym wejściem dla detektora częstotliwości (obrazek powyżej).
Krok 3: EasyFIR
![EasyFIR EasyFIR](https://i.howwhatproduce.com/images/001/image-2459-9-j.webp)
Narzędzie easyFIR jest dość łatwe w użyciu, wystarczy pobrać repozytorium GitHub i uruchomić plik easyFIR.py z jedną próbką pomiarów (w formacie CSV).
Jeśli otworzysz plik easyFIR.py, znajdziesz 5 parametrów (patrz obrazek powyżej), które możesz i powinieneś zmienić w zależności od wyniku, który chcesz osiągnąć. Po dostosowaniu 5 parametrów i uruchomieniu pliku Pythona zobaczysz obliczone współczynniki w swoim terminalu. Te współczynniki są kluczowe dla następnego kroku!
Więcej informacji na temat dokładnego użycia można znaleźć tutaj:
Krok 4: Filtrowanie
![Filtracja Filtracja](https://i.howwhatproduce.com/images/001/image-2459-10-j.webp)
Teraz, jeśli obliczyłeś potrzebne współczynniki filtra, dość łatwo jest zastosować właściwy filtr do detektora częstotliwości.
Jak widać na powyższym obrazku, wystarczy dodać współczynniki, funkcję applyFilter, a następnie przefiltrować pomiary wejściowe.
Poniżej znajdziesz cały kod w pliku o nazwie „filtered.ino”.
Uwaga: wielkie dzięki temu Stack Overflow Post za wspaniały algorytm aplikacji filtra!
Krok 5: Ciesz się
![Cieszyć się Cieszyć się](https://i.howwhatproduce.com/images/001/image-2459-11-j.webp)
Jak widać, teraz jesteśmy w stanie wykryć sygnał 50Hz nawet w hałaśliwym otoczeniu ?
Zapraszam do dostosowania mojego pomysłu i kodu do swoich potrzeb. Byłbym bardzo wdzięczny za uwzględnienie twoich ulepszeń!
Jeśli podoba Ci się moja praca, będę bardzo wdzięczny za wsparcie mojej pracy z gwiazdą na GitHub!
Dziękuję za wsparcie!:)
Zalecana:
Filtrowanie treści internetowych za pomocą DNS: 10 kroków
![Filtrowanie treści internetowych za pomocą DNS: 10 kroków Filtrowanie treści internetowych za pomocą DNS: 10 kroków](https://i.howwhatproduce.com/images/009/image-26418-j.webp)
Filtrowanie treści internetowych za pomocą DNS: Zaktualizowano 3 lutego 2021 r., aby uwzględnić dodatkowe informacje w krokach 8 i amp; 9. Powszechnie wiadomo, że w Internecie jest wiele treści, które nie są odpowiednie do oglądania przez dzieci. To, co nie jest tak powszechnie znane, to fakt, że y
Β Miernik w wersji II (bardziej stabilny i dokładny): 6 kroków
![Β Miernik w wersji II (bardziej stabilny i dokładny): 6 kroków Β Miernik w wersji II (bardziej stabilny i dokładny): 6 kroków](https://i.howwhatproduce.com/images/006/image-15967-15-j.webp)
Β Miernik w wersji II (bardziej stabilny i dokładny): https://www.instructables.com/id/Beta-Meter/Miernik β w wersji I był cichy i dokładny, ale źródło prądu nie było stałe z napięciem wejściowym (Vcc). Wersja II β miernika jest dość stabilna, tzn. aktualna wartość nie zmienia się zbytnio wraz ze zmianą i
Jak zrobić wizualizator dźwięku częstotliwości dla kostiumu (Projekt Arduino): 8 kroków (ze zdjęciami)
![Jak zrobić wizualizator dźwięku częstotliwości dla kostiumu (Projekt Arduino): 8 kroków (ze zdjęciami) Jak zrobić wizualizator dźwięku częstotliwości dla kostiumu (Projekt Arduino): 8 kroków (ze zdjęciami)](https://i.howwhatproduce.com/images/004/image-9763-24-j.webp)
Jak zrobić wizualizator dźwięku częstotliwości dla kostiumu (Projekt Arduino): W tym Instuctable przedstawię wskazówki, plany i kody, aby stworzyć ekscytujący wizualizator dźwięku wbudowany w kombinezon z pianki z włókna szklanego. Po drodze podzielę się pomocnymi krokami i dodatkowymi kodami, które niektórzy chcą zaimplementować biblioteki arduino FFT do
CheapGeek- Spraw, aby brzydki monitor był bardziej lub mniej brzydki : 5 kroków
![CheapGeek- Spraw, aby brzydki monitor był bardziej lub mniej brzydki : 5 kroków CheapGeek- Spraw, aby brzydki monitor był bardziej lub mniej brzydki : 5 kroków](https://i.howwhatproduce.com/images/002/image-4068-67-j.webp)
CheapGeek - Zrób brzydki monitor mniej lub bardziej brzydki…: Brzydki stary monitor - stara puszka farby w sprayu i waa laa, mniej lub bardziej brzydki monitor. (w zależności od tego, jak na to patrzysz) Miałem zapasowy monitor, którego używałem do pracy z komputerem w domu. Monitor musiał być czarny. Plus wszystko co mam i tak jest czarne
Skonfiguruj filtrowanie treści internetowych w 4 krokach w Ubuntu: 5 kroków
![Skonfiguruj filtrowanie treści internetowych w 4 krokach w Ubuntu: 5 kroków Skonfiguruj filtrowanie treści internetowych w 4 krokach w Ubuntu: 5 kroków](https://i.howwhatproduce.com/images/005/image-14682-41-j.webp)
Skonfiguruj filtrowanie treści internetowych w 4 krokach W Ubuntu: Jako informatyk, jedną z najczęstszych rzeczy, o które pytają mnie współpracownicy, jest to, jak mogą kontrolować, do których witryn ich dzieci mają dostęp online. Jest to bardzo łatwe i bezpłatne przy użyciu Ubuntu Linux, dansguardian i tinyproxy