Sommario:
- Passaggio 1: il problema
- Passaggio 2: la soluzione
- Passaggio 3: EasyFIR
- Passaggio 4: filtraggio
- Passaggio 5: divertiti
Video: Filtraggio FIR per un rilevamento della frequenza più affidabile: 5 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
Sono un grande fan delle istruzioni di akellyirl sul rilevamento affidabile della frequenza utilizzando le tecniche DSP, ma a volte la tecnica che ha usato non è abbastanza buona se si hanno misurazioni rumorose.
Una soluzione semplice per ottenere un ingresso più pulito per il rilevatore di frequenza consiste nell'applicare una sorta di filtro attorno alla frequenza che si desidera rilevare.
Sfortunatamente, creare un filtro digitale non è facile e richiede molta matematica. Così ho pensato di creare una sorta di programma per semplificare la creazione di tali filtri, per permettere a chiunque di utilizzarli nei propri progetti senza scavare nei dettagli.
In questo Instructable, rileverò un'onda sinusoidale a 50Hz in una misurazione rumorosa con un Arduino Uno (Arduino non è realmente necessario).
Passaggio 1: il problema
Immagina che i dati di input misurati assomiglino alla curva sopra - piuttosto rumorosa.
Se costruiamo un semplice rilevatore di frequenza come quello in Instructable di akellyirl, il risultato è "-inf" o nel caso del codice seguente: "Sì, troppo rumore…"
Nota: ho usato praticamente tutto il codice di akellyirl ma ho aggiunto un array rawData nella parte superiore contenente le misurazioni rumorose.
Di seguito puoi trovare l'intero codice in un file chiamato "unfiltered.ino".
Passaggio 2: la soluzione
Poiché i dati di input sono rumorosi ma conosciamo la frequenza che stiamo cercando, possiamo utilizzare uno strumento che ho creato chiamato easyFIR per creare un filtro passa-banda e applicarlo ai dati di input, il che si traduce in un input molto più pulito per il rilevatore di frequenza (immagine sopra).
Passaggio 3: EasyFIR
Lo strumento easyFIR è abbastanza facile da usare, basta scaricare il repository GitHub ed eseguire il file easyFIR.py con un campione delle tue misurazioni (in formato CSV).
Se apri il file easyFIR.py, troverai 5 parametri (vedi immagine sopra) che puoi e devi modificare a seconda del risultato che vuoi ottenere. Dopo aver modificato i 5 parametri ed eseguito il file python, vedrai i coefficienti calcolati nel tuo terminale. Questi coefficienti sono cruciali per il prossimo passo!
Maggiori informazioni sull'utilizzo esatto sono disponibili qui:
Passaggio 4: filtraggio
Ora, se hai calcolato i coefficienti di filtro necessari, è abbastanza facile applicare il filtro effettivo al rilevatore di frequenza.
Come puoi vedere nell'immagine sopra, devi solo aggiungere i coefficienti, la funzione ApplyFilter e quindi filtrare le misure di input.
Di seguito puoi trovare l'intero codice in un file chiamato "filtered.ino".
Nota: grazie mille a questo Stack Overflow Post per l'ottimo algoritmo di applicazione del filtro!
Passaggio 5: divertiti
Come puoi vedere, ora siamo in grado di rilevare un segnale a 50Hz anche in un ambiente rumoroso ?
Sentiti libero di adattare la mia idea e il mio codice alle tue esigenze. Sarei molto grato di includere i tuoi miglioramenti!
Se ti piace il mio lavoro, apprezzerei davvero se supportassi il mio lavoro con star su GitHub!
Grazie per il vostro sostegno!:)
Consigliato:
Misurazione della frequenza e della tensione dell'alimentatore con Arduino: 6 passaggi
Misurazione della frequenza e della tensione di alimentazione con Arduino: Introduzione: l'obiettivo di questo progetto è misurare la frequenza e la tensione di alimentazione, che qui in India sono comprese tra 220 e 240 Volt e 50 Hz. Ho usato un Arduino per catturare il segnale e calcolare frequenza e tensione, puoi usare qualsiasi altro microcont
TouchFree: controllo automatico della temperatura e chiosco per il rilevamento della maschera: 5 passaggi
TouchFree: controllo automatico della temperatura e chiosco per il rilevamento della maschera: con la riapertura dei paesi di tutto il mondo, convivere con il nuovo coronavirus sta diventando il nuovo stile di vita. Ma per fermare la diffusione del virus dobbiamo separare le persone che hanno il Coronavirus dal resto. Secondo il CDC, la febbre è la l
Misurare la frequenza cardiaca è a portata di mano: approccio fotopletismografico per determinare la frequenza cardiaca: 7 passaggi
La misurazione della frequenza cardiaca è a portata di dito: approccio fotopletismografico alla determinazione della frequenza cardiaca: un fotopletismografo (PPG) è una tecnica ottica semplice ed economica che viene spesso utilizzata per rilevare i cambiamenti nel volume del sangue in un letto microvascolare di tessuto. Viene utilizzato principalmente in modo non invasivo per effettuare misurazioni sulla superficie della pelle, in genere
Rilevamento dell'inquinamento atmosferico + filtraggio dell'aria: 4 passaggi
Rilevamento dell'inquinamento atmosferico + filtraggio dell'aria: gli studenti (Aristobulus Lam, Victor Sim, Nathan Rosenzweig e Declan Loges) della German Swiss International School hanno lavorato con lo staff di MakerBay per produrre un sistema integrato di misurazione dell'inquinamento atmosferico e dell'efficacia della filtrazione dell'aria. Questo
Guardiano V1.0 --- Aggiornamento della telecamera spioncino della porta con Arduino (caratteristiche di registrazione del rilevamento del movimento e scosse elettriche): 5 passaggi
Guardiano V1.0 ||| Aggiornamento della telecamera spioncino della porta con Arduino (funzioni di registrazione del rilevamento del movimento e scosse elettriche): ho ordinato una telecamera spioncino ma quando la uso, mi sono reso conto che non esiste una funzione di registrazione automatica (attivata dal rilevamento del movimento). Poi ho iniziato a indagare su come funziona. Per registrare un video, dovresti 1- tenere premuto il pulsante di accensione per quasi 2 secondi