Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

Supprimer le bruit haute fréquence dans les données mesurées

Cet exemple montre comment design un filtre passe-bas et l'utiliser pour supprimer le bruit haute fréquence dans les données mesurées. Le bruit à haute fréquence est dû aux composants d'un signal variant plus rapidement que le signal d'intérêt. La suppression du bruit à haute fréquence permet au signal d'intérêt d'être représenté de manière plus compacte et permet une analyse plus précise. Un filtre passe-bas est une technique courante pour éliminer le bruit haute fréquence dans un signal.

Lire les données

Le canal ThingSpeak ™ 12397 contient les données de la station météo MathWorks®, située à Natick, Massachusetts. Les données sont collectées et publiées sur ThingSpeak une fois par minute. Le champ 3 du canal contient des données d'humidité relative. Lisez les données à l'aide de la fonction thingSpeakRead.

[humidity,time] = thingSpeakRead(12397,'NumPoints',8000,'Fields',3);

Filtre de conception

Un filtre est un processus qui supprime les composants indésirables d'un signal. Un filtre passe-bas est conçu pour laisser passer les composants à basse fréquence et bloquer les composants à haute fréquence dans un signal. DSP System Toolbox™ fournit plusieurs techniques pour définir un filtre passe-bas. Cet exemple conçoit un filtre à réponse impulsionnelle finie (FIR) du troisième ordre. La fréquence d'échantillonnage est d'une fois toutes les 60 secondes (Fs=1/60), car les données du canal 12397 sont téléchargées une fois par minute. Le filtre passe-bas conserve les composantes basse fréquence et atténue les composantes haute fréquence avec une période inférieure à 24 heures.

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);

Traiter et envoyer les données à ThingSpeak

Traitez les données d'humidité relative à l'aide du filtre passe-bas et envoyez les données d'humidité filtrées à un canal ThingSpeak à l'aide de la fonction thingSpeakWrite.

Output = step(LPF, humidity);

À l'aide de l'application MATLAB Analysis, vous pouvez écrire les données sur un canal. Si vous utilisez l'application MATLAB Visualizations, vous pouvez également ajouter un tracé des données. Changez le channelID et le writeAPIKey pour envoyer des données à votre canal.

channelID = 17504;
writeAPIKey='23ZLGOBBU9TWHG2H';
thingSpeakWrite(channelID,Output,'Timestamps',time,'WriteKey',writeAPIKey);
plot(time,humidity,time,Output);
ylabel('Relative Humidity');
legend('Raw Data', 'Filtered Data');

Le graphique montre une réduction spectaculaire du bruit à haute fréquence.

Voir aussi

Fonctions

Sujets associés