Rimuovere il rumore ad alta frequenza nei dati misurati
Questo esempio mostra come progettare un filtro passa-basso e utilizzarlo per rimuovere il rumore ad alta frequenza nei dati misurati. Il rumore ad alta frequenza è dovuto a componenti di un segnale che variano più velocemente del segnale di interesse. La rimozione del rumore ad alta frequenza consente di rappresentare in modo più compatto il segnale di interesse e consente un'analisi più accurata. Un filtro passa-basso è una tecnica comune per rimuovere il rumore ad alta frequenza in un segnale.
Leggi i dati
Il canale ThingSpeak™ 12397 contiene i dati della stazione meteorologica MathWorks® , situata a Natick, Massachusetts. I dati vengono raccolti e pubblicati su ThingSpeak una volta al minuto. Il campo 3 del canale contiene i dati di umidità relativa. Leggere i dati utilizzando la funzione thingSpeakRead .
[humidity,time] = thingSpeakRead(12397,'NumPoints',8000,'Fields',3);
Filtro di progettazione
Un filtro è un processo che rimuove i componenti indesiderati da un segnale. Un filtro passa-basso è progettato per consentire il passaggio dei componenti a frequenza più bassa e bloccare i componenti a frequenza più alta in un segnale. DSP System Toolbox™ fornisce molteplici tecniche per definire un filtro passa-basso. Questo esempio progetta un filtro FIR (risposta all'impulso finito) del terzo ordine. La frequenza di campionamento è ogni 60 secondi (Fs=1/60), poiché i dati nel canale 12397 vengono caricati una volta al minuto. Il filtro passa-basso mantiene le componenti a bassa frequenza e attenua le componenti ad alta frequenza con un periodo inferiore a 24 ore.
filtertype = 'FIR'; Fs = 1/60; N = 3; Fpass = 1/(24*60*60); Fstop = 1/(2*60*60); Rp = 0.5; Astop = 50; LPF = dsp.LowpassFilter('SampleRate',Fs,... 'FilterType',filtertype,... 'PassbandFrequency',Fpass,... 'StopbandFrequency',Fstop,... 'PassbandRipple',Rp,... 'StopbandAttenuation',Astop);
Elabora e invia i dati a ThingSpeak
Elabora i dati di umidità relativa utilizzando il filtro passa-basso e invia i dati di umidità filtrati a un canale ThingSpeak utilizzando la funzione thingSpeakWrite .
Output = step(LPF, humidity);
Utilizzando l'app MATLAB Analysis, puoi scrivere i dati su un canale. Se utilizzi l'app MATLAB Visualizations, puoi anche aggiungere un grafico dei dati. Cambia channelID e writeAPIKey per inviare dati al tuo canale.
channelID = 17504; writeAPIKey='23ZLGOBBU9TWHG2H'; thingSpeakWrite(channelID,Output,'Timestamps',time,'WriteKey',writeAPIKey); plot(time,humidity,time,Output); ylabel('Relative Humidity'); legend('Raw Data', 'Filtered Data');

Il grafico mostra una drastica riduzione del rumore ad alta frequenza.
Vedi anche
Funzioni
Argomenti
- Compensate for Delay and Distortion Introduced by Filters (Signal Processing Toolbox)
- Filter Design and Analysis (DSP System Toolbox)