Obsah:
Video: FIR filtrování pro spolehlivější detekci frekvence: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Jsem opravdu velkým fanouškem instrukcí akellyirl o spolehlivé detekci frekvence pomocí technik DSP, ale někdy technika, kterou použil, není dost dobrá, pokud máte hlučná měření.
Jednou snadnou opravou, jak získat čistší vstup pro detektor frekvence, je použít nějaký filtr kolem frekvence, kterou chcete detekovat.
Vytvoření digitálního filtru bohužel není snadné a je s tím spojená poměrně velká matematika. Přemýšlel jsem tedy o vytvoření nějakého programu, který by zjednodušil vytváření takových filtrů, aby je mohl kdokoli použít ve svých projektech, aniž by hloubal do detailů.
V tomto Instructable se chystám detekovat 50Hz sinusovou vlnu v hlučném měření pomocí Arduino Uno (Arduino ve skutečnosti není nutné).
Krok 1: Problém
Představte si, že naměřená vstupní data vypadají jako výše uvedená křivka - docela hlučná.
Pokud sestrojíme jednoduchý frekvenční detektor, jako je ten v Akellyirl's Instructable, výsledkem bude „-inf“nebo v případě níže uvedeného kódu: „Jo, příliš mnoho šumu…“
Poznámka: Použil jsem téměř veškerý kód akellyirl, ale v horní části jsem přidal pole rawData obsahující hlučná měření.
Níže najdete celý kód v souboru s názvem "unfiltered.ino".
Krok 2: Řešení
Protože jsou vstupní data hlučná, ale známe frekvenci, kterou hledáme, můžeme pomocí nástroje, který jsem vytvořil, nazvaného easyFIR, vytvořit pásmový filtr a použít jej na vstupní data, což má za následek mnohem čistší vstup pro frekvenční detektor (obrázek výše).
Krok 3: EasyFIR
Nástroj easyFIR se velmi snadno používá, stačí si stáhnout úložiště GitHub a spustit soubor easyFIR.py s jedním vzorkem vašich měření (ve formátu CSV).
Pokud otevřete soubor easyFIR.py, najdete 5 parametrů (viz obrázek výše), které můžete a měli byste změnit v závislosti na výsledku, kterého byste chtěli dosáhnout. Poté, co vyladíte 5 parametrů a spustíte soubor pythonu, uvidíte vypočítané koeficienty ve vašem terminálu. Tyto koeficienty jsou zásadní pro další krok!
Více informací o přesném použití najdete zde:
Krok 4: Filtrování
Pokud jste nyní vypočítali potřebné koeficienty filtru, je velmi snadné použít skutečný filtr na frekvenční detektor.
Jak vidíte na obrázku výše, stačí pouze přidat koeficienty, funkci applyFilter a poté filtrovat vstupní měření.
Níže najdete celý kód v souboru s názvem „filtrované.ino“.
Poznámka: velké díky tomuto příspěvku přetečení zásobníku za skvělý algoritmus aplikace filtrů!
Krok 5: Užijte si to
Jak vidíte, nyní jsme schopni detekovat signál 50 Hz i v hlučném prostředí?
Neváhejte a přizpůsobte můj nápad a kód vašim potřebám. Byl bych velmi vděčný za zahrnutí vašich vylepšení!
Pokud se vám moje práce líbí, byl bych opravdu rád, kdybyste moji práci s hvězdou na GitHubu podpořili!
Děkuji za vaši podporu!:)
Doporučuje:
Čerpací stanice pro detekci CO: 5 kroků
Čerpací stanice pro detekci CO: Oxid uhelnatý (CO) je velmi nebezpečný plyn, protože necítí, nechutná. Nemůžete to vidět ani to detekovat nosem. Mým cílem je postavit jednoduchý detektor CO. Za prvé, ve svém domě zjišťuji velmi malá množství tohoto plynu. To je důvod
Nádoba autonomního filtrování Arduino: 6 kroků
Plavidlo autonomní filtrace Arduino: V tomto Instructable vám ukážu, jak jsem navrhl a vyrobil navrhované řešení pro aktuální problém s červenými řasami ve vodách pobřeží Mexického zálivu. Pro tento projekt jsem chtěl navrhnout plně autonomní plavidlo poháněné solární energií, které by dokázalo navi
Filtrování internetového obsahu pomocí DNS: 10 kroků
Filtrování internetového obsahu pomocí DNS: Aktualizováno 3. února 2021, aby zahrnovalo další informace v krocích 8 & 9. Je všeobecně známo, že na internetu je mnoho obsahu, který není vhodný pro sledování dětmi. Co však není tak široce známé, je skutečnost, že y
Měření srdeční frekvence je na špičce prstu: Fotopletyzmografický přístup k určení srdeční frekvence: 7 kroků
Měření srdeční frekvence je na špičce prstu: Fotopletyzmografický přístup k určení srdeční frekvence: Fotopletyzmograf (PPG) je jednoduchá a levná optická technika, která se často používá k detekci změn objemu krve v mikrovaskulárním lůžku tkáně. Většinou se používá neinvazivně k provádění měření na povrchu kůže, obvykle
Nastavte filtrování webového obsahu ve 4 krocích s Ubuntu: 5 kroků
Nastavení filtrování webového obsahu ve 4 krocích s Ubuntu: Jako IT pracovník se mě kolegové nejčastěji ptají, jak mohou kontrolovat, ke kterým webům mají jejich děti přístup online. To je velmi snadné a zdarma pomocí Ubuntu linux, dansguardian a tinyproxy